mirror of
https://github.com/revanced/revanced-manager
synced 2024-05-14 13:56:57 +02:00
feat: advanced settings page with device info (#51)
This commit is contained in:
parent
400163b820
commit
453f4da8ec
@ -11,6 +11,9 @@ sealed interface SettingsDestination : Parcelable {
|
|||||||
@Parcelize
|
@Parcelize
|
||||||
object General : SettingsDestination
|
object General : SettingsDestination
|
||||||
|
|
||||||
|
@Parcelize
|
||||||
|
object Advanced : SettingsDestination
|
||||||
|
|
||||||
@Parcelize
|
@Parcelize
|
||||||
object Updates : SettingsDestination
|
object Updates : SettingsDestination
|
||||||
|
|
||||||
|
@ -81,6 +81,11 @@ fun SettingsScreen(
|
|||||||
R.string.import_export_description,
|
R.string.import_export_description,
|
||||||
Icons.Outlined.SwapVert
|
Icons.Outlined.SwapVert
|
||||||
) to SettingsDestination.ImportExport,
|
) to SettingsDestination.ImportExport,
|
||||||
|
Triple(
|
||||||
|
R.string.advanced,
|
||||||
|
R.string.advanced_description,
|
||||||
|
Icons.Outlined.Tune
|
||||||
|
) to SettingsDestination.Advanced,
|
||||||
Triple(
|
Triple(
|
||||||
R.string.about,
|
R.string.about,
|
||||||
R.string.about_description,
|
R.string.about_description,
|
||||||
@ -99,6 +104,10 @@ fun SettingsScreen(
|
|||||||
viewModel = viewModel
|
viewModel = viewModel
|
||||||
)
|
)
|
||||||
|
|
||||||
|
is SettingsDestination.Advanced -> AdvancedSettingsScreen(
|
||||||
|
onBackClick = { navController.pop() }
|
||||||
|
)
|
||||||
|
|
||||||
is SettingsDestination.Updates -> UpdatesSettingsScreen(
|
is SettingsDestination.Updates -> UpdatesSettingsScreen(
|
||||||
onBackClick = { navController.pop() },
|
onBackClick = { navController.pop() },
|
||||||
onChangelogClick = { navController.navigate(SettingsDestination.UpdateChangelog) },
|
onChangelogClick = { navController.navigate(SettingsDestination.UpdateChangelog) },
|
||||||
|
@ -0,0 +1,65 @@
|
|||||||
|
package app.revanced.manager.ui.screen.settings
|
||||||
|
|
||||||
|
import android.app.ActivityManager
|
||||||
|
import android.content.Context
|
||||||
|
import android.os.Build
|
||||||
|
import androidx.compose.foundation.layout.Column
|
||||||
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
|
import androidx.compose.foundation.layout.padding
|
||||||
|
import androidx.compose.foundation.rememberScrollState
|
||||||
|
import androidx.compose.foundation.verticalScroll
|
||||||
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||||
|
import androidx.compose.material3.ListItem
|
||||||
|
import androidx.compose.material3.Scaffold
|
||||||
|
import androidx.compose.material3.Text
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.remember
|
||||||
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.platform.LocalContext
|
||||||
|
import androidx.compose.ui.res.stringResource
|
||||||
|
import app.revanced.manager.R
|
||||||
|
import app.revanced.manager.ui.component.AppTopBar
|
||||||
|
import app.revanced.manager.ui.component.GroupHeader
|
||||||
|
|
||||||
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
|
@Composable
|
||||||
|
fun AdvancedSettingsScreen(onBackClick: () -> Unit) {
|
||||||
|
val context = LocalContext.current
|
||||||
|
val memoryLimit = remember {
|
||||||
|
val activityManager = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
|
||||||
|
context.getString(R.string.device_memory_limit_format, activityManager.memoryClass, activityManager.largeMemoryClass)
|
||||||
|
}
|
||||||
|
Scaffold(
|
||||||
|
topBar = {
|
||||||
|
AppTopBar(
|
||||||
|
title = stringResource(R.string.advanced),
|
||||||
|
onBackClick = onBackClick
|
||||||
|
)
|
||||||
|
}
|
||||||
|
) { paddingValues ->
|
||||||
|
Column(
|
||||||
|
modifier = Modifier
|
||||||
|
.fillMaxSize()
|
||||||
|
.padding(paddingValues)
|
||||||
|
.verticalScroll(rememberScrollState())
|
||||||
|
) {
|
||||||
|
GroupHeader(stringResource(R.string.device))
|
||||||
|
ListItem(
|
||||||
|
headlineContent = { Text(stringResource(R.string.device_model)) },
|
||||||
|
supportingContent = { Text(Build.MODEL) }
|
||||||
|
)
|
||||||
|
ListItem(
|
||||||
|
headlineContent = { Text(stringResource(R.string.device_android_version)) },
|
||||||
|
supportingContent = { Text(Build.VERSION.RELEASE) }
|
||||||
|
)
|
||||||
|
ListItem(
|
||||||
|
headlineContent = { Text(stringResource(R.string.device_architectures)) },
|
||||||
|
supportingContent = { Text(Build.SUPPORTED_ABIS.joinToString(", ")) }
|
||||||
|
)
|
||||||
|
ListItem(
|
||||||
|
headlineContent = { Text(stringResource(R.string.device_memory_limit)) },
|
||||||
|
supportingContent = { Text(memoryLimit) }
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,8 @@
|
|||||||
package app.revanced.manager.util
|
package app.revanced.manager.util
|
||||||
|
|
||||||
|
import android.app.Activity
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.content.ContextWrapper
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.pm.PackageManager.NameNotFoundException
|
import android.content.pm.PackageManager.NameNotFoundException
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
|
@ -13,6 +13,8 @@
|
|||||||
|
|
||||||
<string name="general">General</string>
|
<string name="general">General</string>
|
||||||
<string name="general_description">General settings</string>
|
<string name="general_description">General settings</string>
|
||||||
|
<string name="advanced">Advanced</string>
|
||||||
|
<string name="advanced_description">Advanced settings</string>
|
||||||
<string name="updates">Updates</string>
|
<string name="updates">Updates</string>
|
||||||
<string name="updates_description">Updates for ReVanced Manager</string>
|
<string name="updates_description">Updates for ReVanced Manager</string>
|
||||||
<string name="opensource_licenses">Open source licenses</string>
|
<string name="opensource_licenses">Open source licenses</string>
|
||||||
@ -69,6 +71,12 @@
|
|||||||
<string name="light">Light</string>
|
<string name="light">Light</string>
|
||||||
<string name="dark">Dark</string>
|
<string name="dark">Dark</string>
|
||||||
<string name="appearance">Appearance</string>
|
<string name="appearance">Appearance</string>
|
||||||
|
<string name="device">Device</string>
|
||||||
|
<string name="device_android_version">Android version</string>
|
||||||
|
<string name="device_model">Model</string>
|
||||||
|
<string name="device_architectures">CPU Architectures</string>
|
||||||
|
<string name="device_memory_limit">Memory limits</string>
|
||||||
|
<string name="device_memory_limit_format">Normal: %1$d MB, Large: %2$d MB</string>
|
||||||
<string name="patching">Patching</string>
|
<string name="patching">Patching</string>
|
||||||
<string name="signing">Signing</string>
|
<string name="signing">Signing</string>
|
||||||
<string name="storage">Storage</string>
|
<string name="storage">Storage</string>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user