Merge branch 'bugfix/2.5.4'

This commit is contained in:
Mikołaj Pich 2024-03-26 13:29:26 +01:00
commit e1e276e1ea
No known key found for this signature in database
4 changed files with 27 additions and 15 deletions

View File

@ -27,8 +27,8 @@ android {
testApplicationId "io.github.tests.wulkanowy" testApplicationId "io.github.tests.wulkanowy"
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 34 targetSdkVersion 34
versionCode 152 versionCode 153
versionName "2.5.3" versionName "2.5.4"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
resValue "string", "app_name", "Wulkanowy" resValue "string", "app_name", "Wulkanowy"
@ -164,8 +164,8 @@ play {
defaultToAppBundles = false defaultToAppBundles = false
track = 'production' track = 'production'
releaseStatus = ReleaseStatus.IN_PROGRESS releaseStatus = ReleaseStatus.IN_PROGRESS
userFraction = 0.20d userFraction = 0.99d
updatePriority = 3 updatePriority = 1
enabled.set(false) enabled.set(false)
} }
@ -195,7 +195,7 @@ ext {
} }
dependencies { dependencies {
implementation 'io.github.wulkanowy:sdk:2.5.3' implementation 'io.github.wulkanowy:sdk:2.5.4'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4'

View File

@ -42,6 +42,7 @@ class StudentRepository @Inject constructor(
): RegisterUser = wulkanowySdkFactory.create() ): RegisterUser = wulkanowySdkFactory.create()
.getStudentsFromHebe(token, pin, symbol, "") .getStudentsFromHebe(token, pin, symbol, "")
.mapToPojo(null) .mapToPojo(null)
.also { it.logErrors() }
suspend fun getUserSubjectsFromScrapper( suspend fun getUserSubjectsFromScrapper(
email: String, email: String,
@ -52,6 +53,7 @@ class StudentRepository @Inject constructor(
): RegisterUser = wulkanowySdkFactory.create() ): RegisterUser = wulkanowySdkFactory.create()
.getUserSubjectsFromScrapper(email, password, scrapperBaseUrl, domainSuffix, symbol) .getUserSubjectsFromScrapper(email, password, scrapperBaseUrl, domainSuffix, symbol)
.mapToPojo(password) .mapToPojo(password)
.also { it.logErrors() }
suspend fun getStudentsHybrid( suspend fun getStudentsHybrid(
email: String, email: String,
@ -61,6 +63,7 @@ class StudentRepository @Inject constructor(
): RegisterUser = wulkanowySdkFactory.create() ): RegisterUser = wulkanowySdkFactory.create()
.getStudentsHybrid(email, password, scrapperBaseUrl, "", symbol) .getStudentsHybrid(email, password, scrapperBaseUrl, "", symbol)
.mapToPojo(password) .mapToPojo(password)
.also { it.logErrors() }
suspend fun getSavedStudents(decryptPass: Boolean = true): List<StudentWithSemesters> { suspend fun getSavedStudents(decryptPass: Boolean = true): List<StudentWithSemesters> {
return studentDb.loadStudentsWithSemesters().map { (student, semesters) -> return studentDb.loadStudentsWithSemesters().map { (student, semesters) ->
@ -195,10 +198,10 @@ class StudentRepository @Inject constructor(
.authorizePermission(pesel) .authorizePermission(pesel)
suspend fun refreshStudentAfterAuthorize(student: Student, semester: Semester) { suspend fun refreshStudentAfterAuthorize(student: Student, semester: Semester) {
val newCurrentApiStudent = wulkanowySdkFactory val wulkanowySdk = wulkanowySdkFactory.create(student, semester)
.create(student, semester) val newCurrentApiStudent = runCatching { wulkanowySdk.getCurrentStudent() }
.getCurrentStudent() .onFailure { Timber.e(it, "Can't find student with id ${student.studentId}") }
?: return Timber.d("Can't find student with id ${student.studentId}") .getOrNull() ?: return
val studentName = StudentName( val studentName = StudentName(
studentName = "${newCurrentApiStudent.studentName} ${newCurrentApiStudent.studentSurname}" studentName = "${newCurrentApiStudent.studentName} ${newCurrentApiStudent.studentSurname}"
@ -221,6 +224,18 @@ class StudentRepository @Inject constructor(
appDatabase.clearAllTables() appDatabase.clearAllTables()
} }
} }
private fun RegisterUser.logErrors() {
val symbolsErrors = symbols.filter { it.error != null }
.map { it.error }
val unitsErrors = symbols.flatMap { it.schools }
.filter { it.error != null }
.map { it.error }
(symbolsErrors + unitsErrors).forEach { error ->
Timber.e(error, "Error occurred while fetching students")
}
}
} }
class NoAuthorizationException : Exception() class NoAuthorizationException : Exception()

View File

@ -18,7 +18,7 @@ fun Semester.isCurrent(now: LocalDate = now()): Boolean {
} }
fun List<Semester>.getCurrentOrLast(): Semester { fun List<Semester>.getCurrentOrLast(): Semester {
if (isEmpty()) throw RuntimeException("Empty semester list") if (isEmpty()) throw IllegalStateException("Empty semester list")
// when there is only one current semester // when there is only one current semester
singleOrNull { it.isCurrent() }?.let { return it } singleOrNull { it.isCurrent() }?.let { return it }

View File

@ -1,8 +1,5 @@
Wersja 2.5.3 Wersja 2.5.4
— naprawiliśmy wyświetlanie błędu "Brak uprawnień" po starcie aplikacji u użytkowników eduOne — naprawiliśmy kolejnych kilka błędów związanych z obsługą dziennika eduOne (tak, nie umiemy za jednym razem)
— naprawiliśmy obsługę autoryzacji u użytkowników eduOne
— ukryliśmy numery lekcji i oceny klasy u użytkowników eduOne, bo VULCAN te funkcje usunął
— naprawiliśmy inne rzeczy u użytkowników eduOne (jak brak opisu oceny czy ładowanie danych na kilku ekranach)
Pełna lista zmian: https://github.com/wulkanowy/wulkanowy/releases Pełna lista zmian: https://github.com/wulkanowy/wulkanowy/releases