mirror of
https://github.com/mihonapp/mihon.git
synced 2024-11-07 20:31:02 -05:00
Library filter UI change (#1211)
* similar library filter to catalog filter * removed some commented out code * code review changes * fixed accidentally removing title
This commit is contained in:
parent
c1845aec83
commit
6c1453eb54
7 changed files with 17 additions and 25 deletions
|
@ -33,9 +33,9 @@ class SortItem(val name: String, val group: SortGroup) : AbstractSectionableItem
|
||||||
val i = filter.values.indexOf(name)
|
val i = filter.values.indexOf(name)
|
||||||
|
|
||||||
fun getIcon() = when (filter.state) {
|
fun getIcon() = when (filter.state) {
|
||||||
Filter.Sort.Selection(i, false) -> VectorDrawableCompat.create(view.resources, R.drawable.ic_arrow_down_32dp, null)
|
Filter.Sort.Selection(i, false) -> VectorDrawableCompat.create(view.resources, R.drawable.ic_arrow_down_white_32dp, null)
|
||||||
?.apply { setTint(view.context.getResourceColor(R.attr.colorAccent)) }
|
?.apply { setTint(view.context.getResourceColor(R.attr.colorAccent)) }
|
||||||
Filter.Sort.Selection(i, true) -> VectorDrawableCompat.create(view.resources, R.drawable.ic_arrow_up_32dp, null)
|
Filter.Sort.Selection(i, true) -> VectorDrawableCompat.create(view.resources, R.drawable.ic_arrow_up_white_32dp, null)
|
||||||
?.apply { setTint(view.context.getResourceColor(R.attr.colorAccent)) }
|
?.apply { setTint(view.context.getResourceColor(R.attr.colorAccent)) }
|
||||||
else -> ContextCompat.getDrawable(view.context, R.drawable.empty_drawable_32dp)
|
else -> ContextCompat.getDrawable(view.context, R.drawable.empty_drawable_32dp)
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,6 @@ import eu.kanade.tachiyomi.ui.manga.MangaController
|
||||||
import eu.kanade.tachiyomi.ui.migration.MigrationController
|
import eu.kanade.tachiyomi.ui.migration.MigrationController
|
||||||
import eu.kanade.tachiyomi.util.inflate
|
import eu.kanade.tachiyomi.util.inflate
|
||||||
import eu.kanade.tachiyomi.util.toast
|
import eu.kanade.tachiyomi.util.toast
|
||||||
import eu.kanade.tachiyomi.widget.DrawerSwipeCloseListener
|
|
||||||
import kotlinx.android.synthetic.main.library_controller.*
|
import kotlinx.android.synthetic.main.library_controller.*
|
||||||
import kotlinx.android.synthetic.main.main_activity.*
|
import kotlinx.android.synthetic.main.main_activity.*
|
||||||
import rx.Subscription
|
import rx.Subscription
|
||||||
|
@ -177,11 +176,8 @@ class LibraryController(
|
||||||
|
|
||||||
override fun createSecondaryDrawer(drawer: DrawerLayout): ViewGroup {
|
override fun createSecondaryDrawer(drawer: DrawerLayout): ViewGroup {
|
||||||
val view = drawer.inflate(R.layout.library_drawer) as LibraryNavigationView
|
val view = drawer.inflate(R.layout.library_drawer) as LibraryNavigationView
|
||||||
drawerListener = DrawerSwipeCloseListener(drawer, view).also {
|
|
||||||
drawer.addDrawerListener(it)
|
|
||||||
}
|
|
||||||
navView = view
|
navView = view
|
||||||
drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, Gravity.END)
|
drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, Gravity.END)
|
||||||
|
|
||||||
navView?.onGroupClicked = { group ->
|
navView?.onGroupClicked = { group ->
|
||||||
when (group) {
|
when (group) {
|
||||||
|
@ -196,8 +192,6 @@ class LibraryController(
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun cleanupSecondaryDrawer(drawer: DrawerLayout) {
|
override fun cleanupSecondaryDrawer(drawer: DrawerLayout) {
|
||||||
drawerListener?.let { drawer.removeDrawerListener(it) }
|
|
||||||
drawerListener = null
|
|
||||||
navView = null
|
navView = null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -278,7 +272,7 @@ class LibraryController(
|
||||||
activity?.invalidateOptionsMenu()
|
activity?.invalidateOptionsMenu()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun onDownloadBadgeChanged(){
|
private fun onDownloadBadgeChanged() {
|
||||||
presenter.requestDownloadBadgesUpdate()
|
presenter.requestDownloadBadgesUpdate()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ import uy.kohesive.injekt.injectLazy
|
||||||
* The navigation view shown in a drawer with the different options to show the library.
|
* The navigation view shown in a drawer with the different options to show the library.
|
||||||
*/
|
*/
|
||||||
class LibraryNavigationView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null)
|
class LibraryNavigationView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null)
|
||||||
: ExtendedNavigationView(context, attrs) {
|
: ExtendedNavigationView(context, attrs) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Preferences helper.
|
* Preferences helper.
|
||||||
|
@ -25,7 +25,7 @@ class LibraryNavigationView @JvmOverloads constructor(context: Context, attrs: A
|
||||||
/**
|
/**
|
||||||
* List of groups shown in the view.
|
* List of groups shown in the view.
|
||||||
*/
|
*/
|
||||||
private val groups = listOf(FilterGroup(), SortGroup(), DisplayGroup(), BadgeGroup())
|
private val groups = listOf(FilterGroup(), SortGroup(), DisplayGroup(), BadgeGroup())
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adapter instance.
|
* Adapter instance.
|
||||||
|
@ -62,7 +62,6 @@ class LibraryNavigationView @JvmOverloads constructor(context: Context, attrs: A
|
||||||
onGroupClicked(item.group)
|
onGroupClicked(item.group)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -99,7 +98,6 @@ class LibraryNavigationView @JvmOverloads constructor(context: Context, attrs: A
|
||||||
|
|
||||||
adapter.notifyItemChanged(item)
|
adapter.notifyItemChanged(item)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -169,7 +167,7 @@ class LibraryNavigationView @JvmOverloads constructor(context: Context, attrs: A
|
||||||
inner class BadgeGroup : Group {
|
inner class BadgeGroup : Group {
|
||||||
private val downloadBadge = Item.CheckboxGroup(R.string.action_display_download_badge, this)
|
private val downloadBadge = Item.CheckboxGroup(R.string.action_display_download_badge, this)
|
||||||
override val header = null
|
override val header = null
|
||||||
override val footer= null
|
override val footer = null
|
||||||
override val items = listOf(downloadBadge)
|
override val items = listOf(downloadBadge)
|
||||||
override fun initModels() {
|
override fun initModels() {
|
||||||
downloadBadge.checked = preferences.downloadBadge().getOrDefault()
|
downloadBadge.checked = preferences.downloadBadge().getOrDefault()
|
||||||
|
@ -215,7 +213,5 @@ class LibraryNavigationView @JvmOverloads constructor(context: Context, attrs: A
|
||||||
|
|
||||||
item.group.items.forEach { adapter.notifyItemChanged(it) }
|
item.group.items.forEach { adapter.notifyItemChanged(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -9,7 +9,6 @@ import android.support.v7.widget.RecyclerView
|
||||||
import android.util.AttributeSet
|
import android.util.AttributeSet
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.TextView
|
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.util.getResourceColor
|
import eu.kanade.tachiyomi.util.getResourceColor
|
||||||
|
|
||||||
|
@ -21,7 +20,7 @@ open class ExtendedNavigationView @JvmOverloads constructor(
|
||||||
context: Context,
|
context: Context,
|
||||||
attrs: AttributeSet? = null,
|
attrs: AttributeSet? = null,
|
||||||
defStyleAttr: Int = 0)
|
defStyleAttr: Int = 0)
|
||||||
: SimpleNavigationView(context, attrs, defStyleAttr) {
|
: SimpleNavigationView(context, attrs, defStyleAttr) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Every item of the nav view. Generic items must belong to this list, custom items could be
|
* Every item of the nav view. Generic items must belong to this list, custom items could be
|
||||||
|
@ -100,8 +99,8 @@ open class ExtendedNavigationView @JvmOverloads constructor(
|
||||||
|
|
||||||
override fun getStateDrawable(context: Context): Drawable? {
|
override fun getStateDrawable(context: Context): Drawable? {
|
||||||
return when (state) {
|
return when (state) {
|
||||||
SORT_ASC -> tintVector(context, R.drawable.ic_keyboard_arrow_up_black_32dp)
|
SORT_ASC -> tintVector(context, R.drawable.ic_arrow_up_white_32dp)
|
||||||
SORT_DESC -> tintVector(context, R.drawable.ic_keyboard_arrow_down_black_32dp)
|
SORT_DESC -> tintVector(context, R.drawable.ic_arrow_down_white_32dp)
|
||||||
SORT_NONE -> ContextCompat.getDrawable(context, R.drawable.empty_drawable_32dp)
|
SORT_NONE -> ContextCompat.getDrawable(context, R.drawable.empty_drawable_32dp)
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
|
@ -206,9 +205,8 @@ open class ExtendedNavigationView @JvmOverloads constructor(
|
||||||
override fun onBindViewHolder(holder: Holder, position: Int) {
|
override fun onBindViewHolder(holder: Holder, position: Int) {
|
||||||
when (holder) {
|
when (holder) {
|
||||||
is HeaderHolder -> {
|
is HeaderHolder -> {
|
||||||
val view = holder.itemView as TextView
|
|
||||||
val item = items[position] as Item.Header
|
val item = items[position] as Item.Header
|
||||||
view.setText(item.resTitle)
|
holder.title.setText(item.resTitle)
|
||||||
}
|
}
|
||||||
is SeparatorHolder -> {
|
is SeparatorHolder -> {
|
||||||
val view = holder.itemView
|
val view = holder.itemView
|
||||||
|
|
|
@ -22,7 +22,7 @@ open class SimpleNavigationView @JvmOverloads constructor(
|
||||||
context: Context,
|
context: Context,
|
||||||
attrs: AttributeSet? = null,
|
attrs: AttributeSet? = null,
|
||||||
defStyleAttr: Int = 0)
|
defStyleAttr: Int = 0)
|
||||||
: ScrimInsetsFrameLayout(context, attrs, defStyleAttr) {
|
: ScrimInsetsFrameLayout(context, attrs, defStyleAttr) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Max width of the navigation view.
|
* Max width of the navigation view.
|
||||||
|
@ -89,7 +89,11 @@ open class SimpleNavigationView @JvmOverloads constructor(
|
||||||
* Header view holder.
|
* Header view holder.
|
||||||
*/
|
*/
|
||||||
class HeaderHolder(parent: ViewGroup)
|
class HeaderHolder(parent: ViewGroup)
|
||||||
: Holder(parent.inflate(R.layout.design_navigation_item_subheader))
|
: Holder(parent.inflate(TR.layout.navigation_view_group)){
|
||||||
|
|
||||||
|
val title: TextView = itemView.findViewById(TR.id.title)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clickable view holder.
|
* Clickable view holder.
|
||||||
|
|
Loading…
Reference in a new issue