David Liu

properly release audio focus

@@ -22,6 +22,7 @@ class CallActivity : AppCompatActivity() { @@ -22,6 +22,7 @@ class CallActivity : AppCompatActivity() {
22 } 22 }
23 lateinit var binding: CallActivityBinding 23 lateinit var binding: CallActivityBinding
24 var tabLayoutMediator: TabLayoutMediator? = null 24 var tabLayoutMediator: TabLayoutMediator? = null
  25 + val focusChangeListener = AudioManager.OnAudioFocusChangeListener {}
25 26
26 override fun onCreate(savedInstanceState: Bundle?) { 27 override fun onCreate(savedInstanceState: Bundle?) {
27 super.onCreate(savedInstanceState) 28 super.onCreate(savedInstanceState)
@@ -70,7 +71,7 @@ class CallActivity : AppCompatActivity() { @@ -70,7 +71,7 @@ class CallActivity : AppCompatActivity() {
70 mode = AudioManager.MODE_IN_COMMUNICATION 71 mode = AudioManager.MODE_IN_COMMUNICATION
71 } 72 }
72 val result = audioManager.requestAudioFocus( 73 val result = audioManager.requestAudioFocus(
73 - { }, 74 + focusChangeListener,
74 AudioManager.STREAM_VOICE_CALL, 75 AudioManager.STREAM_VOICE_CALL,
75 AudioManager.AUDIOFOCUS_GAIN, 76 AudioManager.AUDIOFOCUS_GAIN,
76 ) 77 )
@@ -84,8 +85,9 @@ class CallActivity : AppCompatActivity() { @@ -84,8 +85,9 @@ class CallActivity : AppCompatActivity() {
84 override fun onDestroy() { 85 override fun onDestroy() {
85 super.onDestroy() 86 super.onDestroy()
86 87
  88 + binding.pipVideoView.release()
87 val audioManager = getSystemService(AUDIO_SERVICE) as AudioManager 89 val audioManager = getSystemService(AUDIO_SERVICE) as AudioManager
88 - audioManager.abandonAudioFocus(null) 90 + audioManager.abandonAudioFocus(focusChangeListener)
89 } 91 }
90 92
91 companion object { 93 companion object {