diff --git a/app/src/main/java/com/nextcloud/talk/activities/MainActivity.java b/app/src/main/java/com/nextcloud/talk/activities/MainActivity.java index 98142dac2..3eab756e4 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/MainActivity.java +++ b/app/src/main/java/com/nextcloud/talk/activities/MainActivity.java @@ -20,6 +20,7 @@ */ package com.nextcloud.talk.activities; +import android.annotation.SuppressLint; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; @@ -57,6 +58,7 @@ import autodagger.AutoInjector; import butterknife.BindView; import butterknife.ButterKnife; import io.requery.Persistable; +import io.requery.android.sqlcipher.SqlCipherDatabaseSource; import io.requery.reactivex.ReactiveEntityStore; @AutoInjector(NextcloudTalkApplication.class) @@ -73,6 +75,8 @@ public final class MainActivity extends AppCompatActivity implements ActionBarPr UserUtils userUtils; @Inject ReactiveEntityStore dataStore; + @Inject + SqlCipherDatabaseSource sqlCipherDatabaseSource; @Inject EventBus eventBus; @@ -92,7 +96,8 @@ public final class MainActivity extends AppCompatActivity implements ActionBarPr router = Conductor.attachRouter(this, container, savedInstanceState); - if (!router.hasRootController() && userUtils.anyUserExists()) { + if (!router.hasRootController() && sqlCipherDatabaseSource.getWritableDatabase() != null && + userUtils.anyUserExists()) { router.setRoot(RouterTransaction.with(new MagicBottomNavigationController()) .pushChangeHandler(new HorizontalChangeHandler()) .popChangeHandler(new HorizontalChangeHandler())); @@ -135,7 +140,7 @@ public final class MainActivity extends AppCompatActivity implements ActionBarPr issuedFor = cert.getSubjectDN().getName(); } - String dialogText = String.format(getResources() + @SuppressLint("StringFormatMatches") String dialogText = String.format(getResources() .getString(R.string.nc_certificate_dialog_text), issuedBy, issuedFor, validFrom, validUntil); diff --git a/app/src/main/java/com/nextcloud/talk/dagger/modules/DatabaseModule.java b/app/src/main/java/com/nextcloud/talk/dagger/modules/DatabaseModule.java index 3cf8fe0d1..85a2c14cf 100644 --- a/app/src/main/java/com/nextcloud/talk/dagger/modules/DatabaseModule.java +++ b/app/src/main/java/com/nextcloud/talk/dagger/modules/DatabaseModule.java @@ -45,13 +45,17 @@ public class DatabaseModule { @Provides @Singleton - public ReactiveEntityStore provideDataStore(@NonNull final Context context) { - - final SqlCipherDatabaseSource source = new SqlCipherDatabaseSource(context, Models.DEFAULT, + public SqlCipherDatabaseSource provideSqlCipherDatabaseSource(@NonNull final Context context) { + return new SqlCipherDatabaseSource(context, Models.DEFAULT, context.getResources().getString(R.string.nc_app_name).toLowerCase() .replace(" ", "_").trim() + ".sqlite", context.getString(R.string.nc_talk_database_encryption_key), 2); - final Configuration configuration = source.getConfiguration(); + } + + @Provides + @Singleton + public ReactiveEntityStore provideDataStore(@NonNull final SqlCipherDatabaseSource sqlCipherDatabaseSource) { + final Configuration configuration = sqlCipherDatabaseSource.getConfiguration(); return ReactiveSupport.toReactiveStore(new EntityDataStore(configuration)); }