mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-10 06:14:10 +01:00
avoid NPE for voice message playback
Exception java.lang.NullPointerException: at com.nextcloud.talk.controllers.ChatController.startPlayback (ChatController.kt:985) at com.nextcloud.talk.controllers.ChatController.access$startPlayback (ChatController.kt:219) at com.nextcloud.talk.controllers.ChatController$downloadFileToCache$1.invoke (ChatController.kt:1130) at com.nextcloud.talk.controllers.ChatController$downloadFileToCache$1.invoke (ChatController.kt:1128) at com.nextcloud.talk.controllers.ChatController.downloadFileToCache$lambda$19 (ChatController.kt:1128) at com.nextcloud.talk.controllers.ChatController.$r8$lambda$oLS0bGL_zLma74VfkfStO_mReb4 at com.nextcloud.talk.controllers.ChatController$$ExternalSyntheticLambda10.onChanged at androidx.lifecycle.LiveData.considerNotify (LiveData.java:133) at androidx.lifecycle.LiveData.dispatchingValue (LiveData.java:151) at androidx.lifecycle.LiveData.setValue (LiveData.java:309) at androidx.lifecycle.MutableLiveData.setValue (MutableLiveData.java:50) at androidx.lifecycle.LiveData$1.run (LiveData.java:93) at android.os.Handler.handleCallback (Handler.java:942) at android.os.Handler.dispatchMessage (Handler.java:99) at android.os.Looper.loopOnce (Looper.java:226) at android.os.Looper.loop (Looper.java:313) at android.app.ActivityThread.main (ActivityThread.java:8775) at java.lang.reflect.Method.invoke at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:571) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1067) Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
parent
490feefc8b
commit
4932541de7
@ -975,25 +975,27 @@ class ChatController(args: Bundle) :
|
||||
|
||||
initMediaPlayer(message)
|
||||
|
||||
if (!mediaPlayer!!.isPlaying) {
|
||||
mediaPlayer!!.start()
|
||||
}
|
||||
|
||||
mediaPlayerHandler = Handler()
|
||||
activity?.runOnUiThread(object : Runnable {
|
||||
override fun run() {
|
||||
if (mediaPlayer != null) {
|
||||
val currentPosition: Int = mediaPlayer!!.currentPosition / VOICE_MESSAGE_SEEKBAR_BASE
|
||||
message.voiceMessagePlayedSeconds = currentPosition
|
||||
adapter?.update(message)
|
||||
}
|
||||
mediaPlayerHandler.postDelayed(this, SECOND)
|
||||
mediaPlayer?.let {
|
||||
if (!it.isPlaying) {
|
||||
it.start()
|
||||
}
|
||||
})
|
||||
|
||||
message.isDownloadingVoiceMessage = false
|
||||
message.isPlayingVoiceMessage = true
|
||||
adapter?.update(message)
|
||||
mediaPlayerHandler = Handler()
|
||||
activity?.runOnUiThread(object : Runnable {
|
||||
override fun run() {
|
||||
if (mediaPlayer != null) {
|
||||
val currentPosition: Int = mediaPlayer!!.currentPosition / VOICE_MESSAGE_SEEKBAR_BASE
|
||||
message.voiceMessagePlayedSeconds = currentPosition
|
||||
adapter?.update(message)
|
||||
}
|
||||
mediaPlayerHandler.postDelayed(this, SECOND)
|
||||
}
|
||||
})
|
||||
|
||||
message.isDownloadingVoiceMessage = false
|
||||
message.isPlayingVoiceMessage = true
|
||||
adapter?.update(message)
|
||||
}
|
||||
}
|
||||
|
||||
private fun pausePlayback(message: ChatMessage) {
|
||||
|
Loading…
Reference in New Issue
Block a user