mirror of
https://github.com/Docile-Alligator/Infinity-For-Reddit.git
synced 2026-08-18 02:51:58 +00:00
Continue implementing NewFeaturesActivity.
This commit is contained in:
@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user