Unmute Stories when ringer mode changed.

This commit is contained in:
Nicholas 2022-11-22 14:02:19 -05:00 committed by Cody Henthorne
parent cff3840c51
commit 0558808370

View file

@ -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"