From 7a90d1bf06d293c67cfe6ad17e8d452ef8d9c723 Mon Sep 17 00:00:00 2001 From: Jays2Kings Date: Mon, 26 Apr 2021 01:19:02 -0400 Subject: [PATCH] Using popup menu helper for reading mode --- .../tachiyomi/ui/reader/ReaderActivity.kt | 39 ++++--------------- 1 file changed, 7 insertions(+), 32 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt index 64ea4f9bb4..8873e82058 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt @@ -559,7 +559,7 @@ class ReaderActivity : /** * Initializes the reader menu. It sets up click listeners and the initial visibility. */ - @SuppressLint("ClickableViewAccessibility", "RestrictedApi") + @SuppressLint("ClickableViewAccessibility") private fun initializeMenu() { // Set binding.toolbar setSupportActionBar(binding.toolbar) @@ -635,38 +635,13 @@ class ReaderActivity : true } - readingMode.setOnClickListener { - val popup = PopupMenu(this@ReaderActivity, readingMode, Gravity.END) - val enumConstants = ReadingModeType::class.java.enumConstants - val array = enumConstants?.map { it.stringRes }.orEmpty().toTypedArray() - array.forEachIndexed { index, entry -> - popup.menu.add(0, index, 0, entry) + readingMode.setOnClickListener { readingMode -> + readingMode.popupMenu( + items = ReadingModeType.values().map { it.prefValue to it.stringRes }, + selectedItemId = presenter.manga?.viewer, + ) { + presenter.setMangaViewer(itemId) } - if (popup.menu is MenuBuilder) { - val m = popup.menu as MenuBuilder - m.setOptionalIconsVisible(true) - } - val blendedAccent = ColorUtils.blendARGB( - this@ReaderActivity.getResourceColor(android.R.attr.colorAccent), - this@ReaderActivity.getResourceColor(android.R.attr.textColorPrimary), - 0.5f - ) - popup.menu.forEach { - it.icon = - ContextCompat.getDrawable(this@ReaderActivity, R.drawable.ic_blank_24dp) - } - popup.menu.getItem(presenter.manga?.viewer ?: 0)?.let { menuItem -> - menuItem.icon = - ContextCompat.getDrawable(this@ReaderActivity, R.drawable.ic_check_24dp) - ?.mutate()?.apply { setTint(blendedAccent) } - menuItem.title = - menuItem.title?.tintText(blendedAccent) - } - popup.setOnMenuItemClickListener { menuItem -> - presenter.setMangaViewer(menuItem.itemId) - true - } - popup.show() } }