forked from github/wulkanowy-mirror
Merge branch 'release/0.20.3' into master
This commit is contained in:
commit
42515fd084
@ -14,7 +14,7 @@ cache:
|
|||||||
branches:
|
branches:
|
||||||
only:
|
only:
|
||||||
- develop
|
- develop
|
||||||
- 0.20.2
|
- 0.20.3
|
||||||
|
|
||||||
android:
|
android:
|
||||||
licenses:
|
licenses:
|
||||||
|
@ -18,8 +18,8 @@ android {
|
|||||||
testApplicationId "io.github.tests.wulkanowy"
|
testApplicationId "io.github.tests.wulkanowy"
|
||||||
minSdkVersion 17
|
minSdkVersion 17
|
||||||
targetSdkVersion 29
|
targetSdkVersion 29
|
||||||
versionCode 66
|
versionCode 67
|
||||||
versionName "0.20.2"
|
versionName "0.20.3"
|
||||||
multiDexEnabled true
|
multiDexEnabled true
|
||||||
resValue "string", "app_name", "Wulkanowy"
|
resValue "string", "app_name", "Wulkanowy"
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
@ -126,7 +126,7 @@ configurations.all {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation "io.github.wulkanowy:sdk:0.20.2"
|
implementation "io.github.wulkanowy:sdk:0.20.3"
|
||||||
|
|
||||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.10'
|
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.10'
|
||||||
|
|
||||||
|
@ -50,13 +50,16 @@ class SyncWorker @WorkerInject constructor(
|
|||||||
} catch (e: Throwable) {
|
} catch (e: Throwable) {
|
||||||
Timber.w("${work::class.java.simpleName} result: An exception ${e.message} occurred")
|
Timber.w("${work::class.java.simpleName} result: An exception ${e.message} occurred")
|
||||||
if (e is FeatureDisabledException || e is FeatureNotAvailableException) null
|
if (e is FeatureDisabledException || e is FeatureNotAvailableException) null
|
||||||
else e
|
else {
|
||||||
|
Timber.e(e)
|
||||||
|
e
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val result = when {
|
val result = when {
|
||||||
exceptions.isNotEmpty() && inputData.getBoolean("one_time", false) -> {
|
exceptions.isNotEmpty() && inputData.getBoolean("one_time", false) -> {
|
||||||
Result.failure(Data.Builder()
|
Result.failure(Data.Builder()
|
||||||
.putString("error", exceptions.toString())
|
.putString("error", exceptions.map { it.stackTraceToString() }.toString())
|
||||||
.build()
|
.build()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ import kotlinx.coroutines.CoroutineScope
|
|||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.Job
|
import kotlinx.coroutines.Job
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
|
import kotlinx.coroutines.flow.catch
|
||||||
import kotlinx.coroutines.flow.launchIn
|
import kotlinx.coroutines.flow.launchIn
|
||||||
import kotlinx.coroutines.flow.onEach
|
import kotlinx.coroutines.flow.onEach
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
@ -63,7 +64,7 @@ open class BasePresenter<T : BaseView>(
|
|||||||
|
|
||||||
fun <T> Flow<T>.launch(individualJobTag: String = "load"): Job {
|
fun <T> Flow<T>.launch(individualJobTag: String = "load"): Job {
|
||||||
jobs[individualJobTag]?.cancel()
|
jobs[individualJobTag]?.cancel()
|
||||||
val job = launchIn(this@BasePresenter)
|
val job = catch { errorHandler.dispatch(it) }.launchIn(this@BasePresenter)
|
||||||
jobs[individualJobTag] = job
|
jobs[individualJobTag] = job
|
||||||
Timber.d("Job $individualJobTag launched in ${this@BasePresenter.javaClass.simpleName}: $job")
|
Timber.d("Job $individualJobTag launched in ${this@BasePresenter.javaClass.simpleName}: $job")
|
||||||
return job
|
return job
|
||||||
|
@ -9,6 +9,7 @@ import io.github.wulkanowy.R
|
|||||||
import io.github.wulkanowy.data.db.entities.Attendance
|
import io.github.wulkanowy.data.db.entities.Attendance
|
||||||
import io.github.wulkanowy.data.repositories.attendance.SentExcuseStatus
|
import io.github.wulkanowy.data.repositories.attendance.SentExcuseStatus
|
||||||
import io.github.wulkanowy.databinding.ItemAttendanceBinding
|
import io.github.wulkanowy.databinding.ItemAttendanceBinding
|
||||||
|
import io.github.wulkanowy.utils.description
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class AttendanceAdapter @Inject constructor() :
|
class AttendanceAdapter @Inject constructor() :
|
||||||
@ -34,7 +35,7 @@ class AttendanceAdapter @Inject constructor() :
|
|||||||
with(holder.binding) {
|
with(holder.binding) {
|
||||||
attendanceItemNumber.text = item.number.toString()
|
attendanceItemNumber.text = item.number.toString()
|
||||||
attendanceItemSubject.text = item.subject
|
attendanceItemSubject.text = item.subject
|
||||||
attendanceItemDescription.text = item.name
|
attendanceItemDescription.setText(item.description)
|
||||||
attendanceItemAlert.visibility = item.run { if (absence && !excused) View.VISIBLE else View.INVISIBLE }
|
attendanceItemAlert.visibility = item.run { if (absence && !excused) View.VISIBLE else View.INVISIBLE }
|
||||||
attendanceItemNumber.visibility = View.GONE
|
attendanceItemNumber.visibility = View.GONE
|
||||||
attendanceItemExcuseInfo.visibility = View.GONE
|
attendanceItemExcuseInfo.visibility = View.GONE
|
||||||
|
@ -7,6 +7,7 @@ import android.view.ViewGroup
|
|||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import io.github.wulkanowy.data.db.entities.Attendance
|
import io.github.wulkanowy.data.db.entities.Attendance
|
||||||
import io.github.wulkanowy.databinding.DialogAttendanceBinding
|
import io.github.wulkanowy.databinding.DialogAttendanceBinding
|
||||||
|
import io.github.wulkanowy.utils.description
|
||||||
import io.github.wulkanowy.utils.lifecycleAwareVariable
|
import io.github.wulkanowy.utils.lifecycleAwareVariable
|
||||||
import io.github.wulkanowy.utils.toFormattedString
|
import io.github.wulkanowy.utils.toFormattedString
|
||||||
|
|
||||||
@ -43,7 +44,7 @@ class AttendanceDialog : DialogFragment() {
|
|||||||
|
|
||||||
with(binding) {
|
with(binding) {
|
||||||
attendanceDialogSubject.text = attendance.subject
|
attendanceDialogSubject.text = attendance.subject
|
||||||
attendanceDialogDescription.text = attendance.name
|
attendanceDialogDescription.setText(attendance.description)
|
||||||
attendanceDialogDate.text = attendance.date.toFormattedString()
|
attendanceDialogDate.text = attendance.date.toFormattedString()
|
||||||
attendanceDialogNumber.text = attendance.number.toString()
|
attendanceDialogNumber.text = attendance.number.toString()
|
||||||
attendanceDialogClose.setOnClickListener { dismiss() }
|
attendanceDialogClose.setOnClickListener { dismiss() }
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
package io.github.wulkanowy.utils
|
package io.github.wulkanowy.utils
|
||||||
|
|
||||||
|
import io.github.wulkanowy.R
|
||||||
|
import io.github.wulkanowy.data.db.entities.Attendance
|
||||||
import io.github.wulkanowy.data.db.entities.AttendanceSummary
|
import io.github.wulkanowy.data.db.entities.AttendanceSummary
|
||||||
|
import io.github.wulkanowy.sdk.scrapper.attendance.AttendanceCategory
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* [UONET+ - Zasady tworzenia podsumowań liczb uczniów obecnych i nieobecnych w tabeli frekwencji]
|
* [UONET+ - Zasady tworzenia podsumowań liczb uczniów obecnych i nieobecnych w tabeli frekwencji]
|
||||||
@ -23,4 +26,15 @@ private fun calculatePercentage(presence: Double, absence: Double): Double {
|
|||||||
return if ((presence + absence) == 0.0) 0.0 else (presence / (presence + absence)) * 100
|
return if ((presence + absence) == 0.0) 0.0 else (presence / (presence + absence)) * 100
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline val Attendance.description
|
||||||
|
get() = when (AttendanceCategory.valueOf(name)) {
|
||||||
|
AttendanceCategory.PRESENCE -> R.string.attendance_present
|
||||||
|
AttendanceCategory.ABSENCE_UNEXCUSED -> R.string.attendance_absence_unexcused
|
||||||
|
AttendanceCategory.ABSENCE_EXCUSED -> R.string.attendance_absence_excused
|
||||||
|
AttendanceCategory.UNEXCUSED_LATENESS -> R.string.attendance_unexcused_lateness
|
||||||
|
AttendanceCategory.EXCUSED_LATENESS -> R.string.attendance_excused_lateness
|
||||||
|
AttendanceCategory.ABSENCE_FOR_SCHOOL_REASONS -> R.string.attendance_absence_school
|
||||||
|
AttendanceCategory.EXEMPTION -> R.string.attendance_exemption
|
||||||
|
AttendanceCategory.DELETED -> R.string.attendance_deleted
|
||||||
|
else -> R.string.attendance_unknown
|
||||||
|
}
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
Wersja 0.20.2
|
Wersja 0.20.3
|
||||||
- naprawiliśmy powiadomienie o szczęśliwym numerku
|
- naprawiliśmy opisy wpisów frekwencyjnych, które teraz będą już w całości po polsku
|
||||||
- naprawiliśmy przełączanie na nowy rok szkolny
|
|
||||||
- naprawiliśmy funkcję resetowania hasła
|
|
||||||
- dodaliśmy dziennik e-Skarżysko
|
|
||||||
|
|
||||||
Pełna lista zmian: https://github.com/wulkanowy/wulkanowy/releases
|
Pełna lista zmian: https://github.com/wulkanowy/wulkanowy/releases
|
||||||
|
@ -168,6 +168,8 @@
|
|||||||
<string name="attendance_excused_lateness">Spóźnienie usprawiedliwione</string>
|
<string name="attendance_excused_lateness">Spóźnienie usprawiedliwione</string>
|
||||||
<string name="attendance_unexcused_lateness">Spóźnienie nieusprawiedliwione</string>
|
<string name="attendance_unexcused_lateness">Spóźnienie nieusprawiedliwione</string>
|
||||||
<string name="attendance_present">Obecność</string>
|
<string name="attendance_present">Obecność</string>
|
||||||
|
<string name="attendance_deleted">Usunięty</string>
|
||||||
|
<string name="attendance_unknown">Nieznany</string>
|
||||||
<string name="attendance_number">Numer lekcji</string>
|
<string name="attendance_number">Numer lekcji</string>
|
||||||
<string name="attendance_no_items">Brak wpisów</string>
|
<string name="attendance_no_items">Brak wpisów</string>
|
||||||
<plurals name="attendance_number_absences">
|
<plurals name="attendance_number_absences">
|
||||||
|
@ -170,6 +170,8 @@
|
|||||||
<string name="attendance_excused_lateness">Excused lateness</string>
|
<string name="attendance_excused_lateness">Excused lateness</string>
|
||||||
<string name="attendance_unexcused_lateness">Unexcused lateness</string>
|
<string name="attendance_unexcused_lateness">Unexcused lateness</string>
|
||||||
<string name="attendance_present">Present</string>
|
<string name="attendance_present">Present</string>
|
||||||
|
<string name="attendance_deleted">Deleted</string>
|
||||||
|
<string name="attendance_unknown">Unknown</string>
|
||||||
<string name="attendance_number">Number of lesson</string>
|
<string name="attendance_number">Number of lesson</string>
|
||||||
<string name="attendance_no_items">No entries</string>
|
<string name="attendance_no_items">No entries</string>
|
||||||
<plurals name="attendance_number_absences">
|
<plurals name="attendance_number_absences">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user