From f9d8c720ecb1168f237387e011fb82df7ba5e656 Mon Sep 17 00:00:00 2001 From: akwizgran <michael@briarproject.org> Date: Thu, 26 Jul 2018 17:34:51 +0100 Subject: [PATCH] Remove ConfigController. --- .../android/activity/ActivityModule.java | 9 ---- .../android/controller/ConfigController.java | 21 -------- .../controller/ConfigControllerImpl.java | 51 ------------------- .../briar/android/login/PasswordActivity.java | 8 ++- .../android/login/PasswordController.java | 3 +- .../android/login/PasswordControllerImpl.java | 12 ++--- .../briar/android/login/SetupActivity.java | 7 ++- .../android/login/SetupControllerImpl.java | 2 +- .../android/panic/PanicResponderActivity.java | 6 +-- .../android/splash/SplashScreenActivity.java | 10 ++-- 10 files changed, 27 insertions(+), 102 deletions(-) delete mode 100644 briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigController.java delete mode 100644 briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigControllerImpl.java diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityModule.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityModule.java index 2651833f19..b21d072321 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityModule.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityModule.java @@ -4,8 +4,6 @@ import android.app.Activity; import org.briarproject.briar.android.controller.BriarController; import org.briarproject.briar.android.controller.BriarControllerImpl; -import org.briarproject.briar.android.controller.ConfigController; -import org.briarproject.briar.android.controller.ConfigControllerImpl; import org.briarproject.briar.android.controller.DbController; import org.briarproject.briar.android.controller.DbControllerImpl; import org.briarproject.briar.android.login.PasswordController; @@ -48,13 +46,6 @@ public class ActivityModule { return setupController; } - @ActivityScope - @Provides - ConfigController provideConfigController( - ConfigControllerImpl configController) { - return configController; - } - @ActivityScope @Provides PasswordController providePasswordController( diff --git a/briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigController.java b/briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigController.java deleted file mode 100644 index decc39a035..0000000000 --- a/briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigController.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.briarproject.briar.android.controller; - -import org.briarproject.bramble.api.nullsafety.NotNullByDefault; - -import javax.annotation.Nullable; - -@NotNullByDefault -public interface ConfigController { - - @Nullable - String getEncryptedDatabaseKey(); - - boolean storeEncryptedDatabaseKey(String hex); - - void deleteAccount(); - - boolean accountExists(); - - boolean accountSignedIn(); - -} diff --git a/briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigControllerImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigControllerImpl.java deleted file mode 100644 index bd76c558c6..0000000000 --- a/briar-android/src/main/java/org/briarproject/briar/android/controller/ConfigControllerImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.briarproject.briar.android.controller; - -import android.util.Log; - -import org.briarproject.bramble.api.account.AccountManager; -import org.briarproject.bramble.api.nullsafety.NotNullByDefault; - -import javax.annotation.Nullable; -import javax.inject.Inject; - -// TODO: Remove this class, which just delegates to AccountManager - -@NotNullByDefault -public class ConfigControllerImpl implements ConfigController { - - protected final AccountManager accountManager; - - @Inject - public ConfigControllerImpl(AccountManager accountManager) { - // TODO: Remove - Log.i(getClass().getName(), "Using account manager " - + accountManager.getClass().getName()); - this.accountManager = accountManager; - } - - @Override - @Nullable - public String getEncryptedDatabaseKey() { - return accountManager.getEncryptedDatabaseKey(); - } - - @Override - public boolean storeEncryptedDatabaseKey(String hex) { - return accountManager.storeEncryptedDatabaseKey(hex); - } - - @Override - public void deleteAccount() { - accountManager.deleteAccount(); - } - - @Override - public boolean accountExists() { - return accountManager.hasDatabaseKey(); - } - - @Override - public boolean accountSignedIn() { - return accountManager.hasDatabaseKey(); - } -} diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java index 6de30bf7fc..537d00d08e 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java @@ -12,6 +12,7 @@ import android.widget.Button; import android.widget.EditText; import android.widget.ProgressBar; +import org.briarproject.bramble.api.account.AccountManager; import org.briarproject.briar.R; import org.briarproject.briar.android.Localizer; import org.briarproject.briar.android.activity.ActivityComponent; @@ -31,6 +32,9 @@ import static android.view.View.VISIBLE; public class PasswordActivity extends BaseActivity { + @Inject + AccountManager accountManager; + @Inject PasswordController passwordController; @@ -48,7 +52,7 @@ public class PasswordActivity extends BaseActivity { // fade-in after splash screen instead of default animation overridePendingTransition(R.anim.fade_in, R.anim.fade_out); - if (!passwordController.accountExists()) { + if (!accountManager.accountExists()) { deleteAccount(); return; } @@ -105,7 +109,7 @@ public class PasswordActivity extends BaseActivity { } private void deleteAccount() { - passwordController.deleteAccount(); + accountManager.deleteAccount(); Localizer.reinitialize(); UiUtils.setTheme(this, getString(R.string.pref_theme_light_value)); setResult(RESULT_CANCELED); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordController.java b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordController.java index ec3cb7ed7f..6ad1d26b51 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordController.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordController.java @@ -1,11 +1,10 @@ package org.briarproject.briar.android.login; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; -import org.briarproject.briar.android.controller.ConfigController; import org.briarproject.briar.android.controller.handler.ResultHandler; @NotNullByDefault -public interface PasswordController extends ConfigController { +public interface PasswordController { float estimatePasswordStrength(String password); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordControllerImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordControllerImpl.java index 23f4794505..53cc1b3bd7 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordControllerImpl.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordControllerImpl.java @@ -7,7 +7,6 @@ import org.briarproject.bramble.api.crypto.PasswordStrengthEstimator; import org.briarproject.bramble.api.crypto.SecretKey; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.util.StringUtils; -import org.briarproject.briar.android.controller.ConfigControllerImpl; import org.briarproject.briar.android.controller.handler.ResultHandler; import java.util.concurrent.Executor; @@ -19,12 +18,12 @@ import static org.briarproject.bramble.util.LogUtils.logDuration; import static org.briarproject.bramble.util.LogUtils.now; @NotNullByDefault -public class PasswordControllerImpl extends ConfigControllerImpl - implements PasswordController { +public class PasswordControllerImpl implements PasswordController { private static final Logger LOG = Logger.getLogger(PasswordControllerImpl.class.getName()); + protected final AccountManager accountManager; protected final Executor cryptoExecutor; protected final CryptoComponent crypto; private final PasswordStrengthEstimator strengthEstimator; @@ -33,7 +32,7 @@ public class PasswordControllerImpl extends ConfigControllerImpl PasswordControllerImpl(AccountManager accountManager, @CryptoExecutor Executor cryptoExecutor, CryptoComponent crypto, PasswordStrengthEstimator strengthEstimator) { - super(accountManager); + this.accountManager = accountManager; this.cryptoExecutor = cryptoExecutor; this.crypto = crypto; this.strengthEstimator = strengthEstimator; @@ -70,13 +69,14 @@ public class PasswordControllerImpl extends ConfigControllerImpl } else { String hex = encryptDatabaseKey(new SecretKey(key), newPassword); - resultHandler.onResult(storeEncryptedDatabaseKey(hex)); + boolean stored = accountManager.storeEncryptedDatabaseKey(hex); + resultHandler.onResult(stored); } }); } private byte[] getEncryptedKey() { - String hex = getEncryptedDatabaseKey(); + String hex = accountManager.getEncryptedDatabaseKey(); if (hex == null) throw new IllegalStateException("Encrypted database key is null"); return StringUtils.fromHexString(hex); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/SetupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/login/SetupActivity.java index f91c57512f..e38cfeb0c9 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/SetupActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/SetupActivity.java @@ -4,6 +4,7 @@ import android.annotation.TargetApi; import android.content.Intent; import android.os.Bundle; +import org.briarproject.bramble.api.account.AccountManager; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.briar.R; @@ -25,6 +26,9 @@ public class SetupActivity extends BaseActivity private static final String STATE_KEY_AUTHOR_NAME = "authorName"; private static final String STATE_KEY_PASSWORD = "password"; + @Inject + AccountManager accountManager; + @Inject SetupController setupController; @@ -39,8 +43,7 @@ public class SetupActivity extends BaseActivity setContentView(R.layout.activity_fragment_container); if (state == null) { - if (setupController.accountExists()) - throw new AssertionError(); + if (accountManager.accountExists()) throw new AssertionError(); showInitialFragment(AuthorNameFragment.newInstance()); } else { authorName = state.getString(STATE_KEY_AUTHOR_NAME); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/SetupControllerImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/login/SetupControllerImpl.java index c4ce4ae2c9..a29d2bc76c 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/SetupControllerImpl.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/SetupControllerImpl.java @@ -110,7 +110,7 @@ public class SetupControllerImpl extends PasswordControllerImpl identityManager.registerLocalAuthor(localAuthor); SecretKey key = crypto.generateSecretKey(); String hex = encryptDatabaseKey(key, password); - storeEncryptedDatabaseKey(hex); + accountManager.storeEncryptedDatabaseKey(hex); accountManager.setDatabaseKey(key); resultHandler.onResult(null); }); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicResponderActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicResponderActivity.java index fb2cd920ff..9d64d15000 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicResponderActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicResponderActivity.java @@ -7,10 +7,10 @@ import android.os.Build; import android.os.Bundle; import android.support.v7.preference.PreferenceManager; +import org.briarproject.bramble.api.account.AccountManager; import org.briarproject.bramble.api.system.AndroidExecutor; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.activity.BriarActivity; -import org.briarproject.briar.android.controller.ConfigController; import org.iilab.IilabEngineeringRSA2048Pin; import java.util.logging.Logger; @@ -33,7 +33,7 @@ public class PanicResponderActivity extends BriarActivity { Logger.getLogger(PanicResponderActivity.class.getName()); @Inject - protected ConfigController configController; + protected AccountManager accountManager; @Inject protected AndroidExecutor androidExecutor; @@ -94,7 +94,7 @@ public class PanicResponderActivity extends BriarActivity { private void deleteAllData() { androidExecutor.runOnBackgroundThread(() -> { - configController.deleteAccount(); + accountManager.deleteAccount(); // TODO somehow delete/shred the database more thoroughly PanicResponder.deleteAllAppData(PanicResponderActivity.this); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/splash/SplashScreenActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/splash/SplashScreenActivity.java index 8f3dd28828..e878d23762 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/splash/SplashScreenActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/splash/SplashScreenActivity.java @@ -7,11 +7,11 @@ import android.os.Handler; import android.support.v7.preference.PreferenceManager; import android.transition.Fade; +import org.briarproject.bramble.api.account.AccountManager; import org.briarproject.bramble.api.system.AndroidExecutor; import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.activity.BaseActivity; -import org.briarproject.briar.android.controller.ConfigController; import org.briarproject.briar.android.login.OpenDatabaseActivity; import org.briarproject.briar.android.login.SetupActivity; @@ -27,7 +27,7 @@ public class SplashScreenActivity extends BaseActivity { Logger.getLogger(SplashScreenActivity.class.getName()); @Inject - protected ConfigController configController; + protected AccountManager accountManager; @Inject protected AndroidExecutor androidExecutor; @@ -43,7 +43,7 @@ public class SplashScreenActivity extends BaseActivity { setContentView(R.layout.splash); - if (configController.accountSignedIn()) { + if (accountManager.hasDatabaseKey()) { startActivity(new Intent(this, OpenDatabaseActivity.class)); finish(); } else { @@ -64,12 +64,12 @@ public class SplashScreenActivity extends BaseActivity { LOG.info("Expired"); startActivity(new Intent(this, ExpiredActivity.class)); } else { - if (configController.accountExists()) { + if (accountManager.accountExists()) { LOG.info("Account exists"); startActivity(new Intent(this, OpenDatabaseActivity.class)); } else { LOG.info("Account does not exist"); - configController.deleteAccount(); + accountManager.deleteAccount(); startActivity(new Intent(this, SetupActivity.class)); } } -- GitLab