diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/MainActivity.kt b/app/src/main/java/pl/szczodrzynski/edziennik/MainActivity.kt index 1ca1dd11..0f375408 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/MainActivity.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/MainActivity.kt @@ -617,6 +617,16 @@ class MainActivity : AppCompatActivity(), CoroutineScope { swipeRefreshLayout.isRefreshing = false return } + if (app.profile.shouldArchive()) { + MaterialAlertDialogBuilder(this) + .setTitle(R.string.profile_archiving_title) + .setMessage( + R.string.profile_archiving_format, + app.profile.dateYearEnd.formattedString + ) + .setPositiveButton(R.string.ok, null) + .show() + } if (app.profile.isBeforeYear()) { MaterialAlertDialogBuilder(this) .setTitle(R.string.profile_year_not_started_title) @@ -629,21 +639,6 @@ class MainActivity : AppCompatActivity(), CoroutineScope { swipeRefreshLayout.isRefreshing = false return } - // vulcan hotfix - if (app.profile.dateYearEnd.month > 6) { - app.profile.dateYearEnd.month = 6 - app.profile.dateYearEnd.day = 30 - } - if (app.profile.shouldArchive()) { - MaterialAlertDialogBuilder(this) - .setTitle(R.string.profile_archiving_title) - .setMessage( - R.string.profile_archiving_format, - app.profile.dateYearEnd.formattedString - ) - .setPositiveButton(R.string.ok, null) - .show() - } swipeRefreshLayout.isRefreshing = true Toast.makeText(this, fragmentToSyncName(navTargetId), Toast.LENGTH_SHORT).show() val fragmentParam = when (navTargetId) { diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/EdziennikTask.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/EdziennikTask.kt index 66a04501..e1a830b5 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/EdziennikTask.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/EdziennikTask.kt @@ -73,11 +73,6 @@ open class EdziennikTask(override val profileId: Int, val request: Any) : IApiTa internal fun run(app: App, taskCallback: EdziennikCallback) { profile?.let { profile -> - // vulcan hotfix - if (profile.dateYearEnd.month > 6) { - profile.dateYearEnd.month = 6 - profile.dateYearEnd.day = 30 - } if (profile.archived) { d(TAG, "The profile $profileId is archived") taskCallback.onError(ApiError(TAG, ERROR_PROFILE_ARCHIVED)) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/entity/Profile.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/entity/Profile.kt index 62e4be28..eab4cb8b 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/entity/Profile.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/entity/Profile.kt @@ -91,7 +91,21 @@ open class Profile( @delegate:Ignore val currentSemester by lazy { dateToSemester(Date.getToday()) } - fun shouldArchive() = Date.getToday() >= dateYearEnd && Date.getToday().year > studentSchoolYearStart + fun shouldArchive(): Boolean { + // vulcan hotfix + if (dateYearEnd.month > 6) { + dateYearEnd.month = 6 + dateYearEnd.day = 30 + } + // fix for when versions <4.3 synced 2020/2021 year dates to older profiles during 2020 Jun-Aug + if (dateSemester1Start.year > studentSchoolYearStart) { + val diff = dateSemester1Start.year - studentSchoolYearStart + dateSemester1Start.year -= diff + dateSemester2Start.year -= diff + dateYearEnd.year -= diff + } + return Date.getToday() >= dateYearEnd && Date.getToday().year > studentSchoolYearStart + } fun isBeforeYear() = Date.getToday() < dateSemester1Start var disabledNotifications: List? = null