From 677fd3a522776ae3e356d9ec78520c3cbd672d5e Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Fri, 30 Jun 2017 12:23:33 +1000 Subject: [PATCH] Use signature as well as version code in app details for suggested apk. --- .../fdroid/views/AppDetailsRecyclerViewAdapter.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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 eb7b4cc16..46bb5cb39 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java +++ b/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java @@ -478,7 +478,7 @@ public class AppDetailsRecyclerViewAdapter if (callbacks.isAppDownloading()) { buttonPrimaryView.setText(R.string.downloading); buttonPrimaryView.setEnabled(false); - } else if (!app.isInstalled() && app.suggestedVersionCode > 0 && versions.size() > 0) { + } else if (!app.isInstalled() && suggestedApk != null) { // Check count > 0 due to incompatible apps resulting in an empty list. callbacks.disableAndroidBeam(); // Set Install button and hide second button @@ -487,7 +487,7 @@ public class AppDetailsRecyclerViewAdapter buttonPrimaryView.setEnabled(true); } else if (app.isInstalled()) { callbacks.enableAndroidBeam(); - if (app.canAndWantToUpdate(context)) { + if (app.canAndWantToUpdate(context) && suggestedApk != null) { buttonPrimaryView.setText(R.string.menu_upgrade); buttonPrimaryView.setOnClickListener(onUpgradeClickListener); } else { @@ -819,9 +819,12 @@ public class AppDetailsRecyclerViewAdapter public void bindModel(final Apk apk) { java.text.DateFormat df = DateFormat.getDateFormat(context); + boolean isSuggested = apk.versionCode == app.suggestedVersionCode && + TextUtils.equals(apk.sig, app.getMostAppropriateSignature()); + version.setText(context.getString(R.string.version) + " " + apk.versionName - + (apk.versionCode == app.suggestedVersionCode ? " ☆" : "")); + + (isSuggested ? " ☆" : "")); status.setText(getInstalledStatus(apk));