Remove Bluetooth mic voice message recording.

This commit is contained in:
Nicholas Tinsley
2023-07-18 17:29:24 -04:00
committed by Nicholas
parent 05bbeb10da
commit 0e1de39192
2 changed files with 2 additions and 63 deletions

View File

@@ -20,7 +20,6 @@ import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.hardware.Camera;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
@@ -58,7 +57,6 @@ 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;
@@ -106,7 +104,6 @@ import org.thoughtcrime.securesms.ShortcutLauncherActivity;
import org.thoughtcrime.securesms.attachments.Attachment;
import org.thoughtcrime.securesms.attachments.TombstoneAttachment;
import org.thoughtcrime.securesms.audio.AudioRecorder;
import org.thoughtcrime.securesms.audio.BluetoothVoiceNoteUtil;
import org.thoughtcrime.securesms.badges.gifts.thanks.GiftThanksSheet;
import org.thoughtcrime.securesms.components.AnimatingToggle;
import org.thoughtcrime.securesms.components.ComposeText;
@@ -206,7 +203,6 @@ import org.thoughtcrime.securesms.keyboard.sticker.StickerKeyboardPageFragment;
import org.thoughtcrime.securesms.keyboard.sticker.StickerSearchDialogFragment;
import org.thoughtcrime.securesms.keyvalue.PaymentsValues;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
import org.thoughtcrime.securesms.keyvalue.SmsExportPhase;
import org.thoughtcrime.securesms.linkpreview.LinkPreview;
import org.thoughtcrime.securesms.linkpreview.LinkPreviewRepository;
import org.thoughtcrime.securesms.linkpreview.LinkPreviewViewModel;
@@ -299,7 +295,6 @@ import org.thoughtcrime.securesms.util.views.Stub;
import org.thoughtcrime.securesms.verify.VerifyIdentityActivity;
import org.thoughtcrime.securesms.wallpaper.ChatWallpaper;
import org.thoughtcrime.securesms.wallpaper.ChatWallpaperDimLevelUtil;
import org.thoughtcrime.securesms.webrtc.audio.AudioManagerCompat;
import org.whispersystems.signalservice.api.SignalSessionLock;
import java.io.IOException;
@@ -414,7 +409,6 @@ public class ConversationParentFragment extends Fragment
private View navigationBarBackground;
private AttachmentManager attachmentManager;
private BluetoothVoiceNoteUtil bluetoothVoiceNoteUtil;
private AudioRecorder audioRecorder;
private RecordingSession recordingSession;
@@ -519,7 +513,6 @@ public class ConversationParentFragment extends Fragment
voiceNoteMediaController = new VoiceNoteMediaController(requireActivity(), true);
voiceRecorderWakeLock = new VoiceRecorderWakeLock(requireActivity());
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();
@@ -675,7 +668,6 @@ public class ConversationParentFragment extends Fragment
public void onDestroy() {
if (securityUpdateReceiver != null) requireActivity().unregisterReceiver(securityUpdateReceiver);
if (pinnedShortcutReceiver != null) requireActivity().unregisterReceiver(pinnedShortcutReceiver);
if (bluetoothVoiceNoteUtil != null) bluetoothVoiceNoteUtil.destroy();
super.onDestroy();
}
@@ -3283,22 +3275,7 @@ public class ConversationParentFragment extends Fragment
@Override
public void onRecorderStarted() {
final AudioManagerCompat audioManager = ApplicationDependencies.getAndroidCallAudioManager();
if (audioManager.isBluetoothHeadsetAvailable()) {
connectToBluetoothAndBeginRecording();
} else {
Log.d(TAG, "Recording from phone mic because no bluetooth devices were available.");
beginRecording();
}
}
private void connectToBluetoothAndBeginRecording() {
if (bluetoothVoiceNoteUtil != null) {
Log.d(TAG, "Initiating Bluetooth SCO connection...");
bluetoothVoiceNoteUtil.connectBluetoothScoConnection();
} else {
Log.e(TAG, "Unable to instantiate BluetoothVoiceNoteUtil.");
}
beginRecording();
}
private Unit onBluetoothConnectionAttempt(Boolean success) {
@@ -3339,7 +3316,6 @@ public class ConversationParentFragment extends Fragment
@Override
public void onRecorderFinished() {
bluetoothVoiceNoteUtil.disconnectBluetoothScoConnection();
voiceRecorderWakeLock.release();
updateToggleButtonState();
@@ -3359,7 +3335,6 @@ public class ConversationParentFragment extends Fragment
@Override
public void onRecorderCanceled(boolean byUser) {
bluetoothVoiceNoteUtil.disconnectBluetoothScoConnection();
voiceRecorderWakeLock.release();
updateToggleButtonState();

View File

@@ -9,7 +9,6 @@ import android.content.pm.ActivityInfo
import android.view.WindowManager
import android.widget.Toast
import androidx.fragment.app.Fragment
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.core.Single
import io.reactivex.rxjava3.core.SingleObserver
@@ -19,13 +18,9 @@ import org.signal.core.util.concurrent.addTo
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.audio.AudioRecorder
import org.thoughtcrime.securesms.audio.BluetoothVoiceNoteUtil
import org.thoughtcrime.securesms.components.voice.VoiceNoteDraft
import org.thoughtcrime.securesms.conversation.VoiceRecorderWakeLock
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
import org.thoughtcrime.securesms.permissions.Permissions
import org.thoughtcrime.securesms.util.ServiceUtil
import org.thoughtcrime.securesms.webrtc.audio.AudioManagerCompat
/**
* Delegate class for VoiceMessage recording.
@@ -45,22 +40,11 @@ class VoiceMessageRecordingDelegate(
}
private val voiceRecorderWakeLock = VoiceRecorderWakeLock(fragment.requireActivity())
private val bluetoothVoiceNoteUtil = BluetoothVoiceNoteUtil.create(
fragment.requireContext(),
this::onBluetoothConnectionAttempt,
this::onBluetoothPermissionDenied
)
private var session: Session? = null
fun onRecorderStarted() {
val audioManager: AudioManagerCompat = ApplicationDependencies.getAndroidCallAudioManager()
if (audioManager.isBluetoothHeadsetAvailable) {
connectToBluetoothAndBeginRecording()
} else {
Log.d(TAG, "Recording from phone mic because no bluetooth devices were available.")
beginRecording()
}
beginRecording()
}
fun onRecorderLocked() {
@@ -69,14 +53,12 @@ class VoiceMessageRecordingDelegate(
}
fun onRecorderFinished() {
bluetoothVoiceNoteUtil.disconnectBluetoothScoConnection()
voiceRecorderWakeLock.release()
vibrateAndResetOrientation(20)
session?.completeRecording()
}
fun onRecorderCanceled(byUser: Boolean) {
bluetoothVoiceNoteUtil.disconnectBluetoothScoConnection()
voiceRecorderWakeLock.release()
vibrateAndResetOrientation(50)
@@ -99,15 +81,6 @@ class VoiceMessageRecordingDelegate(
}
}
private fun connectToBluetoothAndBeginRecording() {
Log.d(TAG, "Initiating Bluetooth SCO connection...")
bluetoothVoiceNoteUtil.connectBluetoothScoConnection()
}
private fun onBluetoothConnectionAttempt(success: Boolean) {
beginRecording()
}
@Suppress("DEPRECATION")
private fun beginRecording() {
val vibrator = ServiceUtil.getVibrator(fragment.requireContext())
@@ -122,15 +95,6 @@ class VoiceMessageRecordingDelegate(
}
}
private fun onBluetoothPermissionDenied() {
MaterialAlertDialogBuilder(fragment.requireContext())
.setTitle(R.string.ConversationParentFragment__bluetooth_permission_denied)
.setMessage(R.string.ConversationParentFragment__please_enable_the_nearby_devices_permission_to_use_bluetooth_during_a_call)
.setPositiveButton(R.string.ConversationParentFragment__open_settings) { _, _ -> fragment.startActivity(Permissions.getApplicationSettingsIntent(fragment.requireContext())) }
.setNegativeButton(R.string.ConversationParentFragment__not_now, null)
.show()
}
interface SessionCallback {
fun onSessionWillBegin()
fun sendVoiceNote(draft: VoiceNoteDraft)