From 507f17e19ee99812fe67cdf49c97a7c0617c3179 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Tue, 17 May 2016 16:23:59 +0200 Subject: [PATCH] always set App.icon when instantiating from installed app The App(Context context, PackageManager pm, String packageName) constructor was not setting App.icon, which is required for lots of things. This makes it always get set, since its just a standard file name, and it does not have to even exist yet. --- app/src/main/java/org/fdroid/fdroid/data/App.java | 5 +++++ .../java/org/fdroid/fdroid/localrepo/LocalRepoManager.java | 5 +---- 2 files changed, 6 insertions(+), 4 deletions(-) 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 0dbe7af02..e53460ab3 100644 --- a/app/src/main/java/org/fdroid/fdroid/data/App.java +++ b/app/src/main/java/org/fdroid/fdroid/data/App.java @@ -112,6 +112,10 @@ public class App extends ValueObject implements Comparable { public boolean uninstallable; + public static String getIconName(String packageName, int versionCode) { + return packageName + "_" + versionCode + ".png"; + } + @Override public int compareTo(App app) { return name.compareToIgnoreCase(app.name); @@ -278,6 +282,7 @@ public class App extends ValueObject implements Comparable { + ", last updated on " + this.lastUpdated + ")

"; this.name = (String) appInfo.loadLabel(pm); + this.icon = getIconName(packageName, packageInfo.versionCode); final Apk apk = new Apk(); apk.versionName = packageInfo.versionName; diff --git a/app/src/main/java/org/fdroid/fdroid/localrepo/LocalRepoManager.java b/app/src/main/java/org/fdroid/fdroid/localrepo/LocalRepoManager.java index d5bcc0c08..f45a92656 100644 --- a/app/src/main/java/org/fdroid/fdroid/localrepo/LocalRepoManager.java +++ b/app/src/main/java/org/fdroid/fdroid/localrepo/LocalRepoManager.java @@ -3,7 +3,6 @@ package org.fdroid.fdroid.localrepo; import android.content.Context; import android.content.SharedPreferences; import android.content.pm.ApplicationInfo; -import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.res.AssetManager; import android.graphics.Bitmap; @@ -274,8 +273,6 @@ public final class LocalRepoManager { if (!app.isValid()) { return; } - PackageInfo packageInfo = pm.getPackageInfo(packageName, PackageManager.GET_META_DATA); - app.icon = getIconFile(packageName, packageInfo.versionCode).getName(); } catch (PackageManager.NameNotFoundException | CertificateEncodingException | IOException e) { Log.e(TAG, "Error adding app to local repo", e); return; @@ -324,7 +321,7 @@ public final class LocalRepoManager { } private File getIconFile(String packageName, int versionCode) { - return new File(iconsDir, packageName + "_" + versionCode + ".png"); + return new File(iconsDir, App.getIconName(packageName, versionCode)); } /**