1
0
Fork 0
mirror of https://github.com/anyproto/anytype-kotlin.git synced 2025-06-08 05:47:05 +09:00

DROID-3629 Onboarding | Ui fixes (#2402)

This commit is contained in:
Konstantin Ivanov 2025-05-14 17:31:30 +02:00 committed by konstantiniiv
parent ebf1db3a6f
commit 32a9f8b99a
4 changed files with 41 additions and 17 deletions

View file

@ -100,7 +100,9 @@ fun PagerIndicator(
)
Spacer(modifier = Modifier.weight(1f))
Text(
modifier = Modifier.wrapContentWidth().padding(top = 21.dp, end = 16.dp),
modifier = Modifier
.wrapContentWidth()
.padding(top = 21.dp, end = 16.dp),
text = "${currentPage.value.num} / $pageCount",
style = HeadlineOnBoardingDescription.copy(
color = ColorPagerIndicatorText, textAlign = TextAlign.End
@ -121,12 +123,18 @@ fun MnemonicPhraseWidget(
val words = mnemonic.split(" ")
if (words.isNotEmpty()) {
FlowRow(
modifier = modifier, maxItemsInEachRow = 4, horizontalArrangement = Arrangement.Center
modifier = modifier,
maxItemsInEachRow = 4,
horizontalArrangement = Arrangement.Center
) {
words.forEachIndexed { idx, word ->
val color = colorResource(R.color.palette_system_pink)
val color = colorResource(R.color.text_white)
Text(
modifier = Modifier.padding(horizontal = 6.dp, vertical = 3.dp),
modifier = Modifier
.padding(
horizontal = 6.dp,
vertical = 6.dp
),
text = word.lowercase(),
style = PreviewTitle1Regular.copy(
color = color
@ -190,7 +198,7 @@ fun MnemonicStubPreview() {
MnemonicStub()
}
@Preview
@Preview(backgroundColor = 0xFF000000, showBackground = true)
@Composable
fun MnemonicPhraseWidgetPreview() {
val mnemonic = "kenobi hello there general grievous you are bold like toe pineapple wave"
@ -215,8 +223,7 @@ fun OnboardingMnemonicInput(
.copy(
lineHeight = 34.sp,
color = colorResource(R.color.palette_system_pink)
)
,
),
value = text.value,
onValueChange = {
text.value = it

View file

@ -1,12 +1,14 @@
package com.anytypeio.anytype.ui.onboarding
import android.content.ClipData
import android.content.ClipDescription
import android.content.ClipboardManager
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.os.PersistableBundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@ -700,8 +702,15 @@ class OnboardingFragment : Fragment() {
requireContext().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val clip =
ClipData.newPlainText("Mnemonic phrase", mnemonicPhrase)
clip.apply {
description.extras = PersistableBundle().apply {
putBoolean(ClipDescription.EXTRA_IS_SENSITIVE, true)
}
}
clipboard.setPrimaryClip(clip)
toast("Mnemonic phrase copied")
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.S_V2) {
toast("Mnemonic phrase copied")
}
} catch (e: Exception) {
toast("Could not copy your mnemonic phrase. Please try again later, or copy it manually.")
}

View file

@ -45,6 +45,7 @@ import com.anytypeio.anytype.core_ui.ColorBackgroundField
import com.anytypeio.anytype.core_ui.ColorButtonRegular
import com.anytypeio.anytype.core_ui.extensions.conditional
import com.anytypeio.anytype.core_ui.foundation.noRippleClickable
import com.anytypeio.anytype.core_ui.foundation.noRippleThrottledClickable
import com.anytypeio.anytype.core_ui.views.ButtonMedium
import com.anytypeio.anytype.core_ui.views.ButtonSize
import com.anytypeio.anytype.core_ui.views.HeadlineTitleSemibold
@ -150,7 +151,8 @@ fun MnemonicPhraseScreen(
MnemonicPhrase(
state = state,
copyMnemonicToClipboard = copyMnemonicToClipboard,
mnemonicColorPalette = mnemonicColorPalette
mnemonicColorPalette = mnemonicColorPalette,
reviewMnemonic = reviewMnemonic
)
ReadMoreButton(showWhatIsRecoveryPhraseDialog)
}
@ -287,6 +289,7 @@ fun MnemonicTitle() {
@Composable
fun MnemonicPhrase(
state: OnboardingMnemonicViewModel.State,
reviewMnemonic: () -> Unit,
copyMnemonicToClipboard: (String) -> Unit,
mnemonicColorPalette: List<Color>
) {
@ -303,6 +306,10 @@ fun MnemonicPhrase(
.fillMaxWidth()
.background(color = ColorBackgroundField, shape = RoundedCornerShape(16.dp))
.wrapContentHeight()
.noRippleThrottledClickable {
reviewMnemonic()
copyMnemonicToClipboard.invoke(state.mnemonicPhrase)
}
) {
if (Build.VERSION.SDK_INT <= VERSION_CODES.R && state is OnboardingMnemonicViewModel.State.Mnemonic) {
MnemonicStub()
@ -315,10 +322,10 @@ fun MnemonicPhrase(
positive = { blur(15.dp) }
)
.padding(
start = 16.dp,
top = 16.dp,
end = 16.dp,
bottom = 16.dp
start = 42.dp,
top = 17.dp,
end = 42.dp,
bottom = 17.dp
),
mnemonic = state.mnemonicPhrase,
mnemonicColorPalette = mnemonicColorPalette

View file

@ -40,7 +40,7 @@ import com.anytypeio.anytype.core_ui.views.HeadlineHeading
import com.anytypeio.anytype.core_ui.views.Title1
@Preview
@Preview(showBackground = true, backgroundColor = 0xFF000000)
@Composable
fun PreviewWhatIsRecoveryPhraseScreen() {
WhatIsRecoveryPhraseScreen()
@ -80,7 +80,7 @@ fun WhatIsRecoveryPhraseScreen() {
modifier = Modifier.align(Alignment.Center)
)
}
Spacer(modifier = Modifier.width(18.dp))
Spacer(modifier = Modifier.width(12.dp))
Text(
text = stringResource(R.string.onboarding_recovery_phrase_description),
color = Color.White,
@ -96,13 +96,14 @@ fun WhatIsRecoveryPhraseScreen() {
modifier = Modifier.align(Alignment.Center)
)
}
Spacer(modifier = Modifier.width(18.dp))
Spacer(modifier = Modifier.width(12.dp))
Text(
text = buildAnnotatedString {
append(stringResource(R.string.onboarding_recovery_phrase_description_2))
withStyle(
style = SpanStyle(fontWeight = FontWeight.Bold)
) {
append(" ")
append(stringResource(R.string.onboarding_recovery_phrase_description_3))
}
},
@ -119,7 +120,7 @@ fun WhatIsRecoveryPhraseScreen() {
modifier = Modifier.align(Alignment.Center)
)
}
Spacer(modifier = Modifier.width(18.dp))
Spacer(modifier = Modifier.width(12.dp))
Text(
text = stringResource(R.string.onboarding_recovery_phrase_description_4),
color = Color.White,