mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-20 03:59:35 +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
|
private var voicePreviewObjectAnimator: ObjectAnimator? = null
|
||||||
|
|
||||||
var mediaPlayer: MediaPlayer? = null
|
var mediaPlayer: MediaPlayer? = null
|
||||||
lateinit var mediaPlayerHandler: Handler
|
var mediaPlayerHandler: Handler? = null
|
||||||
|
|
||||||
private var currentlyPlayedVoiceMessage: ChatMessage? = null
|
private var currentlyPlayedVoiceMessage: ChatMessage? = null
|
||||||
|
|
||||||
@ -605,10 +605,10 @@ class ChatActivity :
|
|||||||
|
|
||||||
override fun onSaveInstanceState(outState: Bundle) {
|
override fun onSaveInstanceState(outState: Bundle) {
|
||||||
if (currentlyPlayedVoiceMessage != null) {
|
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.putInt(CURRENT_AUDIO_POSITION_KEY, currentlyPlayedVoiceMessage!!.voiceMessagePlayedSeconds)
|
||||||
outState.putBoolean(CURRENT_AUDIO_WAS_PLAYING_KEY, currentlyPlayedVoiceMessage!!.isPlayingVoiceMessage)
|
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(
|
Log.d(
|
||||||
RESUME_AUDIO_TAG,
|
RESUME_AUDIO_TAG,
|
||||||
"Audio Position: " + currentlyPlayedVoiceMessage!!.voiceMessagePlayedSeconds
|
"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
|
currentlyPlayedVoiceMessage = null
|
||||||
lastRecordMediaPosition = 0 // this ensures that if audio track is changed, then it is played from the beginning
|
lastRecordMediaPosition = 0 // this ensures that if audio track is changed, then it is played from the beginning
|
||||||
|
|
||||||
mediaPlayerHandler.removeCallbacksAndMessages(null)
|
mediaPlayerHandler?.removeCallbacksAndMessages(null)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
mediaPlayer?.let {
|
mediaPlayer?.let {
|
||||||
@ -3484,7 +3484,7 @@ class ChatActivity :
|
|||||||
actionBar?.setIcon(null)
|
actionBar?.setIcon(null)
|
||||||
}
|
}
|
||||||
|
|
||||||
currentlyPlayedVoiceMessage?.let { stopMediaPlayer(it) }
|
currentlyPlayedVoiceMessage?.let { stopMediaPlayer(it) } // FIXME, mediaplayer can sometimes be null here
|
||||||
|
|
||||||
adapter = null
|
adapter = null
|
||||||
Log.d(TAG, "inConversation was set to false!")
|
Log.d(TAG, "inConversation was set to false!")
|
||||||
@ -3913,7 +3913,7 @@ class ChatActivity :
|
|||||||
} else {
|
} else {
|
||||||
Log.d(
|
Log.d(
|
||||||
RESUME_AUDIO_TAG,
|
RESUME_AUDIO_TAG,
|
||||||
"voiceMessagePosition is -1, adapter # of items: " + adapter!!.getItemCount()
|
"voiceMessagePosition is -1, adapter # of items: " + adapter!!.itemCount
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -4575,7 +4575,8 @@ class ChatActivity :
|
|||||||
|
|
||||||
private fun showMicrophoneButton(show: Boolean) {
|
private fun showMicrophoneButton(show: Boolean) {
|
||||||
if (show && CapabilitiesUtil.hasSpreedFeatureCapability(
|
if (show && CapabilitiesUtil.hasSpreedFeatureCapability(
|
||||||
spreedCapabilities, SpreedFeatures.VOICE_MESSAGE_SHARING
|
spreedCapabilities,
|
||||||
|
SpreedFeatures.VOICE_MESSAGE_SHARING
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
Log.d(TAG, "Microphone shown")
|
Log.d(TAG, "Microphone shown")
|
||||||
|
Loading…
Reference in New Issue
Block a user