Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ android {
applicationId = "to.bitkit"
minSdk = 28
targetSdk = 36
versionCode = 163
versionName = "2.0.0-rc.1"
versionCode = 168
versionName = "2.0.0-rc.2"
testInstrumentationRunner = "to.bitkit.test.HiltTestRunner"
vectorDrawables {
useSupportLibrary = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ 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.platform.testTag
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
Expand All @@ -17,7 +18,7 @@ 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.shared.util.screen
import to.bitkit.ui.theme.AppThemeSurface
import to.bitkit.ui.theme.Colors
import to.bitkit.ui.utils.withAccent
Expand All @@ -26,14 +27,18 @@ import to.bitkit.ui.utils.withAccent
fun ComingSoonScreen(
onWalletOverviewClick: () -> Unit,
onBackClick: () -> Unit,
modifier: Modifier = Modifier,
) {
ScreenColumn {
Column(
modifier = modifier
.screen()
.testTag("ComingSoonScreen")
) {
AppTopBar(
titleText = stringResource(R.string.coming_soon__title),
onBackClick = onBackClick,
actions = { DrawerNavIcon() },
)

Column(
modifier = Modifier.padding(horizontal = 32.dp)
) {
Expand All @@ -44,10 +49,9 @@ fun ComingSoonScreen(
.fillMaxWidth()
.weight(1f)
)

Display(
text = stringResource(R.string.coming_soon__headline).withAccent(accentColor = Colors.Brand),
color = Colors.White
color = Colors.White,
)
VerticalSpacer(8.dp)
BodyM(text = stringResource(R.string.coming_soon__description), color = Colors.White64)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ import to.bitkit.ui.screens.wallets.activity.components.ActivityIcon
import to.bitkit.ui.shared.modifiers.clickableAlpha
import to.bitkit.ui.shared.modifiers.sheetHeight
import to.bitkit.ui.sheets.BoostTransactionSheet
import to.bitkit.ui.sheets.ComingSoonSheet
import to.bitkit.ui.theme.AppThemeSurface
import to.bitkit.ui.theme.Colors
import to.bitkit.ui.utils.copyToClipboard
Expand Down Expand Up @@ -168,6 +169,7 @@ fun ActivityDetailScreen(
val tags by detailViewModel.tags.collectAsStateWithLifecycle()
val boostSheetVisible by detailViewModel.boostSheetVisible.collectAsStateWithLifecycle()
var showAddTagSheet by remember { mutableStateOf(false) }
var showAssignSheet by remember { mutableStateOf(false) }
var isCpfpChild by remember { mutableStateOf(false) }
var boostTxDoesExist by remember { mutableStateOf<Map<String, Boolean>>(emptyMap()) }

Expand Down Expand Up @@ -217,6 +219,7 @@ fun ActivityDetailScreen(
tags = tags,
onRemoveTag = { detailViewModel.removeTag(it) },
onAddTagClick = { showAddTagSheet = true },
onAssignClick = { showAssignSheet = true },
onClickBoost = detailViewModel::onClickBoost,
onExploreClick = onExploreClick,
onChannelClick = onChannelClick,
Expand Down Expand Up @@ -282,6 +285,13 @@ fun ActivityDetailScreen(
)
}
}

if (showAssignSheet) {
ComingSoonSheet(
onWalletOverviewClick = onCloseClick,
onBack = { showAssignSheet = false },
)
}
}
}
}
Expand All @@ -294,6 +304,7 @@ private fun ActivityDetailContent(
tags: List<String>,
onRemoveTag: (String) -> Unit,
onAddTagClick: () -> Unit,
onAssignClick: () -> Unit,
onClickBoost: () -> Unit,
onExploreClick: (String) -> Unit,
onChannelClick: ((String) -> Unit)?,
Expand Down Expand Up @@ -572,7 +583,7 @@ private fun ActivityDetailContent(
PrimaryButton(
text = stringResource(R.string.wallet__activity_assign),
size = ButtonSize.Small,
onClick = { /* TODO: Implement assign functionality */ },
onClick = onAssignClick,
enabled = !isSelfSend,
icon = {
Icon(
Expand Down Expand Up @@ -849,6 +860,7 @@ private fun PreviewLightningSent() {
tags = listOf("Lunch", "Drinks"),
onRemoveTag = {},
onAddTagClick = {},
onAssignClick = {},
onExploreClick = {},
onChannelClick = null,
onCopy = {},
Expand Down Expand Up @@ -879,6 +891,7 @@ private fun PreviewOnchain() {
tags = emptyList(),
onRemoveTag = {},
onAddTagClick = {},
onAssignClick = {},
onExploreClick = {},
onChannelClick = null,
onCopy = {},
Expand Down Expand Up @@ -910,6 +923,7 @@ private fun PreviewSheetSmallScreen() {
tags = listOf("Lunch", "Drinks"),
onRemoveTag = {},
onAddTagClick = {},
onAssignClick = {},
onExploreClick = {},
onChannelClick = null,
onCopy = {},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import to.bitkit.viewmodels.TagsViewModel
fun ActivityAddTagSheet(
listViewModel: ActivityListViewModel,
activityViewModel: ActivityDetailViewModel,
modifier: Modifier = Modifier,
tagsViewModel: TagsViewModel = hiltViewModel(),
onDismiss: () -> Unit,
) {
Expand Down Expand Up @@ -66,7 +67,7 @@ fun ActivityAddTagSheet(
focusOnShow = true,
tagInputTestTag = "TagInput",
addButtonTestTag = "ActivityTagsSubmit",
modifier = Modifier
modifier = modifier
.semantics { testTagsAsResourceId = true }
.sheetHeight(SheetSize.SMALL, isModal = true)
.gradientBackground()
Expand All @@ -87,9 +88,7 @@ private fun Preview() {
onTagConfirmed = {},
onInputUpdated = {},
onBack = {},
modifier = Modifier
.sheetHeight(SheetSize.SMALL, isModal = true)
.gradientBackground()
modifier = Modifier.sheetHeight(SheetSize.SMALL, isModal = true)
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -258,9 +258,7 @@ fun SendRecipientScreen(
galleryLauncher.launch("image/*")
}
},
onClickContact = {
app?.toast(AppError("Coming soon: Contact"))
},
onClickContact = { onEvent(SendEvent.Contacts) },
onClickPaste = { onEvent(SendEvent.Paste) },
onClickManual = { onEvent(SendEvent.EnterManually) },
cameraPermissionGranted = cameraPermissionState.status.isGranted,
Expand Down
101 changes: 101 additions & 0 deletions app/src/main/java/to/bitkit/ui/sheets/ComingSoonSheet.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
package to.bitkit.ui.sheets

import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.navigationBarsPadding
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.testTag
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.BottomSheet
import to.bitkit.ui.components.BottomSheetPreview
import to.bitkit.ui.components.Display
import to.bitkit.ui.components.PrimaryButton
import to.bitkit.ui.components.SheetSize
import to.bitkit.ui.components.VerticalSpacer
import to.bitkit.ui.scaffold.SheetTopBar
import to.bitkit.ui.shared.modifiers.sheetHeight
import to.bitkit.ui.shared.util.gradientBackground
import to.bitkit.ui.theme.AppThemeSurface
import to.bitkit.ui.theme.Colors
import to.bitkit.ui.utils.withAccent

private fun Modifier.sheet() = this then sheetHeight(SheetSize.MEDIUM, isModal = true)

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun ComingSoonSheet(
onWalletOverviewClick: () -> Unit,
onBack: () -> Unit,
modifier: Modifier = Modifier,
) {
BottomSheet(onDismissRequest = onBack) {
ComingSoonSheetContent(
onWalletOverviewClick = onWalletOverviewClick,
onBack = onBack,
modifier = modifier.sheet()
)
}
}

@Composable
fun ComingSoonSheetContent(
onWalletOverviewClick: () -> Unit,
onBack: () -> Unit,
modifier: Modifier = Modifier,
) {
Column(
modifier = modifier
.fillMaxSize()
.gradientBackground()
.navigationBarsPadding()
.testTag("ComingSoonSheet")
) {
SheetTopBar(titleText = stringResource(R.string.coming_soon__title), onBack = onBack)
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,
)
}
}
}

@Preview(showSystemUi = true)
@Composable
private fun Preview() {
AppThemeSurface {
BottomSheetPreview {
ComingSoonSheetContent(
onWalletOverviewClick = {},
onBack = {},
modifier = Modifier.sheet()
)
}
}
}
10 changes: 10 additions & 0 deletions app/src/main/java/to/bitkit/ui/sheets/SendSheet.kt
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ fun SendSheet(
is SendEffect.NavigateToWithdrawError -> navController.navigate(SendRoute.WithdrawError)
is SendEffect.NavigateToFee -> navController.navigate(SendRoute.FeeRate)
is SendEffect.NavigateToFeeCustom -> navController.navigate(SendRoute.FeeCustom)
is SendEffect.NavigateToComingSoon -> navController.navigate(SendRoute.ComingSoon)
}
}
}
Expand Down Expand Up @@ -267,6 +268,12 @@ fun SendSheet(
}
)
}
composableWithDefaultTransitions<SendRoute.ComingSoon> {
ComingSoonSheetContent(
onWalletOverviewClick = { appViewModel.hideSheet() },
onBack = { navController.popBackStack() },
)
}
composableWithDefaultTransitions<SendRoute.Error> {
val route = it.toRoute<SendRoute.Error>()
SendErrorScreen(
Expand Down Expand Up @@ -338,6 +345,9 @@ sealed interface SendRoute {
@Serializable
data object Success : SendRoute

@Serializable
data object ComingSoon : SendRoute

@Serializable
data class Error(val errorMessage: String) : SendRoute
}
3 changes: 3 additions & 0 deletions app/src/main/java/to/bitkit/viewmodels/AppViewModel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -650,6 +650,7 @@ class AppViewModel @Inject constructor(
SendEvent.ClearPayConfirmation -> _sendUiState.update { s -> s.copy(shouldConfirmPay = false) }
SendEvent.BackToAmount -> setSendEffect(SendEffect.PopBack(SendRoute.Amount))
SendEvent.NavToAddress -> setSendEffect(SendEffect.NavigateToAddress)
SendEvent.Contacts -> setSendEffect(SendEffect.NavigateToComingSoon)
}
}
}
Expand Down Expand Up @@ -2084,6 +2085,7 @@ sealed class SendEffect {
data object NavigateToQuickPay : SendEffect()
data object NavigateToFee : SendEffect()
data object NavigateToFeeCustom : SendEffect()
data object NavigateToComingSoon : SendEffect()
data class PaymentSuccess(val sheet: NewTransactionSheetDetails? = null) : SendEffect()
}

Expand Down Expand Up @@ -2124,6 +2126,7 @@ sealed interface SendEvent {
data object ClearPayConfirmation : SendEvent
data object BackToAmount : SendEvent
data object NavToAddress : SendEvent
data object Contacts : SendEvent
}

sealed interface LnurlParams {
Expand Down
Loading