From 75efd7b21aed09f6a7e34a70cd0b859f7ae9fc2d Mon Sep 17 00:00:00 2001 From: jubb Date: Tue, 7 Dec 2021 15:17:28 +1100 Subject: [PATCH] refactor: add wantsToAnswer ability in pre-init for fullscreenintent --- .../securesms/calls/WebRtcCallActivity.kt | 7 ++++--- .../securesms/util/CallNotificationBuilder.kt | 1 + .../securesms/webrtc/audio/IncomingRinger.kt | 16 +++++++++------- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/calls/WebRtcCallActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/calls/WebRtcCallActivity.kt index d3712e998..d8776536a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/calls/WebRtcCallActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/calls/WebRtcCallActivity.kt @@ -109,6 +109,7 @@ class WebRtcCallActivity: PassphraseRequiredActionBarActivity() { } acceptCallButton.setOnClickListener { + wantsToAnswer = true val answerIntent = WebRtcCallService.acceptCallIntent(this) ContextCompat.startForegroundService(this,answerIntent) } @@ -175,9 +176,9 @@ class WebRtcCallActivity: PassphraseRequiredActionBarActivity() { CALL_CONNECTED -> { } } - controlGroup.isVisible = state in listOf(CALL_CONNECTED, CALL_OUTGOING, CALL_INCOMING) - remote_loading_view.isVisible = state !in listOf(CALL_CONNECTED, CALL_RINGING) - incomingControlGroup.isVisible = state in listOf(CALL_RINGING, CALL_PRE_INIT) + controlGroup.isVisible = state in listOf(CALL_CONNECTED, CALL_OUTGOING, CALL_INCOMING) || (state == CALL_PRE_INIT && wantsToAnswer) + remote_loading_view.isVisible = state !in listOf(CALL_CONNECTED, CALL_RINGING, CALL_PRE_INIT) + incomingControlGroup.isVisible = state in listOf(CALL_RINGING, CALL_PRE_INIT) && !wantsToAnswer } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/CallNotificationBuilder.kt b/app/src/main/java/org/thoughtcrime/securesms/util/CallNotificationBuilder.kt index c9fa02fe3..1e6119dfa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/CallNotificationBuilder.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/CallNotificationBuilder.kt @@ -8,6 +8,7 @@ import androidx.annotation.DrawableRes import androidx.annotation.StringRes import androidx.core.app.NotificationCompat import network.loki.messenger.R +import org.session.libsession.utilities.TextSecurePreferences import org.session.libsession.utilities.recipients.Recipient import org.thoughtcrime.securesms.calls.WebRtcCallActivity import org.thoughtcrime.securesms.notifications.NotificationChannels diff --git a/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/IncomingRinger.kt b/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/IncomingRinger.kt index 31b3bdf10..1b3995a2a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/IncomingRinger.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/IncomingRinger.kt @@ -34,14 +34,16 @@ class IncomingRinger(private val context: Context) { } mediaPlayer?.let { player -> - try { - if (!player.isPlaying) { - player.prepare() - player.start() - Log.i(TAG,"Playing ringtone") + if (ringerMode == AudioManager.RINGER_MODE_NORMAL) { + try { + if (!player.isPlaying) { + player.prepare() + player.start() + Log.i(TAG,"Playing ringtone") + } + } catch (e: Exception) { + Log.e(TAG,"Failed to start mediaPlayer", e) } - } catch (e: Exception) { - Log.e(TAG,"Failed to start mediaPlayer", e) } } ?: run { Log.w(TAG,"Not ringing, mediaPlayer: ${mediaPlayer?.let{"available"}}, mode: $ringerMode")