From c842b4574ab3cb6fd385d1d42a32655ffe928394 Mon Sep 17 00:00:00 2001 From: LooKeR Date: Tue, 16 Nov 2021 13:30:14 +0530 Subject: [PATCH] Improve: Icon logic in App Detail Page (Again) --- .../looker/droidify/screen/ProductAdapter.kt | 26 ++++++++----------- .../looker/droidify/screen/ProductFragment.kt | 2 +- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/main/kotlin/com/looker/droidify/screen/ProductAdapter.kt b/src/main/kotlin/com/looker/droidify/screen/ProductAdapter.kt index 6bc3c1f3..4898b706 100644 --- a/src/main/kotlin/com/looker/droidify/screen/ProductAdapter.kt +++ b/src/main/kotlin/com/looker/droidify/screen/ProductAdapter.kt @@ -22,6 +22,8 @@ import android.view.MotionEvent import android.view.View import android.view.ViewGroup import android.widget.TextView +import androidx.annotation.DrawableRes +import androidx.annotation.StringRes import androidx.appcompat.widget.LinearLayoutCompat import androidx.core.content.res.ResourcesCompat import androidx.core.net.toUri @@ -73,14 +75,14 @@ class ProductAdapter(private val callbacks: Callbacks, private val columns: Int) fun onUriClick(uri: Uri, shouldConfirm: Boolean): Boolean } - enum class Action(val titleResId: Int) { - INSTALL(R.string.install), - UPDATE(R.string.update), - LAUNCH(R.string.launch), - DETAILS(R.string.details), - UNINSTALL(R.string.uninstall), - CANCEL(R.string.cancel), - SHARE(R.string.share) + enum class Action(@StringRes val titleResId: Int, @DrawableRes val iconResId: Int) { + INSTALL(R.string.install, R.drawable.ic_download), + UPDATE(R.string.update, R.drawable.ic_download), + LAUNCH(R.string.launch, R.drawable.ic_launch), + DETAILS(R.string.details, R.drawable.ic_tune), + UNINSTALL(R.string.uninstall, R.drawable.ic_delete), + CANCEL(R.string.cancel, R.drawable.ic_cancel), + SHARE(R.string.share, R.drawable.ic_share) } sealed class Status { @@ -1065,6 +1067,7 @@ class ProductAdapter(private val callbacks: Callbacks, private val columns: Int) holder.action.apply { visibility = if (action == null) View.GONE else View.VISIBLE if (action != null) { + icon = context.getDrawable(action.iconResId) setText(action.titleResId) setTextColor( if (action == Action.CANCEL) holder.actionTintOnCancel @@ -1075,13 +1078,6 @@ class ProductAdapter(private val callbacks: Callbacks, private val columns: Int) backgroundTintList = if (action == Action.CANCEL) holder.actionTintCancel else holder.actionTintNormal } - icon = - when (action) { - Action.CANCEL -> context.getDrawable(R.drawable.ic_cancel) - Action.LAUNCH -> context.getDrawable(R.drawable.ic_launch) - Action.DETAILS -> context.getDrawable(R.drawable.ic_tune) - else -> context.getDrawable(R.drawable.ic_download) - } iconTint = if (action == Action.CANCEL) holder.actionTintOnCancel else holder.actionTintOnNormal } diff --git a/src/main/kotlin/com/looker/droidify/screen/ProductFragment.kt b/src/main/kotlin/com/looker/droidify/screen/ProductFragment.kt index 73a86e11..6043b6a7 100644 --- a/src/main/kotlin/com/looker/droidify/screen/ProductFragment.kt +++ b/src/main/kotlin/com/looker/droidify/screen/ProductFragment.kt @@ -94,7 +94,7 @@ class ProductFragment() : ScreenFragment(), ProductAdapter.Callbacks { toolbar.menu.apply { for (action in Action.values()) { add(0, action.id, 0, action.adapterAction.titleResId) - .setIcon(Utils.getToolbarIcon(toolbar.context, action.adapterAction.iconsId)) + .setIcon(Utils.getToolbarIcon(toolbar.context, action.adapterAction.iconResId)) .setVisible(false) .setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS) .setOnMenuItemClickListener {