Procházet zdrojové kódy

Library filter UI change (#1211)

* similar library filter to catalog filter

* removed some commented out code

* code review changes

* fixed accidentally removing title
Carlos před 7 roky
rodič
revize
6c1453eb54

+ 2 - 2
app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/filter/SortItem.kt

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

+ 2 - 8
app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt

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

+ 3 - 7
app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryNavigationView.kt

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

+ 4 - 6
app/src/main/java/eu/kanade/tachiyomi/widget/ExtendedNavigationView.kt

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

+ 6 - 2
app/src/main/java/eu/kanade/tachiyomi/widget/SimpleNavigationView.kt

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

+ 0 - 0
app/src/main/res/drawable/ic_arrow_down_32dp.xml → app/src/main/res/drawable/ic_arrow_down_white_32dp.xml


+ 0 - 0
app/src/main/res/drawable/ic_arrow_up_32dp.xml → app/src/main/res/drawable/ic_arrow_up_white_32dp.xml