diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/AppDb.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/AppDb.kt index ff101fd0..e6d7e40e 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/AppDb.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/AppDb.kt @@ -43,7 +43,7 @@ import pl.szczodrzynski.edziennik.data.db.migration.* LibrusLesson::class, TimetableManual::class, Metadata::class -], version = 90) +], version = 91) @TypeConverters( ConverterTime::class, ConverterDate::class, @@ -175,7 +175,8 @@ abstract class AppDb : RoomDatabase() { Migration87(), Migration88(), Migration89(), - Migration90() + Migration90(), + Migration91() ).allowMainThreadQueries().build() } } diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/migration/Migration91.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/migration/Migration91.kt new file mode 100644 index 00000000..ffb8b093 --- /dev/null +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/migration/Migration91.kt @@ -0,0 +1,25 @@ +/* + * Copyright (c) Kuba Szczodrzyński 2021-2-26. + */ + +package pl.szczodrzynski.edziennik.data.db.migration + +import androidx.room.migration.Migration +import androidx.sqlite.db.SupportSQLiteDatabase + +class Migration91 : Migration(90, 91) { + override fun migrate(database: SupportSQLiteDatabase) { + // get all profiles using Vulcan/Hebe + database.execSQL("CREATE TABLE _91_ids (id INTEGER NOT NULL);") + database.execSQL("INSERT INTO _91_ids SELECT profileId FROM profiles JOIN loginStores USING(loginStoreId) WHERE loginStores.loginStoreType = 1;") + + // force attendance sync - mobidziennik + // after enabling counting the e-attendance to statistics + database.execSQL("DELETE FROM endpointTimers WHERE profileId IN (SELECT id FROM _91_ids) AND endpointId = 2050;") + database.execSQL("UPDATE attendances SET attendanceIsCounted = 1 WHERE profileId IN (SELECT id FROM _91_ids);") + database.execSQL("UPDATE attendances SET attendanceBaseType = 2 WHERE profileId IN (SELECT id FROM _91_ids) AND attendanceTypeSymbol = ?;", + arrayOf("+ₑ")) + + database.execSQL("DROP TABLE _91_ids;") + } +}