From e4935d4b12b592d7c8a5f2bca787f421cc27d5a2 Mon Sep 17 00:00:00 2001 From: Charles Lombardo Date: Sun, 4 Jun 2023 01:07:28 -0400 Subject: [PATCH 1/2] Android: Convert PlatformPagerAdapter to Kotlin --- .../adapters/PlatformPagerAdapter.java | 49 ------------------- .../adapters/PlatformPagerAdapter.kt | 34 +++++++++++++ 2 files changed, 34 insertions(+), 49 deletions(-) delete mode 100644 Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/PlatformPagerAdapter.java create mode 100644 Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/PlatformPagerAdapter.kt diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/PlatformPagerAdapter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/PlatformPagerAdapter.java deleted file mode 100644 index 68d46a6b57b9..000000000000 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/PlatformPagerAdapter.java +++ /dev/null @@ -1,49 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later - -package org.dolphinemu.dolphinemu.adapters; - -import androidx.annotation.NonNull; -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentManager; -import androidx.fragment.app.FragmentPagerAdapter; -import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; - -import org.dolphinemu.dolphinemu.R; -import org.dolphinemu.dolphinemu.ui.platform.Platform; -import org.dolphinemu.dolphinemu.ui.platform.PlatformGamesFragment; - -public class PlatformPagerAdapter extends FragmentPagerAdapter -{ - private SwipeRefreshLayout.OnRefreshListener mOnRefreshListener; - - public final static int[] TAB_ICONS = - { - R.drawable.ic_gamecube, - R.drawable.ic_wii, - R.drawable.ic_folder - }; - - public PlatformPagerAdapter(FragmentManager fm, - SwipeRefreshLayout.OnRefreshListener onRefreshListener) - { - super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT); - mOnRefreshListener = onRefreshListener; - } - - @NonNull - @Override - public Fragment getItem(int position) - { - Platform platform = Platform.fromPosition(position); - - PlatformGamesFragment fragment = PlatformGamesFragment.newInstance(platform); - fragment.setOnRefreshListener(mOnRefreshListener); - return fragment; - } - - @Override - public int getCount() - { - return TAB_ICONS.length; - } -} diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/PlatformPagerAdapter.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/PlatformPagerAdapter.kt new file mode 100644 index 000000000000..27bb122a0f24 --- /dev/null +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/PlatformPagerAdapter.kt @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +package org.dolphinemu.dolphinemu.adapters + +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentManager +import androidx.fragment.app.FragmentPagerAdapter +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout.OnRefreshListener +import org.dolphinemu.dolphinemu.R +import org.dolphinemu.dolphinemu.ui.platform.Platform +import org.dolphinemu.dolphinemu.ui.platform.PlatformGamesFragment + +class PlatformPagerAdapter( + fm: FragmentManager, + private val onRefreshListener: OnRefreshListener +) : FragmentPagerAdapter(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) { + override fun getItem(position: Int): Fragment { + val platform = Platform.fromPosition(position) + val fragment = PlatformGamesFragment.newInstance(platform) + fragment.setOnRefreshListener(onRefreshListener) + return fragment + } + + override fun getCount(): Int = TAB_ICONS.size + + companion object { + @JvmField + val TAB_ICONS = intArrayOf( + R.drawable.ic_gamecube, + R.drawable.ic_wii, + R.drawable.ic_folder + ) + } +} From a1d027fe0787367384fbfb2e413afce02c8e9209 Mon Sep 17 00:00:00 2001 From: Charles Lombardo Date: Sun, 4 Jun 2023 01:07:41 -0400 Subject: [PATCH 2/2] 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 f05cffb9835f..000000000000 --- 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 000000000000..c52039c5b269 --- /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 + } +}