From 6f6ba38de10204720cb8a5a596d8a37d53013915 Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Thu, 26 Jul 2018 15:57:37 +0100
Subject: [PATCH] Remove logic from DatabaseConfig.

---
 .../bramble/api/db/DatabaseConfig.java        |  2 --
 .../briarproject/bramble/db/H2Database.java   |  3 +-
 .../bramble/db/HyperSqlDatabase.java          |  3 +-
 .../bramble/test/TestDatabaseConfig.java      |  7 -----
 .../briar/android/AndroidDatabaseConfig.java  | 31 -------------------
 .../briarproject/briar/android/AppModule.java |  8 +----
 .../controller/ConfigControllerImpl.java      |  4 +--
 .../android/login/SignInReminderReceiver.java |  3 +-
 8 files changed, 7 insertions(+), 54 deletions(-)

diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/db/DatabaseConfig.java b/bramble-api/src/main/java/org/briarproject/bramble/api/db/DatabaseConfig.java
index a9a95c47a2..f096f1fec8 100644
--- a/bramble-api/src/main/java/org/briarproject/bramble/api/db/DatabaseConfig.java
+++ b/bramble-api/src/main/java/org/briarproject/bramble/api/db/DatabaseConfig.java
@@ -7,8 +7,6 @@ import java.io.File;
 @NotNullByDefault
 public interface DatabaseConfig {
 
-	boolean databaseExists();
-
 	File getDatabaseDirectory();
 
 	File getDatabaseKeyDirectory();
diff --git a/bramble-core/src/main/java/org/briarproject/bramble/db/H2Database.java b/bramble-core/src/main/java/org/briarproject/bramble/db/H2Database.java
index fd5be69056..f400d1ce98 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/db/H2Database.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/db/H2Database.java
@@ -50,8 +50,7 @@ class H2Database extends JdbcDatabase {
 	public boolean open(SecretKey key, @Nullable MigrationListener listener)
 			throws DbException {
 		this.key = key;
-		boolean reopen = config.databaseExists();
-		if (!reopen) config.getDatabaseDirectory().mkdirs();
+		boolean reopen = !config.getDatabaseDirectory().mkdirs();
 		super.open("org.h2.Driver", reopen, key, listener);
 		return reopen;
 	}
diff --git a/bramble-core/src/main/java/org/briarproject/bramble/db/HyperSqlDatabase.java b/bramble-core/src/main/java/org/briarproject/bramble/db/HyperSqlDatabase.java
index 0bfb66ea6e..447537d8c8 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/db/HyperSqlDatabase.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/db/HyperSqlDatabase.java
@@ -52,8 +52,7 @@ class HyperSqlDatabase extends JdbcDatabase {
 	public boolean open(SecretKey key, @Nullable MigrationListener listener)
 			throws DbException {
 		this.key = key;
-		boolean reopen = config.databaseExists();
-		if (!reopen) config.getDatabaseDirectory().mkdirs();
+		boolean reopen = !config.getDatabaseDirectory().mkdirs();
 		super.open("org.hsqldb.jdbc.JDBCDriver", reopen, key, listener);
 		return reopen;
 	}
diff --git a/bramble-core/src/test/java/org/briarproject/bramble/test/TestDatabaseConfig.java b/bramble-core/src/test/java/org/briarproject/bramble/test/TestDatabaseConfig.java
index 89f68a30ea..1c626b483b 100644
--- a/bramble-core/src/test/java/org/briarproject/bramble/test/TestDatabaseConfig.java
+++ b/bramble-core/src/test/java/org/briarproject/bramble/test/TestDatabaseConfig.java
@@ -17,13 +17,6 @@ public class TestDatabaseConfig implements DatabaseConfig {
 		this.maxSize = maxSize;
 	}
 
-	@Override
-	public boolean databaseExists() {
-		if (!dbDir.isDirectory()) return false;
-		File[] files = dbDir.listFiles();
-		return files != null && files.length > 0;
-	}
-
 	@Override
 	public File getDatabaseDirectory() {
 		return dbDir;
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/AndroidDatabaseConfig.java b/briar-android/src/main/java/org/briarproject/briar/android/AndroidDatabaseConfig.java
index 9aa2ac6ae0..797fb907c1 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/AndroidDatabaseConfig.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/AndroidDatabaseConfig.java
@@ -4,16 +4,10 @@ import org.briarproject.bramble.api.db.DatabaseConfig;
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
 
 import java.io.File;
-import java.util.logging.Logger;
-
-import static java.util.logging.Level.INFO;
 
 @NotNullByDefault
 class AndroidDatabaseConfig implements DatabaseConfig {
 
-	private static final Logger LOG =
-			Logger.getLogger(AndroidDatabaseConfig.class.getName());
-
 	private final File dbDir, keyDir;
 
 	AndroidDatabaseConfig(File dbDir, File keyDir) {
@@ -21,38 +15,13 @@ class AndroidDatabaseConfig implements DatabaseConfig {
 		this.keyDir = keyDir;
 	}
 
-	@Override
-	public boolean databaseExists() {
-		// FIXME should not run on UiThread #620
-		if (!dbDir.isDirectory()) {
-			if (LOG.isLoggable(INFO))
-				LOG.info(dbDir.getAbsolutePath() + " is not a directory");
-			return false;
-		}
-		File[] files = dbDir.listFiles();
-		if (LOG.isLoggable(INFO)) {
-			if (files == null) {
-				LOG.info("Could not list files in " + dbDir.getAbsolutePath());
-			} else {
-				LOG.info("Files in " + dbDir.getAbsolutePath() + ":");
-				for (File f : files) LOG.info(f.getName());
-			}
-			LOG.info("Database exists: " + (files != null && files.length > 0));
-		}
-		return files != null && files.length > 0;
-	}
-
 	@Override
 	public File getDatabaseDirectory() {
-		if (LOG.isLoggable(INFO))
-			LOG.info("Database directory: " + dbDir.getAbsolutePath());
 		return dbDir;
 	}
 
 	@Override
 	public File getDatabaseKeyDirectory() {
-		if (LOG.isLoggable(INFO))
-			LOG.info("Database key directory: " + keyDir.getAbsolutePath());
 		return keyDir;
 	}
 
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java b/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java
index 2296a8baff..3af7162778 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java
@@ -11,9 +11,7 @@ import org.briarproject.bramble.api.db.DatabaseConfig;
 import org.briarproject.bramble.api.event.EventBus;
 import org.briarproject.bramble.api.lifecycle.IoExecutor;
 import org.briarproject.bramble.api.lifecycle.LifecycleManager;
-import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault;
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
-import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault;
 import org.briarproject.bramble.api.plugin.BackoffFactory;
 import org.briarproject.bramble.api.plugin.PluginConfig;
 import org.briarproject.bramble.api.plugin.duplex.DuplexPluginFactory;
@@ -86,11 +84,7 @@ public class AppModule {
 		File dbDir = app.getApplicationContext().getDir("db", MODE_PRIVATE);
 		File keyDir = app.getApplicationContext().getDir("key", MODE_PRIVATE);
 		StrictMode.setThreadPolicy(tp);
-		@MethodsNotNullByDefault
-		@ParametersNotNullByDefault
-		DatabaseConfig databaseConfig =
-				new AndroidDatabaseConfig(dbDir, keyDir);
-		return databaseConfig;
+		return new AndroidDatabaseConfig(dbDir, keyDir);
 	}
 
 	@Provides
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 1f73053711..671b6cb6a7 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
@@ -76,8 +76,8 @@ public class ConfigControllerImpl implements ConfigController {
 
 	@Override
 	public boolean accountExists() {
-		String hex = getEncryptedDatabaseKey();
-		return hex != null && databaseConfig.databaseExists();
+		return getEncryptedDatabaseKey() != null &&
+				databaseConfig.getDatabaseDirectory().isDirectory();
 	}
 
 	@Override
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/SignInReminderReceiver.java b/briar-android/src/main/java/org/briarproject/briar/android/login/SignInReminderReceiver.java
index cf1edaae66..559757979f 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/login/SignInReminderReceiver.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/login/SignInReminderReceiver.java
@@ -51,7 +51,8 @@ public class SignInReminderReceiver extends BroadcastReceiver {
 		if (action == null) return;
 		if (action.equals(ACTION_BOOT_COMPLETED) ||
 				action.equals(ACTION_MY_PACKAGE_REPLACED)) {
-			if (databaseConfig.databaseExists()) {
+			// TODO: Use account manager to check whether account exists
+			if (databaseConfig.getDatabaseDirectory().isDirectory()) {
 				SharedPreferences prefs = app.getDefaultSharedPreferences();
 				if (prefs.getBoolean(NOTIFY_SIGN_IN, true)) {
 					showSignInNotification(ctx);
-- 
GitLab