From d097fcc97308679bf038c324c2bd46d0dbb1f56e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Sun, 19 Jan 2020 20:22:41 +0100 Subject: [PATCH] [API/Librus] Fix classrooms name short extraction when name contains two spaces. --- .../main/java/pl/szczodrzynski/edziennik/Extensions.kt | 8 ++++++++ .../api/edziennik/librus/data/api/LibrusApiClassrooms.kt | 5 +++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/Extensions.kt b/app/src/main/java/pl/szczodrzynski/edziennik/Extensions.kt index 9e48e624..ea3bc3cc 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/Extensions.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/Extensions.kt @@ -1024,3 +1024,11 @@ fun OkHttpClient.Builder.installHttpsSupport(context: Context) { } } } + +fun CharSequence.containsAll(list: List, ignoreCase: Boolean = false): Boolean { + for (i in list) { + if (!contains(i, ignoreCase)) + return false + } + return true +} 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 caa9e740..edcde8f9 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 @@ -25,9 +25,10 @@ class LibrusApiClassrooms(override val data: DataLibrus, val id = classroom.getLong("Id") ?: return@forEach val name = classroom.getString("Name")?.toLowerCase(Locale.getDefault()) ?: "" val symbol = classroom.getString("Symbol")?.toLowerCase(Locale.getDefault()) ?: "" - val nameShort = name.split(" ").onEach { it[0] }.joinToString() + val nameShort = name.fixWhiteSpaces().split(" ").onEach { it[0] }.joinToString() + val symbolParts = symbol.fixWhiteSpaces().split(" ") - val friendlyName = if (name != symbol && !name.contains(symbol) && !nameShort.contains(symbol)) { + val friendlyName = if (name != symbol && !name.contains(symbol) && !name.containsAll(symbolParts) && !nameShort.contains(symbol)) { classroom.getString("Symbol") + " " + classroom.getString("Name") } else {