diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java index 3ea83b7ab9..862b09644e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java @@ -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(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/VoiceMessageRecordingDelegate.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/VoiceMessageRecordingDelegate.kt index 204c2be9bc..f199253f93 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/VoiceMessageRecordingDelegate.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/VoiceMessageRecordingDelegate.kt @@ -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)