mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-12-24 05:41:49 +01:00
Work on filters sheet
Auto hides now when scrolling, no longer hides with filters active Changed back download color, using purple (?) for total chapters
This commit is contained in:
parent
98749190c2
commit
b3ece8c9c9
@ -71,8 +71,6 @@ class CatalogueController : NucleusController<CataloguePresenter>(),
|
|||||||
|
|
||||||
var headerHeight = 0
|
var headerHeight = 0
|
||||||
|
|
||||||
var customTitle = ""
|
|
||||||
|
|
||||||
var showingExtenions = false
|
var showingExtenions = false
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -23,7 +23,7 @@ class LibraryBadge @JvmOverloads constructor(context: Context, attrs: AttributeS
|
|||||||
context.getResourceColor(android.R.attr.colorAccent)
|
context.getResourceColor(android.R.attr.colorAccent)
|
||||||
else Color.WHITE)
|
else Color.WHITE)
|
||||||
setBackgroundColor(
|
setBackgroundColor(
|
||||||
if (showTotalChapters) ContextCompat.getColor(context, R.color.total_green)
|
if (showTotalChapters) ContextCompat.getColor(context, R.color.material_deep_purple_500)
|
||||||
else context.getResourceColor(android.R.attr.colorAccent))
|
else context.getResourceColor(android.R.attr.colorAccent))
|
||||||
visibility = when {
|
visibility = when {
|
||||||
unread > 0 || unread == -1 || showTotalChapters -> View.VISIBLE
|
unread > 0 || unread == -1 || showTotalChapters -> View.VISIBLE
|
||||||
@ -47,7 +47,7 @@ class LibraryBadge @JvmOverloads constructor(context: Context, attrs: AttributeS
|
|||||||
unread_angle.visibility = if (download_text.visibility == View.VISIBLE && unread_text
|
unread_angle.visibility = if (download_text.visibility == View.VISIBLE && unread_text
|
||||||
.visibility != View.GONE) View.VISIBLE else View.GONE
|
.visibility != View.GONE) View.VISIBLE else View.GONE
|
||||||
unread_angle.setColorFilter(
|
unread_angle.setColorFilter(
|
||||||
if (showTotalChapters) ContextCompat.getColor(context, R.color.total_green)
|
if (showTotalChapters) ContextCompat.getColor(context, R.color.material_deep_purple_500)
|
||||||
else context.getResourceColor(android.R.attr.colorAccent))
|
else context.getResourceColor(android.R.attr.colorAccent))
|
||||||
if (unread_angle.visibility == View.VISIBLE) {
|
if (unread_angle.visibility == View.VISIBLE) {
|
||||||
download_text.updatePaddingRelative(end = 8.dpToPx)
|
download_text.updatePaddingRelative(end = 8.dpToPx)
|
||||||
|
@ -239,6 +239,7 @@ open class LibraryController(
|
|||||||
DownloadService.callListeners()
|
DownloadService.callListeners()
|
||||||
LibraryUpdateService.setListener(this)
|
LibraryUpdateService.setListener(this)
|
||||||
}
|
}
|
||||||
|
if (type == ControllerChangeType.POP_ENTER) bottom_sheet.hideIfPossible()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onActivityResumed(activity: Activity) {
|
override fun onActivityResumed(activity: Activity) {
|
||||||
|
@ -39,11 +39,6 @@ import eu.kanade.tachiyomi.util.view.scrollViewWith
|
|||||||
import eu.kanade.tachiyomi.util.view.snack
|
import eu.kanade.tachiyomi.util.view.snack
|
||||||
import eu.kanade.tachiyomi.util.view.updateLayoutParams
|
import eu.kanade.tachiyomi.util.view.updateLayoutParams
|
||||||
import eu.kanade.tachiyomi.util.view.updatePaddingRelative
|
import eu.kanade.tachiyomi.util.view.updatePaddingRelative
|
||||||
import kotlinx.android.synthetic.main.filter_bottom_sheet.*
|
|
||||||
import kotlinx.android.synthetic.main.library_grid_recycler.*
|
|
||||||
import kotlinx.android.synthetic.main.library_list_controller.*
|
|
||||||
import kotlinx.android.synthetic.main.main_activity.*
|
|
||||||
import kotlinx.coroutines.delay
|
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
import kotlin.math.abs
|
import kotlin.math.abs
|
||||||
import kotlin.math.max
|
import kotlin.math.max
|
||||||
@ -51,6 +46,11 @@ import kotlin.math.min
|
|||||||
import kotlin.math.pow
|
import kotlin.math.pow
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
import kotlin.math.sign
|
import kotlin.math.sign
|
||||||
|
import kotlinx.android.synthetic.main.filter_bottom_sheet.*
|
||||||
|
import kotlinx.android.synthetic.main.library_grid_recycler.*
|
||||||
|
import kotlinx.android.synthetic.main.library_list_controller.*
|
||||||
|
import kotlinx.android.synthetic.main.main_activity.*
|
||||||
|
import kotlinx.coroutines.delay
|
||||||
|
|
||||||
class LibraryListController(bundle: Bundle? = null) : LibraryController(bundle),
|
class LibraryListController(bundle: Bundle? = null) : LibraryController(bundle),
|
||||||
FlexibleAdapter.OnItemClickListener, FlexibleAdapter.OnItemLongClickListener,
|
FlexibleAdapter.OnItemClickListener, FlexibleAdapter.OnItemLongClickListener,
|
||||||
@ -67,6 +67,7 @@ class LibraryListController(bundle: Bundle? = null) : LibraryController(bundle),
|
|||||||
private var lastItem: IFlexible<*>? = null
|
private var lastItem: IFlexible<*>? = null
|
||||||
|
|
||||||
private var switchingCategories = false
|
private var switchingCategories = false
|
||||||
|
var scrollDistance = 0f
|
||||||
|
|
||||||
private var startPosX: Float? = null
|
private var startPosX: Float? = null
|
||||||
private var startPosY: Float? = null
|
private var startPosY: Float? = null
|
||||||
@ -79,6 +80,7 @@ class LibraryListController(bundle: Bundle? = null) : LibraryController(bundle),
|
|||||||
private val swipeDistance = 300f
|
private val swipeDistance = 300f
|
||||||
private var flinging = false
|
private var flinging = false
|
||||||
private var isDragging = false
|
private var isDragging = false
|
||||||
|
private val scrollDistanceTilHidden = 1000.dpToPx
|
||||||
|
|
||||||
override fun contentView(): View = recycler_layout
|
override fun contentView(): View = recycler_layout
|
||||||
|
|
||||||
@ -93,6 +95,13 @@ class LibraryListController(bundle: Bundle? = null) : LibraryController(bundle),
|
|||||||
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
|
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
|
||||||
super.onScrolled(recyclerView, dx, dy)
|
super.onScrolled(recyclerView, dx, dy)
|
||||||
val order = getCategoryOrder()
|
val order = getCategoryOrder()
|
||||||
|
if (bottom_sheet.canHide()) {
|
||||||
|
scrollDistance += abs(dy)
|
||||||
|
if (scrollDistance > scrollDistanceTilHidden) {
|
||||||
|
bottom_sheet.hideIfPossible()
|
||||||
|
scrollDistance = 0f
|
||||||
|
}
|
||||||
|
} else scrollDistance = 0f
|
||||||
if (order != null && order != activeCategory) {
|
if (order != null && order != activeCategory) {
|
||||||
preferences.lastUsedCategory().set(order)
|
preferences.lastUsedCategory().set(order)
|
||||||
activeCategory = order
|
activeCategory = order
|
||||||
|
@ -335,7 +335,7 @@ class LibraryPresenter(
|
|||||||
} else compare
|
} else compare
|
||||||
}
|
}
|
||||||
|
|
||||||
val comparator = if (ascending)
|
val comparator = if (ascending || useDnD)
|
||||||
Comparator(sortFn)
|
Comparator(sortFn)
|
||||||
else
|
else
|
||||||
Collections.reverseOrder(sortFn)
|
Collections.reverseOrder(sortFn)
|
||||||
|
@ -116,6 +116,12 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
|
|||||||
if (isChecked)
|
if (isChecked)
|
||||||
onGroupClicked(ACTION_HIDE_FILTER_TIP)
|
onGroupClicked(ACTION_HIDE_FILTER_TIP)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val activeFilters = hasActiveFiltersFromPref()
|
||||||
|
sheetBehavior?.isHideable = !activeFilters
|
||||||
|
if (activeFilters && sheetBehavior?.state == BottomSheetBehavior.STATE_HIDDEN &&
|
||||||
|
sheetBehavior?.skipCollapsed == false)
|
||||||
|
sheetBehavior?.state = BottomSheetBehavior.STATE_COLLAPSED
|
||||||
createTags()
|
createTags()
|
||||||
clearButton.setOnClickListener { clearFilters() }
|
clearButton.setOnClickListener { clearFilters() }
|
||||||
}
|
}
|
||||||
@ -169,6 +175,14 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
|
|||||||
|
|
||||||
fun hasActiveFilters() = filterItems.any { it.isActivated }
|
fun hasActiveFilters() = filterItems.any { it.isActivated }
|
||||||
|
|
||||||
|
private fun hasActiveFiltersFromPref(): Boolean {
|
||||||
|
return preferences.filterDownloaded().getOrDefault() > 0 || preferences.filterUnread()
|
||||||
|
.getOrDefault() > 0 || preferences.filterCompleted()
|
||||||
|
.getOrDefault() > 0 || preferences.filterTracked()
|
||||||
|
.getOrDefault() > 0 || preferences.filterMangaType()
|
||||||
|
.getOrDefault() > 0 || FILTER_TRACKER.isNotEmpty()
|
||||||
|
}
|
||||||
|
|
||||||
private fun createTags() {
|
private fun createTags() {
|
||||||
hide_categories.isChecked = preferences.hideCategories().getOrDefault()
|
hide_categories.isChecked = preferences.hideCategories().getOrDefault()
|
||||||
hide_categories.setOnCheckedChangeListener { _, isChecked ->
|
hide_categories.setOnCheckedChangeListener { _, isChecked ->
|
||||||
@ -286,12 +300,21 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
|
|||||||
filterItems.remove(trackers!!)
|
filterItems.remove(trackers!!)
|
||||||
}
|
}
|
||||||
val hasFilters = hasActiveFilters()
|
val hasFilters = hasActiveFilters()
|
||||||
|
sheetBehavior?.isHideable = !hasFilters
|
||||||
if (hasFilters && clearButton.parent == null)
|
if (hasFilters && clearButton.parent == null)
|
||||||
filter_layout.addView(clearButton, 0)
|
filter_layout.addView(clearButton, 0)
|
||||||
else if (!hasFilters && clearButton.parent != null)
|
else if (!hasFilters && clearButton.parent != null)
|
||||||
filter_layout.removeView(clearButton)
|
filter_layout.removeView(clearButton)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun hideIfPossible() {
|
||||||
|
if (!hasActiveFilters() && sheetBehavior?.isHideable == true)
|
||||||
|
sheetBehavior?.state = BottomSheetBehavior.STATE_HIDDEN
|
||||||
|
}
|
||||||
|
|
||||||
|
fun canHide(): Boolean = sheetBehavior?.isHideable == true && sheetBehavior?.state !=
|
||||||
|
BottomSheetBehavior.STATE_HIDDEN
|
||||||
|
|
||||||
private fun clearFilters() {
|
private fun clearFilters() {
|
||||||
preferences.filterDownloaded().set(0)
|
preferences.filterDownloaded().set(0)
|
||||||
preferences.filterUnread().set(0)
|
preferences.filterUnread().set(0)
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
style="@style/TextAppearance.Regular.Caption.Light"
|
style="@style/TextAppearance.Regular.Caption.Light"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="@color/pale_red"
|
android:background="@color/pale_green"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:paddingStart="5dp"
|
android:paddingStart="5dp"
|
||||||
|
@ -83,6 +83,5 @@
|
|||||||
|
|
||||||
<color name="md_teal_500">#009688</color>
|
<color name="md_teal_500">#009688</color>
|
||||||
|
|
||||||
<color name="total_green">@color/material_green_800</color>
|
<color name="pale_green">#99CC99</color>
|
||||||
<color name="pale_red">@color/material_red_300</color>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
Reference in New Issue
Block a user