DB version switcher for requery

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
This commit is contained in:
Andy Scherzinger 2022-06-20 19:55:37 +02:00
parent d55c3fa68e
commit f7ca1ec804
No known key found for this signature in database
GPG key ID: 6CADC7E3523C308B
3 changed files with 28 additions and 4 deletions

View file

@ -116,6 +116,9 @@ class MainActivity : BaseActivity(), ActionBarProvider {
onNewIntent(intent)
} else if (!router!!.hasRootController()) {
if (hasDb) {
if (!appPreferences.isDbRoomMigrated) {
appPreferences.isDbRoomMigrated = true
}
GlobalScope.launch {
usersRepository.getUsers().collect {
if (it.isNotEmpty()) {

View file

@ -36,16 +36,23 @@ import io.requery.reactivex.ReactiveSupport;
import io.requery.sql.Configuration;
import io.requery.sql.EntityDataStore;
import net.orange_box.storebox.StoreBox;
import net.sqlcipher.database.SQLiteDatabase;
import javax.inject.Singleton;
@Module
public class DatabaseModule {
public static final int DB_VERSION = 8;
public static final int DB_VERSION = 7;
@Provides
@Singleton
public SqlCipherDatabaseSource provideSqlCipherDatabaseSource(@NonNull final Context context) {
public SqlCipherDatabaseSource provideSqlCipherDatabaseSource(
@NonNull final Context context,
final AppPreferences appPreferences) {
int version = DB_VERSION;
if (appPreferences.getIsDbRoomMigrated()) {
version++;
}
return new SqlCipherDatabaseSource(
context,
Models.DEFAULT,
@ -57,7 +64,14 @@ public class DatabaseModule {
.trim()
+ ".sqlite",
context.getString(R.string.nc_talk_database_encryption_key),
DB_VERSION);
version) {
@Override
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (newVersion < 7) {
super.onDowngrade(db, oldVersion, newVersion);
}
}
};
}
@Provides
@ -71,7 +85,7 @@ public class DatabaseModule {
@Provides
@Singleton
public AppPreferences providePreferences(@NonNull final Context poContext) {
AppPreferences preferences = StoreBox.create(poContext, AppPreferences.class);
AppPreferences preferences = StoreBox.create(poContext, AppPreferences.class);
preferences.removeLinkPreviews();
return preferences;
}

View file

@ -289,6 +289,13 @@ public interface AppPreferences {
@KeyByString("db_cypher_v4_upgrade")
void setIsDbCypherToUpgrade(boolean value);
@KeyByString("db_room_migrated")
@DefaultValue(R.bool.value_false)
boolean getIsDbRoomMigrated();
@KeyByString("db_room_migrated")
void setIsDbRoomMigrated(boolean value);
@KeyByResource(R.string.nc_settings_phone_book_integration_key)
@RegisterChangeListenerMethod
void registerPhoneBookIntegrationChangeListener(OnPreferenceValueChangedListener<Boolean> listener);