From a1d027fe0787367384fbfb2e413afce02c8e9209 Mon Sep 17 00:00:00 2001 From: Charles Lombardo Date: Sun, 4 Jun 2023 01:07:41 -0400 Subject: [PATCH] Android: Convert SettingsRowPresenter to Kotlin --- .../adapters/SettingsRowPresenter.java | 57 ------------------- .../adapters/SettingsRowPresenter.kt | 47 +++++++++++++++ 2 files changed, 47 insertions(+), 57 deletions(-) delete mode 100644 Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/SettingsRowPresenter.java create mode 100644 Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/SettingsRowPresenter.kt diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/SettingsRowPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/SettingsRowPresenter.java deleted file mode 100644 index f05cffb983..0000000000 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/SettingsRowPresenter.java +++ /dev/null @@ -1,57 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later - -package org.dolphinemu.dolphinemu.adapters; - -import android.content.Context; -import android.content.res.Resources; -import android.graphics.drawable.Drawable; -import android.view.ViewGroup; - -import androidx.core.content.ContextCompat; -import androidx.leanback.widget.ImageCardView; -import androidx.leanback.widget.Presenter; - -import org.dolphinemu.dolphinemu.R; -import org.dolphinemu.dolphinemu.model.TvSettingsItem; -import org.dolphinemu.dolphinemu.viewholders.TvSettingsViewHolder; - -public final class SettingsRowPresenter extends Presenter -{ - public Presenter.ViewHolder onCreateViewHolder(ViewGroup parent) - { - // Create a new view. - ImageCardView settingsCard = new ImageCardView(parent.getContext()); - - settingsCard.setMainImageAdjustViewBounds(true); - settingsCard.setMainImageDimensions(192, 160); - - settingsCard.setFocusable(true); - settingsCard.setFocusableInTouchMode(true); - - // Use that view to create a ViewHolder. - return new TvSettingsViewHolder(settingsCard); - } - - public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object item) - { - TvSettingsViewHolder holder = (TvSettingsViewHolder) viewHolder; - Context context = holder.cardParent.getContext(); - TvSettingsItem settingsItem = (TvSettingsItem) item; - - Resources resources = holder.cardParent.getResources(); - - holder.itemId = settingsItem.getItemId(); - - holder.cardParent.setTitleText(resources.getString(settingsItem.getLabelId())); - holder.cardParent.setMainImage(resources.getDrawable(settingsItem.getIconId())); - - // Set the background color of the card - Drawable background = ContextCompat.getDrawable(context, R.drawable.tv_card_background); - holder.cardParent.setInfoAreaBackground(background); - } - - public void onUnbindViewHolder(Presenter.ViewHolder viewHolder) - { - // no op - } -} diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/SettingsRowPresenter.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/SettingsRowPresenter.kt new file mode 100644 index 0000000000..c52039c5b2 --- /dev/null +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/SettingsRowPresenter.kt @@ -0,0 +1,47 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +package org.dolphinemu.dolphinemu.adapters + +import android.view.ViewGroup +import androidx.core.content.ContextCompat +import androidx.leanback.widget.ImageCardView +import androidx.leanback.widget.Presenter +import org.dolphinemu.dolphinemu.R +import org.dolphinemu.dolphinemu.model.TvSettingsItem +import org.dolphinemu.dolphinemu.viewholders.TvSettingsViewHolder + +class SettingsRowPresenter : Presenter() { + override fun onCreateViewHolder(parent: ViewGroup): ViewHolder { + // Create a new view. + val settingsCard = ImageCardView(parent.context) + settingsCard.apply { + setMainImageAdjustViewBounds(true) + setMainImageDimensions(192, 160) + isFocusable = true + isFocusableInTouchMode = true + } + + // Use that view to create a ViewHolder. + return TvSettingsViewHolder(settingsCard) + } + + override fun onBindViewHolder(viewHolder: ViewHolder, item: Any) { + val holder = viewHolder as TvSettingsViewHolder + val context = holder.cardParent.context + val settingsItem = item as TvSettingsItem + val resources = holder.cardParent.resources + holder.apply { + itemId = settingsItem.itemId + cardParent.titleText = resources.getString(settingsItem.labelId) + cardParent.mainImage = ContextCompat.getDrawable(context, settingsItem.iconId) + + // Set the background color of the card + val background = ContextCompat.getDrawable(context, R.drawable.tv_card_background) + cardParent.infoAreaBackground = background + } + } + + override fun onUnbindViewHolder(viewHolder: ViewHolder) { + // no op + } +}