From 9cd32c8aa137deebb9bc8597979a15873d104e12 Mon Sep 17 00:00:00 2001 From: Docile-Alligator <25734209+Docile-Alligator@users.noreply.github.com> Date: Mon, 29 Jun 2026 21:48:14 -0400 Subject: [PATCH] Continue implementing OnboardingActivity. --- .../activities/OnboardingActivity.kt | 58 +++++++++++++++++-- .../customviews/compose/CustomButton.kt | 28 +++++++-- app/src/main/res/values/strings.xml | 5 ++ 3 files changed, 81 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/OnboardingActivity.kt b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/OnboardingActivity.kt index 2dfae79b..3d9b8f05 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/OnboardingActivity.kt +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/OnboardingActivity.kt @@ -31,6 +31,7 @@ import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.foundation.shape.CircleShape import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text import androidx.compose.material3.TopAppBarDefaults.enterAlwaysScrollBehavior import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -41,12 +42,19 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.LinkAnnotation +import androidx.compose.ui.text.SpanStyle +import androidx.compose.ui.text.TextLinkStyles +import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.text.withLink import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.core.view.WindowInsetsControllerCompat @@ -57,6 +65,7 @@ import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase import ml.docilealligator.infinityforreddit.customtheme.CustomThemeWrapper import ml.docilealligator.infinityforreddit.customviews.compose.AppTheme import ml.docilealligator.infinityforreddit.customviews.compose.CustomFilledButton +import ml.docilealligator.infinityforreddit.customviews.compose.LocalAppTheme import ml.docilealligator.infinityforreddit.customviews.compose.LocalTypography import ml.docilealligator.infinityforreddit.customviews.compose.PrimaryText import retrofit2.Retrofit @@ -157,7 +166,7 @@ class OnboardingActivity: BaseActivity() { } } - CustomFilledButton( + Column( modifier = Modifier .fillMaxWidth(1f) .padding( @@ -166,14 +175,51 @@ class OnboardingActivity: BaseActivity() { end = innerPadding.calculateEndPadding(LocalLayoutDirection.current) ) .padding(horizontal = 32.dp) - .padding(bottom = 32.dp), - continueButtonText + .padding(bottom = 32.dp) ) { - if (pagerState.currentPage < pagerState.pageCount - 1) { - coroutineScope.launch { - pagerState.animateScrollToPage(pagerState.currentPage + 1) + CustomFilledButton( + modifier = Modifier + .fillMaxWidth(1f), + text = continueButtonText + ) { + if (pagerState.currentPage < pagerState.pageCount - 1) { + coroutineScope.launch { + pagerState.animateScrollToPage(pagerState.currentPage + 1) + } } } + + Spacer(Modifier.height(16.dp)) + + Text( + text = buildAnnotatedString { + append(getString(R.string.by_continuing_1)) + + withLink( + LinkAnnotation.Url( + "https://docile-alligator.github.io/", + TextLinkStyles(style = SpanStyle(color = Color(LocalAppTheme.current.linkColor))) + ) + ) { + append(getString(R.string.privacy_policy)) + } + + append(getString(R.string.by_continuing_2)) + + withLink( + LinkAnnotation.Url( + "https://redditinc.com/policies/user-agreement", + TextLinkStyles(style = SpanStyle(color = Color(LocalAppTheme.current.linkColor))) + ) + ) { + append(getString(R.string.reddit_user_agreement)) + } + + append(getString(R.string.by_continuing_3)) + }, + fontFamily = LocalTypography.current.fontFamily, + fontSize = 12.sp + ) } } } diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/customviews/compose/CustomButton.kt b/app/src/main/java/ml/docilealligator/infinityforreddit/customviews/compose/CustomButton.kt index 79af0d64..85e54e5a 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/customviews/compose/CustomButton.kt +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/customviews/compose/CustomButton.kt @@ -13,7 +13,13 @@ import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.unit.TextUnit @Composable -fun CustomFilledButton(modifier: Modifier = Modifier, text: String, onclick: () -> Unit) { +fun CustomFilledButton( + modifier: Modifier = Modifier, + text: String, + fontFamily: FontFamily? = LocalTypography.current.fontFamily, + fontSize: TextUnit = LocalTypography.current.fontSize.default, + onclick: () -> Unit +) { Button( modifier = modifier, colors = ButtonDefaults.buttonColors().copy( @@ -22,12 +28,22 @@ fun CustomFilledButton(modifier: Modifier = Modifier, text: String, onclick: () ), onClick = onclick ) { - Text(text) + Text( + text, + fontFamily = fontFamily, + fontSize = fontSize + ) } } @Composable -fun CustomFilledButton(modifier: Modifier = Modifier, @StringRes stringResId: Int, onclick: () -> Unit) { +fun CustomFilledButton( + modifier: Modifier = Modifier, + @StringRes stringResId: Int, + fontFamily: FontFamily? = LocalTypography.current.fontFamily, + fontSize: TextUnit = LocalTypography.current.fontSize.default, + onclick: () -> Unit +) { Button( modifier = modifier, colors = ButtonDefaults.buttonColors().copy( @@ -36,7 +52,11 @@ fun CustomFilledButton(modifier: Modifier = Modifier, @StringRes stringResId: In ), onClick = onclick ) { - Text(stringResource(stringResId)) + Text( + stringResource(stringResId), + fontFamily = fontFamily, + fontSize = fontSize + ) } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3b23b1f2..0d117a45 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1668,4 +1668,9 @@ Take a quick tour Next Get started + "By continuing, you agree to the " + Privacy Policy + " and " + Reddit User Agreement + .\nInfinity is an independent client for Reddit. Not affiliated or endorsed by Reddit.