diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/config/utils/ConfigGsonUtils.kt b/app/src/main/java/pl/szczodrzynski/edziennik/config/utils/ConfigGsonUtils.kt index 8510bcc2..0b0a634e 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/config/utils/ConfigGsonUtils.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/config/utils/ConfigGsonUtils.kt @@ -10,8 +10,9 @@ import pl.szczodrzynski.edziennik.ui.home.HomeCardModel import pl.szczodrzynski.edziennik.utils.models.Time class ConfigGsonUtils { + @Suppress("UNCHECKED_CAST") fun deserializeList(gson: Gson, str: String?, classOfT: Class): List { - val json = JsonParser().parse(str) + val json = JsonParser.parseString(str) val list: MutableList = mutableListOf() if (!json.isJsonArray) return list diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/edudziennik/data/web/EdudziennikWebAttendance.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/edudziennik/data/web/EdudziennikWebAttendance.kt index 9badca5e..02ba0c85 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/edudziennik/data/web/EdudziennikWebAttendance.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/edudziennik/data/web/EdudziennikWebAttendance.kt @@ -44,7 +44,7 @@ class EdudziennikWebAttendance(override val data: DataEdudziennik, return@map Triple( symbol, name, - when (name.toLowerCase(Locale.ROOT)) { + when (name.lowercase()) { "obecność" -> Attendance.TYPE_PRESENT "nieobecność" -> Attendance.TYPE_ABSENT "spóźnienie" -> Attendance.TYPE_BELATED diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/edudziennik/data/web/EdudziennikWebHomework.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/edudziennik/data/web/EdudziennikWebHomework.kt index 4b998b1a..176c6d3d 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/edudziennik/data/web/EdudziennikWebHomework.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/edudziennik/data/web/EdudziennikWebHomework.kt @@ -49,7 +49,7 @@ class EdudziennikWebHomework(override val data: DataEdudziennik, val teacherName = homeworkElement.child(2).text() val teacher = data.getTeacherByFirstLast(teacherName) - val topic = homeworkElement.child(4).text()?.trim() + val topic = homeworkElement.child(4).text().trim() val eventObject = Event( profileId = profileId, diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiClassrooms.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiClassrooms.kt index fb8f25ee..6fbebca5 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiClassrooms.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiClassrooms.kt @@ -26,8 +26,8 @@ class LibrusApiClassrooms(override val data: DataLibrus, classrooms?.forEach { classroom -> val id = classroom.getLong("Id") ?: return@forEach - val name = classroom.getString("Name")?.toLowerCase(Locale.getDefault()) ?: "" - val symbol = classroom.getString("Symbol")?.toLowerCase(Locale.getDefault()) ?: "" + val name = classroom.getString("Name")?.lowercase() ?: "" + val symbol = classroom.getString("Symbol")?.lowercase() ?: "" val nameShort = name.fixWhiteSpaces().split(" ").onEach { it[0] }.joinToString() val symbolParts = symbol.fixWhiteSpaces().split(" ") diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiSchools.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiSchools.kt index fc43006e..e42ab949 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiSchools.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiSchools.kt @@ -30,7 +30,7 @@ class LibrusApiSchools(override val data: DataLibrus, // create the school's short name using first letters of each long name's word // append the town name and save to student data val schoolNameShort = schoolNameLong?.firstLettersName - val schoolTown = school?.getString("Town")?.toLowerCase(Locale.getDefault()) + val schoolTown = school?.getString("Town")?.lowercase() data.schoolName = schoolId.toString() + schoolNameShort + "_" + schoolTown school?.getJsonArray("LessonsRange")?.let { ranges -> diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/messages/LibrusMessagesGetList.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/messages/LibrusMessagesGetList.kt index 1876a006..7d0cfeef 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/messages/LibrusMessagesGetList.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/messages/LibrusMessagesGetList.kt @@ -109,7 +109,7 @@ class LibrusMessagesGetList(override val data: DataLibrus, id ) - element.select("isAnyFileAttached")?.text()?.let { + element.select("isAnyFileAttached").text()?.let { if (it == "1") messageObject.hasAttachments = true } diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/messages/LibrusMessagesGetMessage.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/messages/LibrusMessagesGetMessage.kt index 3fdd4da6..8e6435c6 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/messages/LibrusMessagesGetMessage.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/messages/LibrusMessagesGetMessage.kt @@ -108,7 +108,7 @@ class LibrusMessagesGetMessage(override val data: DataLibrus, readDate = readDate ) - messageRecipientObject.fullName = profile.accountName ?: profile.studentNameLong ?: "" + messageRecipientObject.fullName = profile.accountName ?: profile.studentNameLong messageRecipientList.add(messageRecipientObject) } diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/messages/LibrusMessagesGetRecipientList.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/messages/LibrusMessagesGetRecipientList.kt index 23454982..b6881f17 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/messages/LibrusMessagesGetRecipientList.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/messages/LibrusMessagesGetRecipientList.kt @@ -29,9 +29,9 @@ class LibrusMessagesGetRecipientList(override val data: DataLibrus, messagesGet(TAG, "Receivers/action/GetTypes", parameters = mapOf( "includeClass" to 1 )) { doc -> - doc.select("response GetTypes data list ArrayItem")?.forEach { - val id = it.getElementsByTag("id")?.firstOrNull()?.ownText() ?: return@forEach - val name = it.getElementsByTag("name")?.firstOrNull()?.ownText() ?: return@forEach + doc.select("response GetTypes data list ArrayItem").forEach { + val id = it.getElementsByTag("id").firstOrNull()?.ownText() ?: return@forEach + val name = it.getElementsByTag("name").firstOrNull()?.ownText() ?: return@forEach listTypes += id to name } @@ -56,7 +56,7 @@ class LibrusMessagesGetRecipientList(override val data: DataLibrus, if (dataEl is JsonObject) { val listEl = dataEl.get("ArrayItem") if (listEl is JsonArray) { - listEl.asJsonObjectList()?.forEach { item -> + listEl.asJsonObjectList().forEach { item -> processElement(item, type.first, type.second) } } @@ -72,7 +72,7 @@ class LibrusMessagesGetRecipientList(override val data: DataLibrus, private fun processElement(element: JsonObject, typeId: String, typeName: String, listName: String? = null) { val listEl = element.getJsonObject("list")?.get("ArrayItem") if (listEl is JsonArray) { - listEl.asJsonObjectList()?.let { list -> + listEl.asJsonObjectList().let { list -> val label = element.getString("label") ?: "" list.forEach { item -> processElement(item, typeId, typeName, label) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/messages/LibrusMessagesSendMessage.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/messages/LibrusMessagesSendMessage.kt index b9a86f98..02248e99 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/messages/LibrusMessagesSendMessage.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/messages/LibrusMessagesSendMessage.kt @@ -9,7 +9,6 @@ import pl.szczodrzynski.edziennik.data.api.edziennik.librus.DataLibrus import pl.szczodrzynski.edziennik.data.api.edziennik.librus.data.LibrusMessages import pl.szczodrzynski.edziennik.data.api.events.MessageSentEvent import pl.szczodrzynski.edziennik.data.db.entity.Message -import pl.szczodrzynski.edziennik.data.db.entity.Metadata import pl.szczodrzynski.edziennik.data.db.entity.Teacher import pl.szczodrzynski.edziennik.ext.base64Encode import pl.szczodrzynski.edziennik.ext.getJsonObject @@ -42,14 +41,14 @@ class LibrusMessagesSendMessage(override val data: DataLibrus, val id = response.getLong("data") if (response.getString("status") != "ok" || id == null) { - val message = response.getString("message") + // val message = response.getString("message") // TODO error return@messagesGetJson } LibrusMessagesGetList(data, type = Message.TYPE_SENT, lastSync = null) { val message = data.messageList.firstOrNull { it.isSent && it.id == id } - val metadata = data.metadataList.firstOrNull { it.thingType == Metadata.TYPE_MESSAGE && it.thingId == message?.id } + // val metadata = data.metadataList.firstOrNull { it.thingType == Metadata.TYPE_MESSAGE && it.thingId == message?.id } val event = MessageSentEvent(data.profileId, message, message?.addedDate) EventBus.getDefault().postSticky(event) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/synergia/LibrusSynergiaHomework.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/synergia/LibrusSynergiaHomework.kt index d40518ab..ddf6635c 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/synergia/LibrusSynergiaHomework.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/synergia/LibrusSynergiaHomework.kt @@ -42,7 +42,7 @@ class LibrusSynergiaHomework(override val data: DataLibrus, doc.select("table.myHomeworkTable > tbody").firstOrNull()?.also { homeworkTable -> val homeworkElements = homeworkTable.children() - homeworkElements.forEachIndexed { i, el -> + homeworkElements.forEach { el -> val elements = el.children() val subjectName = elements[0].text().trim() @@ -56,7 +56,7 @@ class LibrusSynergiaHomework(override val data: DataLibrus, val eventDate = Date.fromY_m_d(elements[6].text().trim()) val id = "/podglad/([0-9]+)'".toRegex().find( elements[9].select("input").attr("onclick") - )?.get(1)?.toLong() ?: return@forEachIndexed + )?.get(1)?.toLong() ?: return@forEach val lessons = data.db.timetableDao().getAllForDateNow(profileId, eventDate) val startTime = lessons.firstOrNull { it.subjectId == subjectId }?.startTime diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/login/LibrusLoginApi.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/login/LibrusLoginApi.kt index 24ae502a..58f7181d 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/login/LibrusLoginApi.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/login/LibrusLoginApi.kt @@ -63,7 +63,7 @@ class LibrusLoginApi { } private fun copyFromLoginStore() { - data.loginStore.data?.apply { + data.loginStore.data.apply { if (has("accountLogin")) { data.apiLogin = getString("accountLogin") remove("accountLogin") diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/login/LibrusLoginPortal.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/login/LibrusLoginPortal.kt index 9201dc3e..ed01d01f 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/login/LibrusLoginPortal.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/login/LibrusLoginPortal.kt @@ -84,7 +84,7 @@ class LibrusLoginPortal(val data: DataLibrus, val onSuccess: () -> Unit) { } else { val csrfMatcher = Pattern.compile("name=\"csrf-token\" content=\"([A-z0-9=+/\\-_]+?)\"", Pattern.DOTALL).matcher(text) if (csrfMatcher.find()) { - login(csrfMatcher.group(1)) + login(csrfMatcher.group(1) ?: "") } else { data.error(ApiError(TAG, ERROR_LOGIN_LIBRUS_PORTAL_CSRF_MISSING) .withResponse(response) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebAttendance.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebAttendance.kt index c52a2d9c..9160e4d6 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebAttendance.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebAttendance.kt @@ -131,11 +131,11 @@ class MobidziennikWebAttendance(override val data: DataMobidziennik, // verify the lesson count is the same as dates & entries if (count != lessonDates.count() || count != entries.count()) return@forEach - ranges.forEach { range -> + ranges.onEach { range -> val lessonDate = dateIterator.next() val entry = entriesIterator.next() if (range == null || entry.isBlank()) - return@forEach + return@onEach val startTime = Time.fromH_m(range[1]) range[2].split(" / ").mapNotNull { @@ -186,7 +186,7 @@ class MobidziennikWebAttendance(override val data: DataMobidziennik, if (entry.startsWith(symbol) && symbol.length > typeSymbol.length) typeSymbol = symbol } - entry = entry.removePrefix(typeSymbol) + // entry = entry.removePrefix(typeSymbol) var isCustom = false val baseType = when (typeSymbol) { diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebCalendar.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebCalendar.kt index 433aea2b..b6a10335 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebCalendar.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebCalendar.kt @@ -15,7 +15,6 @@ import pl.szczodrzynski.edziennik.data.db.entity.SYNC_ALWAYS import pl.szczodrzynski.edziennik.ext.getString import pl.szczodrzynski.edziennik.utils.Utils.crc16 import pl.szczodrzynski.edziennik.utils.models.Date -import java.util.* class MobidziennikWebCalendar(override val data: DataMobidziennik, override val lastSync: Long?, @@ -30,7 +29,7 @@ class MobidziennikWebCalendar(override val data: DataMobidziennik, MobidziennikLuckyNumberExtractor(data, text) Regexes.MOBIDZIENNIK_CLASS_CALENDAR.find(text)?.let { - val events = JsonParser().parse(it.groupValues[1]).asJsonArray + val events = JsonParser.parseString(it.groupValues[1]).asJsonArray for (eventEl in events) { val event = eventEl.asJsonObject @@ -50,7 +49,7 @@ class MobidziennikWebCalendar(override val data: DataMobidziennik, val dateString = event.getString("start") ?: continue val eventDate = Date.fromY_m_d(dateString) - val eventType = when (event.getString("color")?.toLowerCase(Locale.getDefault())) { + val eventType = when (event.getString("color")?.lowercase()) { "#c54449" -> Event.TYPE_SHORT_QUIZ "#ab0001" -> Event.TYPE_EXAM "#008928" -> Event.TYPE_CLASS_EVENT diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebGetRecipientList.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebGetRecipientList.kt index 1d6318ab..b6f2afa7 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebGetRecipientList.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebGetRecipientList.kt @@ -26,7 +26,7 @@ class MobidziennikWebGetRecipientList(override val data: DataMobidziennik, init { webGet(TAG, "/mobile/dodajwiadomosc") { text -> Regexes.MOBIDZIENNIK_MESSAGE_RECIPIENTS_JSON.find(text)?.let { match -> - val recipientLists = JsonParser().parse(match[1]).asJsonArray + val recipientLists = JsonParser.parseString(match[1]).asJsonArray recipientLists?.asJsonObjectList()?.forEach { list -> val listType = list.getString("typ")?.toIntOrNull() ?: -1 val listName = list.getString("nazwa") ?: "" diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebHomework.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebHomework.kt index fb436d40..f9638ac1 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebHomework.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/web/MobidziennikWebHomework.kt @@ -48,8 +48,8 @@ class MobidziennikWebHomework(override val data: DataMobidziennik, event.attachmentIds = mutableListOf() event.attachmentNames = mutableListOf() - Regexes.MOBIDZIENNIK_MOBILE_HOMEWORK_ATTACHMENT.findAll(tableRow).forEach { - event.attachmentIds?.add(it[1].toLongOrNull() ?: return@forEach) + Regexes.MOBIDZIENNIK_MOBILE_HOMEWORK_ATTACHMENT.findAll(tableRow).onEach { + event.attachmentIds?.add(it[1].toLongOrNull() ?: return@onEach) event.attachmentNames?.add(it[2]) } diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/podlasie/data/api/PodlasieApiEvents.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/podlasie/data/api/PodlasieApiEvents.kt index 9842b9d8..f51c7477 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/podlasie/data/api/PodlasieApiEvents.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/podlasie/data/api/PodlasieApiEvents.kt @@ -26,7 +26,7 @@ class PodlasieApiEvents(val data: DataPodlasie, val rows: List) { val name = event.getString("Name")?.replace(""", "\"") ?: "" val description = event.getString("Description")?.replace(""", "\"") ?: "" - val type = when (event.getString("Category")?.toLowerCase(Locale.getDefault())) { + val type = when (event.getString("Category")?.lowercase()) { "klasówka" -> Event.TYPE_EXAM "praca domowa" -> Event.TYPE_HOMEWORK "wycieczka" -> Event.TYPE_EXCURSION diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/template/data/TemplateApi.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/template/data/TemplateApi.kt index c2ba5532..69e8f654 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/template/data/TemplateApi.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/template/data/TemplateApi.kt @@ -28,6 +28,7 @@ open class TemplateApi(open val data: DataTemplate, open val lastSync: Long?) { * You can customize this method's parameters to best fit the implemented e-register. * Just make sure that [tag] and [onSuccess] is present. */ + @Suppress("UNUSED_PARAMETER") fun apiGet(tag: String, endpoint: String, method: Int = GET, payload: JsonObject? = null, onSuccess: (json: JsonObject?) -> Unit) { val json = JsonObject() json.addProperty("foo", "bar") diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/template/data/TemplateWeb.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/template/data/TemplateWeb.kt index 250a282f..2db8c41b 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/template/data/TemplateWeb.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/template/data/TemplateWeb.kt @@ -28,6 +28,7 @@ open class TemplateWeb(open val data: DataTemplate, open val lastSync: Long?) { * You can customize this method's parameters to best fit the implemented e-register. * Just make sure that [tag] and [onSuccess] is present. */ + @Suppress("UNUSED_PARAMETER") fun webGet(tag: String, endpoint: String, method: Int = GET, payload: JsonObject? = null, onSuccess: (json: JsonObject?) -> Unit) { val json = JsonObject() json.addProperty("foo", "bar") diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/template/data/api/TemplateApiSample.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/template/data/api/TemplateApiSample.kt index bb5462d0..d61dc8f9 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/template/data/api/TemplateApiSample.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/template/data/api/TemplateApiSample.kt @@ -20,7 +20,7 @@ class TemplateApiSample(override val data: DataTemplate, } init { - apiGet(TAG, "/api/v3/getData.php") { json -> + apiGet(TAG, "/api/v3/getData.php") { _ -> // here you can access and update any fields of the `data` object // ================ diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/template/data/web/TemplateWebSample.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/template/data/web/TemplateWebSample.kt index 97e3a508..0732710a 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/template/data/web/TemplateWebSample.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/template/data/web/TemplateWebSample.kt @@ -21,7 +21,7 @@ class TemplateWebSample(override val data: DataTemplate, } init { - webGet(TAG, "/api/v3/getData.php") { json -> + webGet(TAG, "/api/v3/getData.php") { // here you can access and update any fields of the `data` object // ================ diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/template/data/web/TemplateWebSample2.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/template/data/web/TemplateWebSample2.kt index 740eeca6..ecf41b64 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/template/data/web/TemplateWebSample2.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/template/data/web/TemplateWebSample2.kt @@ -20,7 +20,7 @@ class TemplateWebSample2(override val data: DataTemplate, } init { - webGet(TAG, "/api/v3/getData.php") { json -> + webGet(TAG, "/api/v3/getData.php") { // here you can access and update any fields of the `data` object // ================ diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanWebMain.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanWebMain.kt index 5fb7913c..3c7f4bdf 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanWebMain.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanWebMain.kt @@ -175,7 +175,7 @@ open class VulcanWebMain(open val data: DataVulcan, open val lastSync: Long?) { count++ } schoolSymbols.removeAll { - it.toLowerCase() == "default" + it.lowercase() == "default" || !it.matches(Regexes.VULCAN_WEB_SYMBOL_VALIDATE) } @@ -280,7 +280,7 @@ open class VulcanWebMain(open val data: DataVulcan, open val lastSync: Long?) { return try { - val json = JsonParser().parse(text).asJsonObject + val json = JsonParser.parseString(text).asJsonObject onSuccess(json, response) } catch (e: Exception) { data.error(ApiError(tag, EXCEPTION_VULCAN_WEB_REQUEST) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/hebe/VulcanHebeSendMessage.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/hebe/VulcanHebeSendMessage.kt index 1908bb3e..e71c4089 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/hebe/VulcanHebeSendMessage.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/hebe/VulcanHebeSendMessage.kt @@ -13,7 +13,6 @@ import pl.szczodrzynski.edziennik.data.api.edziennik.vulcan.DataVulcan import pl.szczodrzynski.edziennik.data.api.edziennik.vulcan.data.VulcanHebe import pl.szczodrzynski.edziennik.data.api.events.MessageSentEvent import pl.szczodrzynski.edziennik.data.db.entity.Message -import pl.szczodrzynski.edziennik.data.db.entity.Metadata import pl.szczodrzynski.edziennik.data.db.entity.Teacher import pl.szczodrzynski.edziennik.ext.* @@ -89,7 +88,7 @@ class VulcanHebeSendMessage( VulcanHebeMessages(data, null) { val message = data.messageList.firstOrNull { it.isSent && it.subject == subject } - val metadata = data.metadataList.firstOrNull { it.thingType == Metadata.TYPE_MESSAGE && it.thingId == messageId } + // val metadata = data.metadataList.firstOrNull { it.thingType == Metadata.TYPE_MESSAGE && it.thingId == messageId } val event = MessageSentEvent(data.profileId, message, message?.addedDate) EventBus.getDefault().postSticky(event) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/web/VulcanWebLuckyNumber.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/web/VulcanWebLuckyNumber.kt index adb4498d..adb4363d 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/web/VulcanWebLuckyNumber.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/web/VulcanWebLuckyNumber.kt @@ -62,7 +62,7 @@ class VulcanWebLuckyNumber(override val data: DataVulcan, profile?.empty ?: false )) } - } ?: { + } ?: run { // no lucky number if (Date.getToday().weekDay <= Week.FRIDAY && Time.getNow().hour >= 22) { // working days, after 10PM @@ -77,7 +77,7 @@ class VulcanWebLuckyNumber(override val data: DataVulcan, // weekends nextSync = Week.getNearestWeekDayDate(Week.MONDAY).combineWith(Time(5, 0, 0)) } - }() + } data.setSyncNext(ENDPOINT_VULCAN_WEB_LUCKY_NUMBERS, SYNC_ALWAYS) onSuccess(ENDPOINT_VULCAN_WEB_LUCKY_NUMBERS) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/firebase/SzkolnyAppFirebase.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/firebase/SzkolnyAppFirebase.kt index 1c313336..da822462 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/firebase/SzkolnyAppFirebase.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/firebase/SzkolnyAppFirebase.kt @@ -108,7 +108,7 @@ class SzkolnyAppFirebase(val app: App, val profiles: List, val message: } private fun sharedEvent(teamCode: String, jsonStr: String, message: String) { - val json = JsonParser().parse(jsonStr).asJsonObject + val json = JsonParser.parseString(jsonStr).asJsonObject val teams = app.db.teamDao().allNow // not used, as the server provides a sharing message //val eventTypes = app.db.eventTypeDao().allNow @@ -192,8 +192,7 @@ class SzkolnyAppFirebase(val app: App, val profiles: List, val message: if (!notificationFilter.contains(Notification.TYPE_REMOVED_SHARED_EVENT)) { val notification = Notification( - id = Notification.buildId(profile.id - ?: 0, Notification.TYPE_REMOVED_SHARED_EVENT, eventId), + id = Notification.buildId(profile.id, Notification.TYPE_REMOVED_SHARED_EVENT, eventId), title = app.getNotificationTitle(Notification.TYPE_REMOVED_SHARED_EVENT), text = message, type = Notification.TYPE_REMOVED_SHARED_EVENT, diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/firebase/SzkolnyVulcanFirebase.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/firebase/SzkolnyVulcanFirebase.kt index 6f97ec1d..74ccdd85 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/firebase/SzkolnyVulcanFirebase.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/firebase/SzkolnyVulcanFirebase.kt @@ -35,7 +35,7 @@ class SzkolnyVulcanFirebase(val app: App, val profiles: List, val messa val loginId = data.getInt("loginid") /* pl.vulcan.uonetmobile.auxilary.enums.CDCPushEnum */ - val viewIdPair = when (type.toLowerCase(Locale.ROOT)) { + val viewIdPair = when (type.lowercase()) { "wiadomosc" -> MainActivity.DRAWER_ITEM_MESSAGES to Message.TYPE_RECEIVED "ocena" -> MainActivity.DRAWER_ITEM_GRADES to 0 "uwaga" -> MainActivity.DRAWER_ITEM_BEHAVIOUR to 0 diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ext/BundleExtensions.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ext/BundleExtensions.kt index bb7910b4..cc6488bd 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ext/BundleExtensions.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ext/BundleExtensions.kt @@ -27,10 +27,12 @@ fun Bundle?.getIntOrNull(key: String): Int? { return this?.get(key) as? Int } +@Suppress("UNCHECKED_CAST") fun Bundle?.get(key: String): T? { return this?.get(key) as? T? } +@Suppress("UNCHECKED_CAST") fun Bundle(vararg properties: Pair): Bundle { return Bundle().apply { for (property in properties) { diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ext/ContextExtensions.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ext/ContextExtensions.kt index b51a4be8..395b0102 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ext/ContextExtensions.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ext/ContextExtensions.kt @@ -9,7 +9,7 @@ import android.os.Build import java.util.* fun Context.setLanguage(language: String) { - val locale = Locale(language.toLowerCase(Locale.ROOT)) + val locale = Locale(language.lowercase()) val configuration = resources.configuration Locale.setDefault(locale) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { @@ -18,40 +18,3 @@ fun Context.setLanguage(language: String) { configuration.locale = locale resources.updateConfiguration(configuration, resources.displayMetrics) } - -/* - Code copied from android-28/java.util.Locale.initDefault() - */ -fun initDefaultLocale() { - run { - // user.locale gets priority - /*val languageTag: String? = System.getProperty("user.locale", "") - if (languageTag.isNotNullNorEmpty()) { - return@run Locale(languageTag) - }*/ - - // user.locale is empty - val language: String? = System.getProperty("user.language", "pl") - val region: String? = System.getProperty("user.region") - val country: String? - val variant: String? - // for compatibility, check for old user.region property - if (region != null) { - // region can be of form country, country_variant, or _variant - val i = region.indexOf('_') - if (i >= 0) { - country = region.substring(0, i) - variant = region.substring(i + 1) - } else { - country = region - variant = "" - } - } else { - country = System.getProperty("user.country", "") - variant = System.getProperty("user.variant", "") - } - return@run Locale(language) - }.let { - Locale.setDefault(it) - } -} diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ext/CryptoExtensions.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ext/CryptoExtensions.kt index 0db2622b..f1a67e37 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ext/CryptoExtensions.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ext/CryptoExtensions.kt @@ -16,7 +16,7 @@ fun String.crc16(): Int { var crc = 0xFFFF for (aBuffer in this) { crc = crc.ushr(8) or (crc shl 8) and 0xffff - crc = crc xor (aBuffer.toInt() and 0xff) // byte to int, trunc sign + crc = crc xor (aBuffer.code and 0xff) // byte to int, trunc sign crc = crc xor (crc and 0xff shr 4) crc = crc xor (crc shl 12 and 0xffff) crc = crc xor (crc and 0xFF shl 5 and 0xffff) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ext/GraphicsExtensions.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ext/GraphicsExtensions.kt index ecd946b0..e9b8b9aa 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ext/GraphicsExtensions.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ext/GraphicsExtensions.kt @@ -9,12 +9,12 @@ import android.content.res.ColorStateList import android.graphics.PorterDuff import android.graphics.PorterDuffColorFilter import android.graphics.drawable.Drawable -import android.os.Build import android.util.TypedValue import androidx.annotation.AttrRes import androidx.annotation.ColorInt import androidx.annotation.ColorRes import androidx.annotation.DrawableRes +import androidx.core.content.res.ResourcesCompat fun colorFromName(name: String?): Int { val i = (name ?: "").crc32() @@ -60,20 +60,10 @@ fun @receiver:AttrRes Int.resolveAttr(context: Context?): Int { } @ColorInt fun @receiver:ColorRes Int.resolveColor(context: Context): Int { - return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - context.resources.getColor(this, context.theme) - } - else { - context.resources.getColor(this) - } + return ResourcesCompat.getColor(context.resources, this, context.theme) } fun @receiver:DrawableRes Int.resolveDrawable(context: Context): Drawable { - return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - context.resources.getDrawable(this, context.theme) - } - else { - context.resources.getDrawable(this) - } + return ResourcesCompat.getDrawable(context.resources, this, context.theme)!! } fun Int.toColorStateList(): ColorStateList { diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ext/JsonExtensions.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ext/JsonExtensions.kt index 17fd5a4f..9f0db8ad 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ext/JsonExtensions.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ext/JsonExtensions.kt @@ -18,7 +18,7 @@ fun JsonObject?.getString(key: String): String? = get(key)?.let { if (!it.isJson fun JsonObject?.getInt(key: String): Int? = get(key)?.let { if (!it.isJsonPrimitive) null else it.asInt } fun JsonObject?.getLong(key: String): Long? = get(key)?.let { if (!it.isJsonPrimitive) null else it.asLong } fun JsonObject?.getFloat(key: String): Float? = get(key)?.let { if(!it.isJsonPrimitive) null else it.asFloat } -fun JsonObject?.getChar(key: String): Char? = get(key)?.let { if(!it.isJsonPrimitive) null else it.asCharacter } +fun JsonObject?.getChar(key: String): Char? = get(key)?.let { if(!it.isJsonPrimitive) null else it.asString[0] } fun JsonObject?.getJsonObject(key: String): JsonObject? = get(key)?.let { if (it.isJsonObject) it.asJsonObject else null } fun JsonObject?.getJsonArray(key: String): JsonArray? = get(key)?.let { if (it.isJsonArray) it.asJsonArray else null } @@ -27,7 +27,7 @@ fun JsonObject?.getString(key: String, defaultValue: String): String = get(key)? fun JsonObject?.getInt(key: String, defaultValue: Int): Int = get(key)?.let { if (!it.isJsonPrimitive) defaultValue else it.asInt } ?: defaultValue fun JsonObject?.getLong(key: String, defaultValue: Long): Long = get(key)?.let { if (!it.isJsonPrimitive) defaultValue else it.asLong } ?: defaultValue fun JsonObject?.getFloat(key: String, defaultValue: Float): Float = get(key)?.let { if(!it.isJsonPrimitive) defaultValue else it.asFloat } ?: defaultValue -fun JsonObject?.getChar(key: String, defaultValue: Char): Char = get(key)?.let { if(!it.isJsonPrimitive) defaultValue else it.asCharacter } ?: defaultValue +fun JsonObject?.getChar(key: String, defaultValue: Char): Char = get(key)?.let { if(!it.isJsonPrimitive) defaultValue else it.asString[0] } ?: defaultValue fun JsonObject?.getJsonObject(key: String, defaultValue: JsonObject): JsonObject = get(key)?.let { if (it.isJsonObject) it.asJsonObject else defaultValue } ?: defaultValue fun JsonObject?.getJsonArray(key: String, defaultValue: JsonArray): JsonArray = get(key)?.let { if (it.isJsonArray) it.asJsonArray else defaultValue } ?: defaultValue @@ -36,11 +36,11 @@ fun JsonArray.getString(key: Int): String? = if (key >= size()) null else get(ke fun JsonArray.getInt(key: Int): Int? = if (key >= size()) null else get(key)?.let { if (!it.isJsonPrimitive) null else it.asInt } fun JsonArray.getLong(key: Int): Long? = if (key >= size()) null else get(key)?.let { if (!it.isJsonPrimitive) null else it.asLong } fun JsonArray.getFloat(key: Int): Float? = if (key >= size()) null else get(key)?.let { if(!it.isJsonPrimitive) null else it.asFloat } -fun JsonArray.getChar(key: Int): Char? = if (key >= size()) null else get(key)?.let { if(!it.isJsonPrimitive) null else it.asCharacter } +fun JsonArray.getChar(key: Int): Char? = if (key >= size()) null else get(key)?.let { if(!it.isJsonPrimitive) null else it.asString[0] } fun JsonArray.getJsonObject(key: Int): JsonObject? = if (key >= size()) null else get(key)?.let { if (it.isJsonObject) it.asJsonObject else null } fun JsonArray.getJsonArray(key: Int): JsonArray? = if (key >= size()) null else get(key)?.let { if (it.isJsonArray) it.asJsonArray else null } -fun String.toJsonObject(): JsonObject? = try { JsonParser().parse(this).asJsonObject } catch (ignore: Exception) { null } +fun String.toJsonObject(): JsonObject? = try { JsonParser.parseString(this).asJsonObject } catch (ignore: Exception) { null } operator fun JsonObject.set(key: String, value: JsonElement) = this.add(key, value) operator fun JsonObject.set(key: String, value: Boolean) = this.addProperty(key, value) @@ -94,7 +94,6 @@ fun JsonArray(vararg properties: Any?): JsonArray { } fun JsonArray?.isNullOrEmpty(): Boolean = (this?.size() ?: 0) == 0 -fun JsonArray.isEmpty(): Boolean = this.size() == 0 operator fun JsonArray.plusAssign(o: JsonElement) = this.add(o) operator fun JsonArray.plusAssign(o: String) = this.add(o) operator fun JsonArray.plusAssign(o: Char) = this.add(o) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ext/TextExtensions.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ext/TextExtensions.kt index 18c05664..6de7fc20 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ext/TextExtensions.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ext/TextExtensions.kt @@ -112,7 +112,7 @@ fun String.getShortName(): String { */ fun String?.getNameInitials(): String { if (this.isNullOrBlank()) return "" - return this.toUpperCase().fixWhiteSpaces().split(" ").take(2).map { it[0] }.joinToString("") + return this.uppercase().fixWhiteSpaces().split(" ").take(2).map { it[0] }.joinToString("") } operator fun MatchResult.get(group: Int): String { @@ -230,7 +230,7 @@ val String.firstLettersName: String this.split(" ").forEach { if (it.isBlank()) return@forEach - nameShort += it[0].toLowerCase() + nameShort += it[0].lowercase() } return nameShort } diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ext/TimeExtensions.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ext/TimeExtensions.kt index a2b550fc..114a5a40 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ext/TimeExtensions.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ext/TimeExtensions.kt @@ -25,7 +25,7 @@ fun Response?.getUnixDate(): Long { val rfcDate = this?.headers()?.get("date") ?: return currentTimeUnix() val pattern = "EEE, dd MMM yyyy HH:mm:ss Z" val format = SimpleDateFormat(pattern, Locale.ENGLISH) - return format.parse(rfcDate).time / 1000 + return (format.parse(rfcDate)?.time ?: 0) / 1000 } fun Long.formatDate(format: String = "yyyy-MM-dd HH:mm:ss"): String = SimpleDateFormat(format).format(this) @@ -61,7 +61,6 @@ fun Context.timeTill(time: Int, delimiter: String = " ", countInSeconds: Boolean } if (hours == 0 && minutes < 10) { if (!prefixAdded) parts += R.plurals.time_till_text to seconds - prefixAdded = true parts += R.plurals.time_till_seconds to seconds } } else { @@ -93,7 +92,6 @@ fun Context.timeLeft(time: Int, delimiter: String = " ", countInSeconds: Boolean } if (hours == 0 && minutes < 10) { if (!prefixAdded) parts += R.plurals.time_left_text to seconds - prefixAdded = true parts += R.plurals.time_left_seconds to seconds } } else { diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/AttendanceBar.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/AttendanceBar.kt index 4dab0a0e..f8dee4ce 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/AttendanceBar.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/AttendanceBar.kt @@ -69,7 +69,7 @@ class AttendanceBar : View { override fun onDraw(canvas: Canvas?) { canvas ?: return - val sum = attendancesList.sumBy { it.count } + val sum = attendancesList.sumOf { it.count } if (sum == 0) { return } diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/AttendanceFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/AttendanceFragment.kt index d7f063d1..ac07d944 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/AttendanceFragment.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/AttendanceFragment.kt @@ -85,7 +85,7 @@ class AttendanceFragment : Fragment(), CoroutineScope { pageSelection = app.config.forProfile().attendance.attendancePageSelection val pagerAdapter = FragmentLazyPagerAdapter( - fragmentManager ?: return, + parentFragmentManager, b.refreshLayout, listOf( AttendanceSummaryFragment() to getString(R.string.attendance_tab_summary), diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/AttendanceListFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/AttendanceListFragment.kt index 4cfae007..faec3261 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/AttendanceListFragment.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/AttendanceListFragment.kt @@ -179,12 +179,12 @@ class AttendanceListFragment : LazyFragment(), CoroutineScope { .sortedBy { it.first } .toMap() - val totalCount = month.typeCountMap.entries.sumBy { + val totalCount = month.typeCountMap.entries.sumOf { if (!it.key.isCounted || it.key.baseType == Attendance.TYPE_UNKNOWN) 0 else it.value } - val presenceCount = month.typeCountMap.entries.sumBy { + val presenceCount = month.typeCountMap.entries.sumOf { when (it.key.baseType) { Attendance.TYPE_PRESENT, Attendance.TYPE_PRESENT_CUSTOM, diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/AttendanceSummaryFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/AttendanceSummaryFragment.kt index e7d02770..91a4bfda 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/AttendanceSummaryFragment.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/AttendanceSummaryFragment.kt @@ -181,7 +181,7 @@ class AttendanceSummaryFragment : LazyFragment(), CoroutineScope { subjectName = it.value.firstOrNull()?.subjectLongName ?: "", items = it.value.toMutableList() ) } - .sortedBy { it.subjectName.toLowerCase() } + .sortedBy { it.subjectName.lowercase() } var totalCountSum = 0 var presenceCountSum = 0 @@ -193,12 +193,12 @@ class AttendanceSummaryFragment : LazyFragment(), CoroutineScope { .sortedBy { it.first } .toMap() - val totalCount = subject.typeCountMap.entries.sumBy { + val totalCount = subject.typeCountMap.entries.sumOf { if (!it.key.isCounted || it.key.baseType == Attendance.TYPE_UNKNOWN) 0 else it.value } - val presenceCount = subject.typeCountMap.entries.sumBy { + val presenceCount = subject.typeCountMap.entries.sumOf { when (it.key.baseType) { Attendance.TYPE_PRESENT, Attendance.TYPE_PRESENT_CUSTOM, diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/viewholder/AttendanceViewHolder.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/viewholder/AttendanceViewHolder.kt index 32a418c5..e030b288 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/viewholder/AttendanceViewHolder.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/viewholder/AttendanceViewHolder.kt @@ -7,7 +7,6 @@ package pl.szczodrzynski.edziennik.ui.attendance.viewholder import android.view.LayoutInflater import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity -import androidx.appcompat.view.ContextThemeWrapper import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView import pl.szczodrzynski.edziennik.App @@ -20,7 +19,6 @@ import pl.szczodrzynski.edziennik.ui.attendance.models.AttendanceDayRange import pl.szczodrzynski.edziennik.ui.attendance.models.AttendanceMonth import pl.szczodrzynski.edziennik.ui.grades.models.ExpandableItemModel import pl.szczodrzynski.edziennik.ui.grades.viewholder.BindableViewHolder -import pl.szczodrzynski.edziennik.utils.Themes import pl.szczodrzynski.edziennik.utils.models.Week class AttendanceViewHolder( @@ -34,7 +32,6 @@ class AttendanceViewHolder( override fun onBind(activity: AppCompatActivity, app: App, item: AttendanceFull, position: Int, adapter: AttendanceAdapter) { val manager = app.attendanceManager - val contextWrapper = ContextThemeWrapper(activity, Themes.appTheme) val bullet = " • " diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/viewholder/MonthViewHolder.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/viewholder/MonthViewHolder.kt index 378d4bb2..f9afd2f3 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/viewholder/MonthViewHolder.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/viewholder/MonthViewHolder.kt @@ -62,7 +62,6 @@ class MonthViewHolder( b.previewContainer.removeAllViews() - val sum = item.typeCountMap.entries.sumBy { it.value }.toFloat() item.typeCountMap.forEach { (type, count) -> val layout = LinearLayout(contextWrapper) val attendance = Attendance( diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/viewholder/SubjectViewHolder.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/viewholder/SubjectViewHolder.kt index 670ca921..a7e5e562 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/viewholder/SubjectViewHolder.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/viewholder/SubjectViewHolder.kt @@ -7,7 +7,6 @@ package pl.szczodrzynski.edziennik.ui.attendance.viewholder import android.view.LayoutInflater import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity -import androidx.appcompat.view.ContextThemeWrapper import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView import pl.szczodrzynski.edziennik.App @@ -18,7 +17,6 @@ import pl.szczodrzynski.edziennik.ui.attendance.AttendanceAdapter import pl.szczodrzynski.edziennik.ui.attendance.AttendanceAdapter.Companion.STATE_CLOSED import pl.szczodrzynski.edziennik.ui.attendance.models.AttendanceSubject import pl.szczodrzynski.edziennik.ui.grades.viewholder.BindableViewHolder -import pl.szczodrzynski.edziennik.utils.Themes class SubjectViewHolder( inflater: LayoutInflater, @@ -31,7 +29,6 @@ class SubjectViewHolder( override fun onBind(activity: AppCompatActivity, app: App, item: AttendanceSubject, position: Int, adapter: AttendanceAdapter) { val manager = app.attendanceManager - val contextWrapper = ContextThemeWrapper(activity, Themes.appTheme) b.title.text = item.subjectName diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/viewholder/TypeViewHolder.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/viewholder/TypeViewHolder.kt index f916b80f..6719c3a6 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/viewholder/TypeViewHolder.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/attendance/viewholder/TypeViewHolder.kt @@ -7,7 +7,6 @@ package pl.szczodrzynski.edziennik.ui.attendance.viewholder import android.view.LayoutInflater import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity -import androidx.appcompat.view.ContextThemeWrapper import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView import pl.szczodrzynski.edziennik.App @@ -18,7 +17,6 @@ import pl.szczodrzynski.edziennik.ext.concat import pl.szczodrzynski.edziennik.ui.attendance.AttendanceAdapter import pl.szczodrzynski.edziennik.ui.attendance.models.AttendanceTypeGroup import pl.szczodrzynski.edziennik.ui.grades.viewholder.BindableViewHolder -import pl.szczodrzynski.edziennik.utils.Themes import pl.szczodrzynski.edziennik.utils.models.Date class TypeViewHolder( @@ -32,7 +30,6 @@ class TypeViewHolder( override fun onBind(activity: AppCompatActivity, app: App, item: AttendanceTypeGroup, position: Int, adapter: AttendanceAdapter) { val manager = app.attendanceManager - val contextWrapper = ContextThemeWrapper(activity, Themes.appTheme) val type = item.type b.title.text = type.typeName diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/base/CrashActivity.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/base/CrashActivity.kt index 3b9443e9..5a209020 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/base/CrashActivity.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/base/CrashActivity.kt @@ -20,6 +20,7 @@ import pl.szczodrzynski.edziennik.data.api.ERROR_APP_CRASH import pl.szczodrzynski.edziennik.data.api.szkolny.SzkolnyApi import pl.szczodrzynski.edziennik.data.api.szkolny.request.ErrorReportRequest import pl.szczodrzynski.edziennik.data.db.entity.Profile +import pl.szczodrzynski.edziennik.ext.resolveColor import pl.szczodrzynski.edziennik.utils.Themes.appTheme import pl.szczodrzynski.edziennik.utils.html.BetterHtml import kotlin.coroutines.CoroutineContext @@ -82,7 +83,7 @@ class CrashActivity : AppCompatActivity(), CoroutineScope { Toast.makeText(app, getString(R.string.crash_report_sent), Toast.LENGTH_SHORT).show() reportButton.isEnabled = false - reportButton.setTextColor(resources.getColor(android.R.color.darker_gray)) + reportButton.setTextColor(android.R.color.darker_gray.resolveColor(this@CrashActivity)) } } @@ -115,7 +116,7 @@ class CrashActivity : AppCompatActivity(), CoroutineScope { content = content.replace(packageName.toRegex(), "$packageName") content = content.replace("\n".toRegex(), "
") contentPlain += "\n" + Build.MANUFACTURER + "\n" + Build.BRAND + "\n" + Build.MODEL + "\n" + Build.DEVICE + "\n" - if (app.profile != null && app.profile.registration == Profile.REGISTRATION_ENABLED) { + if (app.profile.registration == Profile.REGISTRATION_ENABLED) { contentPlain += "U: " + app.profile.userCode + "\nS: " + app.profile.studentNameLong + "\n" } contentPlain += BuildConfig.VERSION_NAME + " " + BuildConfig.BUILD_TYPE diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/LabFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/LabFragment.kt index 6b530de6..93acec1e 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/LabFragment.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/LabFragment.kt @@ -49,7 +49,7 @@ class LabFragment : Fragment(), CoroutineScope { if (!isAdded) return val pagerAdapter = FragmentLazyPagerAdapter( - fragmentManager ?: return, + parentFragmentManager, b.refreshLayout, listOf( LabPageFragment() to "click me", diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/LabProfileFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/LabProfileFragment.kt index f792efc1..995f3133 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/LabProfileFragment.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/LabProfileFragment.kt @@ -168,7 +168,7 @@ class LabProfileFragment : LazyFragment(), CoroutineScope { json.add("App.profile", app.gson.toJsonTree(app.profile)) json.add("App.profile.studentData", app.profile.studentData) json.add("App.profile.loginStore", loginStore?.data ?: JsonObject()) - json.add("App.config", JsonParser().parse(app.gson.toJson(app.config.values.toSortedMap()))) + json.add("App.config", JsonParser.parseString(app.gson.toJson(app.config.values.toSortedMap()))) } adapter.items = LabJsonAdapter.expand(json, 0) adapter.notifyDataSetChanged() diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/viewholder/JsonArrayViewHolder.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/viewholder/JsonArrayViewHolder.kt index 1c03fe44..967ab5cf 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/viewholder/JsonArrayViewHolder.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/viewholder/JsonArrayViewHolder.kt @@ -8,7 +8,6 @@ import android.annotation.SuppressLint import android.view.LayoutInflater import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity -import androidx.appcompat.view.ContextThemeWrapper import androidx.core.view.isInvisible import androidx.recyclerview.widget.RecyclerView import pl.szczodrzynski.edziennik.App @@ -18,7 +17,6 @@ import pl.szczodrzynski.edziennik.ui.attendance.AttendanceAdapter import pl.szczodrzynski.edziennik.ui.debug.LabJsonAdapter import pl.szczodrzynski.edziennik.ui.debug.models.LabJsonArray import pl.szczodrzynski.edziennik.ui.grades.viewholder.BindableViewHolder -import pl.szczodrzynski.edziennik.utils.Themes class JsonArrayViewHolder( inflater: LayoutInflater, @@ -31,8 +29,6 @@ class JsonArrayViewHolder( @SuppressLint("SetTextI18n") override fun onBind(activity: AppCompatActivity, app: App, item: LabJsonArray, position: Int, adapter: LabJsonAdapter) { - val contextWrapper = ContextThemeWrapper(activity, Themes.appTheme) - b.root.setPadding(item.level * 8.dp + 8.dp, 8.dp, 8.dp, 8.dp) b.type.text = "Array" diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/viewholder/JsonElementViewHolder.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/viewholder/JsonElementViewHolder.kt index 721fc77a..0e80d109 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/viewholder/JsonElementViewHolder.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/viewholder/JsonElementViewHolder.kt @@ -8,7 +8,6 @@ import android.annotation.SuppressLint import android.view.LayoutInflater import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity -import androidx.appcompat.view.ContextThemeWrapper import androidx.recyclerview.widget.RecyclerView import com.google.gson.JsonNull import com.google.gson.JsonPrimitive @@ -18,7 +17,6 @@ import pl.szczodrzynski.edziennik.ext.* import pl.szczodrzynski.edziennik.ui.debug.LabJsonAdapter import pl.szczodrzynski.edziennik.ui.debug.models.LabJsonElement import pl.szczodrzynski.edziennik.ui.grades.viewholder.BindableViewHolder -import pl.szczodrzynski.edziennik.utils.Themes class JsonElementViewHolder( inflater: LayoutInflater, @@ -31,8 +29,6 @@ class JsonElementViewHolder( @SuppressLint("SetTextI18n") override fun onBind(activity: AppCompatActivity, app: App, item: LabJsonElement, position: Int, adapter: LabJsonAdapter) { - val contextWrapper = ContextThemeWrapper(activity, Themes.appTheme) - b.root.setPadding(item.level * 8.dp + 8.dp, 8.dp, 8.dp, 8.dp) b.type.text = when (item.jsonElement) { diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/viewholder/JsonObjectViewHolder.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/viewholder/JsonObjectViewHolder.kt index a3ba9cbc..847f19d5 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/viewholder/JsonObjectViewHolder.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/viewholder/JsonObjectViewHolder.kt @@ -8,7 +8,6 @@ import android.annotation.SuppressLint import android.view.LayoutInflater import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity -import androidx.appcompat.view.ContextThemeWrapper import androidx.core.view.isInvisible import androidx.recyclerview.widget.RecyclerView import pl.szczodrzynski.edziennik.App @@ -18,7 +17,6 @@ import pl.szczodrzynski.edziennik.ui.attendance.AttendanceAdapter import pl.szczodrzynski.edziennik.ui.debug.LabJsonAdapter import pl.szczodrzynski.edziennik.ui.debug.models.LabJsonObject import pl.szczodrzynski.edziennik.ui.grades.viewholder.BindableViewHolder -import pl.szczodrzynski.edziennik.utils.Themes class JsonObjectViewHolder( inflater: LayoutInflater, @@ -31,8 +29,6 @@ class JsonObjectViewHolder( @SuppressLint("SetTextI18n") override fun onBind(activity: AppCompatActivity, app: App, item: LabJsonObject, position: Int, adapter: LabJsonAdapter) { - val contextWrapper = ContextThemeWrapper(activity, Themes.appTheme) - b.root.setPadding(item.level * 8.dp + 8.dp, 8.dp, 8.dp, 8.dp) b.type.text = "Object" diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/viewholder/JsonSubObjectViewHolder.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/viewholder/JsonSubObjectViewHolder.kt index 35095507..3b9e2699 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/viewholder/JsonSubObjectViewHolder.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/debug/viewholder/JsonSubObjectViewHolder.kt @@ -8,7 +8,6 @@ import android.annotation.SuppressLint import android.view.LayoutInflater import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity -import androidx.appcompat.view.ContextThemeWrapper import androidx.recyclerview.widget.RecyclerView import pl.szczodrzynski.edziennik.App import pl.szczodrzynski.edziennik.databinding.LabItemSubObjectBinding @@ -17,7 +16,6 @@ import pl.szczodrzynski.edziennik.ui.attendance.AttendanceAdapter import pl.szczodrzynski.edziennik.ui.debug.LabJsonAdapter import pl.szczodrzynski.edziennik.ui.debug.models.LabJsonObject import pl.szczodrzynski.edziennik.ui.grades.viewholder.BindableViewHolder -import pl.szczodrzynski.edziennik.utils.Themes class JsonSubObjectViewHolder( inflater: LayoutInflater, @@ -30,8 +28,6 @@ class JsonSubObjectViewHolder( @SuppressLint("SetTextI18n") override fun onBind(activity: AppCompatActivity, app: App, item: LabJsonObject, position: Int, adapter: LabJsonAdapter) { - val contextWrapper = ContextThemeWrapper(activity, Themes.appTheme) - b.root.setPadding(item.level * 8.dp + 8.dp, 8.dp, 8.dp, 8.dp) b.type.text = "Object" diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/BellSyncDialog.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/BellSyncDialog.kt index 42785f2f..eb3b85cb 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/BellSyncDialog.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/BellSyncDialog.kt @@ -15,6 +15,7 @@ import pl.szczodrzynski.edziennik.App import pl.szczodrzynski.edziennik.MainActivity import pl.szczodrzynski.edziennik.R import pl.szczodrzynski.edziennik.databinding.DialogBellSyncBinding +import pl.szczodrzynski.edziennik.ext.resolveDrawable import pl.szczodrzynski.edziennik.ext.startCoroutineTimer import pl.szczodrzynski.edziennik.utils.models.Time import kotlin.coroutines.CoroutineContext @@ -86,7 +87,7 @@ class BellSyncDialog( } if (Time.diff(Time.getNow(), bellTime) > Time(2, 0, 0)) { // Easter egg ^^ - b.bellSyncButton.setImageDrawable(app.resources.getDrawable(R.drawable.ic_bell_wtf)) // wtf + b.bellSyncButton.setImageDrawable(R.drawable.ic_bell_wtf.resolveDrawable(app)) // wtf } launch { diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/settings/GradesConfigDialog.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/settings/GradesConfigDialog.kt index 36f89ff4..fbfd0634 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/settings/GradesConfigDialog.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/settings/GradesConfigDialog.kt @@ -115,7 +115,7 @@ class GradesConfigDialog( b.dontCountGradesText .text ?.toString() - ?.toLowerCase(Locale.getDefault()) + ?.lowercase() ?.replace(", ", ",") ) profileConfig.dontCountEnabled = b.dontCountGrades.isChecked diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/grades/editor/GradesEditorFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/grades/editor/GradesEditorFragment.kt index d5217fcc..ac235249 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/grades/editor/GradesEditorFragment.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/grades/editor/GradesEditorFragment.kt @@ -109,7 +109,7 @@ class GradesEditorFragment : Fragment() { continue } var weight = editorGrade.weight - if (config.dontCountEnabled && config.dontCountGrades.contains(editorGrade.name.toLowerCase().trim())) { + if (config.dontCountEnabled && config.dontCountGrades.contains(editorGrade.name.lowercase().trim())) { weight = 0f } val value = editorGrade.value * weight @@ -174,7 +174,7 @@ class GradesEditorFragment : Fragment() { averageSemester = 0f for (editorGrade in editorGrades) { var weight = editorGrade.weight - if (config.dontCountEnabled && config.dontCountGrades.contains(editorGrade.name.toLowerCase().trim())) { + if (config.dontCountEnabled && config.dontCountGrades.contains(editorGrade.name.lowercase().trim())) { weight = 0f } val value = editorGrade.value * weight @@ -216,7 +216,7 @@ class GradesEditorFragment : Fragment() { continue } var weight = grade.weight - if (config.dontCountEnabled && config.dontCountGrades.contains(grade.name.toLowerCase().trim())) { + if (config.dontCountEnabled && config.dontCountGrades.contains(grade.name.lowercase().trim())) { weight = 0f } val value = grade.value * weight diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/home/HomeFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/home/HomeFragment.kt index e6b36235..5c875c9f 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/home/HomeFragment.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/home/HomeFragment.kt @@ -138,8 +138,6 @@ class HomeFragment : Fragment(), CoroutineScope { b.refreshLayout.isEnabled = scrollY == 0 } - val showUnified = false - val cards = app.config.forProfile().ui.homeCards.filter { it.profileId == app.profile.id }.toMutableList() if (cards.isEmpty()) { cards += listOf( diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/home/cards/HomeLuckyNumberCard.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/home/cards/HomeLuckyNumberCard.kt index 50cc8030..7efec925 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/home/cards/HomeLuckyNumberCard.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/home/cards/HomeLuckyNumberCard.kt @@ -63,7 +63,7 @@ class HomeLuckyNumberCard( R.string.home_lucky_number_details_click_to_set else R.string.home_lucky_number_details - b.subText.setText(subTextRes, profile.name ?: "", profile.studentNumber) + b.subText.setText(subTextRes, profile.name, profile.studentNumber) app.db.luckyNumberDao().getNearestFuture(profile.id, today).observe(fragment, Observer { luckyNumber -> val isYours = luckyNumber?.number == profile.studentNumber @@ -104,7 +104,7 @@ class HomeLuckyNumberCard( R.string.home_lucky_number_details_click_to_set else R.string.home_lucky_number_details - b.subText.setText(newSubTextRes, profile.name ?: "", profile.studentNumber) + b.subText.setText(newSubTextRes, profile.name, profile.studentNumber) }) } }} diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/homework/HomeworkFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/homework/HomeworkFragment.kt index 8ae5984a..09e23956 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/homework/HomeworkFragment.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/homework/HomeworkFragment.kt @@ -78,7 +78,7 @@ class HomeworkFragment : Fragment(), CoroutineScope { })) val pagerAdapter = FragmentLazyPagerAdapter( - fragmentManager ?: return, + parentFragmentManager, b.refreshLayout, listOf( HomeworkListFragment().apply { diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/login/LoginFormFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/login/LoginFormFragment.kt index 13f4af95..3cbea439 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/login/LoginFormFragment.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/login/LoginFormFragment.kt @@ -175,9 +175,9 @@ class LoginFormFragment : Fragment(), CoroutineScope { text = text.trim() if (credential.caseMode == LoginInfo.FormField.CaseMode.UPPER_CASE) - text = text.toUpperCase(Locale.getDefault()) + text = text.uppercase() if (credential.caseMode == LoginInfo.FormField.CaseMode.LOWER_CASE) - text = text.toLowerCase(Locale.getDefault()) + text = text.lowercase() credential.stripTextRegex?.let { text = text.replace(it.toRegex(), "") diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/template/TemplateFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/template/TemplateFragment.kt index c5483a51..0e21a080 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/template/TemplateFragment.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/template/TemplateFragment.kt @@ -52,7 +52,7 @@ class TemplateFragment : Fragment(), CoroutineScope { if (!isAdded) return val pagerAdapter = FragmentLazyPagerAdapter( - fragmentManager ?: return, + parentFragmentManager, b.refreshLayout, listOf( HomeworkListFragment().apply { diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/timetable/TimetableFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/timetable/TimetableFragment.kt index 35ab0727..dbc5a4de 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/timetable/TimetableFragment.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/timetable/TimetableFragment.kt @@ -127,7 +127,7 @@ class TimetableFragment : Fragment(), CoroutineScope { return@launch val pagerAdapter = TimetablePagerAdapter( - fragmentManager ?: return@launch, + parentFragmentManager, items, startHour, endHour diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/views/AttachmentsView.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/views/AttachmentsView.kt index 0b19b022..7e2bc5af 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/views/AttachmentsView.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/views/AttachmentsView.kt @@ -161,7 +161,7 @@ class AttachmentsView @JvmOverloads constructor( // get the download url before updating file name val fileUrl = attachment.name.substringAfter(":", missingDelimiterValue = "") // update file name with the downloaded one - attachment.name = File(event.fileName).name + attachment.name = File(event.fileName ?: return).name // save the download url back if (fileUrl != "") attachment.name += ":$fileUrl" diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/views/DateDropdown.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/views/DateDropdown.kt index 4b3262a9..a2a86d6b 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/views/DateDropdown.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/views/DateDropdown.kt @@ -56,7 +56,6 @@ class DateDropdown : TextInputDropDown { suspend fun loadItems() { val date = Date.getToday() - val today = date.value var weekDay = date.weekDay val dates = withContext(Dispatchers.Default) { diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/webpush/WebPushFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/webpush/WebPushFragment.kt index 2c2c1659..81e503e9 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/webpush/WebPushFragment.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/webpush/WebPushFragment.kt @@ -63,14 +63,14 @@ class WebPushFragment : Fragment(), CoroutineScope { b.scanQrCode.onClick { manager.requestCameraPermission(activity, R.string.permissions_qr_scanner) { QrScannerDialog(activity, { - b.tokenEditText.setText(it.crc32().toString(36).toUpperCase()) + b.tokenEditText.setText(it.crc32().toString(36).uppercase()) pairBrowser(browserId = it) }) } } b.tokenAccept.onClick { - val pairToken = b.tokenEditText.text.toString().toUpperCase() + val pairToken = b.tokenEditText.text.toString().uppercase() if (!"[0-9A-Z]{3,13}".toRegex().matches(pairToken)) { b.tokenLayout.error = app.getString(R.string.web_push_token_invalid) return@onClick diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/widgets/luckynumber/WidgetLuckyNumberProvider.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/widgets/luckynumber/WidgetLuckyNumberProvider.kt index 1bbdf846..e6332115 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/widgets/luckynumber/WidgetLuckyNumberProvider.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/widgets/luckynumber/WidgetLuckyNumberProvider.kt @@ -42,10 +42,7 @@ class WidgetLuckyNumberProvider : AppWidgetProvider() { val views = getRemoteViews(app, config) val today = Date.getToday() - val todayValue = today.value - val tomorrow = Date.getToday().stepForward(0, 0, 1) - val tomorrowValue = tomorrow.value val profile = app.db.profileDao().getByIdNow(config.profileId) val luckyNumber = app.db.luckyNumberDao().getNearestFutureNow(config.profileId, today) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/widgets/notifications/WidgetNotificationsFactory.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/widgets/notifications/WidgetNotificationsFactory.kt index cb10d975..587837a8 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/widgets/notifications/WidgetNotificationsFactory.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/widgets/notifications/WidgetNotificationsFactory.kt @@ -56,7 +56,7 @@ class WidgetNotificationsFactory(val app: App, val config: WidgetConfig) : Remot getString("profileName"), getInt("posted") == 1, getInt("viewId"), - getString("extras")?.let { JsonParser().parse(it).asJsonObject }, + getString("extras")?.let { JsonParser.parseString(it).asJsonObject }, getLong("addedDate") ?: System.currentTimeMillis() ) } ?: return views diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/utils/managers/GradesManager.kt b/app/src/main/java/pl/szczodrzynski/edziennik/utils/managers/GradesManager.kt index 8caf6967..26dc5a03 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/utils/managers/GradesManager.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/utils/managers/GradesManager.kt @@ -120,7 +120,7 @@ class GradesManager(val app: App) : CoroutineScope { fun getGradeWeight(dontCountEnabled: Boolean, dontCountGrades: List, grade: Grade): Float { if (!dontCountEnabled) return grade.weight - if (grade.name.toLowerCase().trim() in dontCountGrades) + if (grade.name.lowercase().trim() in dontCountGrades) return 0f return grade.weight } @@ -153,7 +153,7 @@ class GradesManager(val app: App) : CoroutineScope { } type == TYPE_NORMAL && defColor -> grade.color and 0xffffff type in TYPE_NORMAL..TYPE_YEAR_FINAL -> { - when (grade.name.toLowerCase()) { + when (grade.name.lowercase()) { "+", "++", "+++" -> 0x4caf50 "0", "-", "-,", "-,-,", "np", "np.", "npnp", "np,", "np,np,", "bs", "nk", "bz" -> 0xff7043 "1-", "1", "f", "ng" -> 0xff0000 @@ -181,7 +181,7 @@ class GradesManager(val app: App) : CoroutineScope { * the specified [name]. */ fun getGradeValue(name: String): Float { - return when (name.toLowerCase()) { + return when (name.lowercase()) { "1-" -> 0.75f "1" -> 1.00f "1+" -> 1.50f @@ -211,7 +211,7 @@ class GradesManager(val app: App) : CoroutineScope { } fun getGradeNumberName(name: String): String { - return when(name.toLowerCase()){ + return when(name.lowercase()){ "niedostateczny", "f" -> "1" "niedostateczny plus", "f+" -> "1+" "niedostateczny minus", "f-" -> "1-"