Skip to content
Snippets Groups Projects
Verified Commit b77b885a authored by akwizgran's avatar akwizgran
Browse files

Commit shared preferences, clear instead of deleting.

parent df7d48d5
No related branches found
No related tags found
No related merge requests found
package org.briarproject.bramble.util;
import android.annotation.SuppressLint;
import android.bluetooth.BluetoothAdapter;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Build;
import android.provider.Settings;
......@@ -42,6 +44,7 @@ public class AndroidUtils {
public static String getBluetoothAddress(Context ctx,
BluetoothAdapter adapter) {
// Return the adapter's address if it's valid and not fake
@SuppressLint("HardwareIds")
String address = adapter.getAddress();
if (isValidBluetoothAddress(address)) return address;
// Return the address from settings if it's valid and not fake
......@@ -96,14 +99,25 @@ public class AndroidUtils {
}
}
public static void deleteAppData(Context ctx) {
@SuppressLint("ApplySharedPref")
public static void deleteAppData(Context ctx, SharedPreferences... clear) {
// Clear and commit shared preferences
for (SharedPreferences prefs : clear) {
boolean cleared = prefs.edit().clear().commit();
if (LOG.isLoggable(INFO)) {
if (cleared) LOG.info("Cleared shared preferences");
else LOG.info("Could not clear shared preferences");
}
}
// Delete files, except lib and shared_prefs directories
File dataDir = new File(ctx.getApplicationInfo().dataDir);
if (LOG.isLoggable(INFO))
LOG.info("Deleting app data from " + dataDir.getAbsolutePath());
File[] children = dataDir.listFiles();
if (children != null) {
for (File child : children) {
if (!child.getName().equals("lib")) {
String name = child.getName();
if (!name.equals("lib") && !name.equals("shared_prefs")) {
if (LOG.isLoggable(INFO))
LOG.info("Deleting " + child.getAbsolutePath());
IoUtils.deleteFileOrDir(child);
......
package org.briarproject.briar.android.controller;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.SharedPreferences;
import android.support.v7.preference.PreferenceManager;
import org.briarproject.bramble.api.db.DatabaseConfig;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
......@@ -42,20 +44,18 @@ public class ConfigControllerImpl implements ConfigController {
}
@Override
@SuppressLint("ApplySharedPref")
public void storeEncryptedDatabaseKey(String hex) {
LOG.info("Storing database key in preferences");
SharedPreferences.Editor editor = briarPrefs.edit();
editor.putString(PREF_DB_KEY, hex);
editor.apply();
briarPrefs.edit().putString(PREF_DB_KEY, hex).commit();
}
@Override
public void deleteAccount(Context ctx) {
LOG.info("Deleting account");
SharedPreferences.Editor editor = briarPrefs.edit();
editor.clear();
editor.apply();
AndroidUtils.deleteAppData(ctx);
SharedPreferences defaultPrefs =
PreferenceManager.getDefaultSharedPreferences(ctx);
AndroidUtils.deleteAppData(ctx, briarPrefs, defaultPrefs);
AndroidUtils.logDataDirContents(ctx);
}
......
......@@ -54,7 +54,8 @@ public class PasswordControllerImplTest extends BrambleMockTestCase {
oneOf(briarPrefs).edit();
will(returnValue(editor));
oneOf(editor).putString("key", newEncryptedHex);
oneOf(editor).apply();
will(returnValue(editor));
oneOf(editor).commit();
}});
PasswordControllerImpl p = new PasswordControllerImpl(briarPrefs,
......
......@@ -81,7 +81,8 @@ public class SetupControllerImplTest extends BrambleMockTestCase {
oneOf(briarPrefs).edit();
will(returnValue(editor));
oneOf(editor).putString("key", encryptedHex);
oneOf(editor).apply();
will(returnValue(editor));
oneOf(editor).commit();
}});
SetupControllerImpl s = new SetupControllerImpl(briarPrefs,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment