mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +01: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:
		
				
					committed by
					
						 Bram van de Kerkhof
						Bram van de Kerkhof
					
				
			
			
				
	
			
			
			
						parent
						
							c1845aec83
						
					
				
				
					commit
					6c1453eb54
				
			| @@ -33,9 +33,9 @@ class SortItem(val name: String, val group: SortGroup) : AbstractSectionableItem | ||||
|         val i = filter.values.indexOf(name) | ||||
|  | ||||
|         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)) } | ||||
|             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)) } | ||||
|             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.util.inflate | ||||
| import eu.kanade.tachiyomi.util.toast | ||||
| import eu.kanade.tachiyomi.widget.DrawerSwipeCloseListener | ||||
| import kotlinx.android.synthetic.main.library_controller.* | ||||
| import kotlinx.android.synthetic.main.main_activity.* | ||||
| import rx.Subscription | ||||
| @@ -177,11 +176,8 @@ class LibraryController( | ||||
|  | ||||
|     override fun createSecondaryDrawer(drawer: DrawerLayout): ViewGroup { | ||||
|         val view = drawer.inflate(R.layout.library_drawer) as LibraryNavigationView | ||||
|         drawerListener = DrawerSwipeCloseListener(drawer, view).also { | ||||
|             drawer.addDrawerListener(it) | ||||
|         } | ||||
|         navView = view | ||||
|         drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, Gravity.END) | ||||
|         drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, Gravity.END) | ||||
|  | ||||
|         navView?.onGroupClicked = { group -> | ||||
|             when (group) { | ||||
| @@ -196,8 +192,6 @@ class LibraryController( | ||||
|     } | ||||
|  | ||||
|     override fun cleanupSecondaryDrawer(drawer: DrawerLayout) { | ||||
|         drawerListener?.let { drawer.removeDrawerListener(it) } | ||||
|         drawerListener = null | ||||
|         navView = null | ||||
|     } | ||||
|  | ||||
| @@ -278,7 +272,7 @@ class LibraryController( | ||||
|         activity?.invalidateOptionsMenu() | ||||
|     } | ||||
|  | ||||
|     private fun onDownloadBadgeChanged(){ | ||||
|     private fun onDownloadBadgeChanged() { | ||||
|         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. | ||||
|  */ | ||||
| class LibraryNavigationView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) | ||||
| : ExtendedNavigationView(context, attrs) { | ||||
|     : ExtendedNavigationView(context, attrs) { | ||||
|  | ||||
|     /** | ||||
|      * Preferences helper. | ||||
| @@ -25,7 +25,7 @@ class LibraryNavigationView @JvmOverloads constructor(context: Context, attrs: A | ||||
|     /** | ||||
|      * 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. | ||||
| @@ -62,7 +62,6 @@ class LibraryNavigationView @JvmOverloads constructor(context: Context, attrs: A | ||||
|                 onGroupClicked(item.group) | ||||
|             } | ||||
|         } | ||||
|          | ||||
|     } | ||||
|  | ||||
|     /** | ||||
| @@ -99,7 +98,6 @@ class LibraryNavigationView @JvmOverloads constructor(context: Context, attrs: A | ||||
|  | ||||
|             adapter.notifyItemChanged(item) | ||||
|         } | ||||
|  | ||||
|     } | ||||
|  | ||||
|     /** | ||||
| @@ -169,7 +167,7 @@ class LibraryNavigationView @JvmOverloads constructor(context: Context, attrs: A | ||||
|     inner class BadgeGroup : Group { | ||||
|         private val downloadBadge = Item.CheckboxGroup(R.string.action_display_download_badge, this) | ||||
|         override val header = null | ||||
|         override val footer= null | ||||
|         override val footer = null | ||||
|         override val items = listOf(downloadBadge) | ||||
|         override fun initModels() { | ||||
|             downloadBadge.checked = preferences.downloadBadge().getOrDefault() | ||||
| @@ -215,7 +213,5 @@ class LibraryNavigationView @JvmOverloads constructor(context: Context, attrs: A | ||||
|  | ||||
|             item.group.items.forEach { adapter.notifyItemChanged(it) } | ||||
|         } | ||||
|  | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -9,7 +9,6 @@ import android.support.v7.widget.RecyclerView | ||||
| import android.util.AttributeSet | ||||
| import android.view.View | ||||
| import android.view.ViewGroup | ||||
| import android.widget.TextView | ||||
| import eu.kanade.tachiyomi.R | ||||
| import eu.kanade.tachiyomi.util.getResourceColor | ||||
|  | ||||
| @@ -21,7 +20,7 @@ open class ExtendedNavigationView @JvmOverloads constructor( | ||||
|         context: Context, | ||||
|         attrs: AttributeSet? = null, | ||||
|         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 | ||||
| @@ -100,8 +99,8 @@ open class ExtendedNavigationView @JvmOverloads constructor( | ||||
|  | ||||
|             override fun getStateDrawable(context: Context): Drawable? { | ||||
|                 return when (state) { | ||||
|                     SORT_ASC -> tintVector(context, R.drawable.ic_keyboard_arrow_up_black_32dp) | ||||
|                     SORT_DESC -> tintVector(context, R.drawable.ic_keyboard_arrow_down_black_32dp) | ||||
|                     SORT_ASC -> tintVector(context, R.drawable.ic_arrow_up_white_32dp) | ||||
|                     SORT_DESC -> tintVector(context, R.drawable.ic_arrow_down_white_32dp) | ||||
|                     SORT_NONE -> ContextCompat.getDrawable(context, R.drawable.empty_drawable_32dp) | ||||
|                     else -> null | ||||
|                 } | ||||
| @@ -206,9 +205,8 @@ open class ExtendedNavigationView @JvmOverloads constructor( | ||||
|         override fun onBindViewHolder(holder: Holder, position: Int) { | ||||
|             when (holder) { | ||||
|                 is HeaderHolder -> { | ||||
|                     val view = holder.itemView as TextView | ||||
|                     val item = items[position] as Item.Header | ||||
|                     view.setText(item.resTitle) | ||||
|                     holder.title.setText(item.resTitle) | ||||
|                 } | ||||
|                 is SeparatorHolder -> { | ||||
|                     val view = holder.itemView | ||||
|   | ||||
| @@ -22,7 +22,7 @@ open class SimpleNavigationView @JvmOverloads constructor( | ||||
|         context: Context, | ||||
|         attrs: AttributeSet? = null, | ||||
|         defStyleAttr: Int = 0) | ||||
| : ScrimInsetsFrameLayout(context, attrs, defStyleAttr) { | ||||
|     : ScrimInsetsFrameLayout(context, attrs, defStyleAttr) { | ||||
|  | ||||
|     /** | ||||
|      * Max width of the navigation view. | ||||
| @@ -89,7 +89,11 @@ open class SimpleNavigationView @JvmOverloads constructor( | ||||
|      * Header view holder. | ||||
|      */ | ||||
|     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. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user