diff --git a/src/org/thoughtcrime/securesms/DatabaseUpgradeActivity.java b/src/org/thoughtcrime/securesms/DatabaseUpgradeActivity.java index 397b0f17a9..c9180823ae 100644 --- a/src/org/thoughtcrime/securesms/DatabaseUpgradeActivity.java +++ b/src/org/thoughtcrime/securesms/DatabaseUpgradeActivity.java @@ -3,17 +3,16 @@ package org.thoughtcrime.securesms; import android.app.Activity; import android.content.Context; import android.content.Intent; -import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.os.AsyncTask; import android.os.Bundle; -import android.preference.PreferenceManager; import android.util.Log; import android.view.View; import android.widget.ProgressBar; import org.thoughtcrime.securesms.crypto.MasterSecret; import org.thoughtcrime.securesms.database.DatabaseFactory; +import org.thoughtcrime.securesms.util.VersionTracker; import java.util.SortedSet; import java.util.TreeSet; @@ -23,7 +22,6 @@ public class DatabaseUpgradeActivity extends Activity { public static final int NO_MORE_KEY_EXCHANGE_PREFIX_VERSION = 46; public static final int MMS_BODY_VERSION = 46; - private static final String LAST_VERSION_CODE = "last_version_code"; private static final SortedSet UPGRADE_VERSIONS = new TreeSet() {{ add(NO_MORE_KEY_EXCHANGE_PREFIX_VERSION); @@ -43,9 +41,10 @@ public class DatabaseUpgradeActivity extends Activity { ProgressBar indeterminateProgress = (ProgressBar)findViewById(R.id.indeterminate_progress); ProgressBar determinateProgress = (ProgressBar)findViewById(R.id.determinate_progress); - new DatabaseUpgradeTask(indeterminateProgress, determinateProgress).execute(getLastSeenVersion()); + new DatabaseUpgradeTask(indeterminateProgress, determinateProgress) + .execute(VersionTracker.getLastSeenVersion(this)); } else { - updateLastSeenVersion(); + VersionTracker.updateLastSeenVersion(this); startActivity((Intent)getIntent().getParcelableExtra("next_intent")); finish(); } @@ -54,7 +53,7 @@ public class DatabaseUpgradeActivity extends Activity { private boolean needsDatabaseUpgrade() { try { int currentVersionCode = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode; - int lastSeenVersion = getLastSeenVersion(); + int lastSeenVersion = VersionTracker.getLastSeenVersion(this); Log.w("DatabaseUpgradeActivity", "LastSeenVersion: " + lastSeenVersion); @@ -73,26 +72,10 @@ public class DatabaseUpgradeActivity extends Activity { } } - private int getLastSeenVersion() { - SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); - return preferences.getInt(LAST_VERSION_CODE, 0); - } - - private void updateLastSeenVersion() { - try { - SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); - int currentVersionCode = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode; - preferences.edit().putInt(LAST_VERSION_CODE, currentVersionCode).commit(); - } catch (PackageManager.NameNotFoundException e) { - throw new AssertionError(e); - } - } - public static boolean isUpdate(Context context) { try { - SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); - int currentVersionCode = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode; - int previousVersionCode = preferences.getInt(LAST_VERSION_CODE, 0); + int currentVersionCode = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode; + int previousVersionCode = VersionTracker.getLastSeenVersion(context); return previousVersionCode < currentVersionCode; } catch (PackageManager.NameNotFoundException e) { @@ -135,7 +118,7 @@ public class DatabaseUpgradeActivity extends Activity { @Override protected void onPostExecute(Void result) { - updateLastSeenVersion(); + VersionTracker.updateLastSeenVersion(DatabaseUpgradeActivity.this); startActivity((Intent)getIntent().getParcelableExtra("next_intent")); finish(); } diff --git a/src/org/thoughtcrime/securesms/PassphraseCreateActivity.java b/src/org/thoughtcrime/securesms/PassphraseCreateActivity.java index e86573bad1..e2098bfe48 100644 --- a/src/org/thoughtcrime/securesms/PassphraseCreateActivity.java +++ b/src/org/thoughtcrime/securesms/PassphraseCreateActivity.java @@ -16,8 +16,10 @@ */ package org.thoughtcrime.securesms; +import android.content.SharedPreferences; import android.os.AsyncTask; import android.os.Bundle; +import android.preference.PreferenceManager; import android.view.View; import android.widget.Button; import android.widget.EditText; @@ -29,6 +31,7 @@ import org.thoughtcrime.securesms.crypto.MasterSecret; import org.thoughtcrime.securesms.crypto.MasterSecretUtil; import org.thoughtcrime.securesms.util.MemoryCleaner; import org.thoughtcrime.securesms.util.Util; +import org.thoughtcrime.securesms.util.VersionTracker; /** * Activity for creating a user's local encryption passphrase. @@ -112,6 +115,7 @@ public class PassphraseCreateActivity extends PassphraseActivity { MasterSecretUtil.generateAsymmetricMasterSecret(PassphraseCreateActivity.this, masterSecret); IdentityKeyUtil.generateIdentityKeys(PassphraseCreateActivity.this, masterSecret); + VersionTracker.updateLastSeenVersion(PassphraseCreateActivity.this); return null; } diff --git a/src/org/thoughtcrime/securesms/util/VersionTracker.java b/src/org/thoughtcrime/securesms/util/VersionTracker.java new file mode 100644 index 0000000000..c6386f116b --- /dev/null +++ b/src/org/thoughtcrime/securesms/util/VersionTracker.java @@ -0,0 +1,28 @@ +package org.thoughtcrime.securesms.util; + +import android.content.Context; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.preference.PreferenceManager; + +public class VersionTracker { + + private static final String LAST_VERSION_CODE = "last_version_code"; + + public static int getLastSeenVersion(Context context) { + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); + return preferences.getInt(LAST_VERSION_CODE, 0); + } + + public static void updateLastSeenVersion(Context context) { + try { + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); + int currentVersionCode = context.getPackageManager() + .getPackageInfo(context.getPackageName(), 0) + .versionCode; + preferences.edit().putInt(LAST_VERSION_CODE, currentVersionCode).commit(); + } catch (PackageManager.NameNotFoundException e) { + throw new AssertionError(e); + } + } +}