Skip to content

Commit f78d819

Browse files
authored
Merge pull request #600 from synonymdev/feat/comming-soon
feat: coming soon screen
2 parents a70d0c9 + 7236b00 commit f78d819

10 files changed

Lines changed: 112 additions & 41 deletions

File tree

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

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ import to.bitkit.ui.onboarding.InitializingWalletView
5757
import to.bitkit.ui.onboarding.WalletRestoreErrorView
5858
import to.bitkit.ui.onboarding.WalletRestoreSuccessView
5959
import to.bitkit.ui.screens.CriticalUpdateScreen
60+
import to.bitkit.ui.screens.common.ComingSoonScreen
6061
import to.bitkit.ui.screens.profile.CreateProfileScreen
6162
import to.bitkit.ui.screens.profile.ProfileIntroScreen
6263
import to.bitkit.ui.screens.recovery.RecoveryMnemonicScreen
@@ -531,6 +532,7 @@ private fun RootNavHost(
531532
navController = navController,
532533
)
533534
settings(navController, settingsViewModel)
535+
comingSoon(navController)
534536
profile(navController, settingsViewModel)
535537
shop(navController, settingsViewModel, appViewModel)
536538
generalSettings(navController)
@@ -912,6 +914,23 @@ private fun NavGraphBuilder.settings(
912914
}
913915
}
914916

