From b891a48b3072d1381ffd2237731cb2192b08c4f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Deniz=20D=C3=BCzg=C3=B6ren?= Date: Sun, 15 Sep 2019 14:59:04 +0200 Subject: [PATCH] Notifications now show up to four items and are then abbreviated to "and x more messages", removed redundant priority variables in DataFetcher.kt --- app/build.gradle | 4 ++-- .../substitutionplan/data/DataFetcher.kt | 21 ++++++++++++------- .../substitutionplan/database/SubstDao.kt | 2 +- .../fragments/PersonalPlanFragment.kt | 2 +- app/src/main/res/values-de/strings.xml | 5 +++++ app/src/main/res/values/strings.xml | 5 +++++ 6 files changed, 28 insertions(+), 11 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 47336d5..1d1c4a2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.denizd.substitutionplan" minSdkVersion 21 targetSdkVersion 28 - versionCode 35 - versionName "2.2.12" + versionCode 36 + versionName "2.2.13" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { diff --git a/app/src/main/java/com/denizd/substitutionplan/data/DataFetcher.kt b/app/src/main/java/com/denizd/substitutionplan/data/DataFetcher.kt index 94b6bba..2b93b15 100644 --- a/app/src/main/java/com/denizd/substitutionplan/data/DataFetcher.kt +++ b/app/src/main/java/com/denizd/substitutionplan/data/DataFetcher.kt @@ -44,7 +44,6 @@ internal class DataFetcher(isPlan: Boolean, isMenu: Boolean, isJobService: Boole private var mContext = WeakReference(context) private var mApplication = application private var mView = WeakReference(parentView) - private var priority = 200 private var notificationText = "" private var informational = "" private val prefs = PreferenceManager.getDefaultSharedPreferences(mContext.get()) @@ -120,7 +119,7 @@ internal class DataFetcher(isPlan: Boolean, isMenu: Boolean, isJobService: Boole } indices.add(foodElements.size) - for ((priority, l) in (0 until indices.size - 1).withIndex()) { + for (l in 0 until indices.size - 1) { var s = "" for (i2 in indices[l] until indices[l + 1]) { if (s.isEmpty()) { @@ -129,7 +128,7 @@ internal class DataFetcher(isPlan: Boolean, isMenu: Boolean, isJobService: Boole s += "\n${foodElements[i2].text()}" } } - foodRepository.insert(Food(s, priority)) + foodRepository.insert(Food(s, l)) } edit.putString("newFoodTime", currentFoodTime).apply() } @@ -171,13 +170,13 @@ internal class DataFetcher(isPlan: Boolean, isMenu: Boolean, isJobService: Boole additional = cols[5].text(), teacher = cols[6].text(), type = cols[7].text(), - priority = priority + priority = i ) substArray.add(subst) substRepo.insert(subst) - priority-- } - + var countOfNotificationItems = 0 + var countOfMoreNotificationItems = 0 if (jobService && prefs.getBoolean("notif", true)) { substArray.filter { substitution -> HelperFunctions.checkPersonalSubstitutions( @@ -187,7 +186,15 @@ internal class DataFetcher(isPlan: Boolean, isMenu: Boolean, isJobService: Boole false ) }.forEach { substItem -> - notificationText += "${if (notificationText.isNotEmpty()) ",\n" else ""}${substItem.course}: ${if (substItem.additional.isNotEmpty()) substItem.additional else "---"}" + if (countOfNotificationItems < 4) { + notificationText += ("${if (notificationText.isNotEmpty()) ",\n" else ""}${substItem.course}: ${if (substItem.additional.isNotEmpty()) substItem.additional else "---"}") + countOfNotificationItems += 1 + } else { + countOfMoreNotificationItems += 1 + } + } + if (countOfMoreNotificationItems > 0) { + notificationText += mContext.get()?.resources?.getQuantityString(R.plurals.moreMessages, countOfMoreNotificationItems, countOfMoreNotificationItems) } } diff --git a/app/src/main/java/com/denizd/substitutionplan/database/SubstDao.kt b/app/src/main/java/com/denizd/substitutionplan/database/SubstDao.kt index c446e85..c8307e8 100644 --- a/app/src/main/java/com/denizd/substitutionplan/database/SubstDao.kt +++ b/app/src/main/java/com/denizd/substitutionplan/database/SubstDao.kt @@ -8,7 +8,7 @@ import com.denizd.substitutionplan.models.Subst @Dao internal interface SubstDao { - @get:Query("SELECT * FROM subst_table ORDER BY priority DESC") + @get:Query("SELECT * FROM subst_table ORDER BY priority ASC") val allSubst: LiveData> @Insert diff --git a/app/src/main/java/com/denizd/substitutionplan/fragments/PersonalPlanFragment.kt b/app/src/main/java/com/denizd/substitutionplan/fragments/PersonalPlanFragment.kt index 5cd7db5..ad7ebfe 100644 --- a/app/src/main/java/com/denizd/substitutionplan/fragments/PersonalPlanFragment.kt +++ b/app/src/main/java/com/denizd/substitutionplan/fragments/PersonalPlanFragment.kt @@ -39,7 +39,7 @@ internal class PersonalPlanFragment : PlanFragment() { } persPlanEmpty = (planCardList.size == 1 && planCardList[0].date.substring(0, 3) == "psa") || planCardList.isEmpty() - planCardList.sortWith(Comparator { lhs, rhs -> rhs.priority.compareTo(lhs.priority) }) + planCardList.sortWith(Comparator { rhs, lhs -> rhs.priority.compareTo(lhs.priority) }) recyclerView.scheduleLayoutAnimation() mAdapter.setSubst(planCardList) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 1938843..dd38d36 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -145,4 +145,9 @@ \' Plan s Plan + + + ,\nund %d weitere Nachricht + ,\nund %d weitere Nachrichten + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index cbd1c78..528f7ce 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -158,4 +158,9 @@ \' Plan \'s Plan + + + ,\nand %d more message + ,\nand %d more messages +