From 3b1e6f3b7f13c130c09458d584038e1ab699d001 Mon Sep 17 00:00:00 2001 From: Ryan Meredith Date: Thu, 4 Jun 2020 04:12:12 -0400 Subject: [PATCH] Android: Display disc number instead of company if mulipart disc --- .../dolphinemu/adapters/GameAdapter.java | 14 +++++++++++++- .../dolphinemu/adapters/GameRowPresenter.java | 15 +++++++++++++-- .../dolphinemu/viewholders/GameViewHolder.java | 4 ++-- .../Android/app/src/main/res/layout/card_game.xml | 2 +- .../Android/app/src/main/res/values/strings.xml | 1 + 5 files changed, 30 insertions(+), 6 deletions(-) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java index 9fe084e1de..dece38b16b 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java @@ -1,5 +1,6 @@ package org.dolphinemu.dolphinemu.adapters; +import android.content.Context; import android.graphics.Rect; import androidx.annotation.NonNull; @@ -15,6 +16,7 @@ import org.dolphinemu.dolphinemu.R; import org.dolphinemu.dolphinemu.activities.EmulationActivity; import org.dolphinemu.dolphinemu.dialogs.GamePropertiesDialog; import org.dolphinemu.dolphinemu.model.GameFile; +import org.dolphinemu.dolphinemu.services.GameFileCacheService; import org.dolphinemu.dolphinemu.utils.PicassoUtils; import org.dolphinemu.dolphinemu.viewholders.GameViewHolder; @@ -68,11 +70,21 @@ public final class GameAdapter extends RecyclerView.Adapter impl @Override public void onBindViewHolder(GameViewHolder holder, int position) { + Context context = holder.itemView.getContext(); GameFile gameFile = mGameFiles.get(position); PicassoUtils.loadGameCover(holder.imageScreenshot, gameFile); holder.textGameTitle.setText(gameFile.getTitle()); - holder.textCompany.setText(gameFile.getCompany()); + + if (GameFileCacheService.findSecondDisc(gameFile) != null) + { + holder.textGameCaption + .setText(context.getString(R.string.disc_number, gameFile.getDiscNumber() + 1)); + } + else + { + holder.textGameCaption.setText(gameFile.getCompany()); + } holder.gameFile = gameFile; } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java index dd560b52d2..fc0360f02b 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameRowPresenter.java @@ -15,6 +15,7 @@ import android.widget.ImageView; import org.dolphinemu.dolphinemu.R; import org.dolphinemu.dolphinemu.dialogs.GamePropertiesDialog; import org.dolphinemu.dolphinemu.model.GameFile; +import org.dolphinemu.dolphinemu.services.GameFileCacheService; import org.dolphinemu.dolphinemu.ui.platform.Platform; import org.dolphinemu.dolphinemu.utils.PicassoUtils; import org.dolphinemu.dolphinemu.viewholders.TvGameViewHolder; @@ -46,13 +47,24 @@ public final class GameRowPresenter extends Presenter public void onBindViewHolder(ViewHolder viewHolder, Object item) { TvGameViewHolder holder = (TvGameViewHolder) viewHolder; + Context context = holder.cardParent.getContext(); GameFile gameFile = (GameFile) item; holder.imageScreenshot.setImageDrawable(null); PicassoUtils.loadGameCover(holder.imageScreenshot, gameFile); holder.cardParent.setTitleText(gameFile.getTitle()); - holder.cardParent.setContentText(gameFile.getCompany()); + + if (GameFileCacheService.findSecondDisc(gameFile) != null) + { + holder.cardParent + .setContentText( + context.getString(R.string.disc_number, gameFile.getDiscNumber() + 1)); + } + else + { + holder.cardParent.setContentText(gameFile.getCompany()); + } holder.gameFile = gameFile; @@ -72,7 +84,6 @@ public final class GameRowPresenter extends Presenter default: throw new AssertionError("Not reachable."); } - Context context = holder.cardParent.getContext(); Drawable background = ContextCompat.getDrawable(context, backgroundId); holder.cardParent.setInfoAreaBackground(background); holder.cardParent.setOnLongClickListener((view) -> diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/GameViewHolder.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/GameViewHolder.java index 7c6fb270da..d2915dccac 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/GameViewHolder.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/viewholders/GameViewHolder.java @@ -17,7 +17,7 @@ public class GameViewHolder extends RecyclerView.ViewHolder { public ImageView imageScreenshot; public TextView textGameTitle; - public TextView textCompany; + public TextView textGameCaption; public GameFile gameFile; @@ -29,6 +29,6 @@ public class GameViewHolder extends RecyclerView.ViewHolder imageScreenshot = itemView.findViewById(R.id.image_game_screen); textGameTitle = itemView.findViewById(R.id.text_game_title); - textCompany = itemView.findViewById(R.id.text_company); + textGameCaption = itemView.findViewById(R.id.text_game_caption); } } diff --git a/Source/Android/app/src/main/res/layout/card_game.xml b/Source/Android/app/src/main/res/layout/card_game.xml index 8a0a577e21..777a597e0c 100644 --- a/Source/Android/app/src/main/res/layout/card_game.xml +++ b/Source/Android/app/src/main/res/layout/card_game.xml @@ -36,7 +36,7 @@ tools:text="The Legend of Zelda: The Wind Waker"/> Total Pitch Total Yaw Vertical Offset + Disc %1$d