mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 06:17:57 +01:00 
			
		
		
		
	Change catalogue hiding dialog to accommodate more options in the future
This commit is contained in:
		| @@ -9,6 +9,7 @@ import android.view.View | ||||
| import android.view.ViewGroup | ||||
| import androidx.appcompat.widget.SearchView | ||||
| import androidx.recyclerview.widget.LinearLayoutManager | ||||
| import com.afollestad.materialdialogs.MaterialDialog | ||||
| import com.bluelinelabs.conductor.ControllerChangeHandler | ||||
| import com.bluelinelabs.conductor.ControllerChangeType | ||||
| import com.bluelinelabs.conductor.RouterTransaction | ||||
| @@ -42,8 +43,7 @@ class CatalogueController : NucleusController<CataloguePresenter>(), | ||||
|         FlexibleAdapter.OnItemClickListener, | ||||
|         FlexibleAdapter.OnItemLongClickListener, | ||||
|         CatalogueAdapter.OnBrowseClickListener, | ||||
|         CatalogueAdapter.OnLatestClickListener, | ||||
|         HideCatalogueDialog.Listener { | ||||
|         CatalogueAdapter.OnLatestClickListener { | ||||
|  | ||||
|     /** | ||||
|      * Application preferences. | ||||
| @@ -130,15 +130,22 @@ class CatalogueController : NucleusController<CataloguePresenter>(), | ||||
|     } | ||||
|  | ||||
|     override fun onItemLongClick(position: Int) { | ||||
|         val activity = activity ?: return | ||||
|         val item = adapter?.getItem(position) as? SourceItem ?: return | ||||
|         val source = item.source | ||||
|  | ||||
|         val dialog = HideCatalogueDialog(source) | ||||
|         dialog.targetController = this@CatalogueController | ||||
|         dialog.showDialog(router) | ||||
|         MaterialDialog.Builder(activity) | ||||
|                 .title(item.source.name) | ||||
|                 .items(activity.getString(R.string.action_hide)) | ||||
|                 .itemsCallback { _, _, which, _ -> | ||||
|                     when (which) { | ||||
|                         0 -> { | ||||
|                             hideCatalogue(item.source) | ||||
|                         } | ||||
|                     } | ||||
|                 }.show() | ||||
|     } | ||||
|  | ||||
|     override fun hideCatalogueDialogClosed(source: Source) { | ||||
|     private fun hideCatalogue(source: Source) { | ||||
|         val current = preferences.hiddenCatalogues().getOrDefault() | ||||
|         preferences.hiddenCatalogues().set(current + source.id.toString()) | ||||
|  | ||||
|   | ||||
| @@ -1,33 +0,0 @@ | ||||
| package eu.kanade.tachiyomi.ui.catalogue | ||||
|  | ||||
| import android.app.Dialog | ||||
| import android.os.Bundle | ||||
| import com.afollestad.materialdialogs.MaterialDialog | ||||
| import eu.kanade.tachiyomi.R | ||||
| import eu.kanade.tachiyomi.source.Source | ||||
| import eu.kanade.tachiyomi.source.SourceManager | ||||
| import eu.kanade.tachiyomi.ui.base.controller.DialogController | ||||
| import uy.kohesive.injekt.Injekt | ||||
| import uy.kohesive.injekt.api.get | ||||
|  | ||||
| class HideCatalogueDialog(bundle: Bundle? = null) : DialogController(bundle) { | ||||
|  | ||||
|     private val source = Injekt.get<SourceManager>().get(args.getLong("key"))!! | ||||
|  | ||||
|     constructor(source: Source) : this(Bundle().apply { putLong("key", source.id) }) | ||||
|  | ||||
|     override fun onCreateDialog(savedViewState: Bundle?): Dialog { | ||||
|         return MaterialDialog.Builder(activity!!) | ||||
|                 .title(activity!!.getString(R.string.hide_catalogue, source.name)) | ||||
|                 .positiveText(android.R.string.ok) | ||||
|                 .onPositive { _, _ -> | ||||
|                     (targetController as? Listener)?.hideCatalogueDialogClosed(source) | ||||
|                 } | ||||
|                 .negativeText(android.R.string.cancel) | ||||
|                 .build() | ||||
|     } | ||||
|  | ||||
|     interface Listener { | ||||
|         fun hideCatalogueDialogClosed(source: Source) | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user