mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-19 19:49:33 +01:00
Merge pull request #3942 from nextcloud/issue-3935-fixing-mediahandler
Fixed MediaPlayerHandler crashing on lifecycle change
This commit is contained in:
commit
baaf45e7f6
@ -388,7 +388,7 @@ class ChatActivity :
|
||||
private var voicePreviewObjectAnimator: ObjectAnimator? = null
|
||||
|
||||
var mediaPlayer: MediaPlayer? = null
|
||||
lateinit var mediaPlayerHandler: Handler
|
||||
var mediaPlayerHandler: Handler? = null
|
||||
|
||||
private var currentlyPlayedVoiceMessage: ChatMessage? = null
|
||||
|
||||
@ -605,10 +605,10 @@ class ChatActivity :
|
||||
|
||||
override fun onSaveInstanceState(outState: Bundle) {
|
||||
if (currentlyPlayedVoiceMessage != null) {
|
||||
outState.putString(CURRENT_AUDIO_MESSAGE_KEY, currentlyPlayedVoiceMessage!!.getId())
|
||||
outState.putString(CURRENT_AUDIO_MESSAGE_KEY, currentlyPlayedVoiceMessage!!.id)
|
||||
outState.putInt(CURRENT_AUDIO_POSITION_KEY, currentlyPlayedVoiceMessage!!.voiceMessagePlayedSeconds)
|
||||
outState.putBoolean(CURRENT_AUDIO_WAS_PLAYING_KEY, currentlyPlayedVoiceMessage!!.isPlayingVoiceMessage)
|
||||
Log.d(RESUME_AUDIO_TAG, "Stored current audio message ID: " + currentlyPlayedVoiceMessage!!.getId())
|
||||
Log.d(RESUME_AUDIO_TAG, "Stored current audio message ID: " + currentlyPlayedVoiceMessage!!.id)
|
||||
Log.d(
|
||||
RESUME_AUDIO_TAG,
|
||||
"Audio Position: " + currentlyPlayedVoiceMessage!!.voiceMessagePlayedSeconds
|
||||
@ -2402,7 +2402,7 @@ class ChatActivity :
|
||||
}
|
||||
}
|
||||
}
|
||||
mediaPlayerHandler.postDelayed(this, MILISEC_15)
|
||||
mediaPlayerHandler?.postDelayed(this, MILISEC_15)
|
||||
}
|
||||
})
|
||||
|
||||
@ -2476,7 +2476,7 @@ class ChatActivity :
|
||||
currentlyPlayedVoiceMessage = null
|
||||
lastRecordMediaPosition = 0 // this ensures that if audio track is changed, then it is played from the beginning
|
||||
|
||||
mediaPlayerHandler.removeCallbacksAndMessages(null)
|
||||
mediaPlayerHandler?.removeCallbacksAndMessages(null)
|
||||
|
||||
try {
|
||||
mediaPlayer?.let {
|
||||
@ -3484,7 +3484,7 @@ class ChatActivity :
|
||||
actionBar?.setIcon(null)
|
||||
}
|
||||
|
||||
currentlyPlayedVoiceMessage?.let { stopMediaPlayer(it) }
|
||||
currentlyPlayedVoiceMessage?.let { stopMediaPlayer(it) } // FIXME, mediaplayer can sometimes be null here
|
||||
|
||||
adapter = null
|
||||
Log.d(TAG, "inConversation was set to false!")
|
||||
@ -3913,7 +3913,7 @@ class ChatActivity :
|
||||
} else {
|
||||
Log.d(
|
||||
RESUME_AUDIO_TAG,
|
||||
"voiceMessagePosition is -1, adapter # of items: " + adapter!!.getItemCount()
|
||||
"voiceMessagePosition is -1, adapter # of items: " + adapter!!.itemCount
|
||||
)
|
||||
}
|
||||
} else {
|
||||
@ -4575,7 +4575,8 @@ class ChatActivity :
|
||||
|
||||
private fun showMicrophoneButton(show: Boolean) {
|
||||
if (show && CapabilitiesUtil.hasSpreedFeatureCapability(
|
||||
spreedCapabilities, SpreedFeatures.VOICE_MESSAGE_SHARING
|
||||
spreedCapabilities,
|
||||
SpreedFeatures.VOICE_MESSAGE_SHARING
|
||||
)
|
||||
) {
|
||||
Log.d(TAG, "Microphone shown")
|
||||
|
Loading…
Reference in New Issue
Block a user