Skip to content
Merged
25 changes: 25 additions & 0 deletions app/src/main/java/to/bitkit/ui/ContentView.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -531,6 +532,7 @@ private fun RootNavHost(
navController = navController,
)
settings(navController, settingsViewModel)
comingSoon(navController)
profile(navController, settingsViewModel)
shop(navController, settingsViewModel, appViewModel)
generalSettings(navController)
Expand Down Expand Up @@ -912,6 +914,23 @@ private fun NavGraphBuilder.settings(
}
}

private fun NavGraphBuilder.comingSoon(
navController: NavHostController,
) {
composableWithDefaultTransitions<Routes.Contacts> {
ComingSoonScreen(
onWalletOverviewClick = { navController.navigateToHome() },
onBackClick = { navController.popBackStack() }
)
}
composableWithDefaultTransitions<Routes.Profile> {
ComingSoonScreen(
onWalletOverviewClick = { navController.navigateToHome() },
onBackClick = { navController.popBackStack() }
)
}
}

private fun NavGraphBuilder.profile(
navController: NavHostController,
settingsViewModel: SettingsViewModel,
Expand Down Expand Up @@ -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

Expand Down
10 changes: 8 additions & 2 deletions app/src/main/java/to/bitkit/ui/components/DrawerMenu.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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")
)

Expand Down
73 changes: 73 additions & 0 deletions app/src/main/java/to/bitkit/ui/screens/common/ComingSoonScreen.kt
Original file line number Diff line number Diff line change
@@ -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 = {}
)
}
}
41 changes: 2 additions & 39 deletions app/src/main/java/to/bitkit/ui/screens/wallets/HomeScreen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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)
},
Expand Down Expand Up @@ -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 -> {
Expand Down Expand Up @@ -286,7 +271,6 @@ private fun Content(
drawerState: DrawerState,
hazeState: HazeState = rememberHazeState(),
latestActivities: List<Activity>?,
onClickProfile: () -> Unit = {},
onRefresh: () -> Unit = {},
onRemoveSuggestion: (Suggestion) -> Unit = {},
onClickSuggestion: (Suggestion) -> Unit = {},
Expand All @@ -305,7 +289,6 @@ private fun Content(
val heightStatusBar = WindowInsets.statusBars.asPaddingValues().calculateTopPadding()
TopBar(
hazeState = hazeState,
onClickProfile = onClickProfile,
rootNavController = rootNavController,
scope = scope,
drawerState = drawerState,
Expand Down Expand Up @@ -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,
Expand All @@ -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)
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@
<string name="cards__transferClosingChannel__title">Initiating</string>
<string name="cards__transferPending__description">Ready in ±{duration}</string>
<string name="cards__transferPending__title">Transfer</string>
<string name="coming_soon__button">Wallet overview</string>
<string name="coming_soon__description">This feature is currently in development and will be available soon.</string>
<string name="coming_soon__headline">Coming\n&lt;accent&gt;soon&lt;/accent&gt;</string>
<string name="coming_soon__title">Coming soon</string>
<string name="common__advanced">Advanced</string>
<string name="common__announced">Announced</string>
<string name="common__are_you_sure">Are You Sure?</string>
Expand Down
Loading