diff --git a/src/main/kotlin/com/machiav3lli/fdroid/ui/activities/PrefsActivityX.kt b/src/main/kotlin/com/machiav3lli/fdroid/ui/activities/PrefsActivityX.kt index 0d9ce273..8fd2f3d7 100644 --- a/src/main/kotlin/com/machiav3lli/fdroid/ui/activities/PrefsActivityX.kt +++ b/src/main/kotlin/com/machiav3lli/fdroid/ui/activities/PrefsActivityX.kt @@ -11,6 +11,10 @@ import androidx.compose.foundation.layout.padding import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold +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.res.stringResource @@ -29,7 +33,9 @@ import com.machiav3lli.fdroid.service.SyncService import com.machiav3lli.fdroid.ui.compose.components.TopBar import com.machiav3lli.fdroid.ui.compose.theme.AppTheme import com.machiav3lli.fdroid.ui.navigation.BottomNavBar +import com.machiav3lli.fdroid.ui.navigation.NavItem import com.machiav3lli.fdroid.ui.navigation.PrefsNavHost +import com.machiav3lli.fdroid.utility.destinationToItem import com.machiav3lli.fdroid.utility.extension.text.nullIfEmpty import com.machiav3lli.fdroid.utility.isDarkTheme import com.machiav3lli.fdroid.utility.setCustomTheme @@ -71,12 +77,25 @@ class PrefsActivityX : AppCompatActivity() { } ) { val navController = rememberAnimatedNavController() + var pageTitle: Int? by remember { + mutableStateOf(NavItem.Prefs.title) + } + + navController.addOnDestinationChangedListener { _, destination, _ -> + pageTitle = destination.destinationToItem()?.title + } Scaffold( containerColor = Color.Transparent, contentColor = MaterialTheme.colorScheme.onBackground, bottomBar = { BottomNavBar(page = NAV_PREFS, navController = navController) }, - topBar = { TopBar(title = stringResource(id = R.string.application_name)) } + topBar = { + TopBar( + title = stringResource( + id = pageTitle ?: NavItem.Prefs.title + ) + ) + } ) { paddingValues -> PrefsNavHost( modifier = Modifier.padding(paddingValues), diff --git a/src/main/kotlin/com/machiav3lli/fdroid/utility/Utils.kt b/src/main/kotlin/com/machiav3lli/fdroid/utility/Utils.kt index 06144ed7..b6be56e8 100644 --- a/src/main/kotlin/com/machiav3lli/fdroid/utility/Utils.kt +++ b/src/main/kotlin/com/machiav3lli/fdroid/utility/Utils.kt @@ -526,6 +526,17 @@ fun Spanned.toAnnotatedString(): AnnotatedString = buildAnnotatedString { } } +fun NavDestination.destinationToItem(): NavItem? = listOf( + NavItem.Explore, + NavItem.Latest, + NavItem.Installed, + NavItem.Prefs, + NavItem.PersonalPrefs, + NavItem.UpdatesPrefs, + NavItem.ReposPrefs, + NavItem.OtherPrefs +).find { this.route == it.destination } + fun Activity.setCustomTheme() { if (!isDynamicColorsTheme) setTheme(Preferences[Preferences.Key.Theme].getResId(resources.configuration)) else {