Improve voice note Bluetooth state handling.

This commit is contained in:
Nicholas
2023-06-21 12:23:59 -04:00
committed by Nicholas Tinsley
parent ecf576e9b9
commit 5cb10cd054
3 changed files with 30 additions and 11 deletions

View File

@@ -58,6 +58,7 @@ import androidx.annotation.ColorRes;
import androidx.annotation.IdRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.annotation.WorkerThread;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.SearchView;
@@ -304,7 +305,6 @@ import org.whispersystems.signalservice.api.SignalSessionLock;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Objects;
@@ -513,7 +513,7 @@ public class ConversationParentFragment extends Fragment
voiceNoteMediaController = new VoiceNoteMediaController(requireActivity(), true);
voiceRecorderWakeLock = new VoiceRecorderWakeLock(requireActivity());
bluetoothVoiceNoteUtil = BluetoothVoiceNoteUtil.Companion.create(requireContext(), this::beginRecording, this::onBluetoothPermissionDenied);
bluetoothVoiceNoteUtil = BluetoothVoiceNoteUtil.Companion.create(requireContext(), this::onBluetoothConnectionAttempt, this::onBluetoothPermissionDenied);
// TODO [alex] LargeScreenSupport -- Should be removed once we move to multi-pane layout.
new FullscreenHelper(requireActivity()).showSystemUI();
@@ -3306,6 +3306,11 @@ public class ConversationParentFragment extends Fragment
}
}
private Unit onBluetoothConnectionAttempt(Boolean success) {
beginRecording();
return Unit.INSTANCE;
}
private Unit beginRecording() {
Vibrator vibrator = ServiceUtil.getVibrator(requireContext());
vibrator.vibrate(20);

View File

@@ -47,7 +47,7 @@ class VoiceMessageRecordingDelegate(
private val voiceRecorderWakeLock = VoiceRecorderWakeLock(fragment.requireActivity())
private val bluetoothVoiceNoteUtil = BluetoothVoiceNoteUtil.create(
fragment.requireContext(),
this::beginRecording,
this::onBluetoothConnectionAttempt,
this::onBluetoothPermissionDenied
)
@@ -104,6 +104,10 @@ class VoiceMessageRecordingDelegate(
bluetoothVoiceNoteUtil.connectBluetoothScoConnection()
}
private fun onBluetoothConnectionAttempt(success: Boolean) {
beginRecording()
}
@Suppress("DEPRECATION")
private fun beginRecording() {
val vibrator = ServiceUtil.getVibrator(fragment.requireContext())