From e2035e388902eaaaf5fe0ba9819ab25c5784aa8e Mon Sep 17 00:00:00 2001 From: SachinVin Date: Fri, 24 Apr 2020 11:21:13 +0530 Subject: [PATCH] android: create SingletonInstance for Picasso and add a place holder icon --- .../citra/citra_emu/ui/main/MainActivity.java | 2 ++ .../citra/citra_emu/utils/PicassoUtils.java | 19 +++++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/android/app/src/main/java/org/citra/citra_emu/ui/main/MainActivity.java b/src/android/app/src/main/java/org/citra/citra_emu/ui/main/MainActivity.java index ceece701f..59d0f6ab7 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/ui/main/MainActivity.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/ui/main/MainActivity.java @@ -22,6 +22,7 @@ import org.citra.citra_emu.utils.BillingManager; import org.citra.citra_emu.utils.DirectoryInitialization; import org.citra.citra_emu.utils.FileBrowserHelper; import org.citra.citra_emu.utils.PermissionsHandler; +import org.citra.citra_emu.utils.PicassoUtils; import org.citra.citra_emu.utils.StartupHandler; import org.citra.citra_emu.utils.ThemeUtil; @@ -63,6 +64,7 @@ public final class MainActivity extends AppCompatActivity implements MainView { } else { mPlatformGamesFragment = (PlatformGamesFragment) getSupportFragmentManager().getFragment(savedInstanceState, "mPlatformGamesFragment"); } + PicassoUtils.init(); // Setup billing manager, so we can globally query for Premium status mBillingManager = new BillingManager(this); diff --git a/src/android/app/src/main/java/org/citra/citra_emu/utils/PicassoUtils.java b/src/android/app/src/main/java/org/citra/citra_emu/utils/PicassoUtils.java index e2effe559..7d0cfdef7 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/utils/PicassoUtils.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/utils/PicassoUtils.java @@ -6,6 +6,7 @@ import android.widget.ImageView; import com.squareup.picasso.Picasso; +import org.citra.citra_emu.CitraApplication; import org.citra.citra_emu.R; import java.io.IOException; @@ -13,15 +14,25 @@ import java.io.IOException; import androidx.annotation.Nullable; public class PicassoUtils { - public static void loadGameIcon(ImageView imageView, String gamePath) { - Picasso picassoInstance = new Picasso.Builder(imageView.getContext()) + private static boolean mPicassoInitialized = false; + public static void init() { + if (mPicassoInitialized) { + return; + } + Picasso picassoInstance = new Picasso.Builder(CitraApplication.getAppContext()) .addRequestHandler(new GameIconRequestHandler()) .build(); - picassoInstance + Picasso.setSingletonInstance(picassoInstance); + mPicassoInitialized = true; + } + + public static void loadGameIcon(ImageView imageView, String gamePath) { + Picasso + .get() .load(Uri.parse("iso:/" + gamePath)) .noFade() - .noPlaceholder() + .placeholder(R.drawable.no_icon) .fit() .centerInside() .config(Bitmap.Config.RGB_565)