From 26c5214d2e95ec0fe4c62a58b524d122ed5bd1fb Mon Sep 17 00:00:00 2001 From: Jay Date: Fri, 10 Apr 2020 18:11:02 -0400 Subject: [PATCH] UI changes for library Sort Arrow now point to the right direction for date add/latest chapter/last read Fast scroll now has an option to reach the bottom --- .../tachiyomi/ui/library/LibraryCategoryAdapter.kt | 7 +++++-- .../tachiyomi/ui/library/LibraryController.kt | 5 +++-- .../tachiyomi/ui/library/LibraryHeaderItem.kt | 14 ++++++++++++-- .../tachiyomi/ui/recents/RecentsPresenter.kt | 2 +- 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt index 47daeb918c..a0aefe1382 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt @@ -95,10 +95,11 @@ class LibraryCategoryAdapter(val libraryListener: LibraryListener) : fun getSectionText(position: Int): String? { val preferences: PreferencesHelper by injectLazy() val db: DatabaseHelper by injectLazy() + if (position == itemCount - 1) return "-" return when (val item: IFlexible<*>? = getItem(position)) { is LibraryHeaderItem -> if (preferences.hideCategories().getOrDefault() || item.category.id == 0) null - else getFirstLetter(item.category.name) + + else item.category.name.first().toString() + "\u200B".repeat(max(0, item.category.order)) is LibraryItem -> { when (preferences.librarySortingMode().getOrDefault()) { @@ -156,12 +157,14 @@ class LibraryCategoryAdapter(val libraryListener: LibraryListener) : override fun onCreateBubbleText(position: Int): String { val preferences: PreferencesHelper by injectLazy() val db: DatabaseHelper by injectLazy() + if (position == itemCount - 1) return recyclerView.context.getString(R.string.bottom) return when (val iFlexible: IFlexible<*>? = getItem(position)) { is LibraryHeaderItem -> if (!preferences.hideCategories().getOrDefault()) iFlexible.category.name else recyclerView.context.getString(R.string.top) is LibraryItem -> { - when (preferences.librarySortingMode().getOrDefault()) { + if (iFlexible.manga.isBlank()) "" + else when (preferences.librarySortingMode().getOrDefault()) { LibrarySort.DRAG_AND_DROP -> { if (!preferences.hideCategories().getOrDefault()) { val title = iFlexible.manga.title diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt index 5fb0933cda..8e9e09b56a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt @@ -227,7 +227,9 @@ class LibraryController( recycler.adapter = adapter fast_scroller.setupWithRecyclerView(recycler, { position -> val letter = adapter.getSectionText(position) - if (!singleCategory && !adapter.isHeader(adapter.getItem(position))) null + if (!singleCategory && + !adapter.isHeader(adapter.getItem(position)) && + position != adapter.itemCount - 1) null else if (letter != null) FastScrollItemIndicator.Text(letter) else FastScrollItemIndicator.Icon(R.drawable.star) }) @@ -442,7 +444,6 @@ class LibraryController( ) } adapter.setItems(mangaMap) - adapter.collapse(0) singleCategory = presenter.categories.size <= 1 setTitle() diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryHeaderItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryHeaderItem.kt index 391bd78393..464be6155a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryHeaderItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryHeaderItem.kt @@ -1,6 +1,8 @@ package eu.kanade.tachiyomi.ui.library import android.graphics.drawable.Drawable +import android.text.SpannableString +import android.text.style.ForegroundColorSpan import android.view.View import android.view.ViewGroup import android.widget.ImageView @@ -192,13 +194,21 @@ class LibraryHeaderItem( m.setOptionalIconsVisible(true) } + val isAscending = category.isAscending() + currentItem?.icon = tintVector( when { sortingMode == LibrarySort.DRAG_AND_DROP -> R.drawable.ic_check_white_24dp - category.isAscending() -> R.drawable.ic_arrow_up_white_24dp - else -> R.drawable.ic_arrow_down_white_24dp + if (sortingMode == LibrarySort.DATE_ADDED || + sortingMode == LibrarySort.LATEST_CHAPTER || + sortingMode == LibrarySort.LAST_READ) !isAscending else isAscending -> + R.drawable.ic_arrow_down_white_24dp + else -> R.drawable.ic_arrow_up_white_24dp } ) + val s = SpannableString(currentItem?.title ?: "") + s.setSpan(ForegroundColorSpan(itemView.context.getResourceColor(android.R.attr.colorAccent)), 0, s.length, 0) + currentItem?.title = s // Finally show the PopupMenu popup.show() diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsPresenter.kt index 04994ab752..58c56f0b65 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsPresenter.kt @@ -59,7 +59,7 @@ class RecentsPresenter( val calWeek = Calendar.getInstance() calWeek.time = Date() if (query.isNotEmpty()) calWeek.add(Calendar.YEAR, -50) - else calWeek.add(Calendar.WEEK_OF_MONTH, -1) + else calWeek.add(Calendar.WEEK_OF_YEAR, -1) val calDay = Calendar.getInstance() calDay.time = Date()