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