From c3a6f8253a7a7ce8a05828b46b04808c164ec6d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Pich?= Date: Sun, 24 May 2020 19:23:35 +0200 Subject: [PATCH] Fix grade sorting (#825) --- .../grade/details/GradeDetailsPresenter.kt | 27 ++++++++++--------- .../grade/summary/GradeSummaryPresenter.kt | 12 +++------ 2 files changed, 18 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/grade/details/GradeDetailsPresenter.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/grade/details/GradeDetailsPresenter.kt index 26c222643..2212bfd61 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/grade/details/GradeDetailsPresenter.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/grade/details/GradeDetailsPresenter.kt @@ -171,19 +171,22 @@ class GradeDetailsPresenter @Inject constructor( } private fun createGradeItems(items: List): List { - return items.filter { it.grades.isNotEmpty() }.map { (subject, average, points, _, grades) -> - val subItems = grades.map { - GradeDetailsItem(it, ViewType.ITEM) - } + return items + .filter { it.grades.isNotEmpty() } + .sortedBy { it.subject } + .map { (subject, average, points, _, grades) -> + val subItems = grades + .sortedByDescending { it.date } + .map { GradeDetailsItem(it, ViewType.ITEM) } - listOf(GradeDetailsItem(GradeDetailsHeader( - subject = subject, - average = average, - pointsSum = points, - newGrades = grades.filter { grade -> !grade.isRead }.size, - grades = subItems - ), ViewType.HEADER)) + if (preferencesRepository.isGradeExpandable) emptyList() else subItems - }.flatten() + listOf(GradeDetailsItem(GradeDetailsHeader( + subject = subject, + average = average, + pointsSum = points, + newGrades = grades.filter { grade -> !grade.isRead }.size, + grades = subItems + ), ViewType.HEADER)) + if (preferencesRepository.isGradeExpandable) emptyList() else subItems + }.flatten() } private fun updateGrade(grade: Grade) { diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/grade/summary/GradeSummaryPresenter.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/grade/summary/GradeSummaryPresenter.kt index 9b8372136..26f922dee 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/grade/summary/GradeSummaryPresenter.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/grade/summary/GradeSummaryPresenter.kt @@ -103,14 +103,8 @@ class GradeSummaryPresenter @Inject constructor( } private fun createGradeSummaryItems(items: List): List { - return items.map { - it.summary.copy(average = it.average) - } - } - - private fun checkEmpty(gradeSummary: GradeSummary, averages: List>): Boolean { - return gradeSummary.run { - finalGrade.isBlank() && predictedGrade.isBlank() && averages.singleOrNull { it.first == subject } == null - } + return items + .sortedBy { it.subject } + .map { it.summary.copy(average = it.average) } } }