aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorThialfihar <thialfihar@gmail.com>2010-06-08 13:46:21 +0000
committerThialfihar <thialfihar@gmail.com>2010-06-08 13:46:21 +0000
commit315093c5bc535b820c39a1cdbc2ab5c0785cfd66 (patch)
tree22516eaf0d41c3bca6b5d171ee11140aa4826a23 /src
parentce1120b66efc4355e2de29c6ab6bcd6bdada9d15 (diff)
downloadopen-keychain-315093c5bc535b820c39a1cdbc2ab5c0785cfd66.tar.gz
open-keychain-315093c5bc535b820c39a1cdbc2ab5c0785cfd66.tar.bz2
open-keychain-315093c5bc535b820c39a1cdbc2ab5c0785cfd66.zip
finally read APG version dynamicly, so the version name doesn't have to be changed anywhere but the manifest
Diffstat (limited to 'src')
-rw-r--r--src/org/thialfihar/android/apg/Apg.java35
-rw-r--r--src/org/thialfihar/android/apg/BaseActivity.java7
-rw-r--r--src/org/thialfihar/android/apg/Constants.java2
-rw-r--r--src/org/thialfihar/android/apg/MainActivity.java2
4 files changed, 39 insertions, 7 deletions
diff --git a/src/org/thialfihar/android/apg/Apg.java b/src/org/thialfihar/android/apg/Apg.java
index 001fa138f..337ca3d58 100644
--- a/src/org/thialfihar/android/apg/Apg.java
+++ b/src/org/thialfihar/android/apg/Apg.java
@@ -40,6 +40,7 @@ import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import java.util.Vector;
import java.util.regex.Pattern;
@@ -91,14 +92,18 @@ import org.thialfihar.android.apg.utils.IterableIterator;
import android.app.Activity;
import android.content.Context;
+import android.content.pm.PackageInfo;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.view.ViewGroup;
+import android.widget.Toast;
public class Apg {
+ private static final String mApgPackageName = "org.thialfihar.android.apg";
+
public static class Intent {
public static final String DECRYPT = "org.thialfihar.android.apg.intent.DECRYPT";
public static final String ENCRYPT = "org.thialfihar.android.apg.intent.ENCRYPT";
@@ -150,8 +155,8 @@ public class Apg {
public static final Uri CONTENT_URI_PUBLIC_KEY_RING_BY_EMAILS =
Uri.parse("content://" + AUTHORITY + "/key_rings/public/emails/");
- public static String VERSION = "1.0.1";
- public static String FULL_VERSION = "APG v" + VERSION;
+ private static String VERSION = null;
+ private static String FULL_VERSION = null;
private static final int[] PREFERRED_SYMMETRIC_ALGORITHMS =
new int[] {
@@ -1831,4 +1836,30 @@ public class Apg {
return nlBytes;
}
+
+ public static String getVersion(Context context) {
+ if (VERSION != null) {
+ return VERSION;
+ }
+ List<PackageInfo> packs = context.getPackageManager().getInstalledPackages(0);
+ for (int i = 0; i < packs.size(); ++i) {
+ PackageInfo p = packs.get(i);
+ if (!p.packageName.equals(mApgPackageName)) {
+ continue;
+ }
+
+ VERSION = p.versionName;
+ return VERSION;
+ }
+
+ // unpossible!
+ return "0.0.0";
+ }
+
+ public static String getFullVersion(Context context) {
+ if (FULL_VERSION == null) {
+ FULL_VERSION = "APG v" + getVersion(context);
+ }
+ return FULL_VERSION;
+ }
}
diff --git a/src/org/thialfihar/android/apg/BaseActivity.java b/src/org/thialfihar/android/apg/BaseActivity.java
index e25a268da..9cddc03f1 100644
--- a/src/org/thialfihar/android/apg/BaseActivity.java
+++ b/src/org/thialfihar/android/apg/BaseActivity.java
@@ -157,7 +157,7 @@ public class BaseActivity extends Activity
case Id.dialog.about: {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
- alert.setTitle("About " + Apg.FULL_VERSION);
+ alert.setTitle("About " + Apg.getFullVersion(this));
LayoutInflater inflater =
(LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
@@ -448,12 +448,13 @@ public class BaseActivity extends Activity
}
public boolean hasSeenChangeLog() {
- return mPreferences.getBoolean(Constants.pref.has_seen_change_log, false);
+ return mPreferences.getBoolean(Constants.pref.has_seen_change_log + Apg.getVersion(this),
+ false);
}
public void setHasSeenChangeLog(boolean value) {
SharedPreferences.Editor editor = mPreferences.edit();
- editor.putBoolean(Constants.pref.has_seen_change_log, value);
+ editor.putBoolean(Constants.pref.has_seen_change_log + Apg.getVersion(this), value);
editor.commit();
}
diff --git a/src/org/thialfihar/android/apg/Constants.java b/src/org/thialfihar/android/apg/Constants.java
index f4a6a5066..d4b86029d 100644
--- a/src/org/thialfihar/android/apg/Constants.java
+++ b/src/org/thialfihar/android/apg/Constants.java
@@ -24,7 +24,7 @@ public final class Constants {
}
public static final class pref {
- public static final String has_seen_change_log = "seenChangeLogDialog" + Apg.VERSION;
+ public static final String has_seen_change_log = "seenChangeLogDialog";
public static final String default_encryption_algorithm = "defaultEncryptionAlgorithm";
public static final String default_hash_algorithm = "defaultHashAlgorithm";
public static final String default_ascii_armour = "defaultAsciiArmour";
diff --git a/src/org/thialfihar/android/apg/MainActivity.java b/src/org/thialfihar/android/apg/MainActivity.java
index 65dd20d95..aa3900998 100644
--- a/src/org/thialfihar/android/apg/MainActivity.java
+++ b/src/org/thialfihar/android/apg/MainActivity.java
@@ -183,7 +183,7 @@ public class MainActivity extends BaseActivity {
case Id.dialog.change_log: {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
- alert.setTitle("Changes " + Apg.FULL_VERSION);
+ alert.setTitle("Changes " + Apg.getFullVersion(this));
LayoutInflater inflater =
(LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.info, null);