mirror of
https://github.com/f-droid/fdroidclient.git
synced 2026-02-08 14:13:16 -05:00
Support dynamic colors, but keep brand colors as default
This commit is contained in:
@@ -9,8 +9,12 @@ import androidx.activity.enableEdgeToEdge
|
||||
import androidx.activity.result.contract.ActivityResultContracts.RequestPermission
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_DYNAMIC_COLORS
|
||||
import org.fdroid.settings.SettingsManager
|
||||
import org.fdroid.ui.Main
|
||||
import javax.inject.Inject
|
||||
|
||||
// Using [AppCompatActivity] and not [ComponentActivity] seems to be needed
|
||||
// for automatic theme changes when calling AppCompatDelegate.setDefaultNightMode()
|
||||
@@ -20,11 +24,17 @@ class MainActivity : AppCompatActivity() {
|
||||
val requestPermissionLauncher = registerForActivityResult(RequestPermission()) { isGranted ->
|
||||
}
|
||||
|
||||
@Inject
|
||||
lateinit var settingsManager: SettingsManager
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
enableEdgeToEdge()
|
||||
setContent {
|
||||
Main {
|
||||
val dynamicColors = settingsManager.dynamicColorFlow.collectAsStateWithLifecycle(
|
||||
PREF_DEFAULT_DYNAMIC_COLORS
|
||||
).value
|
||||
Main(dynamicColors) {
|
||||
// inform OnNewIntentListeners about the initial intent (otherwise would be missed)
|
||||
if (savedInstanceState == null && intent != null) {
|
||||
onNewIntent(intent)
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../../../../app/src/main/java/org/fdroid/fdroid/ui/theme/Theme.kt
|
||||
@@ -10,6 +10,9 @@ object SettingsConstants {
|
||||
const val PREF_KEY_THEME = "theme"
|
||||
const val PREF_DEFAULT_THEME = "followSystem"
|
||||
|
||||
const val PREF_KEY_DYNAMIC_COLORS = "dynamicColors"
|
||||
const val PREF_DEFAULT_DYNAMIC_COLORS = false
|
||||
|
||||
const val PREF_KEY_REPO_UPDATES = "repoUpdates"
|
||||
const val PREF_DEFAULT_REPO_UPDATES = true
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ import androidx.core.content.edit
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import io.ktor.client.engine.ProxyBuilder
|
||||
import io.ktor.client.engine.ProxyConfig
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.asStateFlow
|
||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||
@@ -16,6 +17,7 @@ import mu.KotlinLogging
|
||||
import org.fdroid.database.AppListSortOrder
|
||||
import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_APP_LIST_SORT_ORDER
|
||||
import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_AUTO_UPDATES
|
||||
import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_DYNAMIC_COLORS
|
||||
import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_LAST_UPDATE_CHECK
|
||||
import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_PROXY
|
||||
import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_REPO_UPDATES
|
||||
@@ -23,6 +25,7 @@ import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_SHOW_INCOMPATIBLE
|
||||
import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_THEME
|
||||
import org.fdroid.settings.SettingsConstants.PREF_KEY_APP_LIST_SORT_ORDER
|
||||
import org.fdroid.settings.SettingsConstants.PREF_KEY_AUTO_UPDATES
|
||||
import org.fdroid.settings.SettingsConstants.PREF_KEY_DYNAMIC_COLORS
|
||||
import org.fdroid.settings.SettingsConstants.PREF_KEY_IGNORED_APP_ISSUES
|
||||
import org.fdroid.settings.SettingsConstants.PREF_KEY_LAST_UPDATE_CHECK
|
||||
import org.fdroid.settings.SettingsConstants.PREF_KEY_PROXY
|
||||
@@ -51,6 +54,9 @@ class SettingsManager @Inject constructor(
|
||||
val prefsFlow by lazy { createPreferenceFlow(prefs) }
|
||||
val theme get() = prefs.getString(PREF_KEY_THEME, PREF_DEFAULT_THEME)!!
|
||||
val themeFlow = prefsFlow.map { it.get<String>(PREF_KEY_THEME) }.distinctUntilChanged()
|
||||
val dynamicColorFlow: Flow<Boolean> = prefsFlow.map {
|
||||
it.get<Boolean>(PREF_KEY_DYNAMIC_COLORS) ?: PREF_DEFAULT_DYNAMIC_COLORS
|
||||
}.distinctUntilChanged()
|
||||
val repoUpdates get() = prefs.getBoolean(PREF_KEY_REPO_UPDATES, PREF_DEFAULT_REPO_UPDATES)
|
||||
val repoUpdatesFlow
|
||||
get() = prefsFlow.map { it.get<Boolean>(PREF_KEY_REPO_UPDATES) }.distinctUntilChanged()
|
||||
|
||||
@@ -36,7 +36,6 @@ import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.BuildConfig.VERSION_NAME
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.utils.openUriSafe
|
||||
|
||||
@Composable
|
||||
|
||||
@@ -29,7 +29,6 @@ import androidx.window.core.layout.WindowSizeClass.Companion.WIDTH_DP_MEDIUM_LOW
|
||||
import com.viktormykhailiv.compose.hints.HintHost
|
||||
import org.fdroid.R
|
||||
import org.fdroid.database.AppListSortOrder
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.install.InstallConfirmationState
|
||||
import org.fdroid.ui.apps.AppWithIssueItem
|
||||
import org.fdroid.ui.apps.MyApps
|
||||
@@ -59,7 +58,7 @@ import org.fdroid.ui.settings.SettingsViewModel
|
||||
|
||||
@OptIn(ExperimentalMaterial3AdaptiveApi::class)
|
||||
@Composable
|
||||
fun Main(onListeningForIntent: () -> Unit = {}) {
|
||||
fun Main(dynamicColors: Boolean, onListeningForIntent: () -> Unit = {}) {
|
||||
val backStack = rememberNavBackStack(NavigationKey.Discover)
|
||||
// set up intent routing by listening to new intents from activity
|
||||
val activity = (LocalActivity.current as ComponentActivity)
|
||||
@@ -194,7 +193,6 @@ fun Main(onListeningForIntent: () -> Unit = {}) {
|
||||
(backStack.last() as? NavigationKey.AppDetails)?.packageName
|
||||
} else null,
|
||||
onBackClicked = { backStack.removeLastOrNull() },
|
||||
modifier = Modifier,
|
||||
) { packageName ->
|
||||
backStack.add(NavigationKey.AppDetails(packageName))
|
||||
}
|
||||
@@ -300,7 +298,7 @@ fun Main(onListeningForIntent: () -> Unit = {}) {
|
||||
About { backStack.removeLastOrNull() }
|
||||
}
|
||||
}
|
||||
FDroidContent {
|
||||
FDroidContent(dynamicColors = dynamicColors) {
|
||||
HintHost {
|
||||
NavDisplay(
|
||||
backStack = backStack,
|
||||
|
||||
184
next/src/main/kotlin/org/fdroid/ui/Theme.kt
Normal file
184
next/src/main/kotlin/org/fdroid/ui/Theme.kt
Normal file
@@ -0,0 +1,184 @@
|
||||
package org.fdroid.ui
|
||||
|
||||
import android.os.Build.VERSION.SDK_INT
|
||||
import androidx.compose.foundation.isSystemInDarkTheme
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Surface
|
||||
import androidx.compose.material3.darkColorScheme
|
||||
import androidx.compose.material3.dynamicDarkColorScheme
|
||||
import androidx.compose.material3.dynamicLightColorScheme
|
||||
import androidx.compose.material3.lightColorScheme
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import org.fdroid.fdroid.ui.theme.backgroundLight
|
||||
import org.fdroid.fdroid.ui.theme.errorContainerDark
|
||||
import org.fdroid.fdroid.ui.theme.errorContainerLight
|
||||
import org.fdroid.fdroid.ui.theme.errorDark
|
||||
import org.fdroid.fdroid.ui.theme.errorLight
|
||||
import org.fdroid.fdroid.ui.theme.inverseOnSurfaceDark
|
||||
import org.fdroid.fdroid.ui.theme.inverseOnSurfaceLight
|
||||
import org.fdroid.fdroid.ui.theme.inversePrimaryDark
|
||||
import org.fdroid.fdroid.ui.theme.inversePrimaryLight
|
||||
import org.fdroid.fdroid.ui.theme.inverseSurfaceDark
|
||||
import org.fdroid.fdroid.ui.theme.inverseSurfaceLight
|
||||
import org.fdroid.fdroid.ui.theme.onBackgroundDark
|
||||
import org.fdroid.fdroid.ui.theme.onBackgroundLight
|
||||
import org.fdroid.fdroid.ui.theme.onErrorContainerDark
|
||||
import org.fdroid.fdroid.ui.theme.onErrorContainerLight
|
||||
import org.fdroid.fdroid.ui.theme.onErrorDark
|
||||
import org.fdroid.fdroid.ui.theme.onErrorLight
|
||||
import org.fdroid.fdroid.ui.theme.onPrimaryContainerDark
|
||||
import org.fdroid.fdroid.ui.theme.onPrimaryContainerLight
|
||||
import org.fdroid.fdroid.ui.theme.onPrimaryDark
|
||||
import org.fdroid.fdroid.ui.theme.onPrimaryLight
|
||||
import org.fdroid.fdroid.ui.theme.onSecondaryContainerDark
|
||||
import org.fdroid.fdroid.ui.theme.onSecondaryContainerLight
|
||||
import org.fdroid.fdroid.ui.theme.onSecondaryDark
|
||||
import org.fdroid.fdroid.ui.theme.onSecondaryLight
|
||||
import org.fdroid.fdroid.ui.theme.onSurfaceDark
|
||||
import org.fdroid.fdroid.ui.theme.onSurfaceLight
|
||||
import org.fdroid.fdroid.ui.theme.onSurfaceVariantDark
|
||||
import org.fdroid.fdroid.ui.theme.onSurfaceVariantLight
|
||||
import org.fdroid.fdroid.ui.theme.onTertiaryContainerDark
|
||||
import org.fdroid.fdroid.ui.theme.onTertiaryContainerLight
|
||||
import org.fdroid.fdroid.ui.theme.onTertiaryDark
|
||||
import org.fdroid.fdroid.ui.theme.onTertiaryLight
|
||||
import org.fdroid.fdroid.ui.theme.outlineDark
|
||||
import org.fdroid.fdroid.ui.theme.outlineLight
|
||||
import org.fdroid.fdroid.ui.theme.outlineVariantDark
|
||||
import org.fdroid.fdroid.ui.theme.outlineVariantLight
|
||||
import org.fdroid.fdroid.ui.theme.primaryContainerDark
|
||||
import org.fdroid.fdroid.ui.theme.primaryContainerLight
|
||||
import org.fdroid.fdroid.ui.theme.primaryDark
|
||||
import org.fdroid.fdroid.ui.theme.primaryLight
|
||||
import org.fdroid.fdroid.ui.theme.scrimDark
|
||||
import org.fdroid.fdroid.ui.theme.scrimLight
|
||||
import org.fdroid.fdroid.ui.theme.secondaryContainerDark
|
||||
import org.fdroid.fdroid.ui.theme.secondaryContainerLight
|
||||
import org.fdroid.fdroid.ui.theme.secondaryDark
|
||||
import org.fdroid.fdroid.ui.theme.secondaryLight
|
||||
import org.fdroid.fdroid.ui.theme.surfaceBrightDark
|
||||
import org.fdroid.fdroid.ui.theme.surfaceBrightLight
|
||||
import org.fdroid.fdroid.ui.theme.surfaceContainerDark
|
||||
import org.fdroid.fdroid.ui.theme.surfaceContainerHighDark
|
||||
import org.fdroid.fdroid.ui.theme.surfaceContainerHighLight
|
||||
import org.fdroid.fdroid.ui.theme.surfaceContainerHighestDark
|
||||
import org.fdroid.fdroid.ui.theme.surfaceContainerHighestLight
|
||||
import org.fdroid.fdroid.ui.theme.surfaceContainerLight
|
||||
import org.fdroid.fdroid.ui.theme.surfaceContainerLowDark
|
||||
import org.fdroid.fdroid.ui.theme.surfaceContainerLowLight
|
||||
import org.fdroid.fdroid.ui.theme.surfaceContainerLowestDark
|
||||
import org.fdroid.fdroid.ui.theme.surfaceContainerLowestLight
|
||||
import org.fdroid.fdroid.ui.theme.surfaceDimDark
|
||||
import org.fdroid.fdroid.ui.theme.surfaceDimLight
|
||||
import org.fdroid.fdroid.ui.theme.surfaceLight
|
||||
import org.fdroid.fdroid.ui.theme.surfaceVariantDark
|
||||
import org.fdroid.fdroid.ui.theme.surfaceVariantLight
|
||||
import org.fdroid.fdroid.ui.theme.tertiaryContainerDark
|
||||
import org.fdroid.fdroid.ui.theme.tertiaryContainerLight
|
||||
import org.fdroid.fdroid.ui.theme.tertiaryDark
|
||||
import org.fdroid.fdroid.ui.theme.tertiaryLight
|
||||
|
||||
// The followings are generated by the Material Theme Builder with modifications
|
||||
// https://www.figma.com/community/plugin/1034969338659738588
|
||||
// Unused code are and themes with contrast are removed
|
||||
|
||||
private val lightScheme = lightColorScheme(
|
||||
primary = primaryLight,
|
||||
onPrimary = onPrimaryLight,
|
||||
primaryContainer = primaryContainerLight,
|
||||
onPrimaryContainer = onPrimaryContainerLight,
|
||||
secondary = secondaryLight,
|
||||
onSecondary = onSecondaryLight,
|
||||
secondaryContainer = secondaryContainerLight,
|
||||
onSecondaryContainer = onSecondaryContainerLight,
|
||||
tertiary = tertiaryLight,
|
||||
onTertiary = onTertiaryLight,
|
||||
tertiaryContainer = tertiaryContainerLight,
|
||||
onTertiaryContainer = onTertiaryContainerLight,
|
||||
error = errorLight,
|
||||
onError = onErrorLight,
|
||||
errorContainer = errorContainerLight,
|
||||
onErrorContainer = onErrorContainerLight,
|
||||
background = backgroundLight,
|
||||
onBackground = onBackgroundLight,
|
||||
surface = surfaceLight,
|
||||
onSurface = onSurfaceLight,
|
||||
surfaceVariant = surfaceVariantLight,
|
||||
onSurfaceVariant = onSurfaceVariantLight,
|
||||
outline = outlineLight,
|
||||
outlineVariant = outlineVariantLight,
|
||||
scrim = scrimLight,
|
||||
inverseSurface = inverseSurfaceLight,
|
||||
inverseOnSurface = inverseOnSurfaceLight,
|
||||
inversePrimary = inversePrimaryLight,
|
||||
surfaceDim = surfaceDimLight,
|
||||
surfaceBright = surfaceBrightLight,
|
||||
surfaceContainerLowest = surfaceContainerLowestLight,
|
||||
surfaceContainerLow = surfaceContainerLowLight,
|
||||
surfaceContainer = surfaceContainerLight,
|
||||
surfaceContainerHigh = surfaceContainerHighLight,
|
||||
surfaceContainerHighest = surfaceContainerHighestLight,
|
||||
)
|
||||
|
||||
private val darkScheme = darkColorScheme(
|
||||
primary = primaryDark,
|
||||
onPrimary = onPrimaryDark,
|
||||
primaryContainer = primaryContainerDark,
|
||||
onPrimaryContainer = onPrimaryContainerDark,
|
||||
secondary = secondaryDark,
|
||||
onSecondary = onSecondaryDark,
|
||||
secondaryContainer = secondaryContainerDark,
|
||||
onSecondaryContainer = onSecondaryContainerDark,
|
||||
tertiary = tertiaryDark,
|
||||
onTertiary = onTertiaryDark,
|
||||
tertiaryContainer = tertiaryContainerDark,
|
||||
onTertiaryContainer = onTertiaryContainerDark,
|
||||
error = errorDark,
|
||||
onError = onErrorDark,
|
||||
errorContainer = errorContainerDark,
|
||||
onErrorContainer = onErrorContainerDark,
|
||||
background = Color.Black, // TODO
|
||||
onBackground = onBackgroundDark,
|
||||
surface = Color(0xff1e1e1e), // TODO
|
||||
onSurface = onSurfaceDark,
|
||||
surfaceVariant = surfaceVariantDark,
|
||||
onSurfaceVariant = onSurfaceVariantDark,
|
||||
outline = outlineDark,
|
||||
outlineVariant = outlineVariantDark,
|
||||
scrim = scrimDark,
|
||||
inverseSurface = inverseSurfaceDark,
|
||||
inverseOnSurface = inverseOnSurfaceDark,
|
||||
inversePrimary = inversePrimaryDark,
|
||||
surfaceDim = surfaceDimDark,
|
||||
surfaceBright = surfaceBrightDark,
|
||||
surfaceContainerLowest = surfaceContainerLowestDark,
|
||||
surfaceContainerLow = surfaceContainerLowDark,
|
||||
surfaceContainer = surfaceContainerDark,
|
||||
surfaceContainerHigh = surfaceContainerHighDark,
|
||||
surfaceContainerHighest = surfaceContainerHighestDark,
|
||||
)
|
||||
|
||||
@Composable
|
||||
fun FDroidContent(
|
||||
darkTheme: Boolean = isSystemInDarkTheme(),
|
||||
dynamicColors: Boolean = false,
|
||||
content: @Composable () -> Unit
|
||||
) {
|
||||
val colorScheme = when {
|
||||
SDK_INT >= 31 && dynamicColors && darkTheme -> {
|
||||
dynamicDarkColorScheme(LocalContext.current)
|
||||
}
|
||||
SDK_INT >= 31 && dynamicColors && !darkTheme -> {
|
||||
dynamicLightColorScheme(LocalContext.current)
|
||||
}
|
||||
darkTheme -> darkScheme
|
||||
else -> lightScheme
|
||||
}
|
||||
MaterialTheme(
|
||||
colorScheme = colorScheme,
|
||||
) {
|
||||
Surface(content = content)
|
||||
}
|
||||
}
|
||||
@@ -19,7 +19,7 @@ import androidx.compose.ui.semantics.semantics
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.AsyncShimmerImage
|
||||
import org.fdroid.ui.utils.BadgeIcon
|
||||
import org.fdroid.ui.utils.Names
|
||||
|
||||
@@ -20,8 +20,8 @@ import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.install.InstallState
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.AsyncShimmerImage
|
||||
|
||||
@Composable
|
||||
|
||||
@@ -43,9 +43,9 @@ import androidx.navigation3.runtime.NavKey
|
||||
import org.fdroid.R
|
||||
import org.fdroid.database.AppListSortOrder
|
||||
import org.fdroid.database.AppListSortOrder.LAST_UPDATED
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.install.InstallConfirmationState
|
||||
import org.fdroid.ui.BottomBar
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.NavigationKey
|
||||
import org.fdroid.ui.lists.TopSearchBar
|
||||
import org.fdroid.ui.utils.BigLoadingIndicator
|
||||
|
||||
@@ -25,7 +25,7 @@ import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.database.NotAvailable
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.getMyAppsInfo
|
||||
import org.fdroid.ui.utils.myAppsModel
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.startActivitySafe
|
||||
|
||||
@Composable
|
||||
|
||||
@@ -32,7 +32,7 @@ import androidx.compose.ui.semantics.semantics
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.AsyncShimmerImage
|
||||
import org.fdroid.ui.utils.BadgeIcon
|
||||
import org.fdroid.ui.utils.ExpandIconArrow
|
||||
|
||||
@@ -18,7 +18,7 @@ import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
|
||||
@Composable
|
||||
fun CategoryChip(
|
||||
|
||||
@@ -15,7 +15,7 @@ import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.navigation3.runtime.NavKey
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.NavigationKey
|
||||
import org.fdroid.ui.lists.AppListType
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import kotlinx.coroutines.launch
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.utils.getLogName
|
||||
|
||||
@Composable
|
||||
|
||||
@@ -8,7 +8,7 @@ import androidx.activity.enableEdgeToEdge
|
||||
import mu.KotlinLogging
|
||||
import org.acra.ReportField
|
||||
import org.acra.dialog.CrashReportDialogHelper
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import java.io.IOException
|
||||
|
||||
class CrashActivity : ComponentActivity() {
|
||||
|
||||
@@ -29,7 +29,7 @@ import androidx.compose.ui.semantics.semantics
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
|
||||
@Composable
|
||||
fun CrashContent(
|
||||
|
||||
@@ -23,7 +23,7 @@ import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.AsyncShimmerImage
|
||||
import org.fdroid.ui.utils.ExpandableSection
|
||||
import org.fdroid.ui.utils.testApp
|
||||
|
||||
@@ -62,8 +62,8 @@ import androidx.compose.ui.unit.dp
|
||||
import androidx.core.os.LocaleListCompat
|
||||
import org.fdroid.LocaleChooser.getBestLocale
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.install.InstallState
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.NavigationKey
|
||||
import org.fdroid.ui.categories.CategoryChip
|
||||
import org.fdroid.ui.icons.License
|
||||
|
||||
@@ -57,8 +57,8 @@ import androidx.lifecycle.LifecycleEventObserver
|
||||
import androidx.lifecycle.compose.LocalLifecycleOwner
|
||||
import coil3.compose.AsyncImage
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.install.InstallState
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.AsyncShimmerImage
|
||||
import org.fdroid.ui.utils.InstalledBadge
|
||||
import org.fdroid.ui.utils.asRelativeTimeString
|
||||
|
||||
@@ -20,7 +20,7 @@ import androidx.compose.ui.platform.LocalResources
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.startActivitySafe
|
||||
import org.fdroid.ui.utils.testApp
|
||||
|
||||
|
||||
@@ -25,8 +25,8 @@ import org.fdroid.database.KnownVulnerability
|
||||
import org.fdroid.database.NoCompatibleSigner
|
||||
import org.fdroid.database.NotAvailable
|
||||
import org.fdroid.database.UpdateInOtherRepo
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.index.v2.ANTI_FEATURE_KNOWN_VULNERABILITY
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.testApp
|
||||
|
||||
@Composable
|
||||
|
||||
@@ -34,8 +34,8 @@ import androidx.core.os.LocaleListCompat
|
||||
import io.ktor.client.engine.ProxyConfig
|
||||
import org.fdroid.R
|
||||
import org.fdroid.database.Repository
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.index.IndexFormatVersion.TWO
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.repositories.RepoIcon
|
||||
import org.fdroid.ui.utils.FDroidOutlineButton
|
||||
|
||||
@@ -175,7 +175,7 @@ private fun getRepoString(repo: Repository, isPreferred: Boolean) = buildAnnotat
|
||||
@Preview(uiMode = Configuration.UI_MODE_NIGHT_NO)
|
||||
fun RepoChooserSingleRepoPreview() {
|
||||
val repo1 = Repository(1L, "1", 1L, TWO, "null", 1L, 1, 1L)
|
||||
FDroidContent(pureBlack = true) {
|
||||
FDroidContent {
|
||||
RepoChooser(listOf(repo1), 1L, 1L, null, {}, {})
|
||||
}
|
||||
}
|
||||
@@ -186,7 +186,7 @@ fun RepoChooserPreview() {
|
||||
val repo1 = Repository(1L, "1", 1L, TWO, "null", 1L, 1, 1L)
|
||||
val repo2 = Repository(2L, "2", 2L, TWO, "null", 2L, 2, 2L)
|
||||
val repo3 = Repository(3L, "2", 3L, TWO, "null", 3L, 3, 3L)
|
||||
FDroidContent(pureBlack = true) {
|
||||
FDroidContent {
|
||||
RepoChooser(listOf(repo1, repo2, repo3), 1L, 1L, null, {}, {})
|
||||
}
|
||||
}
|
||||
@@ -197,7 +197,7 @@ fun RepoChooserNightPreview() {
|
||||
val repo1 = Repository(1L, "1", 1L, TWO, "null", 1L, 1, 1L)
|
||||
val repo2 = Repository(2L, "2", 2L, TWO, "null", 2L, 2, 2L)
|
||||
val repo3 = Repository(3L, "2", 3L, TWO, "null", 3L, 3, 3L)
|
||||
FDroidContent(pureBlack = true) {
|
||||
FDroidContent {
|
||||
RepoChooser(listOf(repo1, repo2, repo3), 1L, 2L, null, {}, {})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ import androidx.compose.ui.graphics.vector.rememberVectorPainter
|
||||
import androidx.compose.ui.layout.ContentScale
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.AsyncShimmerImage
|
||||
import org.fdroid.ui.utils.testApp
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.testApp
|
||||
|
||||
@Composable
|
||||
|
||||
@@ -34,7 +34,7 @@ import androidx.compose.ui.unit.dp
|
||||
import kotlinx.coroutines.launch
|
||||
import org.fdroid.R
|
||||
import org.fdroid.database.AppVersion
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.ExpandIconChevron
|
||||
import org.fdroid.ui.utils.ExpandableSection
|
||||
import org.fdroid.ui.utils.FDroidOutlineButton
|
||||
|
||||
@@ -27,7 +27,7 @@ import androidx.compose.ui.semantics.hideFromAccessibility
|
||||
import androidx.compose.ui.semantics.semantics
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.AsyncShimmerImage
|
||||
import org.fdroid.ui.utils.InstalledBadge
|
||||
import org.fdroid.ui.utils.Names
|
||||
|
||||
@@ -35,7 +35,7 @@ import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.NavigationKey
|
||||
import org.fdroid.ui.categories.CategoryChip
|
||||
import org.fdroid.ui.categories.CategoryItem
|
||||
|
||||
@@ -43,8 +43,8 @@ import androidx.compose.ui.unit.dp
|
||||
import androidx.navigation3.runtime.NavKey
|
||||
import kotlinx.coroutines.launch
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.BottomBar
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.MainOverFlowMenu
|
||||
import org.fdroid.ui.NavigationKey
|
||||
import org.fdroid.ui.categories.CategoryList
|
||||
|
||||
@@ -14,7 +14,7 @@ import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.graphics.vector.path
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
|
||||
val License: ImageVector
|
||||
get() {
|
||||
|
||||
@@ -15,7 +15,7 @@ import androidx.compose.ui.graphics.vector.ImageVector.Builder
|
||||
import androidx.compose.ui.graphics.vector.path
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
|
||||
val PackageVariant: ImageVector
|
||||
get() {
|
||||
|
||||
@@ -54,7 +54,7 @@ import com.viktormykhailiv.compose.hints.rememberHintAnchorState
|
||||
import com.viktormykhailiv.compose.hints.rememberHintController
|
||||
import org.fdroid.R
|
||||
import org.fdroid.database.AppListSortOrder
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.BigLoadingIndicator
|
||||
import org.fdroid.ui.utils.OnboardingCard
|
||||
import org.fdroid.ui.utils.getAppListInfo
|
||||
|
||||
@@ -17,7 +17,7 @@ import androidx.compose.ui.semantics.semantics
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.AsyncShimmerImage
|
||||
import org.fdroid.ui.utils.InstalledBadge
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.database.AppListSortOrder
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.categories.CategoryChip
|
||||
import org.fdroid.ui.categories.CategoryItem
|
||||
import org.fdroid.ui.icons.PackageVariant
|
||||
|
||||
@@ -36,7 +36,7 @@ import com.viktormykhailiv.compose.hints.rememberHint
|
||||
import com.viktormykhailiv.compose.hints.rememberHintAnchorState
|
||||
import com.viktormykhailiv.compose.hints.rememberHintController
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.BigLoadingIndicator
|
||||
import org.fdroid.ui.utils.OnboardingCard
|
||||
import org.fdroid.ui.utils.getHintOverlayColor
|
||||
|
||||
@@ -16,7 +16,7 @@ import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.AsyncShimmerImage
|
||||
import org.fdroid.ui.utils.BadgeIcon
|
||||
import org.fdroid.ui.utils.asRelativeTimeString
|
||||
|
||||
@@ -26,13 +26,13 @@ import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.repo.AddRepoError
|
||||
import org.fdroid.repo.AddRepoError.ErrorType.INVALID_FINGERPRINT
|
||||
import org.fdroid.repo.AddRepoError.ErrorType.INVALID_INDEX
|
||||
import org.fdroid.repo.AddRepoError.ErrorType.IO_ERROR
|
||||
import org.fdroid.repo.AddRepoError.ErrorType.IS_ARCHIVE_REPO
|
||||
import org.fdroid.repo.AddRepoError.ErrorType.UNKNOWN_SOURCES_DISALLOWED
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import java.io.IOException
|
||||
|
||||
@Composable
|
||||
|
||||
@@ -67,8 +67,8 @@ import com.journeyapps.barcodescanner.ScanOptions
|
||||
import com.journeyapps.barcodescanner.ScanOptions.QR_CODE
|
||||
import kotlinx.coroutines.launch
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.repo.None
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.ExpandIconArrow
|
||||
import org.fdroid.ui.utils.FDroidButton
|
||||
import org.fdroid.ui.utils.FDroidOutlineButton
|
||||
|
||||
@@ -22,11 +22,11 @@ import io.ktor.client.engine.ProxyConfig
|
||||
import org.fdroid.R
|
||||
import org.fdroid.database.MinimalApp
|
||||
import org.fdroid.download.getImageModel
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.index.v2.FileV2
|
||||
import org.fdroid.repo.FetchResult.IsNewRepoAndNewMirror
|
||||
import org.fdroid.repo.FetchResult.IsNewRepository
|
||||
import org.fdroid.repo.Fetching
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.lists.AppListItem
|
||||
import org.fdroid.ui.lists.AppListRow
|
||||
import org.fdroid.ui.utils.getRepository
|
||||
@@ -139,7 +139,7 @@ private fun Preview() {
|
||||
|
||||
override fun getIcon(localeList: LocaleListCompat): FileV2? = null
|
||||
}
|
||||
FDroidContent(pureBlack = true) {
|
||||
FDroidContent {
|
||||
AddRepoPreviewScreen(
|
||||
Fetching(address, repo, listOf(app1, app2, app3), IsNewRepository),
|
||||
proxyConfig = null,
|
||||
|
||||
@@ -17,7 +17,7 @@ import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
|
||||
@Composable
|
||||
@OptIn(ExperimentalMaterial3ExpressiveApi::class)
|
||||
@@ -40,7 +40,7 @@ fun AddRepoProgressScreen(text: String, modifier: Modifier = Modifier) {
|
||||
@Preview
|
||||
@Composable
|
||||
private fun Preview() {
|
||||
FDroidContent(pureBlack = true) {
|
||||
FDroidContent {
|
||||
AddRepoProgressScreen(stringResource(R.string.repo_state_fetching))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,13 +26,13 @@ import androidx.compose.ui.unit.dp
|
||||
import androidx.core.os.LocaleListCompat
|
||||
import io.ktor.client.engine.ProxyConfig
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.repo.FetchResult.IsExistingMirror
|
||||
import org.fdroid.repo.FetchResult.IsExistingRepository
|
||||
import org.fdroid.repo.FetchResult.IsNewMirror
|
||||
import org.fdroid.repo.FetchResult.IsNewRepoAndNewMirror
|
||||
import org.fdroid.repo.FetchResult.IsNewRepository
|
||||
import org.fdroid.repo.Fetching
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.repositories.RepoIcon
|
||||
import org.fdroid.ui.utils.FDroidButton
|
||||
import org.fdroid.ui.utils.asRelativeTimeString
|
||||
|
||||
@@ -26,7 +26,7 @@ import androidx.compose.ui.semantics.semantics
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.FDroidOutlineButton
|
||||
|
||||
@Composable
|
||||
|
||||
@@ -20,7 +20,7 @@ import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.download.Mirror
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.ExpandableSection
|
||||
|
||||
@Composable
|
||||
|
||||
@@ -38,8 +38,8 @@ import com.viktormykhailiv.compose.hints.rememberHint
|
||||
import com.viktormykhailiv.compose.hints.rememberHintAnchorState
|
||||
import com.viktormykhailiv.compose.hints.rememberHintController
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.repo.RepoUpdateWorker
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.BigLoadingIndicator
|
||||
import org.fdroid.ui.utils.OnboardingCard
|
||||
import org.fdroid.ui.utils.getHintOverlayColor
|
||||
|
||||
@@ -20,7 +20,7 @@ import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.database.Repository
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.ExpandableSection
|
||||
import org.fdroid.ui.utils.getRepoDetailsInfo
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ import androidx.core.os.LocaleListCompat
|
||||
import io.ktor.client.engine.ProxyConfig
|
||||
import org.fdroid.R
|
||||
import org.fdroid.database.Repository
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.repositories.RepoIcon
|
||||
import org.fdroid.ui.utils.FDroidOutlineButton
|
||||
import org.fdroid.ui.utils.asRelativeTimeString
|
||||
|
||||
@@ -17,7 +17,7 @@ import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.database.Repository
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.ExpandableSection
|
||||
import org.fdroid.ui.utils.FDroidOutlineButton
|
||||
import org.fdroid.ui.utils.FDroidSwitchRow
|
||||
|
||||
@@ -29,7 +29,7 @@ import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.download.Mirror
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.ExpandableSection
|
||||
import org.fdroid.ui.utils.FDroidOutlineButton
|
||||
|
||||
|
||||
@@ -24,9 +24,9 @@ import androidx.compose.ui.tooling.preview.Preview
|
||||
import me.zhanghai.compose.preference.ProvidePreferenceLocals
|
||||
import me.zhanghai.compose.preference.textFieldPreference
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_PROXY
|
||||
import org.fdroid.settings.SettingsConstants.PREF_KEY_PROXY
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import java.net.InetSocketAddress
|
||||
|
||||
fun LazyListScope.preferenceProxy(
|
||||
|
||||
@@ -16,6 +16,7 @@ import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material.icons.filled.BrightnessMedium
|
||||
import androidx.compose.material.icons.filled.ColorLens
|
||||
import androidx.compose.material.icons.filled.Notifications
|
||||
import androidx.compose.material.icons.filled.Save
|
||||
import androidx.compose.material.icons.filled.SystemSecurityUpdate
|
||||
@@ -54,15 +55,17 @@ import me.zhanghai.compose.preference.preferenceCategory
|
||||
import me.zhanghai.compose.preference.rememberPreferenceState
|
||||
import me.zhanghai.compose.preference.switchPreference
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_AUTO_UPDATES
|
||||
import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_DYNAMIC_COLORS
|
||||
import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_PROXY
|
||||
import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_REPO_UPDATES
|
||||
import org.fdroid.settings.SettingsConstants.PREF_DEFAULT_THEME
|
||||
import org.fdroid.settings.SettingsConstants.PREF_KEY_AUTO_UPDATES
|
||||
import org.fdroid.settings.SettingsConstants.PREF_KEY_DYNAMIC_COLORS
|
||||
import org.fdroid.settings.SettingsConstants.PREF_KEY_PROXY
|
||||
import org.fdroid.settings.SettingsConstants.PREF_KEY_REPO_UPDATES
|
||||
import org.fdroid.settings.SettingsConstants.PREF_KEY_THEME
|
||||
import org.fdroid.ui.FDroidContent
|
||||
import org.fdroid.ui.utils.asRelativeTimeString
|
||||
import org.fdroid.ui.utils.startActivitySafe
|
||||
import org.fdroid.utils.getLogName
|
||||
@@ -139,6 +142,23 @@ fun Settings(
|
||||
},
|
||||
summary = { Text(text = "${themeToString(it)}") },
|
||||
)
|
||||
if (SDK_INT >= 31) switchPreference(
|
||||
key = PREF_KEY_DYNAMIC_COLORS,
|
||||
defaultValue = PREF_DEFAULT_DYNAMIC_COLORS,
|
||||
title = {
|
||||
Text(stringResource(R.string.pref_dyn_colors_title))
|
||||
},
|
||||
icon = {
|
||||
Icon(
|
||||
imageVector = Icons.Default.ColorLens,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.semantics { hideFromAccessibility() },
|
||||
)
|
||||
},
|
||||
summary = {
|
||||
Text(text = stringResource(R.string.pref_dyn_colors_summary))
|
||||
},
|
||||
)
|
||||
if (SDK_INT >= 33) preference(
|
||||
key = "languages",
|
||||
icon = {
|
||||
|
||||
@@ -25,7 +25,7 @@ import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import coil3.compose.SubcomposeAsyncImage
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
|
||||
@Composable
|
||||
fun AsyncShimmerImage(
|
||||
|
||||
@@ -22,7 +22,7 @@ import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
|
||||
@Composable
|
||||
fun BadgeIcon(
|
||||
|
||||
@@ -10,7 +10,7 @@ import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
|
||||
@Composable
|
||||
@OptIn(ExperimentalMaterial3ExpressiveApi::class)
|
||||
|
||||
@@ -15,7 +15,7 @@ import androidx.compose.ui.semantics.Role
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
|
||||
@Composable
|
||||
fun FDroidSwitchRow(
|
||||
|
||||
@@ -14,7 +14,7 @@ import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
import org.fdroid.ui.FDroidContent
|
||||
|
||||
@Composable
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
|
||||
@@ -126,6 +126,8 @@
|
||||
<string name="repo_force_update">Check for updates</string>
|
||||
|
||||
|
||||
<string name="pref_dyn_colors_title">Use system colors</string>
|
||||
<string name="pref_dyn_colors_summary">Apply dynamic colors from your system settings</string>
|
||||
<string name="pref_language_summary">Opens system language settings</string>
|
||||
<string name="pref_auto_updates_summary_enabled">Download and update apps daily when the device isn\'t being used</string>
|
||||
<string name="pref_auto_updates_summary_disabled">Auto-updates disabled • Apps will need to be updated manually</string>
|
||||
|
||||
Reference in New Issue
Block a user