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.
This commit is contained in:
Hans-Christoph Steiner 2016-05-17 16:23:59 +02:00
parent 2038b7e1cb
commit 507f17e19e
2 changed files with 6 additions and 4 deletions

View File

@ -112,6 +112,10 @@ public class App extends ValueObject implements Comparable<App> {
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<App> {
+ ", last updated on " + this.lastUpdated + ")</p>";
this.name = (String) appInfo.loadLabel(pm);
this.icon = getIconName(packageName, packageInfo.versionCode);
final Apk apk = new Apk();
apk.versionName = packageInfo.versionName;

View File

@ -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));
}
/**