mirror of
https://github.com/Docile-Alligator/Infinity-For-Reddit.git
synced 2026-02-04 17:45:29 +00:00
Continue implementing copying multireddits.
This commit is contained in:
@ -38,7 +38,9 @@
|
||||
tools:replace="android:label">
|
||||
<activity
|
||||
android:name=".activities.CopyMultiRedditActivity"
|
||||
android:exported="false" />
|
||||
android:exported="false"
|
||||
android:parentActivityName=".activities.MainActivity"
|
||||
android:theme="@style/AppTheme.Slidable" />
|
||||
<activity
|
||||
android:name=".activities.LoginChromeCustomTabActivity"
|
||||
android:exported="true"
|
||||
|
||||
@ -1,18 +1,40 @@
|
||||
package ml.docilealligator.infinityforreddit.activities
|
||||
|
||||
import android.R.attr.checked
|
||||
import android.content.SharedPreferences
|
||||
import android.os.Bundle
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.foundation.text.input.TextFieldState
|
||||
import androidx.compose.foundation.text.input.rememberTextFieldState
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.MaterialTheme.colorScheme
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TextFieldDefaults
|
||||
import androidx.compose.material3.TopAppBar
|
||||
import androidx.compose.material3.TopAppBarDefaults
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import ml.docilealligator.infinityforreddit.Infinity
|
||||
import ml.docilealligator.infinityforreddit.R
|
||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase
|
||||
import ml.docilealligator.infinityforreddit.customtheme.CustomThemeWrapper
|
||||
import ml.docilealligator.infinityforreddit.customviews.compose.AppTheme
|
||||
import ml.docilealligator.infinityforreddit.customviews.compose.CustomTextField
|
||||
import ml.docilealligator.infinityforreddit.customviews.compose.LocalAppTheme
|
||||
import ml.docilealligator.infinityforreddit.customviews.compose.SwitchRow
|
||||
import retrofit2.Retrofit
|
||||
import java.util.concurrent.Executor
|
||||
import javax.inject.Inject
|
||||
@ -47,21 +69,63 @@ class CopyMultiRedditActivity : BaseActivity() {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
setContent {
|
||||
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior()
|
||||
val name = rememberTextFieldState()
|
||||
val description = rememberTextFieldState()
|
||||
var isPrivate by remember { mutableStateOf(true) }
|
||||
|
||||
AppTheme(customThemeWrapper.themeType) {
|
||||
Scaffold(
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
colors = TopAppBarDefaults.topAppBarColors(
|
||||
containerColor = MaterialTheme.colorScheme.primaryContainer,
|
||||
titleContentColor = MaterialTheme.colorScheme.primary,
|
||||
containerColor = Color(LocalAppTheme.current.colorPrimary),
|
||||
titleContentColor = Color(LocalAppTheme.current.toolbarPrimaryTextAndIconColor),
|
||||
),
|
||||
title = {
|
||||
Text("Small Top App Bar")
|
||||
}
|
||||
Text(stringResource(R.string.copy_multireddit_activity_label))
|
||||
},
|
||||
scrollBehavior = scrollBehavior
|
||||
)
|
||||
},
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.nestedScroll(scrollBehavior.nestedScrollConnection)
|
||||
) { innerPadding ->
|
||||
LazyColumn(
|
||||
modifier = Modifier.padding(innerPadding)
|
||||
) {
|
||||
item {
|
||||
CustomTextField(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(horizontal = 16.dp)
|
||||
.padding(top = 16.dp, bottom = 8.dp),
|
||||
state = name,
|
||||
placeholder = stringResource(R.string.multi_reddit_name_hint)
|
||||
)
|
||||
}
|
||||
|
||||
item {
|
||||
CustomTextField(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(horizontal = 16.dp)
|
||||
.padding(top = 8.dp, bottom = 8.dp),
|
||||
state = description,
|
||||
placeholder = stringResource(R.string.multi_reddit_description_hint)
|
||||
)
|
||||
}
|
||||
|
||||
item {
|
||||
SwitchRow(
|
||||
checked = isPrivate,
|
||||
title = stringResource(R.string.private_multi_reddit)
|
||||
) {
|
||||
isPrivate = it
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,49 @@
|
||||
package ml.docilealligator.infinityforreddit.customviews.compose
|
||||
|
||||
import android.R.attr.checked
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material3.Switch
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.google.common.math.LinearTransformation.horizontal
|
||||
|
||||
@Composable
|
||||
fun SwitchRow(
|
||||
modifier: Modifier = Modifier,
|
||||
checked: Boolean,
|
||||
title: String,
|
||||
subTitle: String? = null,
|
||||
onCheckedChange: (Boolean) -> Unit
|
||||
) {
|
||||
Row(
|
||||
modifier = modifier
|
||||
.fillMaxWidth()
|
||||
.clickable {
|
||||
onCheckedChange(!checked);
|
||||
}
|
||||
.padding(horizontal = 16.dp, vertical = 8.dp),
|
||||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
Text(
|
||||
text = title,
|
||||
color = Color(LocalAppTheme.current.primaryTextColor)
|
||||
)
|
||||
|
||||
Spacer(modifier = Modifier.weight(1f))
|
||||
|
||||
Switch(
|
||||
checked = checked,
|
||||
onCheckedChange = onCheckedChange
|
||||
)
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
package ml.docilealligator.infinityforreddit.customviews.compose
|
||||
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.text.input.TextFieldLineLimits
|
||||
import androidx.compose.foundation.text.input.TextFieldState
|
||||
import androidx.compose.material3.OutlinedTextField
|
||||
import androidx.compose.material3.OutlinedTextFieldDefaults
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
|
||||
@Composable
|
||||
fun CustomTextField(
|
||||
modifier: Modifier = Modifier,
|
||||
state: TextFieldState,
|
||||
placeholder: String,
|
||||
lineLimits: TextFieldLineLimits = TextFieldLineLimits.Default
|
||||
) {
|
||||
OutlinedTextField(
|
||||
modifier = modifier,
|
||||
state = state,
|
||||
placeholder = {
|
||||
Text(
|
||||
text = placeholder,
|
||||
color = Color(LocalAppTheme.current.secondaryTextColor)
|
||||
)
|
||||
},
|
||||
lineLimits = lineLimits,
|
||||
colors = OutlinedTextFieldDefaults.colors(
|
||||
focusedTextColor = Color(LocalAppTheme.current.primaryTextColor),
|
||||
unfocusedTextColor = Color(LocalAppTheme.current.primaryTextColor),
|
||||
focusedBorderColor = Color(LocalAppTheme.current.primaryTextColor),
|
||||
unfocusedBorderColor = Color(LocalAppTheme.current.secondaryTextColor),
|
||||
cursorColor = Color(LocalAppTheme.current.colorPrimary)
|
||||
)
|
||||
)
|
||||
}
|
||||
@ -47,6 +47,7 @@
|
||||
<string name="subscription_activity_label">Subscription</string>
|
||||
<string name="comment_filter_preference_activity_label">Comment Filter</string>
|
||||
<string name="customize_comment_filter_activity_label">Customize Comment Filter</string>
|
||||
<string name="copy_multireddit_activity_label">Copy Multireddit</string>
|
||||
|
||||
<string name="navigation_drawer_open">Open navigation drawer</string>
|
||||
<string name="navigation_drawer_close">Close navigation drawer</string>
|
||||
|
||||
Reference in New Issue
Block a user