1
0
Fork 0
forked from suyu/suyu

android: Use collapsing toolbar layout in settings

This commit is contained in:
Charles Lombardo 2023-05-22 13:52:04 -04:00 committed by bunnei
parent b31ab11842
commit aa8a48e94c
3 changed files with 26 additions and 11 deletions

View file

@ -190,6 +190,10 @@ class SettingsActivity : AppCompatActivity(), SettingsActivityView {
finish() finish()
} }
fun setToolbarTitle(title: String) {
binding.toolbarSettingsLayout.title = title
}
private val settingsFragment: SettingsFragment? private val settingsFragment: SettingsFragment?
get() = supportFragmentManager.findFragmentByTag(FRAGMENT_TAG) as SettingsFragment? get() = supportFragmentManager.findFragmentByTag(FRAGMENT_TAG) as SettingsFragment?

View file

@ -54,7 +54,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
fun loadSettingsList() { fun loadSettingsList() {
if (!TextUtils.isEmpty(gameId)) { if (!TextUtils.isEmpty(gameId)) {
settingsActivity.title = "Game Settings: $gameId" settingsActivity.setToolbarTitle("Game Settings: $gameId")
} }
val sl = ArrayList<SettingsItem>() val sl = ArrayList<SettingsItem>()
if (menuTag == null) { if (menuTag == null) {
@ -77,7 +77,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
} }
private fun addConfigSettings(sl: ArrayList<SettingsItem>) { private fun addConfigSettings(sl: ArrayList<SettingsItem>) {
settingsActivity.setTitle(R.string.preferences_settings) settingsActivity.setToolbarTitle(settingsActivity.getString(R.string.preferences_settings))
sl.apply { sl.apply {
add( add(
SubmenuSetting( SubmenuSetting(
@ -121,7 +121,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
} }
private fun addGeneralSettings(sl: ArrayList<SettingsItem>) { private fun addGeneralSettings(sl: ArrayList<SettingsItem>) {
settingsActivity.setTitle(R.string.preferences_general) settingsActivity.setToolbarTitle(settingsActivity.getString(R.string.preferences_general))
sl.apply { sl.apply {
add( add(
SwitchSetting( SwitchSetting(
@ -159,7 +159,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
} }
private fun addSystemSettings(sl: ArrayList<SettingsItem>) { private fun addSystemSettings(sl: ArrayList<SettingsItem>) {
settingsActivity.setTitle(R.string.preferences_system) settingsActivity.setToolbarTitle(settingsActivity.getString(R.string.preferences_system))
sl.apply { sl.apply {
add( add(
SwitchSetting( SwitchSetting(
@ -214,7 +214,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
} }
private fun addGraphicsSettings(sl: ArrayList<SettingsItem>) { private fun addGraphicsSettings(sl: ArrayList<SettingsItem>) {
settingsActivity.setTitle(R.string.preferences_graphics) settingsActivity.setToolbarTitle(settingsActivity.getString(R.string.preferences_graphics))
sl.apply { sl.apply {
add( add(
SingleChoiceSetting( SingleChoiceSetting(
@ -322,7 +322,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
} }
private fun addAudioSettings(sl: ArrayList<SettingsItem>) { private fun addAudioSettings(sl: ArrayList<SettingsItem>) {
settingsActivity.setTitle(R.string.preferences_audio) settingsActivity.setToolbarTitle(settingsActivity.getString(R.string.preferences_audio))
sl.add( sl.add(
SliderSetting( SliderSetting(
IntSetting.AUDIO_VOLUME, IntSetting.AUDIO_VOLUME,
@ -338,7 +338,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
} }
private fun addThemeSettings(sl: ArrayList<SettingsItem>) { private fun addThemeSettings(sl: ArrayList<SettingsItem>) {
settingsActivity.setTitle(R.string.preferences_theme) settingsActivity.setToolbarTitle(settingsActivity.getString(R.string.preferences_theme))
sl.apply { sl.apply {
val theme: AbstractIntSetting = object : AbstractIntSetting { val theme: AbstractIntSetting = object : AbstractIntSetting {
override var int: Int override var int: Int

View file

@ -11,12 +11,23 @@
android:id="@+id/appbar_settings" android:id="@+id/appbar_settings"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fitsSystemWindows="true"> android:fitsSystemWindows="true"
app:elevation="0dp">
<androidx.appcompat.widget.Toolbar <com.google.android.material.appbar.CollapsingToolbarLayout
style="?attr/collapsingToolbarLayoutMediumStyle"
android:id="@+id/toolbar_settings_layout"
android:layout_width="match_parent"
android:layout_height="?attr/collapsingToolbarLayoutMediumSize"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar_settings" android:id="@+id/toolbar_settings"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" /> android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin" />
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>