mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Move clear history from advanced settings to history screen menu (closes #4613)
This commit is contained in:
		| @@ -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) | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -110,16 +110,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 { | ||||
| @@ -197,22 +187,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() { | ||||
|         db.deleteMangasNotInLibrary().executeAsBlocking() | ||||
|         db.deleteHistoryNoLastRead().executeAsBlocking() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user