From 6be8e2de3c6fbde91849165f889f2511be9f178d Mon Sep 17 00:00:00 2001 From: arkon <eugcheung94@gmail.com> Date: Sat, 13 Mar 2021 16:09:12 -0500 Subject: [PATCH] Move clear history from advanced settings to history screen menu (closes #4613) (cherry picked from commit b6b78994d8203a94f27d8a834bcb31d2f898d44a) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt --- .../ui/recent/history/HistoryController.kt | 37 +++++++++++++++++++ .../ui/setting/SettingsAdvancedController.kt | 26 ------------- app/src/main/res/menu/history.xml | 11 +++++- app/src/main/res/values/strings.xml | 7 ++-- 4 files changed, 49 insertions(+), 32 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/recent/history/HistoryController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/recent/history/HistoryController.kt index 2db2a53e5..ce36be7a5 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/recent/history/HistoryController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/recent/history/HistoryController.kt @@ -1,18 +1,24 @@ package eu.kanade.tachiyomi.ui.recent.history +import android.app.Dialog +import android.os.Bundle import android.view.LayoutInflater import android.view.Menu import android.view.MenuInflater +import android.view.MenuItem import android.view.View import android.view.ViewGroup import androidx.appcompat.widget.SearchView import androidx.recyclerview.widget.LinearLayoutManager +import com.afollestad.materialdialogs.MaterialDialog import eu.davidea.flexibleadapter.FlexibleAdapter import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.backup.BackupRestoreService +import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.History import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.databinding.HistoryControllerBinding +import eu.kanade.tachiyomi.ui.base.controller.DialogController import eu.kanade.tachiyomi.ui.base.controller.NoToolbarElevationController import eu.kanade.tachiyomi.ui.base.controller.NucleusController import eu.kanade.tachiyomi.ui.base.controller.RootController @@ -25,6 +31,7 @@ import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import reactivecircus.flowbinding.appcompat.queryTextChanges +import uy.kohesive.injekt.injectLazy /** * Fragment that shows recently read manga. @@ -42,6 +49,8 @@ class HistoryController : HistoryAdapter.OnItemClickListener, RemoveHistoryDialog.Listener { + private val db: DatabaseHelper by injectLazy() + /** * Adapter containing the recent manga. */ @@ -196,4 +205,32 @@ class HistoryController : onExpand = { invalidateMenuOnExpand() } ) } + + override fun onOptionsItemSelected(item: MenuItem): Boolean { + when (item.itemId) { + R.id.action_clear_history -> { + val ctrl = ClearHistoryDialogController() + ctrl.targetController = this@HistoryController + ctrl.showDialog(router) + } + } + + return super.onOptionsItemSelected(item) + } + + class ClearHistoryDialogController : DialogController() { + override fun onCreateDialog(savedViewState: Bundle?): Dialog { + return MaterialDialog(activity!!) + .message(R.string.clear_history_confirmation) + .positiveButton(android.R.string.ok) { + (targetController as? HistoryController)?.clearHistory() + } + .negativeButton(android.R.string.cancel) + } + } + + private fun clearHistory() { + db.deleteHistory().executeAsBlocking() + activity?.toast(R.string.clear_history_completed) + } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt index 92fd72600..20937114f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt @@ -126,16 +126,6 @@ class SettingsAdvancedController : SettingsController() { ctrl.showDialog(router) } } - preference { - titleRes = R.string.pref_clear_history - summaryRes = R.string.pref_clear_history_summary - - onClick { - val ctrl = ClearHistoryDialogController() - ctrl.targetController = this@SettingsAdvancedController - ctrl.showDialog(router) - } - } } preferenceCategory { @@ -425,22 +415,6 @@ class SettingsAdvancedController : SettingsController() { } } - class ClearHistoryDialogController : DialogController() { - override fun onCreateDialog(savedViewState: Bundle?): Dialog { - return MaterialDialog(activity!!) - .message(R.string.clear_history_confirmation) - .positiveButton(android.R.string.ok) { - (targetController as? SettingsAdvancedController)?.clearHistory() - } - .negativeButton(android.R.string.cancel) - } - } - - private fun clearHistory() { - db.deleteHistory().executeAsBlocking() - activity?.toast(R.string.clear_history_completed) - } - private fun clearDatabase(keepReadManga: Boolean) { // SY --> if (keepReadManga) { diff --git a/app/src/main/res/menu/history.xml b/app/src/main/res/menu/history.xml index b84ac7836..3c5d65bae 100644 --- a/app/src/main/res/menu/history.xml +++ b/app/src/main/res/menu/history.xml @@ -1,5 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> -<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto"> + <item android:id="@+id/action_search" android:icon="@drawable/ic_search_24dp" @@ -8,4 +10,9 @@ app:iconTint="?attr/colorOnPrimary" app:showAsAction="ifRoom|collapseActionView" /> -</menu> \ No newline at end of file + <item + android:id="@+id/action_clear_history" + android:title="@string/pref_clear_history" + app:showAsAction="never" /> + +</menu> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f51f1dfac..488888543 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -435,10 +435,6 @@ <string name="pref_disable_battery_optimization_summary">Helps with background library updates and backups</string> <string name="battery_optimization_disabled">Battery optimization is already disabled</string> <string name="battery_optimization_setting_activity_not_found">Couldn\'t open device settings</string> - <string name="clear_history_completed">History deleted</string> - <string name="clear_history_confirmation">Are you sure? All history will be lost.</string> - <string name="pref_clear_history">Clear history</string> - <string name="pref_clear_history_summary">Delete reading history for all manga</string> <!-- About section --> <string name="website">Website</string> @@ -654,6 +650,9 @@ <!-- History fragment --> <string name="recent_manga_time">Ch. %1$s - %2$s</string> + <string name="pref_clear_history">Clear history</string> + <string name="clear_history_completed">History deleted</string> + <string name="clear_history_confirmation">Are you sure? All history will be lost.</string> <!-- Source migration screen --> <string name="migration_help_guide">Source migration guide</string>