Continue implementing NewFeaturesActivity.

This commit is contained in:
Docile-Alligator
2026-08-12 16:30:01 -04:00
parent d23110794d
commit e71b922f66

View File

@ -1,6 +1,5 @@
package ml.docilealligator.infinityforreddit.activities
import android.R.attr.onClick
import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
@ -12,10 +11,14 @@ import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.WindowInsetsSides
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
@ -23,20 +26,16 @@ import androidx.compose.foundation.layout.navigationBars
import androidx.compose.foundation.layout.only
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.safeDrawing
import androidx.compose.foundation.layout.widthIn
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.IconButton
import androidx.compose.material3.Scaffold
import androidx.compose.material3.TextButton
import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.setValue
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
@ -44,10 +43,12 @@ import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.TextUnit
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.core.content.edit
import androidx.core.view.WindowInsetsControllerCompat
import androidx.window.core.layout.WindowHeightSizeClass
import androidx.window.core.layout.WindowWidthSizeClass
import ml.docilealligator.infinityforreddit.BuildConfig
import ml.docilealligator.infinityforreddit.Infinity
import ml.docilealligator.infinityforreddit.R
@ -56,7 +57,6 @@ import ml.docilealligator.infinityforreddit.customtheme.CustomThemeWrapper
import ml.docilealligator.infinityforreddit.customviews.compose.AppTheme
import ml.docilealligator.infinityforreddit.customviews.compose.ColorAccentText
import ml.docilealligator.infinityforreddit.customviews.compose.CustomFilledButton
import ml.docilealligator.infinityforreddit.customviews.compose.CustomNeutralTextButton
import ml.docilealligator.infinityforreddit.customviews.compose.LocalAppTheme
import ml.docilealligator.infinityforreddit.customviews.compose.LocalTypography
import ml.docilealligator.infinityforreddit.customviews.compose.PrimaryIcon
@ -116,10 +116,8 @@ class NewFeaturesActivity: BaseActivity() {
setContent {
AppTheme(mCustomThemeWrapper.themeType, mSharedPreferences) {
val context = LocalContext.current
var continueButtonText by remember { mutableStateOf(context.getString(R.string.take_a_quick_tour)) }
val coroutineScope = rememberCoroutineScope()
val windowSizeClass = currentWindowAdaptiveInfo().windowSizeClass
val isCompactHeight = windowSizeClass.windowHeightSizeClass == WindowHeightSizeClass.COMPACT
val isCompactWidth = windowSizeClass.windowWidthSizeClass == WindowWidthSizeClass.COMPACT
Scaffold(
topBar = {
@ -146,75 +144,89 @@ class NewFeaturesActivity: BaseActivity() {
WindowInsetsSides.Bottom
)
) { innerPadding ->
Column(
Box(
modifier = Modifier
.fillMaxSize()
.background(Color(LocalAppTheme.current.backgroundColor))
.padding(innerPadding),
horizontalAlignment = Alignment.CenterHorizontally
.background(Color(LocalAppTheme.current.backgroundColor)),
contentAlignment = Alignment.Center
) {
Column(
Row (
modifier = Modifier
.fillMaxWidth()
.weight(1f)
.verticalScroll(rememberScrollState())
.fillMaxHeight()
.widthIn(max = 1200.dp)
.padding(innerPadding),
verticalAlignment = Alignment.CenterVertically
) {
PrimaryText(
R.string.important_info_post_comments_rework_title,
modifier = Modifier.padding(horizontal = 16.dp),
fontSize = LocalTypography.current.fontSize.size20,
fontWeight = FontWeight.Bold
)
Spacer(modifier = Modifier.height(16.dp))
SecondaryText(
R.string.important_info_post_comments_rework_description,
modifier = Modifier.padding(horizontal = 16.dp)
)
}
Spacer(modifier = Modifier.height(16.dp))
ColorAccentText(
R.string.important_info_post_comments_rework_join_subreddit,
modifier = Modifier
.clickable {
mInternalSharedPreferences.edit {
putInt(
SharedPreferencesUtils.CURRENT_VERSION,
BuildConfig.VERSION_CODE
)
Column(
modifier = Modifier
.weight(1f),
horizontalAlignment = Alignment.CenterHorizontally
) {
Column(
modifier = Modifier
.fillMaxWidth()
.weight(1f)
.padding(horizontal = if (isCompactWidth) 0.dp else 16.dp)
.verticalScroll(rememberScrollState())
) {
if (!isCompactWidth) {
Spacer(modifier = Modifier.weight(1f))
}
startActivity(Intent(
this@NewFeaturesActivity,
ViewSubredditDetailActivity::class.java
).apply {
putExtra(
ViewSubredditDetailActivity.EXTRA_SUBREDDIT_NAME_KEY,
"Infinity_For_Reddit"
)
})
PrimaryText(
R.string.important_info_post_comments_rework_title,
modifier = Modifier.padding(horizontal = 16.dp),
fontSize = if (isCompactWidth) LocalTypography.current.fontSize.size20 else 48.sp,
fontWeight = FontWeight.Bold,
lineHeight = if (isCompactWidth) TextUnit.Unspecified else 56.sp
)
finish()
Spacer(modifier = Modifier.height(16.dp))
SecondaryText(
R.string.important_info_post_comments_rework_description,
modifier = Modifier.padding(horizontal = 16.dp),
fontSize = if (isCompactWidth) LocalTypography.current.fontSize.default else LocalTypography.current.fontSize.size20,
lineHeight = if (isCompactWidth) TextUnit.Unspecified else 24.sp
)
if (!isCompactWidth) {
Spacer(modifier = Modifier.height(16.dp))
Spacer(modifier = Modifier.weight(1f))
}
}
.padding(horizontal = 16.dp),
textAlign = TextAlign.Center
)
Spacer(modifier = Modifier.height(8.dp))
if (isCompactWidth) {
Spacer(modifier = Modifier.height(16.dp))
CustomFilledButton(
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = 16.dp),
stringResId = R.string.continue_to_app
) {
triggerBackPress()
JoinSubredditButton()
Spacer(modifier = Modifier.height(8.dp))
ContinueToAppButton()
Spacer(modifier = Modifier.height(16.dp))
}
}
if (!isCompactWidth) {
Column(
modifier = Modifier
.fillMaxHeight()
.weight(1f)
.padding(horizontal = 16.dp),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
JoinSubredditButton()
Spacer(modifier = Modifier.height(8.dp))
ContinueToAppButton()
}
}
}
Spacer(modifier = Modifier.height(16.dp))
}
}
}
@ -231,6 +243,49 @@ class NewFeaturesActivity: BaseActivity() {
})
}
@Composable
private fun JoinSubredditButton() {
ColorAccentText(
R.string.important_info_post_comments_rework_join_subreddit,
modifier = Modifier
.clickable {
mInternalSharedPreferences.edit {
putInt(
SharedPreferencesUtils.CURRENT_VERSION,
BuildConfig.VERSION_CODE
)
}
startActivity(
Intent(
this@NewFeaturesActivity,
ViewSubredditDetailActivity::class.java
).apply {
putExtra(
ViewSubredditDetailActivity.EXTRA_SUBREDDIT_NAME_KEY,
"Infinity_For_Reddit"
)
})
finish()
}
.padding(horizontal = 16.dp),
textAlign = TextAlign.Center
)
}
@Composable
private fun ContinueToAppButton() {
CustomFilledButton(
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = 16.dp),
stringResId = R.string.continue_to_app
) {
triggerBackPress()
}
}
override fun getDefaultSharedPreferences(): SharedPreferences {
return mSharedPreferences
}