mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 04:58:45 +00:00
Remove Bluetooth mic voice message recording.
This commit is contained in:
committed by
Nicholas
parent
05bbeb10da
commit
0e1de39192
@@ -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();
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user