diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/DataVulcan.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/DataVulcan.kt index d326ebd4..47b9ef23 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/DataVulcan.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/DataVulcan.kt @@ -124,6 +124,15 @@ class DataVulcan(app: App, profile: Profile?, loginStore: LoginStore) : Data(app get() { mStudentSemesterId = mStudentSemesterId ?: profile?.getStudentData("studentSemesterId", 0); return mStudentSemesterId ?: 0 } set(value) { profile?.putStudentData("studentSemesterId", value) ?: return; mStudentSemesterId = value } + private var mSemester1Id: Int? = null + var semester1Id: Int + get() { mSemester1Id = mSemester1Id ?: profile?.getStudentData("semester1Id", 0); return mSemester1Id ?: 0 } + set(value) { profile?.putStudentData("semester1Id", value) ?: return; mSemester1Id = value } + private var mSemester2Id: Int? = null + var semester2Id: Int + get() { mSemester2Id = mSemester2Id ?: profile?.getStudentData("semester2Id", 0); return mSemester2Id ?: 0 } + set(value) { profile?.putStudentData("semester2Id", value) ?: return; mSemester2Id = value } + /** * ListaUczniow/OkresNumer, e.g. 1 or 2 */ diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiAttendance.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiAttendance.kt index b75da00f..2814a1cf 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiAttendance.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiAttendance.kt @@ -9,6 +9,7 @@ import pl.szczodrzynski.edziennik.data.api.edziennik.vulcan.data.VulcanApi import pl.szczodrzynski.edziennik.data.db.entity.Attendance import pl.szczodrzynski.edziennik.data.db.entity.Attendance.Companion.TYPE_PRESENT import pl.szczodrzynski.edziennik.data.db.entity.Metadata +import pl.szczodrzynski.edziennik.data.db.entity.Profile import pl.szczodrzynski.edziennik.data.db.entity.SYNC_ALWAYS import pl.szczodrzynski.edziennik.utils.models.Date @@ -25,15 +26,38 @@ class VulcanApiAttendance(override val data: DataVulcan, data.db.attendanceTypeDao().getAllNow(profileId).toSparseArray(data.attendanceTypes) { it.id } } - val startDate: String = profile.getSemesterStart(profile.currentSemester).stringY_m_d - val endDate: String = profile.getSemesterEnd(profile.currentSemester).stringY_m_d + val semesterId = data.studentSemesterId + val semesterNumber = data.studentSemesterNumber + if (semesterNumber == 2 && lastSync ?: 0 < profile.dateSemester1Start.inMillis) { + getAttendance(profile, semesterId - 1, semesterNumber - 1) { + getAttendance(profile, semesterId, semesterNumber) { + finish() + } + } + } + else { + getAttendance(profile, semesterId, semesterNumber) { + finish() + } + } + + } ?: onSuccess(ENDPOINT_VULCAN_API_ATTENDANCE) } + + private fun finish() { + data.setSyncNext(ENDPOINT_VULCAN_API_ATTENDANCE, SYNC_ALWAYS) + onSuccess(ENDPOINT_VULCAN_API_ATTENDANCE) + } + + private fun getAttendance(profile: Profile, semesterId: Int, semesterNumber: Int, onSuccess: () -> Unit) { + val startDate = profile.getSemesterStart(semesterNumber).stringY_m_d + val endDate = profile.getSemesterEnd(semesterNumber).stringY_m_d apiGet(TAG, VULCAN_API_ENDPOINT_ATTENDANCE, parameters = mapOf( "DataPoczatkowa" to startDate, "DataKoncowa" to endDate, "IdOddzial" to data.studentClassId, "IdUczen" to data.studentId, - "IdOkresKlasyfikacyjny" to data.studentSemesterId + "IdOkresKlasyfikacyjny" to semesterId )) { json, _ -> json.getJsonObject("Data")?.getJsonArray("Frekwencje")?.forEach { attendanceEl -> val attendance = attendanceEl.asJsonObject @@ -47,7 +71,7 @@ class VulcanApiAttendance(override val data: DataVulcan, val lessonDate = Date.fromMillis(lessonDateMillis) val startTime = data.lessonRanges.get(attendance.getInt("Numer") ?: 0)?.startTime - val lessonSemester = profile.dateToSemester(lessonDate) + val lessonSemester = semesterNumber val attendanceObject = Attendance( profileId = profileId, @@ -65,6 +89,7 @@ class VulcanApiAttendance(override val data: DataVulcan, addedDate = lessonDate.combineWith(startTime) ).also { it.lessonNumber = attendance.getInt("Numer") + it.isCounted = it.baseType != Attendance.TYPE_RELEASED } data.attendanceList.add(attendanceObject) @@ -79,8 +104,7 @@ class VulcanApiAttendance(override val data: DataVulcan, } } - data.setSyncNext(ENDPOINT_VULCAN_API_ATTENDANCE, SYNC_ALWAYS) - onSuccess(ENDPOINT_VULCAN_API_ATTENDANCE) + onSuccess() } - } ?: onSuccess(ENDPOINT_VULCAN_API_ATTENDANCE) } + } } diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiEvents.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiEvents.kt index 4366807a..6f045828 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiEvents.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiEvents.kt @@ -13,6 +13,7 @@ import pl.szczodrzynski.edziennik.data.api.edziennik.vulcan.data.VulcanApi import pl.szczodrzynski.edziennik.data.api.models.DataRemoveModel import pl.szczodrzynski.edziennik.data.db.entity.Event import pl.szczodrzynski.edziennik.data.db.entity.Metadata +import pl.szczodrzynski.edziennik.data.db.entity.Profile import pl.szczodrzynski.edziennik.data.db.entity.SYNC_ALWAYS import pl.szczodrzynski.edziennik.getBoolean import pl.szczodrzynski.edziennik.getJsonArray @@ -31,11 +32,43 @@ class VulcanApiEvents(override val data: DataVulcan, init { data.profile?.also { profile -> - val startDate: String = when (profile.empty) { - true -> profile.getSemesterStart(profile.currentSemester).stringY_m_d + val semesterId = data.studentSemesterId + val semesterNumber = data.studentSemesterNumber + if (semesterNumber == 2 && lastSync ?: 0 < profile.dateSemester1Start.inMillis) { + getEvents(profile, semesterId - 1, semesterNumber - 1) { + getEvents(profile, semesterId, semesterNumber) { + finish() + } + } + } + else { + getEvents(profile, semesterId, semesterNumber) { + finish() + } + } + + } ?: onSuccess(if (isHomework) ENDPOINT_VULCAN_API_HOMEWORK else ENDPOINT_VULCAN_API_EVENTS) } + + private fun finish() { + when (isHomework) { + true -> { + data.toRemove.add(DataRemoveModel.Events.futureWithType(Event.TYPE_HOMEWORK)) + data.setSyncNext(ENDPOINT_VULCAN_API_HOMEWORK, SYNC_ALWAYS) + } + false -> { + data.toRemove.add(DataRemoveModel.Events.futureExceptType(Event.TYPE_HOMEWORK)) + data.setSyncNext(ENDPOINT_VULCAN_API_EVENTS, SYNC_ALWAYS) + } + } + onSuccess(if (isHomework) ENDPOINT_VULCAN_API_HOMEWORK else ENDPOINT_VULCAN_API_EVENTS) + } + + private fun getEvents(profile: Profile, semesterId: Int, semesterNumber: Int, onSuccess: () -> Unit) { + val startDate = when (profile.empty) { + true -> profile.getSemesterStart(semesterNumber).stringY_m_d else -> Date.getToday().stepForward(0, -1, 0).stringY_m_d } - val endDate: String = profile.getSemesterEnd(profile.currentSemester).stringY_m_d + val endDate = profile.getSemesterEnd(semesterNumber).stringY_m_d val endpoint = when (isHomework) { true -> VULCAN_API_ENDPOINT_HOMEWORK @@ -46,7 +79,7 @@ class VulcanApiEvents(override val data: DataVulcan, "DataKoncowa" to endDate, "IdOddzial" to data.studentClassId, "IdUczen" to data.studentId, - "IdOkresKlasyfikacyjny" to data.studentSemesterId + "IdOkresKlasyfikacyjny" to semesterId )) { json, _ -> val events = json.getJsonArray("Data") @@ -94,17 +127,7 @@ class VulcanApiEvents(override val data: DataVulcan, )) } - when (isHomework) { - true -> { - data.toRemove.add(DataRemoveModel.Events.futureWithType(Event.TYPE_HOMEWORK)) - data.setSyncNext(ENDPOINT_VULCAN_API_HOMEWORK, SYNC_ALWAYS) - } - false -> { - data.toRemove.add(DataRemoveModel.Events.futureExceptType(Event.TYPE_HOMEWORK)) - data.setSyncNext(ENDPOINT_VULCAN_API_EVENTS, SYNC_ALWAYS) - } - } - onSuccess(if (isHomework) ENDPOINT_VULCAN_API_HOMEWORK else ENDPOINT_VULCAN_API_EVENTS) + onSuccess() } - } ?: onSuccess(if (isHomework) ENDPOINT_VULCAN_API_HOMEWORK else ENDPOINT_VULCAN_API_EVENTS) } + } } diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiGrades.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiGrades.kt index 815bd83b..9a354ea5 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiGrades.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiGrades.kt @@ -13,6 +13,7 @@ import pl.szczodrzynski.edziennik.data.api.models.DataRemoveModel import pl.szczodrzynski.edziennik.data.db.entity.Grade import pl.szczodrzynski.edziennik.data.db.entity.Grade.Companion.TYPE_NORMAL import pl.szczodrzynski.edziennik.data.db.entity.Metadata +import pl.szczodrzynski.edziennik.data.db.entity.Profile import pl.szczodrzynski.edziennik.data.db.entity.SYNC_ALWAYS import java.text.DecimalFormat import kotlin.math.roundToInt @@ -27,9 +28,33 @@ class VulcanApiGrades(override val data: DataVulcan, init { data.profile?.also { profile -> + val semesterId = data.studentSemesterId + val semesterNumber = data.studentSemesterNumber + if (semesterNumber == 2 && lastSync ?: 0 < profile.dateSemester1Start.inMillis) { + getGrades(profile, semesterId - 1, semesterNumber - 1) { + getGrades(profile, semesterId, semesterNumber) { + finish() + } + } + } + else { + getGrades(profile, semesterId, semesterNumber) { + finish() + } + } + + } ?: onSuccess(ENDPOINT_VULCAN_API_GRADES) } + + private fun finish() { + data.toRemove.add(DataRemoveModel.Grades.semesterWithType(data.studentSemesterNumber, TYPE_NORMAL)) + data.setSyncNext(ENDPOINT_VULCAN_API_GRADES, SYNC_ALWAYS) + onSuccess(ENDPOINT_VULCAN_API_GRADES) + } + + private fun getGrades(profile: Profile, semesterId: Int, semesterNumber: Int, onSuccess: () -> Unit) { apiGet(TAG, VULCAN_API_ENDPOINT_GRADES, parameters = mapOf( "IdUczen" to data.studentId, - "IdOkresKlasyfikacyjny" to data.studentSemesterId + "IdOkresKlasyfikacyjny" to semesterId )) { json, _ -> val grades = json.getJsonArray("Data") @@ -99,7 +124,7 @@ class VulcanApiGrades(override val data: DataVulcan, category = category, description = finalDescription, comment = null, - semester = data.studentSemesterNumber, + semester = semesterNumber, teacherId = teacherId, subjectId = subjectId, addedDate = addedDate @@ -115,9 +140,7 @@ class VulcanApiGrades(override val data: DataVulcan, )) } - data.toRemove.add(DataRemoveModel.Grades.semesterWithType(data.studentSemesterNumber, Grade.TYPE_NORMAL)) - data.setSyncNext(ENDPOINT_VULCAN_API_GRADES, SYNC_ALWAYS) - onSuccess(ENDPOINT_VULCAN_API_GRADES) + onSuccess() } - } ?: onSuccess(ENDPOINT_VULCAN_API_GRADES) } + } } diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiNotices.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiNotices.kt index 56b4d918..45155a5b 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiNotices.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiNotices.kt @@ -11,6 +11,7 @@ import pl.szczodrzynski.edziennik.data.api.edziennik.vulcan.ENDPOINT_VULCAN_API_ import pl.szczodrzynski.edziennik.data.api.edziennik.vulcan.data.VulcanApi import pl.szczodrzynski.edziennik.data.db.entity.Metadata import pl.szczodrzynski.edziennik.data.db.entity.Notice +import pl.szczodrzynski.edziennik.data.db.entity.Profile import pl.szczodrzynski.edziennik.data.db.entity.SYNC_ALWAYS import pl.szczodrzynski.edziennik.getJsonArray import pl.szczodrzynski.edziennik.getLong @@ -30,6 +31,29 @@ class VulcanApiNotices(override val data: DataVulcan, data.db.noticeTypeDao().getAllNow(profileId).toSparseArray(data.noticeTypes) { it.id } } + val semesterId = data.studentSemesterId + val semesterNumber = data.studentSemesterNumber + if (semesterNumber == 2 && lastSync ?: 0 < profile.dateSemester1Start.inMillis) { + getNotices(profile, semesterId - 1, semesterNumber - 1) { + getNotices(profile, semesterId, semesterNumber) { + finish() + } + } + } + else { + getNotices(profile, semesterId, semesterNumber) { + finish() + } + } + + } ?: onSuccess(ENDPOINT_VULCAN_API_NOTICES) } + + private fun finish() { + data.setSyncNext(ENDPOINT_VULCAN_API_NOTICES, SYNC_ALWAYS) + onSuccess(ENDPOINT_VULCAN_API_NOTICES) + } + + private fun getNotices(profile: Profile, semesterId: Int, semesterNumber: Int, onSuccess: () -> Unit) { apiGet(TAG, VULCAN_API_ENDPOINT_NOTICES, parameters = mapOf( "IdUczen" to data.studentId, "IdOkresKlasyfikacyjny" to data.studentSemesterId @@ -67,8 +91,7 @@ class VulcanApiNotices(override val data: DataVulcan, )) } - data.setSyncNext(ENDPOINT_VULCAN_API_NOTICES, SYNC_ALWAYS) - onSuccess(ENDPOINT_VULCAN_API_NOTICES) + onSuccess() } - } ?: onSuccess(ENDPOINT_VULCAN_API_NOTICES) } + } } diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiProposedGrades.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiProposedGrades.kt index 771ee5c8..e897df92 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiProposedGrades.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiProposedGrades.kt @@ -13,6 +13,7 @@ import pl.szczodrzynski.edziennik.data.db.entity.Grade.Companion.TYPE_SEMESTER1_ import pl.szczodrzynski.edziennik.data.db.entity.Grade.Companion.TYPE_SEMESTER2_FINAL import pl.szczodrzynski.edziennik.data.db.entity.Grade.Companion.TYPE_SEMESTER2_PROPOSED import pl.szczodrzynski.edziennik.data.db.entity.Metadata +import pl.szczodrzynski.edziennik.data.db.entity.Profile import pl.szczodrzynski.edziennik.getJsonArray import pl.szczodrzynski.edziennik.getJsonObject import pl.szczodrzynski.edziennik.utils.Utils @@ -27,32 +28,54 @@ class VulcanApiProposedGrades(override val data: DataVulcan, init { data.profile?.also { profile -> + val semesterId = data.studentSemesterId + val semesterNumber = data.studentSemesterNumber + if (semesterNumber == 2 && lastSync ?: 0 < profile.dateSemester1Start.inMillis) { + getProposedGrades(profile, semesterId - 1, semesterNumber - 1) { + getProposedGrades(profile, semesterId, semesterNumber) { + finish() + } + } + } + else { + getProposedGrades(profile, semesterId, semesterNumber) { + finish() + } + } + + } ?: onSuccess(ENDPOINT_VULCAN_API_GRADES_SUMMARY) } + + private fun finish() { + data.setSyncNext(ENDPOINT_VULCAN_API_GRADES_SUMMARY, 6*HOUR) + onSuccess(ENDPOINT_VULCAN_API_GRADES_SUMMARY) + } + + private fun getProposedGrades(profile: Profile, semesterId: Int, semesterNumber: Int, onSuccess: () -> Unit) { apiGet(TAG, VULCAN_API_ENDPOINT_GRADES_PROPOSITIONS, parameters = mapOf( "IdUczen" to data.studentId, - "IdOkresKlasyfikacyjny" to data.studentSemesterId + "IdOkresKlasyfikacyjny" to semesterId )) { json, _ -> val grades = json.getJsonObject("Data") grades.getJsonArray("OcenyPrzewidywane")?.let { - processGradeList(it, isFinal = false) + processGradeList(it, semesterNumber, isFinal = false) } grades.getJsonArray("OcenyKlasyfikacyjne")?.let { - processGradeList(it, isFinal = true) + processGradeList(it, semesterNumber, isFinal = true) } - data.setSyncNext(ENDPOINT_VULCAN_API_GRADES_SUMMARY, 6*HOUR) - onSuccess(ENDPOINT_VULCAN_API_GRADES_SUMMARY) + onSuccess() } - } ?: onSuccess(ENDPOINT_VULCAN_API_GRADES_SUMMARY) } + } - private fun processGradeList(grades: JsonArray, isFinal: Boolean) { - grades.asJsonObjectList()?.forEach { grade -> + private fun processGradeList(grades: JsonArray, semesterNumber: Int, isFinal: Boolean) { + grades.asJsonObjectList().forEach { grade -> val name = grade.get("Wpis").asString val value = Utils.getGradeValue(name) val subjectId = grade.get("IdPrzedmiot").asLong - val id = subjectId * -100 - data.studentSemesterNumber + val id = subjectId * -100 - semesterNumber val color = Utils.getVulcanGradeColor(name) @@ -60,7 +83,7 @@ class VulcanApiProposedGrades(override val data: DataVulcan, profileId = profileId, id = id, name = name, - type = if (data.studentSemesterNumber == 1) { + type = if (semesterNumber == 1) { if (isFinal) TYPE_SEMESTER1_FINAL else TYPE_SEMESTER1_PROPOSED } else { if (isFinal) TYPE_SEMESTER2_FINAL else TYPE_SEMESTER2_PROPOSED @@ -71,7 +94,7 @@ class VulcanApiProposedGrades(override val data: DataVulcan, category = "", description = null, comment = null, - semester = data.studentSemesterNumber, + semester = semesterNumber, teacherId = -1, subjectId = subjectId ) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiUpdateSemester.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiUpdateSemester.kt index 1f03484c..50fb178a 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiUpdateSemester.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiUpdateSemester.kt @@ -60,6 +60,7 @@ class VulcanApiUpdateSemester(override val data: DataVulcan, data.studentClassId = studentClassId data.studentSemesterId = studentSemesterId data.studentSemesterNumber = studentSemesterNumber + data.profile.studentData["semester${studentSemesterNumber}Id"] = studentSemesterId data.currentSemesterEndDate = currentSemesterEndDate profile.studentClassName = studentClassName dateSemester1Start?.let { diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/firstlogin/VulcanFirstLogin.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/firstlogin/VulcanFirstLogin.kt index 291cb37b..22f823b1 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/firstlogin/VulcanFirstLogin.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/firstlogin/VulcanFirstLogin.kt @@ -93,6 +93,7 @@ class VulcanFirstLogin(val data: DataVulcan, val onSuccess: () -> Unit) { studentData["studentClassId"] = studentClassId studentData["studentSemesterId"] = studentSemesterId studentData["studentSemesterNumber"] = studentSemesterNumber + studentData["semester${studentSemesterNumber}Id"] = studentSemesterId studentData["schoolSymbol"] = schoolSymbol studentData["schoolName"] = schoolName studentData["currentSemesterEndDate"] = currentSemesterEndDate diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/login/VulcanLoginApi.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/login/VulcanLoginApi.kt index 4385b18a..6ff458da 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/login/VulcanLoginApi.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/login/VulcanLoginApi.kt @@ -29,6 +29,11 @@ class VulcanLoginApi(val data: DataVulcan, val onSuccess: () -> Unit) { } init { run { + if (data.studentSemesterNumber == 1 && data.semester1Id == 0) + data.semester1Id = data.studentSemesterNumber + if (data.studentSemesterNumber == 2 && data.semester2Id == 0) + data.semester2Id = data.studentSemesterNumber + if (data.profile != null && data.isApiLoginValid()) { onSuccess() } 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 b92f0e4a..333967b0 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 = 87) +], version = 88) @TypeConverters( ConverterTime::class, ConverterDate::class, @@ -172,7 +172,8 @@ abstract class AppDb : RoomDatabase() { Migration84(), Migration85(), Migration86(), - Migration87() + Migration87(), + Migration88() ).allowMainThreadQueries().build() } } diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/migration/Migration88.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/migration/Migration88.kt new file mode 100644 index 00000000..0dcd2f8c --- /dev/null +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/migration/Migration88.kt @@ -0,0 +1,15 @@ +/* + * Copyright (c) Kuba SzczodrzyƄski 2020-5-9. + */ + +package pl.szczodrzynski.edziennik.data.db.migration + +import androidx.room.migration.Migration +import androidx.sqlite.db.SupportSQLiteDatabase + +class Migration88 : Migration(87, 88) { + override fun migrate(database: SupportSQLiteDatabase) { + database.execSQL("UPDATE endpointTimers SET endpointLastSync = 0 WHERE endpointId IN (1030, 1040, 1050, 1060, 1070, 1080);") + database.execSQL("UPDATE profiles SET empty = 1 WHERE loginStoreType = 4") + } +}