--- /home/fdroid/fdroiddata/tmp/com.odnovolov.forgetmenot_12.apk +++ /home/fdroid/fdroiddata/tmp/sigcp_com.odnovolov.forgetmenot_12.apk ├── /usr/lib/android-sdk/build-tools/debian/apksigner verify --verbose --print-certs {} │┄ error from `/usr/lib/android-sdk/build-tools/debian/apksigner verify --verbose --print-certs {}` (b): │┄ DOES NOT VERIFY │┄ ERROR: APK Signature Scheme v3 signer #1: APK integrity check failed. CHUNKED_SHA256 digest mismatch. Expected: <2cb16364ebd88c60beec1ae652715d0bd478f20e629b4e9208f69105a7e721d7>, actual: │┄ ERROR: APK Signature Scheme v3 signer #1: APK integrity check failed. VERITY_CHUNKED_SHA256 digest mismatch. Expected: <3cb25c374db1a1ecae047822762b186088efaee2aea793c70dea99e47e1405e95b96460000000000>, actual: <40f2a8c2ae42e5fc5f6f50b7e4a209f7265d9294a9d631ba1b43d6a6aad241af5b96460000000000> │ @@ -1,94 +0,0 @@ │ -Verifies │ -Verified using v1 scheme (JAR signing): true │ -Verified using v2 scheme (APK Signature Scheme v2): true │ -Verified using v3 scheme (APK Signature Scheme v3): true │ -Verified using v4 scheme (APK Signature Scheme v4): false │ -Verified for SourceStamp: false │ -Number of signers: 1 │ -Signer #1 certificate DN: CN=FDroid, OU=FDroid, O=fdroid.org, L=ORG, ST=ORG, C=UK │ -Signer #1 certificate SHA-256 digest: d9577f995669418587530a4d3c13b34df929140cd80e133ca37cb942e6eae58b │ -Signer #1 certificate SHA-1 digest: 36cb74f74ff3e1d8c44b09817fda794c6f20abe1 │ -Signer #1 certificate MD5 digest: a6ddf5886d2829a9a7b08faf8a4171e7 │ -Signer #1 key algorithm: RSA │ -Signer #1 key size (bits): 2048 │ -Signer #1 public key SHA-256 digest: 7b053dfa1e6aa9c99f841279746a478e5888018df4767b1a6104e5ba5de8695a │ -Signer #1 public key SHA-1 digest: 34fb7f5f6a56980147232ff274e014e6b86706a4 │ -Signer #1 public key MD5 digest: 1182b95b4f01a06aafc883cf96a8a604 │ -WARNING: META-INF/activity-ktx_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.activity_activity-ktx.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.activity_activity.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.annotation_annotation-experimental.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.appcompat_appcompat-resources.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.appcompat_appcompat.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.arch.core_core-runtime.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.cardview_cardview.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.coordinatorlayout_coordinatorlayout.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.core_core-ktx.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.core_core.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.cursoradapter_cursoradapter.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.customview_customview.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.documentfile_documentfile.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.drawerlayout_drawerlayout.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.dynamicanimation_dynamicanimation.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.fragment_fragment-ktx.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.fragment_fragment.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.interpolator_interpolator.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.legacy_legacy-support-core-utils.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.lifecycle_lifecycle-livedata-core-ktx.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.lifecycle_lifecycle-livedata-core.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.lifecycle_lifecycle-livedata.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.lifecycle_lifecycle-runtime-ktx.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.lifecycle_lifecycle-runtime.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.lifecycle_lifecycle-viewmodel-ktx.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.lifecycle_lifecycle-viewmodel-savedstate.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.lifecycle_lifecycle-viewmodel.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.loader_loader.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.localbroadcastmanager_localbroadcastmanager.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.media_media.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.navigation_navigation-common-ktx.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.navigation_navigation-common.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.navigation_navigation-fragment-ktx.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.navigation_navigation-fragment.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.navigation_navigation-runtime-ktx.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.navigation_navigation-runtime.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.navigation_navigation-ui-ktx.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.navigation_navigation-ui.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.preference_preference.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.print_print.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.recyclerview_recyclerview.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.savedstate_savedstate.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.sqlite_sqlite-framework.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.sqlite_sqlite.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.transition_transition.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.vectordrawable_vectordrawable-animated.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.vectordrawable_vectordrawable.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.versionedparcelable_versionedparcelable.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.viewpager2_viewpager2.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/androidx.viewpager_viewpager.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/app_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/collection-ktx.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/com.google.android.material_material.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/core-ktx_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/editorkit_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/fragment-ktx_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/klock_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/kotlin-android-extensions-runtime.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/kotlin-stdlib-common.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/kotlin-stdlib-jdk7.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/kotlin-stdlib-jdk8.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/kotlin-stdlib.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/kotlinx-coroutines-android.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/kotlinx-coroutines-core.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/kotlinx-serialization-core.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/language-base_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/lifecycle-livedata-core-ktx_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/lifecycle-runtime-ktx_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/lifecycle-viewmodel-ktx_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/navigation-common-ktx_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/navigation-fragment-ktx_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/navigation-runtime-ktx_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/navigation-ui-ktx_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/runtime.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactory not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/sqldelight-android-driver_release.kotlin_module not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. ├── zipinfo {} │ @@ -1230,8 +1230,8 @@ │ -rw---- 0.0 fat 312 b- defN 80-000-00 00:00 res/xml/standalone_badge_gravity_bottom_start.xml │ -rw---- 0.0 fat 312 b- defN 80-000-00 00:00 res/xml/standalone_badge_gravity_top_start.xml │ -rw---- 0.0 fat 360 b- defN 80-000-00 00:00 res/xml/standalone_badge_offset.xml │ -rw---- 0.0 fat 1423968 b- stor 80-000-00 00:00 resources.arsc │ -rw---- 2.0 fat 143516 b- defN 80-000-00 00:00 META-INF/DB6D1C23.SF │ -rw---- 2.0 fat 1342 b- defN 80-000-00 00:00 META-INF/DB6D1C23.RSA │ -rw---- 2.0 fat 143451 b- defN 80-000-00 00:00 META-INF/MANIFEST.MF │ -1235 files, 8536561 bytes uncompressed, 4420640 bytes compressed: 48.2% │ +1235 files, 8536561 bytes uncompressed, 4420639 bytes compressed: 48.2% ├── classes.dex │ ├── classes.jar │ │ ├── zipinfo {} │ │ │ @@ -1,8 +1,8 @@ │ │ │ -Zip file size: 9169912 bytes, number of entries: 6717 │ │ │ +Zip file size: 9169919 bytes, number of entries: 6717 │ │ │ ?rwxrwxr-x 2.0 unx 680 b- stor 80-Jan-01 00:00 a0.class │ │ │ ?rwxrwxr-x 2.0 unx 665 b- stor 80-Jan-01 00:00 a1.class │ │ │ ?rwxrwxr-x 2.0 unx 765 b- stor 80-Jan-01 00:00 a2.class │ │ │ ?rwxrwxr-x 2.0 unx 884 b- stor 80-Jan-01 00:00 a.class │ │ │ ?rwxrwxr-x 2.0 unx 466 b- stor 80-Jan-01 00:00 android/support/v4/media/MediaBrowserCompat$MediaItem$a.class │ │ │ ?rwxrwxr-x 2.0 unx 1367 b- stor 80-Jan-01 00:00 android/support/v4/media/MediaBrowserCompat$MediaItem.class │ │ │ ?rwxrwxr-x 2.0 unx 607 b- stor 80-Jan-01 00:00 android/support/v4/media/MediaDescriptionCompat$a.class │ │ │ @@ -6712,8 +6712,8 @@ │ │ │ ?rwxrwxr-x 2.0 unx 2225 b- stor 80-Jan-01 00:00 v/a/a/a/a/w/b.class │ │ │ ?rwxrwxr-x 2.0 unx 2480 b- stor 80-Jan-01 00:00 v/a/a/a/a/w/p2/e.class │ │ │ ?rwxrwxr-x 2.0 unx 2406 b- stor 80-Jan-01 00:00 v/a/a/a/a/w/q2/e.class │ │ │ ?rwxrwxr-x 2.0 unx 2349 b- stor 80-Jan-01 00:00 v/a/a/a/a/z/n.class │ │ │ ?rwxrwxr-x 2.0 unx 4279 b- stor 80-Jan-01 00:00 v/e/a/a/c/b.class │ │ │ ?rwxrwxr-x 2.0 unx 3174 b- stor 80-Jan-01 00:00 v/e/a/a/c/c.class │ │ │ ?rwxrwxr-x 2.0 unx 1751 b- stor 80-Jan-01 00:00 com/brackeys/ui/editorkit/widget/TextProcessor.class │ │ │ -6717 files, 9407896 bytes uncompressed, 8334060 bytes compressed: 11.4% │ │ │ +6717 files, 9407896 bytes uncompressed, 8334067 bytes compressed: 11.4% │ │ ├── v/a/a/c/d$a.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -14,31 +14,31 @@ │ │ │ │ static { │ │ │ │ a = new d$a(); │ │ │ │ } │ │ │ │ │ │ │ │ public void a(final b b) { │ │ │ │ k.e((Object)b, "driver"); │ │ │ │ final int n = 8; │ │ │ │ - w.m0(b, (Integer)null, "CREATE TABLE KeyValue (\n key INTEGER PRIMARY KEY,\n value TEXT\n)", 0, (l)null, n, (Object)null); │ │ │ │ + w.m0(b, (Integer)null, "CREATE TABLE KeyGestureMapDb (\n keyGesture TEXT PRIMARY KEY NOT NULL,\n keyGestureAction TEXT NOT NULL\n)", 0, (l)null, n, (Object)null); │ │ │ │ + w.m0(b, (Integer)null, "CREATE TABLE SerializableDb (\n key TEXT PRIMARY KEY NOT NULL,\n jsonData TEXT NOT NULL\n)", 0, (l)null, n, (Object)null); │ │ │ │ w.m0(b, (Integer)null, "CREATE TABLE TipStateDb (\n id INTEGER PRIMARY KEY,\n needToShow INTEGER NOT NULL,\n lastShowedAt INTEGER\n)", 0, (l)null, n, (Object)null); │ │ │ │ - w.m0(b, (Integer)null, "CREATE TABLE ExercisePreferenceDb (\n id INTEGER PRIMARY KEY,\n name TEXT NOT NULL,\n randomOrder INTEGER NOT NULL,\n pronunciationId INTEGER NOT NULL,\n cardInversion TEXT NOT NULL,\n isQuestionDisplayed INTEGER NOT NULL,\n testingMethod TEXT NOT NULL,\n intervalSchemeId INTEGER,\n gradingId INTEGER NOT NULL,\n timeForAnswer INTEGER NOT NULL,\n pronunciationPlanId INTEGER NOT NULL\n)", 0, (l)null, n, (Object)null); │ │ │ │ - w.m0(b, (Integer)null, "CREATE TABLE SharedExercisePreferenceDb (\n exercisePreferenceId INTEGER PRIMARY KEY\n)", 0, (l)null, n, (Object)null); │ │ │ │ - w.m0(b, (Integer)null, "CREATE TABLE PronunciationDb (\n id INTEGER PRIMARY KEY,\n questionLanguage TEXT,\n questionAutoSpeaking INTEGER NOT NULL,\n answerLanguage TEXT,\n answerAutoSpeaking INTEGER NOT NULL,\n speakTextInBrackets INTEGER NOT NULL\n)", 0, (l)null, n, (Object)null); │ │ │ │ - w.m0(b, (Integer)null, "CREATE TABLE IntervalDb (\n id INTEGER PRIMARY KEY,\n intervalSchemeId INTEGER NOT NULL REFERENCES IntervalSchemeDb ON DELETE CASCADE,\n grade INTEGER NOT NULL,\n value TEXT NOT NULL\n)", 0, (l)null, n, (Object)null); │ │ │ │ + w.m0(b, (Integer)null, "CREATE TABLE KeyValue (\n key INTEGER PRIMARY KEY,\n value TEXT\n)", 0, (l)null, n, (Object)null); │ │ │ │ + w.m0(b, (Integer)null, "CREATE TABLE DeckReviewPreferenceDb (\n id INTEGER PRIMARY KEY,\n deckListId INTEGER,\n deckSortingCriterion TEXT NOT NULL,\n deckSortingDirection TEXT NOT NULL,\n displayOnlyDecksAvailableForExercise INTEGER NOT NULL\n)", 0, (l)null, n, (Object)null); │ │ │ │ + w.m0(b, (Integer)null, "INSERT INTO DeckReviewPreferenceDb\nVALUES\n (0, NULL, 'LastTestedAt', 'Asc', 0),\n (1, NULL, 'LastTestedAt', 'Asc', 0),\n (2, NULL, 'LastTestedAt', 'Asc', 0),\n (3, NULL, 'LastTestedAt', 'Asc', 0),\n (4, NULL, 'LastTestedAt', 'Asc', 0)", 0, (l)null, n, (Object)null); │ │ │ │ w.m0(b, (Integer)null, "CREATE TABLE CardDb (\n id INTEGER PRIMARY KEY,\n deckId INTEGER NOT NULL REFERENCES DeckDb ON DELETE CASCADE,\n ordinal INTEGER NOT NULL,\n question TEXT NOT NULL,\n answer TEXT NOT NULL,\n lap INTEGER NOT NULL,\n isLearned INTEGER NOT NULL,\n grade INTEGER NOT NULL,\n lastTestedAt INTEGER\n)", 0, (l)null, n, (Object)null); │ │ │ │ + w.m0(b, (Integer)null, "CREATE TABLE PronunciationDb (\n id INTEGER PRIMARY KEY,\n questionLanguage TEXT,\n questionAutoSpeaking INTEGER NOT NULL,\n answerLanguage TEXT,\n answerAutoSpeaking INTEGER NOT NULL,\n speakTextInBrackets INTEGER NOT NULL\n)", 0, (l)null, n, (Object)null); │ │ │ │ w.m0(b, (Integer)null, "CREATE TABLE IntervalSchemeDb (\n id INTEGER PRIMARY KEY\n)", 0, (l)null, n, (Object)null); │ │ │ │ + w.m0(b, (Integer)null, "CREATE TABLE DeckListDb (\n id INTEGER PRIMARY KEY,\n name TEXT NOT NULL,\n color INTEGER NOT NULL,\n deckIds TEXT NOT NULL\n)", 0, (l)null, n, (Object)null); │ │ │ │ w.m0(b, (Integer)null, "CREATE TABLE PronunciationPlanDb (\n id INTEGER PRIMARY KEY,\n pronunciationEvents TEXT NOT NULL\n)", 0, (l)null, n, (Object)null); │ │ │ │ w.m0(b, (Integer)null, "CREATE TABLE DeckDb (\n id INTEGER PRIMARY KEY,\n name TEXT NOT NULL,\n createdAt INTEGER NOT NULL,\n lastTestedAt INTEGER,\n exercisePreferenceId INTEGER NOT NULL,\n isPinned INTEGER NOT NULL\n)", 0, (l)null, n, (Object)null); │ │ │ │ w.m0(b, (Integer)null, "CREATE TABLE GradingDb (\n id INTEGER PRIMARY KEY,\n onFirstCorrectAnswer TEXT NOT NULL,\n onFirstWrongAnswer TEXT NOT NULL,\n askAgain INTEGER NOT NULL,\n onRepeatedCorrectAnswer TEXT NOT NULL,\n onRepeatedWrongAnswer TEXT NOT NULL\n)", 0, (l)null, n, (Object)null); │ │ │ │ - w.m0(b, (Integer)null, "CREATE TABLE DeckListDb (\n id INTEGER PRIMARY KEY,\n name TEXT NOT NULL,\n color INTEGER NOT NULL,\n deckIds TEXT NOT NULL\n)", 0, (l)null, n, (Object)null); │ │ │ │ - w.m0(b, (Integer)null, "CREATE TABLE KeyGestureMapDb (\n keyGesture TEXT PRIMARY KEY NOT NULL,\n keyGestureAction TEXT NOT NULL\n)", 0, (l)null, n, (Object)null); │ │ │ │ + w.m0(b, (Integer)null, "CREATE TABLE ExercisePreferenceDb (\n id INTEGER PRIMARY KEY,\n name TEXT NOT NULL,\n randomOrder INTEGER NOT NULL,\n pronunciationId INTEGER NOT NULL,\n cardInversion TEXT NOT NULL,\n isQuestionDisplayed INTEGER NOT NULL,\n testingMethod TEXT NOT NULL,\n intervalSchemeId INTEGER,\n gradingId INTEGER NOT NULL,\n timeForAnswer INTEGER NOT NULL,\n pronunciationPlanId INTEGER NOT NULL\n)", 0, (l)null, n, (Object)null); │ │ │ │ + w.m0(b, (Integer)null, "CREATE TABLE IntervalDb (\n id INTEGER PRIMARY KEY,\n intervalSchemeId INTEGER NOT NULL REFERENCES IntervalSchemeDb ON DELETE CASCADE,\n grade INTEGER NOT NULL,\n value TEXT NOT NULL\n)", 0, (l)null, n, (Object)null); │ │ │ │ + w.m0(b, (Integer)null, "CREATE TABLE SharedExercisePreferenceDb (\n exercisePreferenceId INTEGER PRIMARY KEY\n)", 0, (l)null, n, (Object)null); │ │ │ │ w.m0(b, (Integer)null, "CREATE TABLE FileFormatDb (\n id INTEGER PRIMARY KEY,\n name TEXT NOT NULL,\n extension TEXT NOT NULL,\n delimiter TEXT NOT NULL,\n trailingDelimiter INTEGER NOT NULL,\n quoteCharacter TEXT,\n quoteMode TEXT,\n escapeCharacter TEXT,\n nullString TEXT,\n ignoreSurroundingSpaces INTEGER NOT NULL,\n trim INTEGER NOT NULL,\n ignoreEmptyLines INTEGER NOT NULL,\n recordSeparator TEXT,\n commentMarker TEXT,\n skipHeaderRecord INTEGER NOT NULL,\n header TEXT,\n ignoreHeaderCase INTEGER NOT NULL,\n allowDuplicateHeaderNames INTEGER NOT NULL,\n allowMissingColumnNames INTEGER NOT NULL,\n headerComments TEXT,\n autoFlush INTEGER NOT NULL\n)", 0, (l)null, n, (Object)null); │ │ │ │ - w.m0(b, (Integer)null, "CREATE TABLE SerializableDb (\n key TEXT PRIMARY KEY NOT NULL,\n jsonData TEXT NOT NULL\n)", 0, (l)null, n, (Object)null); │ │ │ │ - w.m0(b, (Integer)null, "CREATE TABLE DeckReviewPreferenceDb (\n id INTEGER PRIMARY KEY,\n deckListId INTEGER,\n deckSortingCriterion TEXT NOT NULL,\n deckSortingDirection TEXT NOT NULL,\n displayOnlyDecksAvailableForExercise INTEGER NOT NULL\n)", 0, (l)null, n, (Object)null); │ │ │ │ - w.m0(b, (Integer)null, "INSERT INTO DeckReviewPreferenceDb\nVALUES\n (0, NULL, 'LastTestedAt', 'Asc', 0),\n (1, NULL, 'LastTestedAt', 'Asc', 0),\n (2, NULL, 'LastTestedAt', 'Asc', 0),\n (3, NULL, 'LastTestedAt', 'Asc', 0),\n (4, NULL, 'LastTestedAt', 'Asc', 0)", 0, (l)null, n, (Object)null); │ │ │ │ w.m0(b, (Integer)null, "CREATE INDEX CardDbIndex ON CardDb(deckId, ordinal)", 0, (l)null, n, (Object)null); │ │ │ │ } │ │ │ │ │ │ │ │ public void b(final b b, final int n, final int n2) { │ │ │ │ k.e((Object)b, "driver"); │ │ │ │ final int n3 = 1; │ │ │ │ if (n <= n3 && n2 > n3) { ├── smali/v/a/a/c/d$a.smali │┄ Ordering differences only │ @@ -49,89 +49,89 @@ │ │ const-string v0, "driver" │ │ invoke-static {p1, v0}, Lo3/n/c/k;->e(Ljava/lang/Object;Ljava/lang/String;)V │ │ const/4 v2, 0x0 │ │ - const-string v3, "CREATE TABLE KeyValue (\n key INTEGER PRIMARY KEY,\n value TEXT\n)" │ + const-string v3, "CREATE TABLE KeyGestureMapDb (\n keyGesture TEXT PRIMARY KEY NOT NULL,\n keyGestureAction TEXT NOT NULL\n)" │ │ const/4 v4, 0x0 │ │ const/4 v5, 0x0 │ │ const/16 v6, 0x8 │ │ const/4 v7, 0x0 │ │ move-object v1, p1 │ │ invoke-static/range {v1 .. v7}, Ln3/w/w;->m0(Lv/g/a/k/b;Ljava/lang/Integer;Ljava/lang/String;ILo3/n/b/l;ILjava/lang/Object;)V │ │ - const-string v3, "CREATE TABLE TipStateDb (\n id INTEGER PRIMARY KEY,\n needToShow INTEGER NOT NULL,\n lastShowedAt INTEGER\n)" │ + const-string v3, "CREATE TABLE SerializableDb (\n key TEXT PRIMARY KEY NOT NULL,\n jsonData TEXT NOT NULL\n)" │ │ invoke-static/range {v1 .. v7}, Ln3/w/w;->m0(Lv/g/a/k/b;Ljava/lang/Integer;Ljava/lang/String;ILo3/n/b/l;ILjava/lang/Object;)V │ │ - const-string v3, "CREATE TABLE ExercisePreferenceDb (\n id INTEGER PRIMARY KEY,\n name TEXT NOT NULL,\n randomOrder INTEGER NOT NULL,\n pronunciationId INTEGER NOT NULL,\n cardInversion TEXT NOT NULL,\n isQuestionDisplayed INTEGER NOT NULL,\n testingMethod TEXT NOT NULL,\n intervalSchemeId INTEGER,\n gradingId INTEGER NOT NULL,\n timeForAnswer INTEGER NOT NULL,\n pronunciationPlanId INTEGER NOT NULL\n)" │ + const-string v3, "CREATE TABLE TipStateDb (\n id INTEGER PRIMARY KEY,\n needToShow INTEGER NOT NULL,\n lastShowedAt INTEGER\n)" │ │ invoke-static/range {v1 .. v7}, Ln3/w/w;->m0(Lv/g/a/k/b;Ljava/lang/Integer;Ljava/lang/String;ILo3/n/b/l;ILjava/lang/Object;)V │ │ - const-string v3, "CREATE TABLE SharedExercisePreferenceDb (\n exercisePreferenceId INTEGER PRIMARY KEY\n)" │ + const-string v3, "CREATE TABLE KeyValue (\n key INTEGER PRIMARY KEY,\n value TEXT\n)" │ │ invoke-static/range {v1 .. v7}, Ln3/w/w;->m0(Lv/g/a/k/b;Ljava/lang/Integer;Ljava/lang/String;ILo3/n/b/l;ILjava/lang/Object;)V │ │ - const-string v3, "CREATE TABLE PronunciationDb (\n id INTEGER PRIMARY KEY,\n questionLanguage TEXT,\n questionAutoSpeaking INTEGER NOT NULL,\n answerLanguage TEXT,\n answerAutoSpeaking INTEGER NOT NULL,\n speakTextInBrackets INTEGER NOT NULL\n)" │ + const-string v3, "CREATE TABLE DeckReviewPreferenceDb (\n id INTEGER PRIMARY KEY,\n deckListId INTEGER,\n deckSortingCriterion TEXT NOT NULL,\n deckSortingDirection TEXT NOT NULL,\n displayOnlyDecksAvailableForExercise INTEGER NOT NULL\n)" │ │ invoke-static/range {v1 .. v7}, Ln3/w/w;->m0(Lv/g/a/k/b;Ljava/lang/Integer;Ljava/lang/String;ILo3/n/b/l;ILjava/lang/Object;)V │ │ - const-string v3, "CREATE TABLE IntervalDb (\n id INTEGER PRIMARY KEY,\n intervalSchemeId INTEGER NOT NULL REFERENCES IntervalSchemeDb ON DELETE CASCADE,\n grade INTEGER NOT NULL,\n value TEXT NOT NULL\n)" │ + const-string v3, "INSERT INTO DeckReviewPreferenceDb\nVALUES\n (0, NULL, \'LastTestedAt\', \'Asc\', 0),\n (1, NULL, \'LastTestedAt\', \'Asc\', 0),\n (2, NULL, \'LastTestedAt\', \'Asc\', 0),\n (3, NULL, \'LastTestedAt\', \'Asc\', 0),\n (4, NULL, \'LastTestedAt\', \'Asc\', 0)" │ │ invoke-static/range {v1 .. v7}, Ln3/w/w;->m0(Lv/g/a/k/b;Ljava/lang/Integer;Ljava/lang/String;ILo3/n/b/l;ILjava/lang/Object;)V │ │ const-string v3, "CREATE TABLE CardDb (\n id INTEGER PRIMARY KEY,\n deckId INTEGER NOT NULL REFERENCES DeckDb ON DELETE CASCADE,\n ordinal INTEGER NOT NULL,\n question TEXT NOT NULL,\n answer TEXT NOT NULL,\n lap INTEGER NOT NULL,\n isLearned INTEGER NOT NULL,\n grade INTEGER NOT NULL,\n lastTestedAt INTEGER\n)" │ │ invoke-static/range {v1 .. v7}, Ln3/w/w;->m0(Lv/g/a/k/b;Ljava/lang/Integer;Ljava/lang/String;ILo3/n/b/l;ILjava/lang/Object;)V │ │ - const-string v3, "CREATE TABLE IntervalSchemeDb (\n id INTEGER PRIMARY KEY\n)" │ + const-string v3, "CREATE TABLE PronunciationDb (\n id INTEGER PRIMARY KEY,\n questionLanguage TEXT,\n questionAutoSpeaking INTEGER NOT NULL,\n answerLanguage TEXT,\n answerAutoSpeaking INTEGER NOT NULL,\n speakTextInBrackets INTEGER NOT NULL\n)" │ │ invoke-static/range {v1 .. v7}, Ln3/w/w;->m0(Lv/g/a/k/b;Ljava/lang/Integer;Ljava/lang/String;ILo3/n/b/l;ILjava/lang/Object;)V │ │ - const-string v3, "CREATE TABLE PronunciationPlanDb (\n id INTEGER PRIMARY KEY,\n pronunciationEvents TEXT NOT NULL\n)" │ + const-string v3, "CREATE TABLE IntervalSchemeDb (\n id INTEGER PRIMARY KEY\n)" │ │ invoke-static/range {v1 .. v7}, Ln3/w/w;->m0(Lv/g/a/k/b;Ljava/lang/Integer;Ljava/lang/String;ILo3/n/b/l;ILjava/lang/Object;)V │ │ - const-string v3, "CREATE TABLE DeckDb (\n id INTEGER PRIMARY KEY,\n name TEXT NOT NULL,\n createdAt INTEGER NOT NULL,\n lastTestedAt INTEGER,\n exercisePreferenceId INTEGER NOT NULL,\n isPinned INTEGER NOT NULL\n)" │ + const-string v3, "CREATE TABLE DeckListDb (\n id INTEGER PRIMARY KEY,\n name TEXT NOT NULL,\n color INTEGER NOT NULL,\n deckIds TEXT NOT NULL\n)" │ │ invoke-static/range {v1 .. v7}, Ln3/w/w;->m0(Lv/g/a/k/b;Ljava/lang/Integer;Ljava/lang/String;ILo3/n/b/l;ILjava/lang/Object;)V │ │ - const-string v3, "CREATE TABLE GradingDb (\n id INTEGER PRIMARY KEY,\n onFirstCorrectAnswer TEXT NOT NULL,\n onFirstWrongAnswer TEXT NOT NULL,\n askAgain INTEGER NOT NULL,\n onRepeatedCorrectAnswer TEXT NOT NULL,\n onRepeatedWrongAnswer TEXT NOT NULL\n)" │ + const-string v3, "CREATE TABLE PronunciationPlanDb (\n id INTEGER PRIMARY KEY,\n pronunciationEvents TEXT NOT NULL\n)" │ │ invoke-static/range {v1 .. v7}, Ln3/w/w;->m0(Lv/g/a/k/b;Ljava/lang/Integer;Ljava/lang/String;ILo3/n/b/l;ILjava/lang/Object;)V │ │ - const-string v3, "CREATE TABLE DeckListDb (\n id INTEGER PRIMARY KEY,\n name TEXT NOT NULL,\n color INTEGER NOT NULL,\n deckIds TEXT NOT NULL\n)" │ + const-string v3, "CREATE TABLE DeckDb (\n id INTEGER PRIMARY KEY,\n name TEXT NOT NULL,\n createdAt INTEGER NOT NULL,\n lastTestedAt INTEGER,\n exercisePreferenceId INTEGER NOT NULL,\n isPinned INTEGER NOT NULL\n)" │ │ invoke-static/range {v1 .. v7}, Ln3/w/w;->m0(Lv/g/a/k/b;Ljava/lang/Integer;Ljava/lang/String;ILo3/n/b/l;ILjava/lang/Object;)V │ │ - const-string v3, "CREATE TABLE KeyGestureMapDb (\n keyGesture TEXT PRIMARY KEY NOT NULL,\n keyGestureAction TEXT NOT NULL\n)" │ + const-string v3, "CREATE TABLE GradingDb (\n id INTEGER PRIMARY KEY,\n onFirstCorrectAnswer TEXT NOT NULL,\n onFirstWrongAnswer TEXT NOT NULL,\n askAgain INTEGER NOT NULL,\n onRepeatedCorrectAnswer TEXT NOT NULL,\n onRepeatedWrongAnswer TEXT NOT NULL\n)" │ │ invoke-static/range {v1 .. v7}, Ln3/w/w;->m0(Lv/g/a/k/b;Ljava/lang/Integer;Ljava/lang/String;ILo3/n/b/l;ILjava/lang/Object;)V │ │ - const-string v3, "CREATE TABLE FileFormatDb (\n id INTEGER PRIMARY KEY,\n name TEXT NOT NULL,\n extension TEXT NOT NULL,\n delimiter TEXT NOT NULL,\n trailingDelimiter INTEGER NOT NULL,\n quoteCharacter TEXT,\n quoteMode TEXT,\n escapeCharacter TEXT,\n nullString TEXT,\n ignoreSurroundingSpaces INTEGER NOT NULL,\n trim INTEGER NOT NULL,\n ignoreEmptyLines INTEGER NOT NULL,\n recordSeparator TEXT,\n commentMarker TEXT,\n skipHeaderRecord INTEGER NOT NULL,\n header TEXT,\n ignoreHeaderCase INTEGER NOT NULL,\n allowDuplicateHeaderNames INTEGER NOT NULL,\n allowMissingColumnNames INTEGER NOT NULL,\n headerComments TEXT,\n autoFlush INTEGER NOT NULL\n)" │ + const-string v3, "CREATE TABLE ExercisePreferenceDb (\n id INTEGER PRIMARY KEY,\n name TEXT NOT NULL,\n randomOrder INTEGER NOT NULL,\n pronunciationId INTEGER NOT NULL,\n cardInversion TEXT NOT NULL,\n isQuestionDisplayed INTEGER NOT NULL,\n testingMethod TEXT NOT NULL,\n intervalSchemeId INTEGER,\n gradingId INTEGER NOT NULL,\n timeForAnswer INTEGER NOT NULL,\n pronunciationPlanId INTEGER NOT NULL\n)" │ │ invoke-static/range {v1 .. v7}, Ln3/w/w;->m0(Lv/g/a/k/b;Ljava/lang/Integer;Ljava/lang/String;ILo3/n/b/l;ILjava/lang/Object;)V │ │ - const-string v3, "CREATE TABLE SerializableDb (\n key TEXT PRIMARY KEY NOT NULL,\n jsonData TEXT NOT NULL\n)" │ + const-string v3, "CREATE TABLE IntervalDb (\n id INTEGER PRIMARY KEY,\n intervalSchemeId INTEGER NOT NULL REFERENCES IntervalSchemeDb ON DELETE CASCADE,\n grade INTEGER NOT NULL,\n value TEXT NOT NULL\n)" │ │ invoke-static/range {v1 .. v7}, Ln3/w/w;->m0(Lv/g/a/k/b;Ljava/lang/Integer;Ljava/lang/String;ILo3/n/b/l;ILjava/lang/Object;)V │ │ - const-string v3, "CREATE TABLE DeckReviewPreferenceDb (\n id INTEGER PRIMARY KEY,\n deckListId INTEGER,\n deckSortingCriterion TEXT NOT NULL,\n deckSortingDirection TEXT NOT NULL,\n displayOnlyDecksAvailableForExercise INTEGER NOT NULL\n)" │ + const-string v3, "CREATE TABLE SharedExercisePreferenceDb (\n exercisePreferenceId INTEGER PRIMARY KEY\n)" │ │ invoke-static/range {v1 .. v7}, Ln3/w/w;->m0(Lv/g/a/k/b;Ljava/lang/Integer;Ljava/lang/String;ILo3/n/b/l;ILjava/lang/Object;)V │ │ - const-string v3, "INSERT INTO DeckReviewPreferenceDb\nVALUES\n (0, NULL, \'LastTestedAt\', \'Asc\', 0),\n (1, NULL, \'LastTestedAt\', \'Asc\', 0),\n (2, NULL, \'LastTestedAt\', \'Asc\', 0),\n (3, NULL, \'LastTestedAt\', \'Asc\', 0),\n (4, NULL, \'LastTestedAt\', \'Asc\', 0)" │ + const-string v3, "CREATE TABLE FileFormatDb (\n id INTEGER PRIMARY KEY,\n name TEXT NOT NULL,\n extension TEXT NOT NULL,\n delimiter TEXT NOT NULL,\n trailingDelimiter INTEGER NOT NULL,\n quoteCharacter TEXT,\n quoteMode TEXT,\n escapeCharacter TEXT,\n nullString TEXT,\n ignoreSurroundingSpaces INTEGER NOT NULL,\n trim INTEGER NOT NULL,\n ignoreEmptyLines INTEGER NOT NULL,\n recordSeparator TEXT,\n commentMarker TEXT,\n skipHeaderRecord INTEGER NOT NULL,\n header TEXT,\n ignoreHeaderCase INTEGER NOT NULL,\n allowDuplicateHeaderNames INTEGER NOT NULL,\n allowMissingColumnNames INTEGER NOT NULL,\n headerComments TEXT,\n autoFlush INTEGER NOT NULL\n)" │ │ invoke-static/range {v1 .. v7}, Ln3/w/w;->m0(Lv/g/a/k/b;Ljava/lang/Integer;Ljava/lang/String;ILo3/n/b/l;ILjava/lang/Object;)V │ │ const-string v3, "CREATE INDEX CardDbIndex ON CardDb(deckId, ordinal)" │ │ invoke-static/range {v1 .. v7}, Ln3/w/w;->m0(Lv/g/a/k/b;Ljava/lang/Integer;Ljava/lang/String;ILo3/n/b/l;ILjava/lang/Object;)V