From 3a96e3d13e9f6b13f7f779346ec35ac3b23f6f0a Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 17 Jul 2019 12:21:17 +0200 Subject: [PATCH] Added relinker, fixed warning --- README.md | 1 + app/build.gradle | 4 + app/src/main/java/eu/faircode/email/DB.java | 203 +++++++++++--------- 3 files changed, 113 insertions(+), 95 deletions(-) diff --git a/README.md b/README.md index 4f1952719c..a5e030452f 100644 --- a/README.md +++ b/README.md @@ -184,6 +184,7 @@ FairEmail uses: * [Bugsnag exception reporter for Android](https://github.com/bugsnag/bugsnag-android). Copyright (c) 2012 Bugsnag. [MIT License](https://github.com/bugsnag/bugsnag-android/blob/master/LICENSE.txt). * [biweekly](https://github.com/mangstadt/biweekly). Copyright (c) 2013-2018, Michael Angstadt. [BSD 2-Clause](https://github.com/mangstadt/biweekly/blob/master/LICENSE). * [PhotoView](https://github.com/chrisbanes/PhotoView). Copyright 2018 Chris Banes. [Apache License](https://github.com/chrisbanes/PhotoView/blob/master/LICENSE). +* [ReLinker](https://github.com/KeepSafe/ReLinker). Copyright 2015 - 2016 KeepSafe Software, Inc. [Apache License](https://github.com/KeepSafe/ReLinker/blob/master/LICENSE). Error reporting is sponsored by: diff --git a/app/build.gradle b/app/build.gradle index 4d635c4e5b..d391fee4d1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -152,6 +152,7 @@ dependencies { def bugsnag_version = "4.15.0" def biweekly_version = "0.6.3" def photoview_version = "2.3.0" + def relinker_version = "1.3.1" // https://developer.android.com/jetpack/androidx/releases/ @@ -240,6 +241,9 @@ dependencies { // https://github.com/chrisbanes/PhotoView implementation "com.github.chrisbanes:PhotoView:$photoview_version" + // https://github.com/KeepSafe/ReLinker + implementation "com.getkeepsafe.relinker:relinker:$relinker_version" + // git clone https://android.googlesource.com/platform/frameworks/opt/colorpicker implementation project(path: ':colorpicker') } diff --git a/app/src/main/java/eu/faircode/email/DB.java b/app/src/main/java/eu/faircode/email/DB.java index a165c66475..e85d6a6391 100644 --- a/app/src/main/java/eu/faircode/email/DB.java +++ b/app/src/main/java/eu/faircode/email/DB.java @@ -16,6 +16,8 @@ import androidx.room.TypeConverters; import androidx.room.migration.Migration; import androidx.sqlite.db.SupportSQLiteDatabase; +import com.getkeepsafe.relinker.ReLinker; + import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -125,7 +127,18 @@ public abstract class DB extends RoomDatabase { return sInstance; } - private static RoomDatabase.Builder getBuilder(Context context) { + private static RoomDatabase.Builder getBuilder(Context context) { + try { + ReLinker.log(new ReLinker.Logger() { + @Override + public void log(String message) { + Log.i("Relinker: " + message); + } + }).loadLibrary(context, "sqlite3x"); + } catch (Throwable ex) { + Log.e(ex); + } + return Room .databaseBuilder(context, DB.class, DB_NAME) .openHelperFactory(new RequerySQLiteOpenHelperFactory()) @@ -138,14 +151,14 @@ public abstract class DB extends RoomDatabase { return builder .addCallback(new Callback() { @Override - public void onOpen(SupportSQLiteDatabase db) { + public void onOpen(@NonNull SupportSQLiteDatabase db) { Log.i("Database version=" + db.getVersion()); super.onOpen(db); } }) .addMigrations(new Migration(1, 2) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `folder` RENAME COLUMN `after` TO `sync_days`"); db.execSQL("ALTER TABLE `folder` ADD COLUMN `keep_days` INTEGER NOT NULL DEFAULT 30"); @@ -154,7 +167,7 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(2, 3) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `identity` ADD COLUMN `signature` TEXT"); db.execSQL("UPDATE `identity` SET signature =" + @@ -163,7 +176,7 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(3, 4) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `message` ADD COLUMN `forwarding` INTEGER" + " REFERENCES `message`(`id`) ON UPDATE NO ACTION ON DELETE SET NULL"); @@ -172,7 +185,7 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(4, 5) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `account` ADD COLUMN `last_connected` INTEGER"); db.execSQL("ALTER TABLE `message` ADD COLUMN `last_attempt` INTEGER"); @@ -180,14 +193,14 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(5, 6) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `account` ADD COLUMN `notify` INTEGER NOT NULL DEFAULT 0"); } }) .addMigrations(new Migration(6, 7) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `message` ADD COLUMN `answered` INTEGER NOT NULL DEFAULT 0"); db.execSQL("ALTER TABLE `message` ADD COLUMN `ui_answered` INTEGER NOT NULL DEFAULT 0"); @@ -195,21 +208,21 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(7, 8) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `message` ADD COLUMN `keywords` TEXT"); } }) .addMigrations(new Migration(8, 9) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `folder` ADD COLUMN `keywords` TEXT"); } }) .addMigrations(new Migration(9, 10) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `message` ADD COLUMN `ui_browsed` INTEGER NOT NULL DEFAULT 0"); db.execSQL("CREATE INDEX `index_message_ui_browsed` ON `message` (`ui_browsed`)"); @@ -217,14 +230,14 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(10, 11) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `operation` ADD COLUMN `error` TEXT"); } }) .addMigrations(new Migration(11, 12) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("DROP INDEX `index_operation_folder`"); db.execSQL("DROP INDEX `index_operation_message`"); @@ -245,35 +258,35 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(12, 13) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("CREATE INDEX `index_message_ui_flagged` ON `message` (`ui_flagged`)"); } }) .addMigrations(new Migration(13, 14) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `folder` ADD COLUMN `level` INTEGER NOT NULL DEFAULT 0"); } }) .addMigrations(new Migration(14, 15) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `folder` ADD COLUMN `sync_state` TEXT"); } }) .addMigrations(new Migration(15, 16) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `folder` ADD COLUMN `poll` INTEGER NOT NULL DEFAULT 0"); } }) .addMigrations(new Migration(16, 17) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("DELETE FROM `message` WHERE ui_found"); db.execSQL("DROP INDEX `index_message_folder_uid_ui_found`"); @@ -284,7 +297,7 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(17, 18) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `account` ADD COLUMN `tbd` INTEGER"); db.execSQL("ALTER TABLE `identity` ADD COLUMN `tbd` INTEGER"); @@ -293,7 +306,7 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(18, 19) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `identity` ADD COLUMN `delivery_receipt` INTEGER NOT NULL DEFAULT 0"); db.execSQL("ALTER TABLE `identity` ADD COLUMN `read_receipt` INTEGER NOT NULL DEFAULT 0"); @@ -301,7 +314,7 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(19, 20) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `folder` ADD COLUMN `notify` INTEGER NOT NULL DEFAULT 0"); db.execSQL("UPDATE `folder` SET notify = unified"); @@ -309,7 +322,7 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(20, 21) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `identity` ADD COLUMN `display` TEXT"); db.execSQL("ALTER TABLE `identity` ADD COLUMN `bcc` TEXT"); @@ -317,7 +330,7 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(21, 22) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `folder` ADD COLUMN `initialize` INTEGER NOT NULL DEFAULT 1"); db.execSQL("UPDATE `folder` SET sync_days = 1"); @@ -325,28 +338,28 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(22, 23) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `folder` ADD COLUMN `download` INTEGER NOT NULL DEFAULT 1"); } }) .addMigrations(new Migration(23, 24) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `folder` ADD COLUMN `tbc` INTEGER"); } }) .addMigrations(new Migration(24, 25) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `account` ADD COLUMN `prefix` TEXT"); } }) .addMigrations(new Migration(25, 26) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); int browse = (prefs.getBoolean("browse", true) ? 1 : 0); @@ -355,7 +368,7 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(26, 27) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `message` ADD COLUMN `sender` TEXT"); db.execSQL("CREATE INDEX `index_message_sender` ON `message` (`sender`)"); @@ -363,7 +376,7 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(27, 28) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); try (Cursor cursor = db.query("SELECT `id`, `from` FROM message")) { @@ -385,14 +398,14 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(28, 29) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `folder` ADD COLUMN `last_sync` INTEGER"); } }) .addMigrations(new Migration(29, 30) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `attachment` ADD COLUMN `encryption` INTEGER"); db.execSQL("UPDATE attachment SET encryption = " + EntityAttachment.PGP_MESSAGE + " where name = 'encrypted.asc'"); @@ -400,14 +413,14 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(30, 31) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `attachment` ADD COLUMN `disposition` TEXT"); } }) .addMigrations(new Migration(31, 32) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `message` ADD COLUMN `ui_snoozed` INTEGER"); db.execSQL("CREATE INDEX `index_message_ui_snoozed` ON `message` (`ui_snoozed`)"); @@ -415,7 +428,7 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(32, 33) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `account` ADD COLUMN `realm` TEXT"); db.execSQL("ALTER TABLE `identity` ADD COLUMN `realm` TEXT"); @@ -423,28 +436,28 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(33, 34) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `message` ADD COLUMN `raw` INTEGER"); } }) .addMigrations(new Migration(34, 35) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `attachment` ADD COLUMN `error` TEXT"); } }) .addMigrations(new Migration(35, 36) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `message` ADD COLUMN `warning` TEXT"); } }) .addMigrations(new Migration(36, 37) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("CREATE TABLE `rule`" + " (`id` INTEGER PRIMARY KEY AUTOINCREMENT," + @@ -461,14 +474,14 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(37, 38) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `rule` ADD COLUMN `stop` INTEGER NOT NULL DEFAULT 0"); } }) .addMigrations(new Migration(38, 39) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `account` ADD COLUMN `swipe_left` INTEGER"); db.execSQL("ALTER TABLE `account` ADD COLUMN `swipe_right` INTEGER"); @@ -476,35 +489,35 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(39, 40) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `identity` ADD COLUMN `last_connected` INTEGER"); } }) .addMigrations(new Migration(40, 41) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `message` ADD COLUMN `flags` TEXT"); } }) .addMigrations(new Migration(41, 42) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `identity` ADD COLUMN `plain_only` INTEGER NOT NULL DEFAULT 0"); } }) .addMigrations(new Migration(42, 43) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `account` ADD COLUMN `pop` INTEGER NOT NULL DEFAULT 0"); } }) .addMigrations(new Migration(43, 44) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("CREATE TABLE IF NOT EXISTS `contact`" + " (`id` INTEGER PRIMARY KEY AUTOINCREMENT" + @@ -517,42 +530,42 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(44, 45) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `account` ADD COLUMN `ondemand` INTEGER NOT NULL DEFAULT 0"); } }) .addMigrations(new Migration(45, 46) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `identity` ADD COLUMN `encrypt` INTEGER NOT NULL DEFAULT 0"); } }) .addMigrations(new Migration(46, 47) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `identity` ADD COLUMN `use_ip` INTEGER NOT NULL DEFAULT 0"); } }) .addMigrations(new Migration(47, 48) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("UPDATE `identity` SET use_ip = 1"); } }) .addMigrations(new Migration(48, 49) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("CREATE INDEX `index_operation_name` ON `operation` (`name`)"); } }) .addMigrations(new Migration(49, 50) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("DROP INDEX `index_message_replying`"); db.execSQL("DROP INDEX `index_message_forwarding`"); @@ -561,28 +574,28 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(50, 51) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("DELETE FROM operation WHERE name = 'wait'"); } }) .addMigrations(new Migration(51, 52) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `folder` ADD COLUMN `total` INTEGER"); } }) .addMigrations(new Migration(52, 53) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `operation` ADD COLUMN `account` INTEGER"); } }) .addMigrations(new Migration(53, 54) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); File folder = new File(context.getFilesDir(), "attachments"); File[] attachments = folder.listFiles(); @@ -613,7 +626,7 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(54, 55) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `contact` ADD COLUMN `avatar` TEXT"); db.execSQL("ALTER TABLE `contact` ADD COLUMN `times_contacted` INTEGER NOT NULL DEFAULT 1"); @@ -622,14 +635,14 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(55, 56) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `contact` ADD COLUMN `favorite` INTEGER NOT NULL DEFAULT 0"); } }) .addMigrations(new Migration(56, 57) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("CREATE INDEX `index_contact_times_contacted` ON `contact` (`times_contacted`)"); db.execSQL("CREATE INDEX `index_contact_last_contacted` ON `contact` (`last_contacted`)"); @@ -638,7 +651,7 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(57, 58) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("DROP TABLE `contact`"); db.execSQL("CREATE TABLE IF NOT EXISTS `contact`" + @@ -662,35 +675,35 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(58, 59) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("CREATE INDEX `index_contact_avatar` ON `contact` (`avatar`)"); } }) .addMigrations(new Migration(59, 60) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `folder` ADD COLUMN `parent` INTEGER"); } }) .addMigrations(new Migration(60, 61) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `folder` ADD COLUMN `collapsed` INTEGER NOT NULL DEFAULT 0"); } }) .addMigrations(new Migration(61, 62) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `account` ADD COLUMN `warning` TEXT"); } }) .addMigrations(new Migration(62, 63) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("DROP INDEX index_message_msgid_folder"); db.execSQL("CREATE INDEX `index_message_msgid` ON `message` (`msgid`)"); @@ -698,7 +711,7 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(63, 64) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `message` ADD COLUMN `dkim` INTEGER"); db.execSQL("ALTER TABLE `message` ADD COLUMN `spf` INTEGER"); @@ -707,28 +720,28 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(64, 65) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `identity` ADD COLUMN `sender_extra` INTEGER NOT NULL DEFAULT 0"); } }) .addMigrations(new Migration(65, 66) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `message` ADD COLUMN `receipt_request` INTEGER"); } }) .addMigrations(new Migration(66, 67) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `message` ADD COLUMN `revision` INTEGER"); } }) .addMigrations(new Migration(67, 68) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `message` ADD COLUMN `revisions` INTEGER"); db.execSQL("UPDATE message SET revisions = revision"); @@ -736,84 +749,84 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(68, 69) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `message` ADD COLUMN `receipt_to` TEXT"); } }) .addMigrations(new Migration(69, 70) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("UPDATE message SET uid = NULL WHERE uid < 0"); } }) .addMigrations(new Migration(70, 71) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `answer` ADD COLUMN `hide` INTEGER NOT NULL DEFAULT 0"); } }) .addMigrations(new Migration(71, 72) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `message` ADD COLUMN `list_post` TEXT"); } }) .addMigrations(new Migration(72, 73) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `account` ADD COLUMN `order` INTEGER"); } }) .addMigrations(new Migration(73, 74) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `folder` ADD COLUMN `subscribed` INTEGER"); } }) .addMigrations(new Migration(74, 75) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `folder` ADD COLUMN `navigation` INTEGER NOT NULL DEFAULT 0"); } }) .addMigrations(new Migration(75, 76) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `folder` ADD COLUMN `order` INTEGER"); } }) .addMigrations(new Migration(76, 77) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `folder` ADD COLUMN `read_only` INTEGER NOT NULL DEFAULT 0"); } }) .addMigrations(new Migration(77, 78) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `folder` ADD COLUMN `auto_delete` INTEGER NOT NULL DEFAULT 0"); } }) .addMigrations(new Migration(78, 79) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `message` ADD COLUMN `plain_only` INTEGER"); } }) .addMigrations(new Migration(79, 80) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("DROP INDEX index_attachment_message_cid"); db.execSQL("CREATE INDEX `index_attachment_message_cid` ON `attachment` (`message`, `cid`)"); @@ -821,14 +834,14 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(80, 81) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `operation` ADD COLUMN `state` TEXT"); } }) .addMigrations(new Migration(81, 82) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("CREATE INDEX `index_operation_account` ON `operation` (`account`)"); db.execSQL("CREATE INDEX `index_operation_state` ON `operation` (`state`)"); @@ -836,84 +849,84 @@ public abstract class DB extends RoomDatabase { }) .addMigrations(new Migration(82, 83) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `message` ADD COLUMN `color` INTEGER"); } }) .addMigrations(new Migration(83, 84) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("UPDATE attachment SET disposition = lower(disposition) WHERE NOT disposition IS NULL"); } }) .addMigrations(new Migration(84, 85) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("UPDATE attachment SET size = NULL WHERE size = 0"); } }) .addMigrations(new Migration(85, 86) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("CREATE VIEW `folderview` AS SELECT id, account, name, type, display, unified FROM folder"); } }) .addMigrations(new Migration(86, 87) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("DROP VIEW `folderview`"); } }) .addMigrations(new Migration(87, 88) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `account` ADD COLUMN `partial_fetch` INTEGER NOT NULL DEFAULT 1"); } }) .addMigrations(new Migration(88, 89) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `account` ADD COLUMN `separator` INTEGER"); } }) .addMigrations(new Migration(89, 90) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `message` ADD COLUMN `notifying` INTEGER NOT NULL DEFAULT 0"); } }) .addMigrations(new Migration(90, 91) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `folder` ADD COLUMN `selectable` INTEGER NOT NULL DEFAULT 1"); } }) .addMigrations(new Migration(91, 92) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("UPDATE `account` SET poll_interval = 24"); } }) .addMigrations(new Migration(92, 93) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `message` ADD COLUMN `mx` INTEGER"); } }) .addMigrations(new Migration(93, 94) { @Override - public void migrate(SupportSQLiteDatabase db) { + public void migrate(@NonNull SupportSQLiteDatabase db) { Log.i("DB migration from version " + startVersion + " to " + endVersion); db.execSQL("ALTER TABLE `message` ADD COLUMN `encrypt` INTEGER"); }