From 0558808370a1063376cc8a807e3153468059e42c Mon Sep 17 00:00:00 2001 From: Nicholas Date: Tue, 22 Nov 2022 14:02:19 -0500 Subject: [PATCH] Unmute Stories when ringer mode changed. --- .../stories/viewer/StoryViewerActivity.kt | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/StoryViewerActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/StoryViewerActivity.kt index 7c647551c..bd82feaed 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/StoryViewerActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/StoryViewerActivity.kt @@ -1,7 +1,9 @@ package org.thoughtcrime.securesms.stories.viewer +import android.content.BroadcastReceiver import android.content.Context import android.content.Intent +import android.content.IntentFilter import android.media.AudioManager import android.os.Build import android.os.Bundle @@ -33,6 +35,8 @@ class StoryViewerActivity : PassphraseRequiredActivity(), VoiceNoteMediaControll private val viewModel: StoryVolumeViewModel by viewModels() private val storyViewStateViewModel: StoryViewStateViewModel by viewModels() + val ringerModeReceiver = RingerModeReceiver() + override lateinit var voiceNoteMediaController: VoiceNoteMediaController override fun attachBaseContext(newBase: Context) { @@ -88,6 +92,11 @@ class StoryViewerActivity : PassphraseRequiredActivity(), VoiceNoteMediaControll outState.putParcelable(DATA_CACHE, storyViewStateViewModel.storyViewStateCache) } + override fun onPause() { + super.onPause() + unregisterReceiver(ringerModeReceiver) + } + override fun onDestroy() { super.onDestroy() Glide.get(this).setMemoryCategory(MemoryCategory.NORMAL) @@ -95,6 +104,7 @@ class StoryViewerActivity : PassphraseRequiredActivity(), VoiceNoteMediaControll override fun onResume() { super.onResume() + registerReceiver(ringerModeReceiver, IntentFilter(AudioManager.RINGER_MODE_CHANGED_ACTION)) if (StoryMutePolicy.isContentMuted) { viewModel.mute() } else { @@ -142,6 +152,21 @@ class StoryViewerActivity : PassphraseRequiredActivity(), VoiceNoteMediaControll return super.onKeyDown(keyCode, event) } + inner class RingerModeReceiver : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + when (intent?.getIntExtra(AudioManager.EXTRA_RINGER_MODE, AudioManager.RINGER_MODE_SILENT)) { + AudioManager.RINGER_MODE_NORMAL -> { + StoryMutePolicy.isContentMuted = false + viewModel.unmute() + } + else -> { + StoryMutePolicy.isContentMuted = true + viewModel.mute() + } + } + } + } + companion object { private const val ARGS = "story.viewer.args" private const val DATA_CACHE = "story.viewer.cache"