From de643551e37facb31eaaf2d40e741923a02fb7ba Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Thu, 6 Jun 2024 10:15:06 -0300 Subject: [PATCH] [app] Don't suggest incompatible versions in app details --- app/src/main/java/org/fdroid/fdroid/data/App.java | 1 + .../fdroid/views/AppDetailsRecyclerViewAdapter.java | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/fdroid/fdroid/data/App.java b/app/src/main/java/org/fdroid/fdroid/data/App.java index c49b5c726..96f6a18b2 100644 --- a/app/src/main/java/org/fdroid/fdroid/data/App.java +++ b/app/src/main/java/org/fdroid/fdroid/data/App.java @@ -539,6 +539,7 @@ public class App implements Comparable, Parcelable { } } // use the first of the list, before we don't choose anything + // TODO does this still make sense? Maybe better to not suggest anything in this case? if (apk == null && apks.size() > 0) { apk = apks.get(0); } diff --git a/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java b/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java index 055c247ea..e6402189a 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java +++ b/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java @@ -149,6 +149,7 @@ public class AppDetailsRecyclerViewAdapter items.clear(); versions.clear(); + suggestedApk = null; // Get versions compatibleVersionsDifferentSigner.clear(); @@ -170,7 +171,14 @@ public class AppDetailsRecyclerViewAdapter } } } - if (apks != null) suggestedApk = app.findSuggestedApk(apks, appPrefs); + if (apks != null) { + final Apk foundApk = app.findSuggestedApk(apks, appPrefs); + // only use suggested APK, if app not installed, or signer matches installed signer + // because otherwise, there's no use in suggesting it as we can't install it anyway + if (app.installedSigner == null || (foundApk != null && app.installedSigner.equals(foundApk.signer))) { + suggestedApk = foundApk; + } + } addItem(VIEWTYPE_HEADER); if (!app.getAllScreenshots().isEmpty()) addItem(VIEWTYPE_SCREENSHOTS);