mirror of
https://github.com/oxen-io/session-android.git
synced 2025-01-12 21:13:39 +00:00
Added a way to clear database.
This commit is contained in:
parent
76ce008063
commit
f753dd1ea9
@ -20,10 +20,14 @@ import android.annotation.SuppressLint;
|
|||||||
import android.arch.lifecycle.DefaultLifecycleObserver;
|
import android.arch.lifecycle.DefaultLifecycleObserver;
|
||||||
import android.arch.lifecycle.LifecycleOwner;
|
import android.arch.lifecycle.LifecycleOwner;
|
||||||
import android.arch.lifecycle.ProcessLifecycleOwner;
|
import android.arch.lifecycle.ProcessLifecycleOwner;
|
||||||
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
import android.database.ContentObserver;
|
import android.database.ContentObserver;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
import android.os.Handler;
|
||||||
|
import android.preference.PreferenceManager;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.multidex.MultiDexApplication;
|
import android.support.multidex.MultiDexApplication;
|
||||||
@ -38,6 +42,7 @@ import org.signal.aesgcmprovider.AesGcmProvider;
|
|||||||
import org.thoughtcrime.securesms.components.TypingStatusRepository;
|
import org.thoughtcrime.securesms.components.TypingStatusRepository;
|
||||||
import org.thoughtcrime.securesms.components.TypingStatusSender;
|
import org.thoughtcrime.securesms.components.TypingStatusSender;
|
||||||
import org.thoughtcrime.securesms.crypto.IdentityKeyUtil;
|
import org.thoughtcrime.securesms.crypto.IdentityKeyUtil;
|
||||||
|
import org.thoughtcrime.securesms.crypto.MasterSecretUtil;
|
||||||
import org.thoughtcrime.securesms.database.DatabaseContentProviders;
|
import org.thoughtcrime.securesms.database.DatabaseContentProviders;
|
||||||
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
||||||
import org.thoughtcrime.securesms.dependencies.AxolotlStorageModule;
|
import org.thoughtcrime.securesms.dependencies.AxolotlStorageModule;
|
||||||
@ -154,8 +159,9 @@ public class ApplicationContext extends MultiDexApplication implements Dependenc
|
|||||||
@Override
|
@Override
|
||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
startKovenant();
|
|
||||||
Log.i(TAG, "onCreate()");
|
Log.i(TAG, "onCreate()");
|
||||||
|
checkNeedsDatabaseReset();
|
||||||
|
startKovenant();
|
||||||
initializeSecurityProvider();
|
initializeSecurityProvider();
|
||||||
initializeLogging();
|
initializeLogging();
|
||||||
initializeCrashHandling();
|
initializeCrashHandling();
|
||||||
@ -588,4 +594,27 @@ public class ApplicationContext extends MultiDexApplication implements Dependenc
|
|||||||
if (lokiMessengerUpdatesFeedPoller != null) lokiMessengerUpdatesFeedPoller.startIfNeeded();
|
if (lokiMessengerUpdatesFeedPoller != null) lokiMessengerUpdatesFeedPoller.startIfNeeded();
|
||||||
}
|
}
|
||||||
// endregion
|
// endregion
|
||||||
|
|
||||||
|
public void checkNeedsDatabaseReset() {
|
||||||
|
if (TextSecurePreferences.resetDatabase(this)) {
|
||||||
|
PreferenceManager.getDefaultSharedPreferences(this).edit().clear().commit();
|
||||||
|
MasterSecretUtil.clear(this);
|
||||||
|
if (this.deleteDatabase("signal.db")) {
|
||||||
|
Log.d("Loki", "Deleted database");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clearData() {
|
||||||
|
TextSecurePreferences.setResetDatabase(this, true);
|
||||||
|
new Handler().postDelayed(this::restartApplication, 200);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void restartApplication() {
|
||||||
|
Intent intent = new Intent(this, ConversationListActivity.class);
|
||||||
|
ComponentName componentName = intent.getComponent();
|
||||||
|
Intent mainIntent = Intent.makeRestartActivityTask(componentName);
|
||||||
|
this.startActivity(mainIntent);
|
||||||
|
Runtime.getRuntime().exit(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.preference.PreferenceManager;
|
||||||
import android.support.annotation.IdRes;
|
import android.support.annotation.IdRes;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
|
@ -198,6 +198,10 @@ public class MasterSecretUtil {
|
|||||||
return preferences.getBoolean("passphrase_initialized", false);
|
return preferences.getBoolean("passphrase_initialized", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void clear(Context context) {
|
||||||
|
context.getSharedPreferences(PREFERENCES_NAME, 0).edit().clear().commit();
|
||||||
|
}
|
||||||
|
|
||||||
private static void save(Context context, String key, int value) {
|
private static void save(Context context, String key, int value) {
|
||||||
if (!context.getSharedPreferences(PREFERENCES_NAME, 0)
|
if (!context.getSharedPreferences(PREFERENCES_NAME, 0)
|
||||||
.edit()
|
.edit()
|
||||||
|
@ -1185,5 +1185,13 @@ public class TextSecurePreferences {
|
|||||||
public static void setMasterHexEncodedPublicKey(Context context, String masterHexEncodedPublicKey) {
|
public static void setMasterHexEncodedPublicKey(Context context, String masterHexEncodedPublicKey) {
|
||||||
setStringPreference(context, "master_hex_encoded_public_key", masterHexEncodedPublicKey.toLowerCase());
|
setStringPreference(context, "master_hex_encoded_public_key", masterHexEncodedPublicKey.toLowerCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void setResetDatabase(Context context, boolean resetDatabase) {
|
||||||
|
PreferenceManager.getDefaultSharedPreferences(context).edit().putBoolean("database_reset", resetDatabase).commit();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean resetDatabase(Context context) {
|
||||||
|
return getBooleanPreference(context, "database_reset", false);
|
||||||
|
}
|
||||||
// endregion
|
// endregion
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user