diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/account/AccountManager.java b/bramble-api/src/main/java/org/briarproject/bramble/api/account/AccountManager.java new file mode 100644 index 0000000000000000000000000000000000000000..4aa4fb2b5b34b34ebbc1156fdf40315a21b9fcb9 --- /dev/null +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/account/AccountManager.java @@ -0,0 +1,6 @@ +package org.briarproject.bramble.api.account; + +public interface AccountManager { + + boolean hasDatabaseKey(); +} diff --git a/bramble-core/src/main/java/org/briarproject/bramble/BrambleCoreModule.java b/bramble-core/src/main/java/org/briarproject/bramble/BrambleCoreModule.java index 07bc14eea22b5f93e68734cacd3bf778a9912148..d817c6d57e7e39dd4455a3f2050ec8f41a73ce67 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/BrambleCoreModule.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/BrambleCoreModule.java @@ -1,5 +1,6 @@ package org.briarproject.bramble; +import org.briarproject.bramble.account.AccountModule; import org.briarproject.bramble.client.ClientModule; import org.briarproject.bramble.contact.ContactModule; import org.briarproject.bramble.crypto.CryptoExecutorModule; @@ -26,6 +27,7 @@ import org.briarproject.bramble.versioning.VersioningModule; import dagger.Module; @Module(includes = { + AccountModule.class, ClientModule.class, ContactModule.class, CryptoModule.class, diff --git a/bramble-core/src/main/java/org/briarproject/bramble/account/AccountManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/account/AccountManagerImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..dd4df479a3c27b6733cd1b55109421c97fca3fc5 --- /dev/null +++ b/bramble-core/src/main/java/org/briarproject/bramble/account/AccountManagerImpl.java @@ -0,0 +1,21 @@ +package org.briarproject.bramble.account; + +import org.briarproject.bramble.api.account.AccountManager; +import org.briarproject.bramble.api.db.DatabaseConfig; + +import javax.inject.Inject; + +class AccountManagerImpl implements AccountManager { + + private final DatabaseConfig databaseConfig; + + @Inject + AccountManagerImpl(DatabaseConfig databaseConfig) { + this.databaseConfig = databaseConfig; + } + + @Override + public boolean hasDatabaseKey() { + return databaseConfig.getEncryptionKey() != null; + } +} diff --git a/bramble-core/src/main/java/org/briarproject/bramble/account/AccountModule.java b/bramble-core/src/main/java/org/briarproject/bramble/account/AccountModule.java new file mode 100644 index 0000000000000000000000000000000000000000..e8220176a8ab5863328988945125138ff89c2124 --- /dev/null +++ b/bramble-core/src/main/java/org/briarproject/bramble/account/AccountModule.java @@ -0,0 +1,18 @@ +package org.briarproject.bramble.account; + +import org.briarproject.bramble.api.account.AccountManager; + +import javax.inject.Singleton; + +import dagger.Module; +import dagger.Provides; + +@Module +public class AccountModule { + + @Provides + @Singleton + AccountManager provideAccountManager(AccountManagerImpl accountManager) { + return accountManager; + } +} diff --git a/briar-android/src/main/java/org/briarproject/briar/android/AndroidComponent.java b/briar-android/src/main/java/org/briarproject/briar/android/AndroidComponent.java index 087aa5ea0cd7d6a2f6b76eb9c9b3a82d92e269fc..8935cfb7fd99c685a405d476139087755eb65bdd 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/AndroidComponent.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/AndroidComponent.java @@ -5,6 +5,7 @@ import android.content.SharedPreferences; import org.briarproject.bramble.BrambleAndroidModule; import org.briarproject.bramble.BrambleCoreEagerSingletons; import org.briarproject.bramble.BrambleCoreModule; +import org.briarproject.bramble.api.account.AccountManager; import org.briarproject.bramble.api.contact.ContactExchangeTask; import org.briarproject.bramble.api.contact.ContactManager; import org.briarproject.bramble.api.crypto.CryptoComponent; @@ -151,6 +152,8 @@ public interface AndroidComponent @IoExecutor Executor ioExecutor(); + AccountManager accountManager(); + void inject(SignInReminderReceiver briarService); void inject(BriarService briarService); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java b/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java index f40d2a42bf6e8455eb0f43b39f4a63315eaf74fc..980e6cdfc599b67760626384686e77f2acea8a7d 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java @@ -17,7 +17,7 @@ import android.os.IBinder; import android.support.v4.app.NotificationCompat; import android.support.v4.content.ContextCompat; -import org.briarproject.bramble.api.db.DatabaseConfig; +import org.briarproject.bramble.api.account.AccountManager; import org.briarproject.bramble.api.lifecycle.LifecycleManager; import org.briarproject.bramble.api.lifecycle.LifecycleManager.StartResult; import org.briarproject.bramble.api.system.AndroidExecutor; @@ -75,12 +75,13 @@ public class BriarService extends Service { private BroadcastReceiver receiver = null; @Inject - protected DatabaseConfig databaseConfig; + AccountManager accountManager; + // Fields that are accessed from background threads must be volatile @Inject - protected volatile LifecycleManager lifecycleManager; + volatile LifecycleManager lifecycleManager; @Inject - protected volatile AndroidExecutor androidExecutor; + volatile AndroidExecutor androidExecutor; private volatile boolean started = false; @Override @@ -96,7 +97,7 @@ public class BriarService extends Service { stopSelf(); return; } - if (databaseConfig.getEncryptionKey() == null) { + if (!accountManager.hasDatabaseKey()) { LOG.info("No database key"); stopSelf(); return; diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java index 3d2d8361cb4f79ef0645058700dfff1d62aba354..cf71839f9f757d4ed0f2eadd950d5c3cef97f804 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java @@ -61,7 +61,7 @@ public abstract class BriarActivity extends BaseActivity { @Override public void onStart() { super.onStart(); - if (!briarController.hasEncryptionKey() && !isFinishing()) { + if (!briarController.accountSignedIn() && !isFinishing()) { Intent i = new Intent(this, PasswordActivity.class); startActivityForResult(i, REQUEST_PASSWORD); } else if (SDK_INT >= 23) { @@ -138,7 +138,7 @@ public abstract class BriarActivity extends BaseActivity { } protected void signOut(boolean removeFromRecentApps) { - if (briarController.hasEncryptionKey()) { + if (briarController.accountSignedIn()) { // Don't use UiResultHandler because we want the result even if // this activity has been destroyed briarController.signOut(result -> runOnUiThread( diff --git a/briar-android/src/main/java/org/briarproject/briar/android/controller/BriarController.java b/briar-android/src/main/java/org/briarproject/briar/android/controller/BriarController.java index 350faeabaa0d8565b6a5ef5d477716a09cb1e2c3..e4e60c6926c4afdab326a952d88facd2368f80be 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/controller/BriarController.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/controller/BriarController.java @@ -6,7 +6,7 @@ public interface BriarController extends ActivityLifecycleController { void startAndBindService(); - boolean hasEncryptionKey(); + boolean accountSignedIn(); /** * Returns true via the handler when the app has dozed diff --git a/briar-android/src/main/java/org/briarproject/briar/android/controller/BriarControllerImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/controller/BriarControllerImpl.java index a668a450d0b389652ce8ecb88a177ccce2d2014e..1271f4d212c29113f133f3e1a132cfc63c936b83 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/controller/BriarControllerImpl.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/controller/BriarControllerImpl.java @@ -5,7 +5,7 @@ import android.content.Intent; import android.os.IBinder; import android.support.annotation.CallSuper; -import org.briarproject.bramble.api.db.DatabaseConfig; +import org.briarproject.bramble.api.account.AccountManager; import org.briarproject.bramble.api.db.DatabaseExecutor; import org.briarproject.bramble.api.db.DbException; import org.briarproject.bramble.api.settings.Settings; @@ -33,8 +33,7 @@ public class BriarControllerImpl implements BriarController { public static final String DOZE_ASK_AGAIN = "dozeAskAgain"; private final BriarServiceConnection serviceConnection; - private final DatabaseConfig databaseConfig; - @DatabaseExecutor + private final AccountManager accountManager; private final Executor databaseExecutor; private final SettingsManager settingsManager; private final DozeWatchdog dozeWatchdog; @@ -44,12 +43,12 @@ public class BriarControllerImpl implements BriarController { @Inject BriarControllerImpl(BriarServiceConnection serviceConnection, - DatabaseConfig databaseConfig, + AccountManager accountManager, @DatabaseExecutor Executor databaseExecutor, SettingsManager settingsManager, DozeWatchdog dozeWatchdog, Activity activity) { this.serviceConnection = serviceConnection; - this.databaseConfig = databaseConfig; + this.accountManager = accountManager; this.databaseExecutor = databaseExecutor; this.settingsManager = settingsManager; this.dozeWatchdog = dozeWatchdog; @@ -59,7 +58,7 @@ public class BriarControllerImpl implements BriarController { @Override @CallSuper public void onActivityCreate(Activity activity) { - if (databaseConfig.getEncryptionKey() != null) startAndBindService(); + if (accountManager.hasDatabaseKey()) startAndBindService(); } @Override @@ -84,8 +83,8 @@ public class BriarControllerImpl implements BriarController { } @Override - public boolean hasEncryptionKey() { - return databaseConfig.getEncryptionKey() != null; + public boolean accountSignedIn() { + return accountManager.hasDatabaseKey(); } @Override 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 index 1e0bce3a26aeb5a027bf60c4c3af3256754402b8..cb0d2c3c3f996a40dd6ad0a8c570c243c9b07685 100644 --- 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 @@ -4,6 +4,7 @@ import android.content.Context; import android.content.SharedPreferences; import android.support.v7.preference.PreferenceManager; +import org.briarproject.bramble.api.account.AccountManager; import org.briarproject.bramble.api.db.DatabaseConfig; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.util.AndroidUtils; @@ -34,12 +35,14 @@ public class ConfigControllerImpl implements ConfigController { private final SharedPreferences briarPrefs; private final File dbKeyFile, dbKeyBackupFile; + private final AccountManager accountManager; protected final DatabaseConfig databaseConfig; @Inject public ConfigControllerImpl(SharedPreferences briarPrefs, - DatabaseConfig databaseConfig) { + AccountManager accountManager, DatabaseConfig databaseConfig) { this.briarPrefs = briarPrefs; + this.accountManager = accountManager; this.databaseConfig = databaseConfig; File keyDir = databaseConfig.getDatabaseKeyDirectory(); dbKeyFile = new File(keyDir, DB_KEY_FILENAME); @@ -166,6 +169,6 @@ public class ConfigControllerImpl implements ConfigController { @Override public boolean accountSignedIn() { - return databaseConfig.getEncryptionKey() != null; + 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 f4368dd9a0b21dd59d7106f93dacba44b692860c..5504132b427d48ed6ab423c72a72d528239950eb 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 @@ -85,7 +85,7 @@ public class PasswordActivity extends BaseActivity { public void onStart() { super.onStart(); // If the user has already signed in, clean up this instance - if (briarController.hasEncryptionKey()) { + if (briarController.accountSignedIn()) { setResult(RESULT_OK); finish(); } 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 905797acc6eae94d09f1686da63db1dccacfc084..ca9634502a7a58917826a9885e95aa9f3ba782e7 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 @@ -2,6 +2,7 @@ package org.briarproject.briar.android.login; import android.content.SharedPreferences; +import org.briarproject.bramble.api.account.AccountManager; import org.briarproject.bramble.api.crypto.CryptoComponent; import org.briarproject.bramble.api.crypto.CryptoExecutor; import org.briarproject.bramble.api.crypto.PasswordStrengthEstimator; @@ -33,10 +34,10 @@ public class PasswordControllerImpl extends ConfigControllerImpl @Inject PasswordControllerImpl(SharedPreferences briarPrefs, - DatabaseConfig databaseConfig, + AccountManager accountManager, DatabaseConfig databaseConfig, @CryptoExecutor Executor cryptoExecutor, CryptoComponent crypto, PasswordStrengthEstimator strengthEstimator) { - super(briarPrefs, databaseConfig); + super(briarPrefs, accountManager, databaseConfig); this.cryptoExecutor = cryptoExecutor; this.crypto = crypto; this.strengthEstimator = strengthEstimator; 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 4c56553ba390a39e4a6f063a572e5eb0741b50d4..30d039849c191699854e43090a981d89a3870af2 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 @@ -3,6 +3,7 @@ package org.briarproject.briar.android.login; import android.content.SharedPreferences; import android.support.annotation.Nullable; +import org.briarproject.bramble.api.account.AccountManager; import org.briarproject.bramble.api.crypto.CryptoComponent; import org.briarproject.bramble.api.crypto.CryptoExecutor; import org.briarproject.bramble.api.crypto.PasswordStrengthEstimator; @@ -33,12 +34,12 @@ public class SetupControllerImpl extends PasswordControllerImpl @Inject SetupControllerImpl(SharedPreferences briarPrefs, - DatabaseConfig databaseConfig, + AccountManager accountManager, DatabaseConfig databaseConfig, @CryptoExecutor Executor cryptoExecutor, CryptoComponent crypto, PasswordStrengthEstimator strengthEstimator, IdentityManager identityManager) { - super(briarPrefs, databaseConfig, cryptoExecutor, crypto, - strengthEstimator); + super(briarPrefs, accountManager, databaseConfig, cryptoExecutor, + crypto, strengthEstimator); this.identityManager = identityManager; } diff --git a/briar-android/src/test/java/org/briarproject/briar/android/controller/ConfigControllerImplTest.java b/briar-android/src/test/java/org/briarproject/briar/android/controller/ConfigControllerImplTest.java index 859792b3c9872de53ef0c8d03b430be30ef14f30..d8e4445c29a57d0ccd171e40e1e70658a5199a8a 100644 --- a/briar-android/src/test/java/org/briarproject/briar/android/controller/ConfigControllerImplTest.java +++ b/briar-android/src/test/java/org/briarproject/briar/android/controller/ConfigControllerImplTest.java @@ -3,6 +3,7 @@ package org.briarproject.briar.android.controller; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; +import org.briarproject.bramble.api.account.AccountManager; import org.briarproject.bramble.api.db.DatabaseConfig; import org.briarproject.bramble.test.BrambleMockTestCase; import org.jmock.Expectations; @@ -26,6 +27,8 @@ public class ConfigControllerImplTest extends BrambleMockTestCase { private final SharedPreferences prefs = context.mock(SharedPreferences.class); + private final AccountManager accountManager = + context.mock(AccountManager.class); private final DatabaseConfig databaseConfig = context.mock(DatabaseConfig.class); private final Editor editor = context.mock(Editor.class); @@ -56,7 +59,7 @@ public class ConfigControllerImplTest extends BrambleMockTestCase { assertFalse(keyFile.exists()); assertFalse(keyBackupFile.exists()); - ConfigControllerImpl c = new ConfigControllerImpl(prefs, + ConfigControllerImpl c = new ConfigControllerImpl(prefs, accountManager, databaseConfig); assertEquals(encryptedKeyHex, c.getEncryptedDatabaseKey()); @@ -85,7 +88,7 @@ public class ConfigControllerImplTest extends BrambleMockTestCase { assertFalse(keyBackupFile.exists()); assertEquals(encryptedKeyHex, loadDatabaseKey(keyFile)); - ConfigControllerImpl c = new ConfigControllerImpl(prefs, + ConfigControllerImpl c = new ConfigControllerImpl(prefs, accountManager, databaseConfig); assertEquals(encryptedKeyHex, c.getEncryptedDatabaseKey()); @@ -113,7 +116,7 @@ public class ConfigControllerImplTest extends BrambleMockTestCase { assertTrue(keyBackupFile.exists()); assertEquals(encryptedKeyHex, loadDatabaseKey(keyBackupFile)); - ConfigControllerImpl c = new ConfigControllerImpl(prefs, + ConfigControllerImpl c = new ConfigControllerImpl(prefs, accountManager, databaseConfig); assertEquals(encryptedKeyHex, c.getEncryptedDatabaseKey()); @@ -135,7 +138,7 @@ public class ConfigControllerImplTest extends BrambleMockTestCase { assertFalse(keyFile.exists()); assertFalse(keyBackupFile.exists()); - ConfigControllerImpl c = new ConfigControllerImpl(prefs, + ConfigControllerImpl c = new ConfigControllerImpl(prefs, accountManager, databaseConfig); assertNull(c.getEncryptedDatabaseKey()); @@ -160,7 +163,7 @@ public class ConfigControllerImplTest extends BrambleMockTestCase { assertFalse(keyBackupFile.exists()); assertEquals(oldEncryptedKeyHex, loadDatabaseKey(keyFile)); - ConfigController c = new ConfigControllerImpl(prefs, + ConfigController c = new ConfigControllerImpl(prefs, accountManager, databaseConfig); assertTrue(c.storeEncryptedDatabaseKey(encryptedKeyHex)); @@ -187,7 +190,7 @@ public class ConfigControllerImplTest extends BrambleMockTestCase { assertTrue(keyBackupFile.exists()); assertEquals(oldEncryptedKeyHex, loadDatabaseKey(keyBackupFile)); - ConfigController c = new ConfigControllerImpl(prefs, + ConfigController c = new ConfigControllerImpl(prefs, accountManager, databaseConfig); assertTrue(c.storeEncryptedDatabaseKey(encryptedKeyHex)); diff --git a/briar-android/src/test/java/org/briarproject/briar/android/forum/TestForumActivity.java b/briar-android/src/test/java/org/briarproject/briar/android/forum/TestForumActivity.java index 72b8d66448bfcff0d92accabdd47bf68ddc5f76f..7a04b4517bc2765b0e0d6d2f9e85e219d748088b 100644 --- a/briar-android/src/test/java/org/briarproject/briar/android/forum/TestForumActivity.java +++ b/briar-android/src/test/java/org/briarproject/briar/android/forum/TestForumActivity.java @@ -45,7 +45,7 @@ public class TestForumActivity extends ForumActivity { protected BriarController provideBriarController( BriarControllerImpl briarController) { BriarController c = Mockito.mock(BriarController.class); - Mockito.when(c.hasEncryptionKey()).thenReturn(true); + Mockito.when(c.accountSignedIn()).thenReturn(true); return c; } diff --git a/briar-android/src/test/java/org/briarproject/briar/android/login/PasswordControllerImplTest.java b/briar-android/src/test/java/org/briarproject/briar/android/login/PasswordControllerImplTest.java index 427dfa772d1cb52b75e2264344e8f4c2c8cf66d3..dcc2685b64d82f4dbbc6c77e4600b83eb7398891 100644 --- a/briar-android/src/test/java/org/briarproject/briar/android/login/PasswordControllerImplTest.java +++ b/briar-android/src/test/java/org/briarproject/briar/android/login/PasswordControllerImplTest.java @@ -2,6 +2,7 @@ package org.briarproject.briar.android.login; import android.content.SharedPreferences; +import org.briarproject.bramble.api.account.AccountManager; import org.briarproject.bramble.api.crypto.CryptoComponent; import org.briarproject.bramble.api.crypto.PasswordStrengthEstimator; import org.briarproject.bramble.api.db.DatabaseConfig; @@ -30,6 +31,8 @@ public class PasswordControllerImplTest extends BrambleMockTestCase { private final SharedPreferences briarPrefs = context.mock(SharedPreferences.class); + private final AccountManager accountManager = + context.mock(AccountManager.class); private final DatabaseConfig databaseConfig = context.mock(DatabaseConfig.class); private final CryptoComponent crypto = context.mock(CryptoComponent.class); @@ -70,7 +73,8 @@ public class PasswordControllerImplTest extends BrambleMockTestCase { storeDatabaseKey(keyBackupFile, toHexString(oldEncryptedKey)); PasswordControllerImpl p = new PasswordControllerImpl(briarPrefs, - databaseConfig, cryptoExecutor, crypto, estimator); + accountManager, databaseConfig, cryptoExecutor, crypto, + estimator); AtomicBoolean capturedResult = new AtomicBoolean(false); p.changePassword(oldPassword, newPassword, capturedResult::set); @@ -104,7 +108,8 @@ public class PasswordControllerImplTest extends BrambleMockTestCase { storeDatabaseKey(keyBackupFile, toHexString(oldEncryptedKey)); PasswordControllerImpl p = new PasswordControllerImpl(briarPrefs, - databaseConfig, cryptoExecutor, crypto, estimator); + accountManager, databaseConfig, cryptoExecutor, crypto, + estimator); AtomicBoolean capturedResult = new AtomicBoolean(true); p.changePassword(oldPassword, newPassword, capturedResult::set); diff --git a/briar-android/src/test/java/org/briarproject/briar/android/login/SetupControllerImplTest.java b/briar-android/src/test/java/org/briarproject/briar/android/login/SetupControllerImplTest.java index f95aab6dd4329ca8d01034d9ee1fc77faf869790..dd88251476c131674d7e663cd095d4e8cea6dc06 100644 --- a/briar-android/src/test/java/org/briarproject/briar/android/login/SetupControllerImplTest.java +++ b/briar-android/src/test/java/org/briarproject/briar/android/login/SetupControllerImplTest.java @@ -3,6 +3,7 @@ package org.briarproject.briar.android.login; import android.content.SharedPreferences; import android.content.pm.ApplicationInfo; +import org.briarproject.bramble.api.account.AccountManager; import org.briarproject.bramble.api.crypto.CryptoComponent; import org.briarproject.bramble.api.crypto.PasswordStrengthEstimator; import org.briarproject.bramble.api.crypto.SecretKey; @@ -37,6 +38,8 @@ public class SetupControllerImplTest extends BrambleMockTestCase { private final SharedPreferences briarPrefs = context.mock(SharedPreferences.class); + private final AccountManager accountManager = + context.mock(AccountManager.class); private final DatabaseConfig databaseConfig = context.mock(DatabaseConfig.class); private final CryptoComponent crypto = context.mock(CryptoComponent.class); @@ -101,8 +104,8 @@ public class SetupControllerImplTest extends BrambleMockTestCase { assertFalse(keyBackupFile.exists()); SetupControllerImpl s = new SetupControllerImpl(briarPrefs, - databaseConfig, cryptoExecutor, crypto, estimator, - identityManager); + accountManager, databaseConfig, cryptoExecutor, crypto, + estimator, identityManager); s.setSetupActivity(setupActivity); AtomicBoolean called = new AtomicBoolean(false); diff --git a/briar-core/src/test/java/org/briarproject/briar/test/BriarIntegrationTestComponent.java b/briar-core/src/test/java/org/briarproject/briar/test/BriarIntegrationTestComponent.java index a3b74d4c25ce56f3e83f69de5e79d95b39b51999..d55b06d00b2972fb8bfd2d81ac313bc3a4abcd46 100644 --- a/briar-core/src/test/java/org/briarproject/briar/test/BriarIntegrationTestComponent.java +++ b/briar-core/src/test/java/org/briarproject/briar/test/BriarIntegrationTestComponent.java @@ -1,5 +1,6 @@ package org.briarproject.briar.test; +import org.briarproject.bramble.account.AccountModule; import org.briarproject.bramble.api.client.ClientHelper; import org.briarproject.bramble.api.contact.ContactManager; import org.briarproject.bramble.api.db.DatabaseComponent; @@ -54,6 +55,7 @@ import dagger.Component; TestDatabaseModule.class, TestPluginConfigModule.class, TestSecureRandomModule.class, + AccountModule.class, BlogModule.class, BriarClientModule.class, ClientModule.class,