David Liu

fix microphone mute affecting other apps

@@ -41,11 +41,16 @@ class CallActivity : AppCompatActivity() { @@ -41,11 +41,16 @@ class CallActivity : AppCompatActivity() {
41 } 41 }
42 private val focusChangeListener = AudioManager.OnAudioFocusChangeListener {} 42 private val focusChangeListener = AudioManager.OnAudioFocusChangeListener {}
43 43
  44 + private var previousSpeakerphoneOn = true
  45 + private var previousMicrophoneMute = false
  46 +
44 override fun onCreate(savedInstanceState: Bundle?) { 47 override fun onCreate(savedInstanceState: Bundle?) {
45 super.onCreate(savedInstanceState) 48 super.onCreate(savedInstanceState)
46 49
47 val audioManager = getSystemService(AUDIO_SERVICE) as AudioManager 50 val audioManager = getSystemService(AUDIO_SERVICE) as AudioManager
48 with(audioManager) { 51 with(audioManager) {
  52 + previousSpeakerphoneOn = isSpeakerphoneOn
  53 + previousMicrophoneMute = isMicrophoneMute
49 isSpeakerphoneOn = true 54 isSpeakerphoneOn = true
50 isMicrophoneMute = false 55 isMicrophoneMute = false
51 mode = AudioManager.MODE_IN_COMMUNICATION 56 mode = AudioManager.MODE_IN_COMMUNICATION
@@ -228,8 +233,8 @@ class CallActivity : AppCompatActivity() { @@ -228,8 +233,8 @@ class CallActivity : AppCompatActivity() {
228 233
229 val audioManager = getSystemService(AUDIO_SERVICE) as AudioManager 234 val audioManager = getSystemService(AUDIO_SERVICE) as AudioManager
230 with(audioManager) { 235 with(audioManager) {
231 - isSpeakerphoneOn = false  
232 - isMicrophoneMute = true 236 + isSpeakerphoneOn = previousSpeakerphoneOn
  237 + isMicrophoneMute = previousMicrophoneMute
233 abandonAudioFocus(focusChangeListener) 238 abandonAudioFocus(focusChangeListener)
234 mode = AudioManager.MODE_NORMAL 239 mode = AudioManager.MODE_NORMAL
235 } 240 }
@@ -23,6 +23,9 @@ class CallActivity : AppCompatActivity() { @@ -23,6 +23,9 @@ class CallActivity : AppCompatActivity() {
23 var tabLayoutMediator: TabLayoutMediator? = null 23 var tabLayoutMediator: TabLayoutMediator? = null
24 val focusChangeListener = AudioManager.OnAudioFocusChangeListener {} 24 val focusChangeListener = AudioManager.OnAudioFocusChangeListener {}
25 25
  26 + private var previousSpeakerphoneOn = true
  27 + private var previousMicrophoneMute = false
  28 +
26 override fun onCreate(savedInstanceState: Bundle?) { 29 override fun onCreate(savedInstanceState: Bundle?) {
27 super.onCreate(savedInstanceState) 30 super.onCreate(savedInstanceState)
28 31
@@ -70,6 +73,8 @@ class CallActivity : AppCompatActivity() { @@ -70,6 +73,8 @@ class CallActivity : AppCompatActivity() {
70 } 73 }
71 val audioManager = getSystemService(AUDIO_SERVICE) as AudioManager 74 val audioManager = getSystemService(AUDIO_SERVICE) as AudioManager
72 with(audioManager) { 75 with(audioManager) {
  76 + previousSpeakerphoneOn = isSpeakerphoneOn
  77 + previousMicrophoneMute = isMicrophoneMute
73 isSpeakerphoneOn = true 78 isSpeakerphoneOn = true
74 isMicrophoneMute = false 79 isMicrophoneMute = false
75 mode = AudioManager.MODE_IN_COMMUNICATION 80 mode = AudioManager.MODE_IN_COMMUNICATION
@@ -92,8 +97,8 @@ class CallActivity : AppCompatActivity() { @@ -92,8 +97,8 @@ class CallActivity : AppCompatActivity() {
92 binding.pipVideoView.release() 97 binding.pipVideoView.release()
93 val audioManager = getSystemService(AUDIO_SERVICE) as AudioManager 98 val audioManager = getSystemService(AUDIO_SERVICE) as AudioManager
94 with(audioManager) { 99 with(audioManager) {
95 - isSpeakerphoneOn = false  
96 - isMicrophoneMute = true 100 + isSpeakerphoneOn = previousSpeakerphoneOn
  101 + isMicrophoneMute = previousMicrophoneMute
97 abandonAudioFocus(focusChangeListener) 102 abandonAudioFocus(focusChangeListener)
98 mode = AudioManager.MODE_NORMAL 103 mode = AudioManager.MODE_NORMAL
99 } 104 }