mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-18 13:49:53 +01:00
Remove ConfigController.
This commit is contained in:
@@ -4,8 +4,6 @@ import android.app.Activity;
|
|||||||
|
|
||||||
import org.briarproject.briar.android.controller.BriarController;
|
import org.briarproject.briar.android.controller.BriarController;
|
||||||
import org.briarproject.briar.android.controller.BriarControllerImpl;
|
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.DbController;
|
||||||
import org.briarproject.briar.android.controller.DbControllerImpl;
|
import org.briarproject.briar.android.controller.DbControllerImpl;
|
||||||
import org.briarproject.briar.android.login.PasswordController;
|
import org.briarproject.briar.android.login.PasswordController;
|
||||||
@@ -48,13 +46,6 @@ public class ActivityModule {
|
|||||||
return setupController;
|
return setupController;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ActivityScope
|
|
||||||
@Provides
|
|
||||||
ConfigController provideConfigController(
|
|
||||||
ConfigControllerImpl configController) {
|
|
||||||
return configController;
|
|
||||||
}
|
|
||||||
|
|
||||||
@ActivityScope
|
@ActivityScope
|
||||||
@Provides
|
@Provides
|
||||||
PasswordController providePasswordController(
|
PasswordController providePasswordController(
|
||||||
|
|||||||
@@ -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();
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -12,6 +12,7 @@ import android.widget.Button;
|
|||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.ProgressBar;
|
import android.widget.ProgressBar;
|
||||||
|
|
||||||
|
import org.briarproject.bramble.api.account.AccountManager;
|
||||||
import org.briarproject.briar.R;
|
import org.briarproject.briar.R;
|
||||||
import org.briarproject.briar.android.Localizer;
|
import org.briarproject.briar.android.Localizer;
|
||||||
import org.briarproject.briar.android.activity.ActivityComponent;
|
import org.briarproject.briar.android.activity.ActivityComponent;
|
||||||
@@ -31,6 +32,9 @@ import static android.view.View.VISIBLE;
|
|||||||
|
|
||||||
public class PasswordActivity extends BaseActivity {
|
public class PasswordActivity extends BaseActivity {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
AccountManager accountManager;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
PasswordController passwordController;
|
PasswordController passwordController;
|
||||||
|
|
||||||
@@ -48,7 +52,7 @@ public class PasswordActivity extends BaseActivity {
|
|||||||
// fade-in after splash screen instead of default animation
|
// fade-in after splash screen instead of default animation
|
||||||
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
|
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
|
||||||
|
|
||||||
if (!passwordController.accountExists()) {
|
if (!accountManager.accountExists()) {
|
||||||
deleteAccount();
|
deleteAccount();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -105,7 +109,7 @@ public class PasswordActivity extends BaseActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void deleteAccount() {
|
private void deleteAccount() {
|
||||||
passwordController.deleteAccount();
|
accountManager.deleteAccount();
|
||||||
Localizer.reinitialize();
|
Localizer.reinitialize();
|
||||||
UiUtils.setTheme(this, getString(R.string.pref_theme_light_value));
|
UiUtils.setTheme(this, getString(R.string.pref_theme_light_value));
|
||||||
setResult(RESULT_CANCELED);
|
setResult(RESULT_CANCELED);
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
package org.briarproject.briar.android.login;
|
package org.briarproject.briar.android.login;
|
||||||
|
|
||||||
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||||
import org.briarproject.briar.android.controller.ConfigController;
|
|
||||||
import org.briarproject.briar.android.controller.handler.ResultHandler;
|
import org.briarproject.briar.android.controller.handler.ResultHandler;
|
||||||
|
|
||||||
@NotNullByDefault
|
@NotNullByDefault
|
||||||
public interface PasswordController extends ConfigController {
|
public interface PasswordController {
|
||||||
|
|
||||||
float estimatePasswordStrength(String password);
|
float estimatePasswordStrength(String password);
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import org.briarproject.bramble.api.crypto.PasswordStrengthEstimator;
|
|||||||
import org.briarproject.bramble.api.crypto.SecretKey;
|
import org.briarproject.bramble.api.crypto.SecretKey;
|
||||||
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||||
import org.briarproject.bramble.util.StringUtils;
|
import org.briarproject.bramble.util.StringUtils;
|
||||||
import org.briarproject.briar.android.controller.ConfigControllerImpl;
|
|
||||||
import org.briarproject.briar.android.controller.handler.ResultHandler;
|
import org.briarproject.briar.android.controller.handler.ResultHandler;
|
||||||
|
|
||||||
import java.util.concurrent.Executor;
|
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;
|
import static org.briarproject.bramble.util.LogUtils.now;
|
||||||
|
|
||||||
@NotNullByDefault
|
@NotNullByDefault
|
||||||
public class PasswordControllerImpl extends ConfigControllerImpl
|
public class PasswordControllerImpl implements PasswordController {
|
||||||
implements PasswordController {
|
|
||||||
|
|
||||||
private static final Logger LOG =
|
private static final Logger LOG =
|
||||||
Logger.getLogger(PasswordControllerImpl.class.getName());
|
Logger.getLogger(PasswordControllerImpl.class.getName());
|
||||||
|
|
||||||
|
protected final AccountManager accountManager;
|
||||||
protected final Executor cryptoExecutor;
|
protected final Executor cryptoExecutor;
|
||||||
protected final CryptoComponent crypto;
|
protected final CryptoComponent crypto;
|
||||||
private final PasswordStrengthEstimator strengthEstimator;
|
private final PasswordStrengthEstimator strengthEstimator;
|
||||||
@@ -33,7 +32,7 @@ public class PasswordControllerImpl extends ConfigControllerImpl
|
|||||||
PasswordControllerImpl(AccountManager accountManager,
|
PasswordControllerImpl(AccountManager accountManager,
|
||||||
@CryptoExecutor Executor cryptoExecutor, CryptoComponent crypto,
|
@CryptoExecutor Executor cryptoExecutor, CryptoComponent crypto,
|
||||||
PasswordStrengthEstimator strengthEstimator) {
|
PasswordStrengthEstimator strengthEstimator) {
|
||||||
super(accountManager);
|
this.accountManager = accountManager;
|
||||||
this.cryptoExecutor = cryptoExecutor;
|
this.cryptoExecutor = cryptoExecutor;
|
||||||
this.crypto = crypto;
|
this.crypto = crypto;
|
||||||
this.strengthEstimator = strengthEstimator;
|
this.strengthEstimator = strengthEstimator;
|
||||||
@@ -70,13 +69,14 @@ public class PasswordControllerImpl extends ConfigControllerImpl
|
|||||||
} else {
|
} else {
|
||||||
String hex =
|
String hex =
|
||||||
encryptDatabaseKey(new SecretKey(key), newPassword);
|
encryptDatabaseKey(new SecretKey(key), newPassword);
|
||||||
resultHandler.onResult(storeEncryptedDatabaseKey(hex));
|
boolean stored = accountManager.storeEncryptedDatabaseKey(hex);
|
||||||
|
resultHandler.onResult(stored);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private byte[] getEncryptedKey() {
|
private byte[] getEncryptedKey() {
|
||||||
String hex = getEncryptedDatabaseKey();
|
String hex = accountManager.getEncryptedDatabaseKey();
|
||||||
if (hex == null)
|
if (hex == null)
|
||||||
throw new IllegalStateException("Encrypted database key is null");
|
throw new IllegalStateException("Encrypted database key is null");
|
||||||
return StringUtils.fromHexString(hex);
|
return StringUtils.fromHexString(hex);
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import android.annotation.TargetApi;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import org.briarproject.bramble.api.account.AccountManager;
|
||||||
import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault;
|
import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault;
|
||||||
import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault;
|
import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault;
|
||||||
import org.briarproject.briar.R;
|
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_AUTHOR_NAME = "authorName";
|
||||||
private static final String STATE_KEY_PASSWORD = "password";
|
private static final String STATE_KEY_PASSWORD = "password";
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
AccountManager accountManager;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
SetupController setupController;
|
SetupController setupController;
|
||||||
|
|
||||||
@@ -39,8 +43,7 @@ public class SetupActivity extends BaseActivity
|
|||||||
setContentView(R.layout.activity_fragment_container);
|
setContentView(R.layout.activity_fragment_container);
|
||||||
|
|
||||||
if (state == null) {
|
if (state == null) {
|
||||||
if (setupController.accountExists())
|
if (accountManager.accountExists()) throw new AssertionError();
|
||||||
throw new AssertionError();
|
|
||||||
showInitialFragment(AuthorNameFragment.newInstance());
|
showInitialFragment(AuthorNameFragment.newInstance());
|
||||||
} else {
|
} else {
|
||||||
authorName = state.getString(STATE_KEY_AUTHOR_NAME);
|
authorName = state.getString(STATE_KEY_AUTHOR_NAME);
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ public class SetupControllerImpl extends PasswordControllerImpl
|
|||||||
identityManager.registerLocalAuthor(localAuthor);
|
identityManager.registerLocalAuthor(localAuthor);
|
||||||
SecretKey key = crypto.generateSecretKey();
|
SecretKey key = crypto.generateSecretKey();
|
||||||
String hex = encryptDatabaseKey(key, password);
|
String hex = encryptDatabaseKey(key, password);
|
||||||
storeEncryptedDatabaseKey(hex);
|
accountManager.storeEncryptedDatabaseKey(hex);
|
||||||
accountManager.setDatabaseKey(key);
|
accountManager.setDatabaseKey(key);
|
||||||
resultHandler.onResult(null);
|
resultHandler.onResult(null);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ import android.os.Build;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v7.preference.PreferenceManager;
|
import android.support.v7.preference.PreferenceManager;
|
||||||
|
|
||||||
|
import org.briarproject.bramble.api.account.AccountManager;
|
||||||
import org.briarproject.bramble.api.system.AndroidExecutor;
|
import org.briarproject.bramble.api.system.AndroidExecutor;
|
||||||
import org.briarproject.briar.android.activity.ActivityComponent;
|
import org.briarproject.briar.android.activity.ActivityComponent;
|
||||||
import org.briarproject.briar.android.activity.BriarActivity;
|
import org.briarproject.briar.android.activity.BriarActivity;
|
||||||
import org.briarproject.briar.android.controller.ConfigController;
|
|
||||||
import org.iilab.IilabEngineeringRSA2048Pin;
|
import org.iilab.IilabEngineeringRSA2048Pin;
|
||||||
|
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
@@ -33,7 +33,7 @@ public class PanicResponderActivity extends BriarActivity {
|
|||||||
Logger.getLogger(PanicResponderActivity.class.getName());
|
Logger.getLogger(PanicResponderActivity.class.getName());
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
protected ConfigController configController;
|
protected AccountManager accountManager;
|
||||||
@Inject
|
@Inject
|
||||||
protected AndroidExecutor androidExecutor;
|
protected AndroidExecutor androidExecutor;
|
||||||
|
|
||||||
@@ -94,7 +94,7 @@ public class PanicResponderActivity extends BriarActivity {
|
|||||||
|
|
||||||
private void deleteAllData() {
|
private void deleteAllData() {
|
||||||
androidExecutor.runOnBackgroundThread(() -> {
|
androidExecutor.runOnBackgroundThread(() -> {
|
||||||
configController.deleteAccount();
|
accountManager.deleteAccount();
|
||||||
// TODO somehow delete/shred the database more thoroughly
|
// TODO somehow delete/shred the database more thoroughly
|
||||||
PanicResponder.deleteAllAppData(PanicResponderActivity.this);
|
PanicResponder.deleteAllAppData(PanicResponderActivity.this);
|
||||||
|
|
||||||
|
|||||||
@@ -7,11 +7,11 @@ import android.os.Handler;
|
|||||||
import android.support.v7.preference.PreferenceManager;
|
import android.support.v7.preference.PreferenceManager;
|
||||||
import android.transition.Fade;
|
import android.transition.Fade;
|
||||||
|
|
||||||
|
import org.briarproject.bramble.api.account.AccountManager;
|
||||||
import org.briarproject.bramble.api.system.AndroidExecutor;
|
import org.briarproject.bramble.api.system.AndroidExecutor;
|
||||||
import org.briarproject.briar.R;
|
import org.briarproject.briar.R;
|
||||||
import org.briarproject.briar.android.activity.ActivityComponent;
|
import org.briarproject.briar.android.activity.ActivityComponent;
|
||||||
import org.briarproject.briar.android.activity.BaseActivity;
|
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.OpenDatabaseActivity;
|
||||||
import org.briarproject.briar.android.login.SetupActivity;
|
import org.briarproject.briar.android.login.SetupActivity;
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ public class SplashScreenActivity extends BaseActivity {
|
|||||||
Logger.getLogger(SplashScreenActivity.class.getName());
|
Logger.getLogger(SplashScreenActivity.class.getName());
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
protected ConfigController configController;
|
protected AccountManager accountManager;
|
||||||
@Inject
|
@Inject
|
||||||
protected AndroidExecutor androidExecutor;
|
protected AndroidExecutor androidExecutor;
|
||||||
|
|
||||||
@@ -43,7 +43,7 @@ public class SplashScreenActivity extends BaseActivity {
|
|||||||
|
|
||||||
setContentView(R.layout.splash);
|
setContentView(R.layout.splash);
|
||||||
|
|
||||||
if (configController.accountSignedIn()) {
|
if (accountManager.hasDatabaseKey()) {
|
||||||
startActivity(new Intent(this, OpenDatabaseActivity.class));
|
startActivity(new Intent(this, OpenDatabaseActivity.class));
|
||||||
finish();
|
finish();
|
||||||
} else {
|
} else {
|
||||||
@@ -64,12 +64,12 @@ public class SplashScreenActivity extends BaseActivity {
|
|||||||
LOG.info("Expired");
|
LOG.info("Expired");
|
||||||
startActivity(new Intent(this, ExpiredActivity.class));
|
startActivity(new Intent(this, ExpiredActivity.class));
|
||||||
} else {
|
} else {
|
||||||
if (configController.accountExists()) {
|
if (accountManager.accountExists()) {
|
||||||
LOG.info("Account exists");
|
LOG.info("Account exists");
|
||||||
startActivity(new Intent(this, OpenDatabaseActivity.class));
|
startActivity(new Intent(this, OpenDatabaseActivity.class));
|
||||||
} else {
|
} else {
|
||||||
LOG.info("Account does not exist");
|
LOG.info("Account does not exist");
|
||||||
configController.deleteAccount();
|
accountManager.deleteAccount();
|
||||||
startActivity(new Intent(this, SetupActivity.class));
|
startActivity(new Intent(this, SetupActivity.class));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user