Skip to content

Commit 07cf0e7

Browse files
committed
feat: navigation
1 parent caeff8d commit 07cf0e7

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

app/src/main/java/to/bitkit/ui/ContentView.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import kotlinx.coroutines.delay
2929
import kotlinx.coroutines.launch
3030
import kotlinx.serialization.Serializable
3131
import to.bitkit.models.NewTransactionSheetDetails
32+
import to.bitkit.models.NewTransactionSheetType
3233
import to.bitkit.models.NodeLifecycleState
3334
import to.bitkit.ui.components.BottomSheetType
3435
import to.bitkit.ui.onboarding.InitializingWalletView
@@ -58,6 +59,7 @@ import to.bitkit.ui.screens.transfer.external.ExternalSuccessScreen
5859
import to.bitkit.ui.screens.wallets.HomeScreen
5960
import to.bitkit.ui.screens.wallets.activity.ActivityItemScreen
6061
import to.bitkit.ui.screens.wallets.activity.AllActivityScreen
62+
import to.bitkit.ui.screens.wallets.send.SendRoute
6163
import to.bitkit.ui.settings.BackupSettingsScreen
6264
import to.bitkit.ui.settings.BlocktankRegtestScreen
6365
import to.bitkit.ui.settings.BlocktankRegtestViewModel
@@ -81,6 +83,8 @@ import to.bitkit.viewmodels.AppViewModel
8183
import to.bitkit.viewmodels.BlocktankViewModel
8284
import to.bitkit.viewmodels.CurrencyViewModel
8385
import to.bitkit.viewmodels.ExternalNodeViewModel
86+
import to.bitkit.viewmodels.MainScreenEffect
87+
import to.bitkit.viewmodels.SendEffect
8488
import to.bitkit.viewmodels.TransferViewModel
8589
import to.bitkit.viewmodels.WalletViewModel
8690

@@ -138,6 +142,14 @@ fun ContentView(
138142
walletViewModel.observeLdkWallet()
139143
}
140144

145+
LaunchedEffect(appViewModel.mainScreenEffect) {
146+
appViewModel.mainScreenEffect.collect {
147+
when (it) {
148+
is MainScreenEffect.NavigateActivityDetail -> navController.navigate(Routes.ActivityItem(it.activityId))
149+
}
150+
}
151+
}
152+
141153
val walletUiState by walletViewModel.uiState.collectAsState()
142154
val nodeLifecycleState = walletUiState.nodeLifecycleState
143155

app/src/main/java/to/bitkit/viewmodels/AppViewModel.kt

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@ class AppViewModel @Inject constructor(
7171
val sendEffect = _sendEffect.asSharedFlow()
7272
private fun setSendEffect(effect: SendEffect) = viewModelScope.launch { _sendEffect.emit(effect) }
7373

74+
private val _mainScreenEffect = MutableSharedFlow<MainScreenEffect>(replay = 0, extraBufferCapacity = 1)
75+
val mainScreenEffect = _mainScreenEffect.asSharedFlow()
76+
private fun mainScreenEffect(effect: MainScreenEffect) = viewModelScope.launch { _mainScreenEffect.emit(effect) }
77+
7478
private val sendEvents = MutableSharedFlow<SendEvent>()
7579
fun setSendEvent(event: SendEvent) = viewModelScope.launch { sendEvents.emit(event) }
7680

@@ -519,7 +523,12 @@ class AppViewModel @Inject constructor(
519523
return@launch
520524
}
521525

522-
//TODO NAVIGATION
526+
val id = when(activity) {
527+
is Activity.Lightning -> activity.v1.id
528+
is Activity.Onchain -> activity.v1.id
529+
}
530+
531+
mainScreenEffect(MainScreenEffect.NavigateActivityDetail(id))
523532
}
524533
}
525534

@@ -748,6 +757,10 @@ sealed class SendEffect {
748757
data class PaymentSuccess(val sheet: NewTransactionSheetDetails? = null) : SendEffect()
749758
}
750759

760+
sealed class MainScreenEffect {
761+
data class NavigateActivityDetail(val activityId: String) : MainScreenEffect()
762+
}
763+
751764
sealed class SendEvent {
752765
data object EnterManually : SendEvent()
753766
data class Paste(val data: String) : SendEvent()

0 commit comments

Comments
 (0)