Update: Use fully composables for Prefs

This commit is contained in:
machiav3lli 2022-09-16 14:38:39 +02:00
parent bef33daab3
commit 7bc334c182

View File

@ -3,26 +3,35 @@ package com.machiav3lli.fdroid.ui.activities
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.inputmethod.InputMethodManager import androidx.activity.compose.setContent
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.compose.animation.ExperimentalAnimationApi
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.stringResource
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import com.google.accompanist.navigation.animation.rememberAnimatedNavController
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.setupActionBarWithNavController
import androidx.navigation.ui.setupWithNavController
import com.google.android.material.appbar.MaterialToolbar
import com.machiav3lli.fdroid.BuildConfig import com.machiav3lli.fdroid.BuildConfig
import com.machiav3lli.fdroid.ContextWrapperX import com.machiav3lli.fdroid.ContextWrapperX
import com.machiav3lli.fdroid.MainApplication import com.machiav3lli.fdroid.MainApplication
import com.machiav3lli.fdroid.NAV_PREFS
import com.machiav3lli.fdroid.R import com.machiav3lli.fdroid.R
import com.machiav3lli.fdroid.databinding.ActivityPrefsXBinding import com.machiav3lli.fdroid.content.Preferences
import com.machiav3lli.fdroid.installer.AppInstaller import com.machiav3lli.fdroid.installer.AppInstaller
import com.machiav3lli.fdroid.service.Connection import com.machiav3lli.fdroid.service.Connection
import com.machiav3lli.fdroid.service.SyncService import com.machiav3lli.fdroid.service.SyncService
import com.machiav3lli.fdroid.ui.fragments.MainNavFragmentX import com.machiav3lli.fdroid.ui.compose.components.TopBar
import com.machiav3lli.fdroid.ui.fragments.Source import com.machiav3lli.fdroid.ui.compose.theme.AppTheme
import com.machiav3lli.fdroid.ui.navigation.BottomNavBar
import com.machiav3lli.fdroid.ui.navigation.PrefsNavHost
import com.machiav3lli.fdroid.utility.extension.text.nullIfEmpty import com.machiav3lli.fdroid.utility.extension.text.nullIfEmpty
import com.machiav3lli.fdroid.utility.isDarkTheme
import com.machiav3lli.fdroid.utility.setCustomTheme import com.machiav3lli.fdroid.utility.setCustomTheme
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -70,7 +79,29 @@ class PrefsActivityX : AppCompatActivity() {
if (savedInstanceState == null && (intent.flags and Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) == 0) { if (savedInstanceState == null && (intent.flags and Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) == 0) {
handleIntent(intent) handleIntent(intent)
} }
setContentView(binding.root) setContent {
AppTheme(
darkTheme = when (Preferences[Preferences.Key.Theme]) {
is Preferences.Theme.System -> isSystemInDarkTheme()
is Preferences.Theme.AmoledSystem -> isSystemInDarkTheme()
else -> isDarkTheme
}
) {
val navController = rememberAnimatedNavController()
Scaffold(
containerColor = Color.Transparent,
contentColor = MaterialTheme.colorScheme.onBackground,
bottomBar = { BottomNavBar(page = NAV_PREFS, navController = navController) },
topBar = { TopBar(title = stringResource(id = R.string.application_name)) }
) { paddingValues ->
PrefsNavHost(
modifier = Modifier.padding(paddingValues),
navController = navController
)
}
}
}
} }
override fun onStart() { override fun onStart() {