Skip to content

Commit 2d55bce

Browse files
committed
this should work - didn't test yet tho
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
1 parent d6d7a11 commit 2d55bce

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -493,10 +493,15 @@ class ChatActivity :
493493
}
494494

495495
override fun onSaveInstanceState(outState: Bundle) {
496-
chatViewModel.handleOrientationChange()
496+
chatViewModel.handleSavedInstance()
497497
super.onSaveInstanceState(outState)
498498
}
499499

500+
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
501+
chatViewModel.handleRestoreInstance()
502+
super.onRestoreInstanceState(savedInstanceState)
503+
}
504+
500505
override fun onStop() {
501506
super.onStop()
502507
active = false

app/src/main/java/com/nextcloud/talk/chat/data/io/MediaRecorderManager.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ class MediaRecorderManager : LifecycleAwareManager {
3535
}
3636

3737
var currentVoiceRecordFile: String = ""
38+
private var lockRecording = false
3839

3940
enum class MediaRecorderState {
4041
INITIAL,
@@ -166,6 +167,12 @@ class MediaRecorderManager : LifecycleAwareManager {
166167
}
167168

168169
override fun handleOnStop() {
169-
stop()
170+
if (!lockRecording) {
171+
stop()
172+
}
173+
}
174+
175+
fun lockRecording(shouldLock: Boolean) {
176+
lockRecording = shouldLock
170177
}
171178
}

app/src/main/java/com/nextcloud/talk/chat/viewmodels/ChatViewModel.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -667,8 +667,13 @@ class ChatViewModel @Inject constructor(
667667
audioFocusRequestManager.audioFocusRequest(request, callback)
668668
}
669669

670-
fun handleOrientationChange() {
670+
fun handleSavedInstance() {
671671
_getCapabilitiesViewState.value = GetCapabilitiesStartState
672+
mediaRecorderManager.lockRecording(true)
673+
}
674+
675+
fun handleRestoreInstance() {
676+
mediaRecorderManager.lockRecording(false)
672677
}
673678

674679
fun getMessageById(url: String, conversationModel: ConversationModel, messageId: Long): Flow<ChatMessage> =

0 commit comments

Comments
 (0)