diff --git a/F-Droid/src/org/fdroid/fdroid/FDroid.java b/F-Droid/src/org/fdroid/fdroid/FDroid.java index 711fbd69d..22b5184b9 100644 --- a/F-Droid/src/org/fdroid/fdroid/FDroid.java +++ b/F-Droid/src/org/fdroid/fdroid/FDroid.java @@ -279,15 +279,12 @@ public class FDroid extends ActionBarActivity { case R.id.action_about: View view = LayoutInflater.from(this).inflate(R.layout.about, null); - // Fill in the version... - try { - PackageInfo pi = getPackageManager() - .getPackageInfo(getApplicationContext() - .getPackageName(), 0); - ((TextView) view.findViewById(R.id.version)) - .setText(pi.versionName); - } catch (Exception ignored) { + + String versionName = Utils.getVersionName(this); + if (versionName == null) { + versionName = getString(R.string.unknown); } + ((TextView) view.findViewById(R.id.version)).setText(versionName); AlertDialog.Builder builder = new AlertDialog.Builder(this).setView(view); final AlertDialog alrt = builder.create(); diff --git a/F-Droid/src/org/fdroid/fdroid/RepoUpdater.java b/F-Droid/src/org/fdroid/fdroid/RepoUpdater.java index e4e816e87..17b964e52 100644 --- a/F-Droid/src/org/fdroid/fdroid/RepoUpdater.java +++ b/F-Droid/src/org/fdroid/fdroid/RepoUpdater.java @@ -72,11 +72,9 @@ public class RepoUpdater { private URL getIndexAddress() throws MalformedURLException { String urlString = repo.address + "/index.jar"; - try { - String versionName = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName; + String versionName = Utils.getVersionName(context); + if (versionName != null) { urlString += "?client_version=" + versionName; - } catch (PackageManager.NameNotFoundException e) { - Log.e(TAG, "Could not get client version name", e); } return new URL(urlString); } diff --git a/F-Droid/src/org/fdroid/fdroid/Utils.java b/F-Droid/src/org/fdroid/fdroid/Utils.java index 8edd24575..92e09b2c5 100644 --- a/F-Droid/src/org/fdroid/fdroid/Utils.java +++ b/F-Droid/src/org/fdroid/fdroid/Utils.java @@ -675,4 +675,16 @@ public final class Utils { } } + // Try to get the version name of the client. Return null on failure. + public static String getVersionName(Context context) { + String versionName = null; + try { + versionName = context.getPackageManager() + .getPackageInfo(context.getPackageName(), 0).versionName; + } catch (PackageManager.NameNotFoundException e) { + Log.e(TAG, "Could not get client version name", e); + } + return versionName; + } + }