From 67220f78b66cc07d83cdaeaeed53468abb352e82 Mon Sep 17 00:00:00 2001 From: Patryk Michalik Date: Mon, 1 Mar 2021 21:51:40 +0100 Subject: [PATCH] Dynamically update Top App Bar in Settings --- lawnchair/res/drawable/ic_back.xml | 14 ++++++++++++++ lawnchair/res/drawable/ic_general.xml | 14 ++++++++++++++ lawnchair/res/drawable/ic_home_screen.xml | 19 +++++++++++++++++++ lawnchair/res/xml/general_settings.xml | 1 - lawnchair/res/xml/home_screen_settings.xml | 9 +++------ lawnchair/res/xml/settings.xml | 4 +++- .../lawnchair/settings/SettingsActivity.kt | 10 ++++++++++ 7 files changed, 63 insertions(+), 8 deletions(-) create mode 100644 lawnchair/res/drawable/ic_back.xml create mode 100644 lawnchair/res/drawable/ic_general.xml create mode 100644 lawnchair/res/drawable/ic_home_screen.xml diff --git a/lawnchair/res/drawable/ic_back.xml b/lawnchair/res/drawable/ic_back.xml new file mode 100644 index 0000000000..eeb51e457e --- /dev/null +++ b/lawnchair/res/drawable/ic_back.xml @@ -0,0 +1,14 @@ + + + diff --git a/lawnchair/res/drawable/ic_general.xml b/lawnchair/res/drawable/ic_general.xml new file mode 100644 index 0000000000..4154b0cf69 --- /dev/null +++ b/lawnchair/res/drawable/ic_general.xml @@ -0,0 +1,14 @@ + + + diff --git a/lawnchair/res/drawable/ic_home_screen.xml b/lawnchair/res/drawable/ic_home_screen.xml new file mode 100644 index 0000000000..638e242edc --- /dev/null +++ b/lawnchair/res/drawable/ic_home_screen.xml @@ -0,0 +1,19 @@ + + + + diff --git a/lawnchair/res/xml/general_settings.xml b/lawnchair/res/xml/general_settings.xml index 9b42a8bfec..9819459a04 100644 --- a/lawnchair/res/xml/general_settings.xml +++ b/lawnchair/res/xml/general_settings.xml @@ -7,7 +7,6 @@ android:key="pref_icon_badging" android:title="@string/notification_dots_title" android:persistent="false" - app:iconSpaceReserved="false" android:widgetLayout="@layout/notification_pref_warning" > + android:persistent="true" /> + android:persistent="true" /> + android:persistent="true" /> \ No newline at end of file diff --git a/lawnchair/res/xml/settings.xml b/lawnchair/res/xml/settings.xml index 36f08e5f59..a24fce9bd1 100644 --- a/lawnchair/res/xml/settings.xml +++ b/lawnchair/res/xml/settings.xml @@ -5,11 +5,13 @@ \ No newline at end of file diff --git a/lawnchair/src/ch/deletescape/lawnchair/settings/SettingsActivity.kt b/lawnchair/src/ch/deletescape/lawnchair/settings/SettingsActivity.kt index c11b30a495..dd74bb3b82 100644 --- a/lawnchair/src/ch/deletescape/lawnchair/settings/SettingsActivity.kt +++ b/lawnchair/src/ch/deletescape/lawnchair/settings/SettingsActivity.kt @@ -3,6 +3,7 @@ package ch.deletescape.lawnchair.settings import android.os.Bundle import android.view.View import androidx.appcompat.app.AppCompatActivity +import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import androidx.preference.Preference @@ -12,9 +13,15 @@ import com.google.android.material.appbar.MaterialToolbar class SettingsActivity : AppCompatActivity(), PreferenceFragmentCompat.OnPreferenceStartFragmentCallback { private lateinit var topAppBar: MaterialToolbar + private val context = this private val fragmentListener = object: FragmentManager.FragmentLifecycleCallbacks() { override fun onFragmentViewCreated(fm: FragmentManager, fragment: Fragment, v: View, savedInstanceState: Bundle?) { + if (fragment !is SettingsFragment && topAppBar.navigationIcon == null) { + topAppBar.navigationIcon = ContextCompat.getDrawable(context, R.drawable.ic_back) + } else { + topAppBar.navigationIcon = null + } topAppBar.title = (fragment as? TitledFragment)?.title } } @@ -23,6 +30,9 @@ class SettingsActivity : AppCompatActivity(), PreferenceFragmentCompat.OnPrefere super.onCreate(savedInstanceState) setContentView(R.layout.settings_activity) topAppBar = findViewById(R.id.top_app_bar) + topAppBar.setNavigationOnClickListener { + supportFragmentManager.popBackStack() + } supportFragmentManager.registerFragmentLifecycleCallbacks(fragmentListener, false) supportFragmentManager .beginTransaction()