diff --git a/app/src/main/java/to/bitkit/ui/ContentView.kt b/app/src/main/java/to/bitkit/ui/ContentView.kt index d7f26ff9c..dc3408277 100644 --- a/app/src/main/java/to/bitkit/ui/ContentView.kt +++ b/app/src/main/java/to/bitkit/ui/ContentView.kt @@ -57,6 +57,7 @@ import to.bitkit.ui.onboarding.InitializingWalletView import to.bitkit.ui.onboarding.WalletRestoreErrorView import to.bitkit.ui.onboarding.WalletRestoreSuccessView import to.bitkit.ui.screens.CriticalUpdateScreen +import to.bitkit.ui.screens.common.ComingSoonScreen import to.bitkit.ui.screens.profile.CreateProfileScreen import to.bitkit.ui.screens.profile.ProfileIntroScreen import to.bitkit.ui.screens.recovery.RecoveryMnemonicScreen @@ -531,6 +532,7 @@ private fun RootNavHost( navController = navController, ) settings(navController, settingsViewModel) + comingSoon(navController) profile(navController, settingsViewModel) shop(navController, settingsViewModel, appViewModel) generalSettings(navController) @@ -912,6 +914,23 @@ private fun NavGraphBuilder.settings( } } +private fun NavGraphBuilder.comingSoon( + navController: NavHostController, +) { + composableWithDefaultTransitions { + ComingSoonScreen( + onWalletOverviewClick = { navController.navigateToHome() }, + onBackClick = { navController.popBackStack() } + ) + } + composableWithDefaultTransitions { + ComingSoonScreen( + onWalletOverviewClick = { navController.navigateToHome() }, + onBackClick = { navController.popBackStack() } + ) + } +} + private fun NavGraphBuilder.profile( navController: NavHostController, settingsViewModel: SettingsViewModel, @@ -1934,6 +1953,12 @@ sealed interface Routes { @Serializable data object LanguageSettings : Routes + @Serializable + data object Contacts : Routes + + @Serializable + data object Profile : Routes + @Serializable data object ProfileIntro : Routes diff --git a/app/src/main/java/to/bitkit/ui/components/DrawerMenu.kt b/app/src/main/java/to/bitkit/ui/components/DrawerMenu.kt index 0071996ac..909a0555a 100644 --- a/app/src/main/java/to/bitkit/ui/components/DrawerMenu.kt +++ b/app/src/main/java/to/bitkit/ui/components/DrawerMenu.kt @@ -158,14 +158,20 @@ private fun Menu( DrawerItem( label = stringResource(R.string.wallet__drawer__contacts), iconRes = R.drawable.ic_users, - onClick = null, // TODO IMPLEMENT CONTACTS + onClick = { + rootNavController.navigateIfNotCurrent(Routes.Contacts) + scope.launch { drawerState.close() } + }, modifier = Modifier.testTag("DrawerContacts") ) DrawerItem( label = stringResource(R.string.wallet__drawer__profile), iconRes = R.drawable.ic_user_square, - onClick = null, // TODO IMPLEMENT PROFILE + onClick = { + rootNavController.navigateIfNotCurrent(Routes.Profile) + scope.launch { drawerState.close() } + }, modifier = Modifier.testTag("DrawerProfile") ) diff --git a/app/src/main/java/to/bitkit/ui/screens/common/ComingSoonScreen.kt b/app/src/main/java/to/bitkit/ui/screens/common/ComingSoonScreen.kt new file mode 100644 index 000000000..4cdc6035b --- /dev/null +++ b/app/src/main/java/to/bitkit/ui/screens/common/ComingSoonScreen.kt @@ -0,0 +1,73 @@ +package to.bitkit.ui.screens.common + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import to.bitkit.R +import to.bitkit.ui.components.BodyM +import to.bitkit.ui.components.Display +import to.bitkit.ui.components.PrimaryButton +import to.bitkit.ui.components.VerticalSpacer +import to.bitkit.ui.scaffold.AppTopBar +import to.bitkit.ui.scaffold.DrawerNavIcon +import to.bitkit.ui.scaffold.ScreenColumn +import to.bitkit.ui.theme.AppThemeSurface +import to.bitkit.ui.theme.Colors +import to.bitkit.ui.utils.withAccent + +@Composable +fun ComingSoonScreen( + onWalletOverviewClick: () -> Unit, + onBackClick: () -> Unit, +) { + ScreenColumn { + AppTopBar( + titleText = stringResource(R.string.coming_soon__title), + onBackClick = onBackClick, + actions = { DrawerNavIcon() }, + ) + + Column( + modifier = Modifier.padding(horizontal = 32.dp) + ) { + Image( + painter = painterResource(R.drawable.img_cronometer), + contentDescription = null, + modifier = Modifier + .fillMaxWidth() + .weight(1f) + ) + + Display( + text = stringResource(R.string.coming_soon__headline).withAccent(accentColor = Colors.Brand), + color = Colors.White + ) + VerticalSpacer(8.dp) + BodyM(text = stringResource(R.string.coming_soon__description), color = Colors.White64) + VerticalSpacer(54.dp) + PrimaryButton( + text = stringResource(R.string.coming_soon__button), + onClick = onWalletOverviewClick, + ) + VerticalSpacer(16.dp) + } + } +} + +@Preview(showSystemUi = true) +@Composable +private fun Preview() { + AppThemeSurface { + ComingSoonScreen( + onWalletOverviewClick = {}, + onBackClick = {} + ) + } +} diff --git a/app/src/main/java/to/bitkit/ui/screens/wallets/HomeScreen.kt b/app/src/main/java/to/bitkit/ui/screens/wallets/HomeScreen.kt index 5e8a6c64d..a0d043ca2 100644 --- a/app/src/main/java/to/bitkit/ui/screens/wallets/HomeScreen.kt +++ b/app/src/main/java/to/bitkit/ui/screens/wallets/HomeScreen.kt @@ -16,15 +16,12 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.statusBars import androidx.compose.foundation.lazy.LazyRow import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.AccountCircle import androidx.compose.material3.DrawerState import androidx.compose.material3.DrawerValue import androidx.compose.material3.ExperimentalMaterial3Api @@ -86,7 +83,6 @@ import to.bitkit.ui.components.SuggestionCard import to.bitkit.ui.components.TabBar import to.bitkit.ui.components.TertiaryButton import to.bitkit.ui.components.Text13Up -import to.bitkit.ui.components.Title import to.bitkit.ui.components.TopBarSpacer import to.bitkit.ui.components.VerticalSpacer import to.bitkit.ui.components.WalletBalanceView @@ -168,13 +164,6 @@ fun HomeScreen( walletViewModel.onPullToRefresh() homeViewModel.refreshWidgets() }, - onClickProfile = { - if (!hasSeenProfileIntro) { - rootNavController.navigate(Routes.ProfileIntro) - } else { - rootNavController.navigate(Routes.CreateProfile) - } - }, onRemoveSuggestion = { suggestion -> homeViewModel.removeSuggestion(suggestion) }, @@ -214,11 +203,7 @@ fun HomeScreen( } Suggestion.PROFILE -> { - if (!hasSeenProfileIntro) { - rootNavController.navigate(Routes.ProfileIntro) - } else { - rootNavController.navigate(Routes.CreateProfile) - } + rootNavController.navigate(Routes.Profile) } Suggestion.SHOP -> { @@ -286,7 +271,6 @@ private fun Content( drawerState: DrawerState, hazeState: HazeState = rememberHazeState(), latestActivities: List?, - onClickProfile: () -> Unit = {}, onRefresh: () -> Unit = {}, onRemoveSuggestion: (Suggestion) -> Unit = {}, onClickSuggestion: (Suggestion) -> Unit = {}, @@ -305,7 +289,6 @@ private fun Content( val heightStatusBar = WindowInsets.statusBars.asPaddingValues().calculateTopPadding() TopBar( hazeState = hazeState, - onClickProfile = onClickProfile, rootNavController = rootNavController, scope = scope, drawerState = drawerState, @@ -624,7 +607,6 @@ private fun Widgets(homeUiState: HomeUiState) { @OptIn(ExperimentalMaterial3Api::class) private fun TopBar( hazeState: HazeState, - onClickProfile: () -> Unit, rootNavController: NavController, scope: CoroutineScope, drawerState: DrawerState, @@ -646,26 +628,7 @@ private fun TopBar( .zIndex(1f) ) { TopAppBar( - title = { - Row( - verticalAlignment = Alignment.CenterVertically, - modifier = Modifier - .clickableAlpha(onClick = onClickProfile) - .testTag("Header") - ) { - Icon( - imageVector = Icons.Filled.AccountCircle, - contentDescription = stringResource(R.string.slashtags__your_name_capital), - tint = Colors.White64, - modifier = Modifier.size(32.dp) - ) - HorizontalSpacer(16.dp) - Title( - text = stringResource(R.string.slashtags__your_name_capital), - Modifier.testTag("EmptyProfileHeader") - ) - } - }, + title = {}, actions = { AppStatus(onClick = { rootNavController.navigate(Routes.AppStatus) }) HorizontalSpacer(4.dp) diff --git a/app/src/main/res/drawable-hdpi/img_cronometer.webp b/app/src/main/res/drawable-hdpi/img_cronometer.webp new file mode 100644 index 000000000..0afe73780 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/img_cronometer.webp differ diff --git a/app/src/main/res/drawable-mdpi/img_cronometer.webp b/app/src/main/res/drawable-mdpi/img_cronometer.webp new file mode 100644 index 000000000..caad501d4 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/img_cronometer.webp differ diff --git a/app/src/main/res/drawable-xhdpi/img_cronometer.webp b/app/src/main/res/drawable-xhdpi/img_cronometer.webp new file mode 100644 index 000000000..a022479b4 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/img_cronometer.webp differ diff --git a/app/src/main/res/drawable-xxhdpi/img_cronometer.webp b/app/src/main/res/drawable-xxhdpi/img_cronometer.webp new file mode 100644 index 000000000..af17100ac Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/img_cronometer.webp differ diff --git a/app/src/main/res/drawable-xxxhdpi/img_cronometer.webp b/app/src/main/res/drawable-xxxhdpi/img_cronometer.webp new file mode 100644 index 000000000..714f1500c Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/img_cronometer.webp differ diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ea8614b1f..3448384ca 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -35,6 +35,10 @@ Initiating Ready in ±{duration} Transfer + Wallet overview + This feature is currently in development and will be available soon. + Coming\n<accent>soon</accent> + Coming soon Advanced Announced Are You Sure?