Don't show help menu on about page

pull/935/head
Alex Baker 4 years ago
parent 544296c98b
commit 1e1ca2d2bd

@ -74,6 +74,8 @@ abstract class InjectingPreferenceFragment : PreferenceFragmentCompat() {
}
}
open fun getMenu() = R.menu.menu_preferences
protected fun recreate() {
activity!!.recreate()
}

@ -1,21 +1,26 @@
package org.tasks.preferences
import android.content.Intent
import android.os.Bundle
import android.view.MenuItem
import androidx.appcompat.widget.Toolbar
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import org.tasks.R
import org.tasks.databinding.ActivityPreferencesBinding
import org.tasks.injection.InjectingPreferenceFragment
import org.tasks.injection.ThemedInjectingAppCompatActivity
import org.tasks.ui.MenuColorizer
private const val EXTRA_TITLE = "extra_title"
abstract class BasePreferences : ThemedInjectingAppCompatActivity(),
PreferenceFragmentCompat.OnPreferenceStartFragmentCallback {
PreferenceFragmentCompat.OnPreferenceStartFragmentCallback, Toolbar.OnMenuItemClickListener {
lateinit var toolbar: Toolbar
var menu: Int = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@ -23,13 +28,16 @@ abstract class BasePreferences : ThemedInjectingAppCompatActivity(),
setContentView(binding.root)
toolbar = binding.toolbar.toolbar
if (savedInstanceState == null) {
val rootPreference = getRootPreference()
supportFragmentManager
.beginTransaction()
.replace(R.id.settings, getRootPreference())
.replace(R.id.settings, rootPreference)
.commit()
toolbar.title = getString(getRootTitle())
setupMenu(rootPreference)
} else {
toolbar.title = savedInstanceState.getCharSequence(EXTRA_TITLE)
setupMenu()
}
supportFragmentManager.addOnBackStackChangedListener {
if (supportFragmentManager.backStackEntryCount == 0) {
@ -37,28 +45,37 @@ abstract class BasePreferences : ThemedInjectingAppCompatActivity(),
}
}
toolbar.navigationIcon =
ContextCompat.getDrawable(this, R.drawable.ic_outline_arrow_back_24px);
ContextCompat.getDrawable(this, R.drawable.ic_outline_arrow_back_24px)
toolbar.setNavigationOnClickListener { onBackPressed() }
setupMenu()
toolbar.setOnMenuItemClickListener(this)
MenuColorizer.colorToolbar(this, toolbar)
}
open fun setupMenu() {}
private fun setupMenu() = setupMenu(supportFragmentManager.findFragmentById(R.id.settings))
private fun setupMenu(fragment: Fragment?) {
this.menu = if (fragment is InjectingPreferenceFragment) fragment.getMenu() else 0
toolbar.menu.clear()
if (menu > 0) {
toolbar.inflateMenu(menu)
}
}
abstract fun getRootTitle(): Int
abstract fun getRootPreference(): PreferenceFragmentCompat
abstract fun getRootPreference(): InjectingPreferenceFragment
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putCharSequence(EXTRA_TITLE, toolbar.title)
}
override fun onSupportNavigateUp(): Boolean {
override fun onBackPressed() {
if (supportFragmentManager.popBackStackImmediate()) {
return true
setupMenu()
} else {
super.onBackPressed()
}
return super.onSupportNavigateUp()
}
override fun onPreferenceStartFragment(
@ -78,6 +95,16 @@ abstract class BasePreferences : ThemedInjectingAppCompatActivity(),
.addToBackStack(null)
.commit()
toolbar.title = pref.title
setupMenu(fragment)
return true
}
override fun onMenuItemClick(item: MenuItem?): Boolean {
return if (item?.itemId == R.id.menu_help_and_feedback) {
startActivity(Intent(this, HelpAndFeedback::class.java))
true
} else {
false
}
}
}

@ -1,18 +1,10 @@
package org.tasks.preferences
import android.content.Intent
import android.view.MenuItem
import androidx.appcompat.widget.Toolbar
import org.tasks.R
import org.tasks.injection.ActivityComponent
import org.tasks.preferences.fragments.MainSettingsFragment
class MainPreferences : BasePreferences(), Toolbar.OnMenuItemClickListener {
override fun setupMenu() {
toolbar.inflateMenu(R.menu.menu_preferences)
toolbar.setOnMenuItemClickListener(this)
}
class MainPreferences : BasePreferences() {
override fun getRootTitle() = R.string.TLA_menu_settings
@ -21,13 +13,4 @@ class MainPreferences : BasePreferences(), Toolbar.OnMenuItemClickListener {
override fun inject(component: ActivityComponent) {
component.inject(this)
}
override fun onMenuItemClick(item: MenuItem?): Boolean {
return if (item?.itemId == R.id.menu_help_and_feedback) {
startActivity(Intent(this, HelpAndFeedback::class.java))
true
} else {
false
}
}
}

@ -68,4 +68,6 @@ class HelpAndFeedback : InjectingPreferenceFragment() {
override fun inject(component: FragmentComponent) {
component.inject(this);
}
override fun getMenu() = 0
}
Loading…
Cancel
Save