Back button now returns to start screen. Also fix #356
This commit is contained in:
@@ -16,6 +16,15 @@ class SettingsActivity : BaseActivity(),
|
||||
|
||||
private lateinit var replaceFragmentStrategy: ReplaceFragment
|
||||
|
||||
/**
|
||||
* Flags to send to the parent activity for reacting to preference changes.
|
||||
*/
|
||||
var parentFlags = 0
|
||||
set(value) {
|
||||
field = field or value
|
||||
setResult(field)
|
||||
}
|
||||
|
||||
override fun onCreate(savedState: Bundle?) {
|
||||
setAppTheme()
|
||||
super.onCreate(savedState)
|
||||
@@ -29,10 +38,16 @@ class SettingsActivity : BaseActivity(),
|
||||
supportFragmentManager.beginTransaction()
|
||||
.add(R.id.settings_content, SettingsFragment.newInstance(null), "Settings")
|
||||
.commit()
|
||||
} else {
|
||||
parentFlags = savedState.getInt(SettingsActivity::parentFlags.name)
|
||||
}
|
||||
|
||||
setupToolbar(toolbar, backNavigation = false)
|
||||
}
|
||||
|
||||
override fun onSaveInstanceState(outState: Bundle) {
|
||||
outState.putInt(SettingsActivity::parentFlags.name, parentFlags)
|
||||
super.onSaveInstanceState(outState)
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
@@ -60,4 +75,9 @@ class SettingsActivity : BaseActivity(),
|
||||
return true
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val FLAG_THEME_CHANGED = 0x1
|
||||
const val FLAG_DATABASE_CLEARED = 0x2
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -97,6 +97,7 @@ class SettingsAdvancedFragment : SettingsFragment() {
|
||||
.positiveText(android.R.string.yes)
|
||||
.negativeText(android.R.string.no)
|
||||
.onPositive { dialog, which ->
|
||||
(activity as SettingsActivity).parentFlags = SettingsActivity.FLAG_DATABASE_CLEARED
|
||||
db.deleteMangasNotInLibrary().executeAsBlocking()
|
||||
activity.toast(R.string.clear_database_completed)
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
package eu.kanade.tachiyomi.ui.setting
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.support.v4.app.TaskStackBuilder
|
||||
import android.support.v7.preference.Preference
|
||||
import android.support.v7.preference.PreferenceFragmentCompat
|
||||
import android.support.v7.preference.XpPreferenceFragment
|
||||
@@ -67,16 +65,14 @@ class SettingsGeneralFragment : SettingsFragment(),
|
||||
}
|
||||
|
||||
themePreference.setOnPreferenceChangeListener { preference, newValue ->
|
||||
// Rebuild activity's to apply themes.
|
||||
TaskStackBuilder.create(context)
|
||||
.addNextIntentWithParentStack(Intent(activity.intent))
|
||||
.startActivities()
|
||||
(activity as SettingsActivity).parentFlags = SettingsActivity.FLAG_THEME_CHANGED
|
||||
activity.recreate()
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
override fun onPreferenceDisplayDialog(p0: PreferenceFragmentCompat?, p: Preference): Boolean {
|
||||
if (p.key == getString(R.string.pref_library_columns_dialog_key)) {
|
||||
if (p === columnsPreference) {
|
||||
val fragment = LibraryColumnsDialog.newInstance(p)
|
||||
fragment.setTargetFragment(this, 0)
|
||||
fragment.show(fragmentManager, null)
|
||||
|
||||
Reference in New Issue
Block a user