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
This commit is contained in:
Jay 2020-04-10 18:11:02 -04:00
parent 3a941fa0e7
commit 26c5214d2e
4 changed files with 21 additions and 7 deletions

View File

@ -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

View File

@ -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()

View File

@ -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()

View File

@ -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()