917+
private fun NavGraphBuilder.comingSoon(
918+
navController: NavHostController,
919+
) {
920+
composableWithDefaultTransitions<Routes.Contacts> {
921+
ComingSoonScreen(
922+
onWalletOverviewClick = { navController.navigateToHome() },
923+
onBackClick = { navController.popBackStack() }
924+
)
925+
}
926+
composableWithDefaultTransitions<Routes.Profile> {
927+
ComingSoonScreen(
928+
onWalletOverviewClick = { navController.navigateToHome() },
929+
onBackClick = { navController.popBackStack() }
930+
)
931+
}
932+
}
933+
915934
private fun NavGraphBuilder.profile(
916935
navController: NavHostController,
917936
settingsViewModel: SettingsViewModel,
@@ -1934,6 +1953,12 @@ sealed interface Routes {
19341953
@Serializable
19351954
data object LanguageSettings : Routes
19361955

1956+
@Serializable
1957+
data object Contacts : Routes
1958+
1959+
@Serializable
1960+
data object Profile : Routes
1961+
19371962
@Serializable
19381963
data object ProfileIntro : Routes
19391964

app/src/main/java/to/bitkit/ui/components/DrawerMenu.kt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,14 +158,20 @@ private fun Menu(
158158
DrawerItem(
159159
label = stringResource(R.string.wallet__drawer__contacts),
160160
iconRes = R.drawable.ic_users,
161-
onClick = null, // TODO IMPLEMENT CONTACTS
161+
onClick = {
162+
rootNavController.navigateIfNotCurrent(Routes.Contacts)
163+
scope.launch { drawerState.close() }
164+
},
162165
modifier = Modifier.testTag("DrawerContacts")
163166
)
164167

165168
DrawerItem(
166169
label = stringResource(R.string.wallet__drawer__profile),
167170
iconRes = R.drawable.ic_user_square,
168-
onClick = null, // TODO IMPLEMENT PROFILE
171+
onClick = {
172+
rootNavController.navigateIfNotCurrent(Routes.Profile)
173+
scope.launch { drawerState.close() }
174+
},
169175
modifier = Modifier.testTag("DrawerProfile")
170176
)
171177

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package to.bitkit.ui.screens.common
2+
3+
import androidx.compose.foundation.Image
4+
import androidx.compose.foundation.layout.Column
5+
import androidx.compose.foundation.layout.fillMaxWidth
6+
import androidx.compose.foundation.layout.padding
7+
import androidx.compose.runtime.Composable
8+
import androidx.compose.ui.Modifier
9+
import androidx.compose.ui.res.painterResource
10+
import androidx.compose.ui.res.stringResource
11+
import androidx.compose.ui.tooling.preview.Preview
12+
import androidx.compose.ui.unit.dp
13+
import to.bitkit.R
14+
import to.bitkit.ui.components.BodyM
15+
import to.bitkit.ui.components.Display
16+
import to.bitkit.ui.components.PrimaryButton
17+
import to.bitkit.ui.components.VerticalSpacer
18+
import to.bitkit.ui.scaffold.AppTopBar
19+
import to.bitkit.ui.scaffold.DrawerNavIcon
20+
import to.bitkit.ui.scaffold.ScreenColumn
21+
import to.bitkit.ui.theme.AppThemeSurface
22+
import to.bitkit.ui.theme.Colors
23+
import to.bitkit.ui.utils.withAccent
24+
25+
@Composable
26+
fun ComingSoonScreen(
27+
onWalletOverviewClick: () -> Unit,
28+
onBackClick: () -> Unit,
29+
) {
30+
ScreenColumn {
31+
AppTopBar(
32+
titleText = stringResource(R.string.coming_soon__title),
33+
onBackClick = onBackClick,
34+
actions = { DrawerNavIcon() },
35+
)
36+
37+
Column(
38+
modifier = Modifier.padding(horizontal = 32.dp)
39+
) {
40+
Image(
41+
painter = painterResource(R.drawable.img_cronometer),
42+
contentDescription = null,
43+
modifier = Modifier
44+
.fillMaxWidth()
45+
.weight(1f)
46+
)
47+
48+
Display(
49+
text = stringResource(R.string.coming_soon__headline).withAccent(accentColor = Colors.Brand),
50+
color = Colors.White
51+
)
52+
VerticalSpacer(8.dp)
53+
BodyM(text = stringResource(R.string.coming_soon__description), color = Colors.White64)
54+
VerticalSpacer(54.dp)
55+
PrimaryButton(
56+
text = stringResource(R.string.coming_soon__button),
57+
onClick = onWalletOverviewClick,
58+
)
59+
VerticalSpacer(16.dp)
60+
}
61+
}
62+
}
63+
64+
@Preview(showSystemUi = true)
65+
@Composable
66+
private fun Preview() {
67+
AppThemeSurface {
68+
ComingSoonScreen(
69+
onWalletOverviewClick = {},
70+
onBackClick = {}
71+
)
72+
}
73+
}

app/src/main/java/to/bitkit/ui/screens/wallets/HomeScreen.kt

Lines changed: 2 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,12 @@ import androidx.compose.foundation.layout.fillMaxSize
1616
import androidx.compose.foundation.layout.fillMaxWidth
1717
import androidx.compose.foundation.layout.height
1818
import androidx.compose.foundation.layout.padding
19-
import androidx.compose.foundation.layout.size
2019
import androidx.compose.foundation.layout.statusBars
2120
import androidx.compose.foundation.lazy.LazyRow
2221
import androidx.compose.foundation.lazy.items
2322
import androidx.compose.foundation.lazy.rememberLazyListState
2423
import androidx.compose.foundation.rememberScrollState
2524
import androidx.compose.foundation.verticalScroll
26-
import androidx.compose.material.icons.Icons
27-
import androidx.compose.material.icons.filled.AccountCircle
2825
import androidx.compose.material3.DrawerState
2926
import androidx.compose.material3.DrawerValue
3027
import androidx.compose.material3.ExperimentalMaterial3Api
@@ -86,7 +83,6 @@ import to.bitkit.ui.components.SuggestionCard
8683
import to.bitkit.ui.components.TabBar
8784
import to.bitkit.ui.components.TertiaryButton
8885
import to.bitkit.ui.components.Text13Up
89-
import to.bitkit.ui.components.Title
9086
import to.bitkit.ui.components.TopBarSpacer
9187
import to.bitkit.ui.components.VerticalSpacer
9288
import to.bitkit.ui.components.WalletBalanceView
@@ -168,13 +164,6 @@ fun HomeScreen(
168164
walletViewModel.onPullToRefresh()
169165
homeViewModel.refreshWidgets()
170166
},
171-
onClickProfile = {
172-
if (!hasSeenProfileIntro) {
173-
rootNavController.navigate(Routes.ProfileIntro)
174-
} else {
175-
rootNavController.navigate(Routes.CreateProfile)
176-
}
177-
},
178167
onRemoveSuggestion = { suggestion ->
179168
homeViewModel.removeSuggestion(suggestion)
180169
},
@@ -214,11 +203,7 @@ fun HomeScreen(
214203
}
215204

216205
Suggestion.PROFILE -> {
217-
if (!hasSeenProfileIntro) {
218-
rootNavController.navigate(Routes.ProfileIntro)
219-
} else {
220-
rootNavController.navigate(Routes.CreateProfile)
221-
}
206+
rootNavController.navigate(Routes.Profile)
222207
}
223208

224209
Suggestion.SHOP -> {
@@ -286,7 +271,6 @@ private fun Content(
286271
drawerState: DrawerState,
287272
hazeState: HazeState = rememberHazeState(),
288273
latestActivities: List<Activity>?,
289-
onClickProfile: () -> Unit = {},
290274
onRefresh: () -> Unit = {},
291275
onRemoveSuggestion: (Suggestion) -> Unit = {},
292276
onClickSuggestion: (Suggestion) -> Unit = {},
@@ -305,7 +289,6 @@ private fun Content(
305289
val heightStatusBar = WindowInsets.statusBars.asPaddingValues().calculateTopPadding()
306290
TopBar(
307291
hazeState = hazeState,
308-
onClickProfile = onClickProfile,
309292
rootNavController = rootNavController,
310293
scope = scope,
311294
drawerState = drawerState,
@@ -624,7 +607,6 @@ private fun Widgets(homeUiState: HomeUiState) {
624607
@OptIn(ExperimentalMaterial3Api::class)
625608
private fun TopBar(
626609
hazeState: HazeState,
627-
onClickProfile: () -> Unit,
628610
rootNavController: NavController,
629611
scope: CoroutineScope,
630612
drawerState: DrawerState,
@@ -646,26 +628,7 @@ private fun TopBar(
646628
.zIndex(1f)
647629
) {
648630
TopAppBar(
649-
title = {
650-
Row(
651-
verticalAlignment = Alignment.CenterVertically,
652-
modifier = Modifier
653-
.clickableAlpha(onClick = onClickProfile)
654-
.testTag("Header")
655-
) {
656-
Icon(
657-
imageVector = Icons.Filled.AccountCircle,
658-
contentDescription = stringResource(R.string.slashtags__your_name_capital),
659-
tint = Colors.White64,
660-
modifier = Modifier.size(32.dp)
661-
)
662-
HorizontalSpacer(16.dp)
663-
Title(
664-
text = stringResource(R.string.slashtags__your_name_capital),
665-
Modifier.testTag("EmptyProfileHeader")
666-
)
667-
}
668-
},
631+
title = {},
669632
actions = {
670633
AppStatus(onClick = { rootNavController.navigate(Routes.AppStatus) })
671634
HorizontalSpacer(4.dp)
45 KB
Loading
17.3 KB
Loading
78.3 KB
Loading
227 KB
Loading
267 KB
Loading

app/src/main/res/values/strings.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@
3535
<string name="cards__transferClosingChannel__title">Initiating</string>
3636
<string name="cards__transferPending__description">Ready in ±{duration}</string>
3737
<string name="cards__transferPending__title">Transfer</string>
38+
<string name="coming_soon__button">Wallet overview</string>
39+
<string name="coming_soon__description">This feature is currently in development and will be available soon.</string>
40+
<string name="coming_soon__headline">Coming\n&lt;accent&gt;soon&lt;/accent&gt;</string>
41+
<string name="coming_soon__title">Coming soon</string>
3842
<string name="common__advanced">Advanced</string>
3943
<string name="common__announced">Announced</string>
4044
<string name="common__are_you_sure">Are You Sure?</string>

0 commit comments

Comments
 (0)