mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +01:00 
			
		
		
		
	Catalog visuals update 1155 (#1167)
* adjusted search to be lower in navview * close drawer on search moved search and reset to bottom * switched sort icon to arrow * allow secondary drawer to swipe open and close * fixed click to collapse for sortgroup, and group item updated to rc4 flexibleadapter * added header to drawer * changed string to Search filters * collapsed sort group * fixed arrow size * added divider line * fixed vector size * add divider id and tools text
This commit is contained in:
		@@ -24,7 +24,6 @@ import eu.kanade.tachiyomi.ui.library.ChangeMangaCategoriesDialog
 | 
			
		||||
import eu.kanade.tachiyomi.ui.manga.MangaController
 | 
			
		||||
import eu.kanade.tachiyomi.util.*
 | 
			
		||||
import eu.kanade.tachiyomi.widget.AutofitRecyclerView
 | 
			
		||||
import eu.kanade.tachiyomi.widget.DrawerSwipeCloseListener
 | 
			
		||||
import kotlinx.android.synthetic.main.catalogue_controller.*
 | 
			
		||||
import kotlinx.android.synthetic.main.main_activity.*
 | 
			
		||||
import rx.Observable
 | 
			
		||||
@@ -75,11 +74,6 @@ open class BrowseCatalogueController(bundle: Bundle) :
 | 
			
		||||
     */
 | 
			
		||||
    private var recycler: RecyclerView? = null
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Drawer listener to allow swipe only for closing the drawer.
 | 
			
		||||
     */
 | 
			
		||||
    private var drawerListener: DrawerLayout.DrawerListener? = null
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Subscription for the search view.
 | 
			
		||||
     */
 | 
			
		||||
@@ -138,17 +132,15 @@ open class BrowseCatalogueController(bundle: Bundle) :
 | 
			
		||||
        // Inflate and prepare drawer
 | 
			
		||||
        val navView = drawer.inflate(R.layout.catalogue_drawer) as CatalogueNavigationView
 | 
			
		||||
        this.navView = navView
 | 
			
		||||
        drawerListener = DrawerSwipeCloseListener(drawer, navView).also {
 | 
			
		||||
            drawer.addDrawerListener(it)
 | 
			
		||||
        }
 | 
			
		||||
        navView.setFilters(presenter.filterItems)
 | 
			
		||||
 | 
			
		||||
        drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, Gravity.END)
 | 
			
		||||
        drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, Gravity.END)
 | 
			
		||||
 | 
			
		||||
        navView.onSearchClicked = {
 | 
			
		||||
            val allDefault = presenter.sourceFilters == presenter.source.getFilterList()
 | 
			
		||||
            showProgressBar()
 | 
			
		||||
            adapter?.clear()
 | 
			
		||||
            drawer.closeDrawer(Gravity.END)
 | 
			
		||||
            presenter.setSourceFilter(if (allDefault) FilterList() else presenter.sourceFilters)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -162,8 +154,6 @@ open class BrowseCatalogueController(bundle: Bundle) :
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun cleanupSecondaryDrawer(drawer: DrawerLayout) {
 | 
			
		||||
        drawerListener?.let { drawer.removeDrawerListener(it) }
 | 
			
		||||
        drawerListener = null
 | 
			
		||||
        navView = null
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -28,7 +28,7 @@ class CatalogueNavigationView @JvmOverloads constructor(context: Context, attrs:
 | 
			
		||||
        val view = inflate(R.layout.catalogue_drawer_content)
 | 
			
		||||
        ((view as ViewGroup).getChildAt(1) as ViewGroup).addView(recycler)
 | 
			
		||||
        addView(view)
 | 
			
		||||
 | 
			
		||||
        title.text = context?.getString(R.string.source_search_options)
 | 
			
		||||
        search_btn.setOnClickListener { onSearchClicked() }
 | 
			
		||||
        reset_btn.setOnClickListener { onResetClicked() }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -13,6 +13,10 @@ import eu.kanade.tachiyomi.util.setVectorCompat
 | 
			
		||||
 | 
			
		||||
class GroupItem(val filter: Filter.Group<*>) : AbstractExpandableHeaderItem<GroupItem.Holder, ISectionable<*, *>>() {
 | 
			
		||||
 | 
			
		||||
    init {
 | 
			
		||||
        isExpanded = false
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun getLayoutRes(): Int {
 | 
			
		||||
        return R.layout.navigation_view_group
 | 
			
		||||
    }
 | 
			
		||||
@@ -32,6 +36,9 @@ class GroupItem(val filter: Filter.Group<*>) : AbstractExpandableHeaderItem<Grou
 | 
			
		||||
            R.drawable.ic_expand_more_white_24dp
 | 
			
		||||
        else
 | 
			
		||||
            R.drawable.ic_chevron_right_white_24dp)
 | 
			
		||||
 | 
			
		||||
        holder.itemView.setOnClickListener(holder)
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun equals(other: Any?): Boolean {
 | 
			
		||||
@@ -44,6 +51,7 @@ class GroupItem(val filter: Filter.Group<*>) : AbstractExpandableHeaderItem<Grou
 | 
			
		||||
        return filter.hashCode()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    open class Holder(view: View, adapter: FlexibleAdapter<*>) : ExpandableViewHolder(view, adapter, true) {
 | 
			
		||||
 | 
			
		||||
        val title: TextView = itemView.findViewById(R.id.title)
 | 
			
		||||
@@ -52,5 +60,6 @@ class GroupItem(val filter: Filter.Group<*>) : AbstractExpandableHeaderItem<Grou
 | 
			
		||||
        override fun shouldNotifyParentOnClick(): Boolean {
 | 
			
		||||
            return true
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -10,6 +10,10 @@ import eu.kanade.tachiyomi.util.setVectorCompat
 | 
			
		||||
 | 
			
		||||
class SortGroup(val filter: Filter.Sort) : AbstractExpandableHeaderItem<SortGroup.Holder, ISectionable<*, *>>() {
 | 
			
		||||
 | 
			
		||||
    init {
 | 
			
		||||
        isExpanded = false
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun getLayoutRes(): Int {
 | 
			
		||||
        return R.layout.navigation_view_group
 | 
			
		||||
    }
 | 
			
		||||
@@ -29,6 +33,9 @@ class SortGroup(val filter: Filter.Sort) : AbstractExpandableHeaderItem<SortGrou
 | 
			
		||||
            R.drawable.ic_expand_more_white_24dp
 | 
			
		||||
        else
 | 
			
		||||
            R.drawable.ic_chevron_right_white_24dp)
 | 
			
		||||
 | 
			
		||||
        holder.itemView.setOnClickListener(holder)
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun equals(other: Any?): Boolean {
 | 
			
		||||
 
 | 
			
		||||
@@ -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_keyboard_arrow_down_black_32dp, null)
 | 
			
		||||
            Filter.Sort.Selection(i, false) -> VectorDrawableCompat.create(view.resources, R.drawable.ic_arrow_down_32dp, null)
 | 
			
		||||
                    ?.apply { setTint(view.context.getResourceColor(R.attr.colorAccent)) }
 | 
			
		||||
            Filter.Sort.Selection(i, true) -> VectorDrawableCompat.create(view.resources, R.drawable.ic_keyboard_arrow_up_black_32dp, null)
 | 
			
		||||
            Filter.Sort.Selection(i, true) -> VectorDrawableCompat.create(view.resources, R.drawable.ic_arrow_up_32dp, null)
 | 
			
		||||
                    ?.apply { setTint(view.context.getResourceColor(R.attr.colorAccent)) }
 | 
			
		||||
            else -> ContextCompat.getDrawable(view.context, R.drawable.empty_drawable_32dp)
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -26,7 +26,7 @@ class CategoryController : NucleusController<CategoryPresenter>(),
 | 
			
		||||
        CategoryAdapter.OnItemReleaseListener,
 | 
			
		||||
        CategoryCreateDialog.Listener,
 | 
			
		||||
        CategoryRenameDialog.Listener,
 | 
			
		||||
        UndoHelper.OnUndoListener {
 | 
			
		||||
        UndoHelper.OnActionListener {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Object used to show ActionMode toolbar.
 | 
			
		||||
@@ -168,7 +168,7 @@ class CategoryController : NucleusController<CategoryPresenter>(),
 | 
			
		||||
            R.id.action_delete -> {
 | 
			
		||||
                undoHelper = UndoHelper(adapter, this)
 | 
			
		||||
                undoHelper?.start(adapter.selectedPositions, view!!,
 | 
			
		||||
                                R.string.snack_categories_deleted, R.string.action_undo, 3000)
 | 
			
		||||
                        R.string.snack_categories_deleted, R.string.action_undo, 3000)
 | 
			
		||||
 | 
			
		||||
                mode.finish()
 | 
			
		||||
            }
 | 
			
		||||
@@ -268,7 +268,7 @@ class CategoryController : NucleusController<CategoryPresenter>(),
 | 
			
		||||
     *
 | 
			
		||||
     * @param action The action performed.
 | 
			
		||||
     */
 | 
			
		||||
    override fun onActionCanceled(action: Int) {
 | 
			
		||||
    override fun onActionCanceled(action: Int, positions: MutableList<Int>?) {
 | 
			
		||||
        adapter?.restoreDeletedItems()
 | 
			
		||||
        undoHelper = null
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user