Skip to content

Commit 998a679

Browse files
committed
Open conversations view on conversation modification
1 parent 23d87c1 commit 998a679

File tree

5 files changed

+26
-2
lines changed

5 files changed

+26
-2
lines changed

mabl/src/aipincore/java/com/penumbraos/mabl/aipincore/PlatformUI.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import com.open.pin.ui.utils.PinDimensions
3434
import com.open.pin.ui.utils.modifiers.ProvideSnapCoordinator
3535
import com.open.pin.ui.utils.modifiers.SnapCoordinator
3636
import com.penumbraos.mabl.aipincore.view.TouchInterceptor
37+
import com.penumbraos.mabl.aipincore.view.model.ConversationsNav
3738
import com.penumbraos.mabl.aipincore.view.model.NavViewModel
3839
import com.penumbraos.mabl.aipincore.view.model.PlatformViewModel
3940
import com.penumbraos.mabl.aipincore.view.nav.Navigation
@@ -72,6 +73,12 @@ fun PlatformUI(uiComponents: UIComponents) {
7273
}
7374
}
7475

76+
LaunchedEffect(Unit) {
77+
actualViewModel.openCurrentConversationEvent.collect {
78+
actualViewModel.navViewModel.pushView(ConversationsNav)
79+
}
80+
}
81+
7582
LaunchedEffect(Unit) {
7683
actualViewModel.debugChannel.collect {
7784
displayDebugView.value = it

mabl/src/aipincore/java/com/penumbraos/mabl/aipincore/view/model/NavViewModel.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,16 @@ data object DummyNav
1212

1313
class NavViewModel() : ViewModel() {
1414
val backStack = mutableStateListOf<Any>(HomeNav)
15-
15+
1616
val isMenuOpen = derivedStateOf {
1717
backStack.lastOrNull() == MenuNav
1818
}
1919

2020
fun pushView(view: Any) {
21+
if (backStack.lastOrNull() == view) {
22+
return
23+
}
24+
2125
backStack.add(view)
2226
}
2327

mabl/src/aipincore/java/com/penumbraos/mabl/aipincore/view/model/PlatformViewModel.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ class PlatformViewModel(
2424
private val _backGestureChannel = Channel<Unit>(Channel.RENDEZVOUS)
2525
val backGestureEvent = _backGestureChannel.receiveAsFlow()
2626

27+
private val _openCurrentConversationChannel = Channel<Unit>(Channel.RENDEZVOUS)
28+
val openCurrentConversationEvent = _openCurrentConversationChannel.receiveAsFlow()
29+
2730
private val _debugChannel = Channel<Boolean>()
2831
val debugChannel = _debugChannel.receiveAsFlow()
2932

@@ -44,6 +47,11 @@ class PlatformViewModel(
4447
}
4548
}
4649

50+
fun openCurrentConversation() {
51+
Log.d("PlatformViewModel", "Opening conversation")
52+
_openCurrentConversationChannel.trySend(Unit)
53+
}
54+
4755
fun backGesture() {
4856
Log.d("PlatformViewModel", "Back gesture received")
4957
_backGestureChannel.trySend(Unit)

mabl/src/main/java/com/penumbraos/mabl/interaction/InteractionFlowManager.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import android.net.Uri
99
import android.os.IBinder
1010
import android.provider.MediaStore
1111
import android.util.Log
12+
import com.penumbraos.mabl.aipincore.view.model.PlatformViewModel
1213
import com.penumbraos.mabl.conversation.ConversationManager
1314
import com.penumbraos.mabl.sdk.ISttCallback
1415
import com.penumbraos.mabl.services.AllControllers
@@ -33,6 +34,7 @@ class InteractionFlowManager
3334
(
3435
private val allControllers: AllControllers,
3536
private val context: Context,
37+
private val viewModel: PlatformViewModel
3638
) : IInteractionFlowManager {
3739

3840
private val coroutineScope = CoroutineScope(Dispatchers.Main)
@@ -118,6 +120,9 @@ class InteractionFlowManager
118120
return
119121
}
120122

123+
// TODO: Possibly start on first partial STT result
124+
allControllers.viewModel.openCurrentConversation()
125+
121126
setState(InteractionFlowState.PROCESSING)
122127

123128
coroutineScope.launch {

mabl/src/main/java/com/penumbraos/mabl/services/AllControllers.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class AllControllers(coroutineScope: CoroutineScope, private val context: Contex
5656

5757
conversationManager =
5858
ConversationManager(this, context, conversationRepository, conversationImageRepository)
59-
interactionFlowManager = InteractionFlowManager(this, context)
59+
interactionFlowManager = InteractionFlowManager(this, context, viewModel)
6060

6161
connectAll(context)
6262
}

0 commit comments

Comments
 (0)