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.