11package to.bitkit.ui
22
3+ import android.content.Intent
34import androidx.compose.runtime.Composable
45import androidx.compose.runtime.CompositionLocalProvider
56import androidx.compose.runtime.DisposableEffect
@@ -12,6 +13,7 @@ import androidx.compose.runtime.remember
1213import androidx.compose.runtime.rememberCoroutineScope
1314import androidx.compose.runtime.setValue
1415import androidx.compose.ui.platform.LocalContext
16+ import androidx.core.net.toUri
1517import androidx.hilt.navigation.compose.hiltViewModel
1618import androidx.lifecycle.Lifecycle
1719import androidx.lifecycle.LifecycleEventObserver
@@ -29,13 +31,16 @@ import androidx.navigation.toRoute
2931import kotlinx.coroutines.delay
3032import kotlinx.coroutines.launch
3133import kotlinx.serialization.Serializable
34+ import to.bitkit.env.Env
3235import to.bitkit.models.NewTransactionSheetDetails
3336import to.bitkit.models.NodeLifecycleState
3437import to.bitkit.models.Toast
3538import to.bitkit.models.WidgetType
39+ import to.bitkit.ui.Routes.ExternalConnection
3640import to.bitkit.ui.components.AuthCheckScreen
3741import to.bitkit.ui.components.Sheet
3842import to.bitkit.ui.components.SheetHost
43+ import to.bitkit.ui.components.TimedSheetType
3944import to.bitkit.ui.onboarding.InitializingWalletView
4045import to.bitkit.ui.onboarding.WalletRestoreErrorView
4146import to.bitkit.ui.onboarding.WalletRestoreSuccessView
@@ -138,11 +143,16 @@ import to.bitkit.ui.settings.support.ReportIssueScreen
138143import to.bitkit.ui.settings.support.SupportScreen
139144import to.bitkit.ui.settings.transactionSpeed.CustomFeeSettingsScreen
140145import to.bitkit.ui.settings.transactionSpeed.TransactionSpeedSettingsScreen
146+ import to.bitkit.ui.sheets.BackgroundPaymentsIntroSheet
147+ import to.bitkit.ui.sheets.BackupRoute
141148import to.bitkit.ui.sheets.BackupSheet
142149import to.bitkit.ui.sheets.ForceTransferSheet
150+ import to.bitkit.ui.sheets.HighBalanceWarningSheet
143151import to.bitkit.ui.sheets.LnurlAuthSheet
144152import to.bitkit.ui.sheets.PinSheet
153+ import to.bitkit.ui.sheets.QuickPayIntroSheet
145154import to.bitkit.ui.sheets.SendSheet
155+ import to.bitkit.ui.sheets.UpdateSheet
146156import to.bitkit.ui.theme.TRANSITION_SHEET_MS
147157import to.bitkit.ui.utils.AutoReadClipboardHandler
148158import to.bitkit.ui.utils.Transitions
@@ -321,7 +331,7 @@ fun ContentView(
321331 ) {
322332 AutoReadClipboardHandler ()
323333
324- val currentSheet by appViewModel.currentSheet
334+ val currentSheet by appViewModel.currentSheet.collectAsStateWithLifecycle()
325335 SheetHost (
326336 shouldExpand = currentSheet != null ,
327337 onDismiss = { appViewModel.hideSheet() },
@@ -341,7 +351,7 @@ fun ContentView(
341351 ReceiveSheet (
342352 walletState = walletUiState,
343353 navigateToExternalConnection = {
344- navController.navigate(Routes . ExternalConnection ())
354+ navController.navigate(ExternalConnection ())
345355 appViewModel.hideSheet()
346356 }
347357 )
@@ -353,6 +363,50 @@ fun ContentView(
353363 is Sheet .Backup -> BackupSheet (sheet, onDismiss = { appViewModel.hideSheet() })
354364 is Sheet .LnurlAuth -> LnurlAuthSheet (sheet, appViewModel)
355365 Sheet .ForceTransfer -> ForceTransferSheet (appViewModel, transferViewModel)
366+ is Sheet .TimedSheet -> {
367+ when (sheet.type) {
368+ TimedSheetType .APP_UPDATE -> {
369+ UpdateSheet (onCancel = { appViewModel.dismissTimedSheet() })
370+ }
371+
372+ TimedSheetType .BACKUP -> {
373+ BackupSheet (
374+ sheet = Sheet .Backup (BackupRoute .Intro ),
375+ onDismiss = { appViewModel.dismissTimedSheet() }
376+ )
377+ }
378+
379+ TimedSheetType .NOTIFICATIONS -> {
380+ BackgroundPaymentsIntroSheet (
381+ onContinue = {
382+ appViewModel.dismissTimedSheet(skipQueue = true )
383+ navController.navigate(Routes .BackgroundPaymentsSettings )
384+ settingsViewModel.setBgPaymentsIntroSeen(true )
385+ },
386+ )
387+ }
388+
389+ TimedSheetType .QUICK_PAY -> {
390+ QuickPayIntroSheet (
391+ onContinue = {
392+ appViewModel.dismissTimedSheet(skipQueue = true )
393+ navController.navigate(Routes .QuickPaySettings )
394+ },
395+ )
396+ }
397+
398+ TimedSheetType .HIGH_BALANCE -> {
399+ HighBalanceWarningSheet (
400+ understoodClick = { appViewModel.dismissTimedSheet() },
401+ learnMoreClick = {
402+ val intent = Intent (Intent .ACTION_VIEW , Env .STORING_BITCOINS_URL .toUri())
403+ context.startActivity(intent)
404+ appViewModel.dismissTimedSheet(skipQueue = true )
405+ }
406+ )
407+ }
408+ }
409+ }
356410 }
357411 }
358412 ) {
0 commit comments