mirror of
https://github.com/skyline-emu/skyline.git
synced 2024-12-26 13:01:57 +01:00
Add Dividers to ControllerActivity
's RecyclerView
Dividers after titles were missing in `ControllerActivity` which made it look inconsistent with `SettingsActivity` which did have them. They have now been added by extending `DividerItemDecoration` to be drawn before any `ControllerHeaderItem`.
This commit is contained in:
parent
b230afcd35
commit
69ef93bfa8
10
.idea/misc.xml
generated
10
.idea/misc.xml
generated
@ -3,7 +3,17 @@
|
||||
<component name="DesignSurface">
|
||||
<option name="filePathToZoomLevelMap">
|
||||
<map>
|
||||
<entry key="../../../../../layout/custom_preview.xml" value="0.16875" />
|
||||
<entry key="app/src/main/res/drawable/logo_skyline.xml" value="0.152" />
|
||||
<entry key="app/src/main/res/layout/app_dialog.xml" value="0.22335526315789472" />
|
||||
<entry key="app/src/main/res/layout/button_dialog.xml" value="0.33" />
|
||||
<entry key="app/src/main/res/layout/controller_activity.xml" value="0.22335526315789472" />
|
||||
<entry key="app/src/main/res/layout/controller_header.xml" value="0.22335526315789472" />
|
||||
<entry key="app/src/main/res/layout/header_rom_filter.xml" value="0.22335526315789472" />
|
||||
<entry key="app/src/main/res/layout/license_dialog.xml" value="0.1" />
|
||||
<entry key="app/src/main/res/layout/main_activity.xml" value="0.2028688524590164" />
|
||||
<entry key="app/src/main/res/layout/on_screen_edit_activity.xml" value="0.67" />
|
||||
<entry key="app/src/main/res/layout/on_screen_edit_mini_fab.xml" value="0.22335526315789472" />
|
||||
<entry key="app/src/main/res/layout/settings_activity.xml" value="0.22302631578947368" />
|
||||
<entry key="app/src/main/res/menu/toolbar_log.xml" value="0.11019736842105263" />
|
||||
</map>
|
||||
|
@ -52,6 +52,8 @@ class GenericAdapter : RecyclerView.Adapter<GenericViewHolder<ViewBinding>>(), F
|
||||
|
||||
override fun getItemCount() = currentItems.size
|
||||
|
||||
fun getFactoryViewType(factory : ViewBindingFactory) = viewTypesMapping.get(factory)
|
||||
|
||||
override fun getItemViewType(position : Int) = viewTypesMapping.getOrPut(currentItems[position].getViewBindingFactory()) { viewTypesMapping.size }
|
||||
|
||||
fun setHeaderItems(items : List<GenericListItem<*>>) {
|
||||
|
@ -6,9 +6,12 @@
|
||||
package emu.skyline.input
|
||||
|
||||
import android.content.Intent
|
||||
import android.graphics.Canvas
|
||||
import android.os.Bundle
|
||||
import android.view.KeyEvent
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.view.marginTop
|
||||
import androidx.recyclerview.widget.DividerItemDecoration
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
@ -187,6 +190,24 @@ class ControllerActivity : AppCompatActivity() {
|
||||
}
|
||||
})
|
||||
|
||||
val dividerItemDecoration = object : DividerItemDecoration(this, DividerItemDecoration.VERTICAL) {
|
||||
override fun onDraw(canvas : Canvas, parent : RecyclerView, state : RecyclerView.State) {
|
||||
val divider = drawable!!
|
||||
for (i in 0 until parent.childCount) {
|
||||
val view = parent.getChildAt(i)
|
||||
if (parent.adapter!!.getItemViewType(parent.getChildAdapterPosition(view)) == adapter.getFactoryViewType(ControllerHeaderBindingFactory)) {
|
||||
val bottom = view.top - view.marginTop
|
||||
val top = bottom - divider.intrinsicHeight
|
||||
divider.setBounds(0, top, parent.width, bottom)
|
||||
divider.draw(canvas)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dividerItemDecoration.drawable.let { it?.setTint(getColor(R.color.dividerColor)); it }
|
||||
binding.controllerList.addItemDecoration(dividerItemDecoration)
|
||||
|
||||
update()
|
||||
}
|
||||
|
||||
|
@ -3,4 +3,5 @@
|
||||
<color name="colorPrimary">#FF4285F4</color>
|
||||
<color name="backgroundColor">#FF121212</color>
|
||||
<color name="backgroundColorVariant">#323232</color>
|
||||
<color name="dividerColor">@android:color/white</color>
|
||||
</resources>
|
||||
|
@ -4,4 +4,5 @@
|
||||
<color name="colorPrimary">#FF1E58F0</color>
|
||||
<color name="backgroundColor">@android:color/white</color>
|
||||
<color name="backgroundColorVariant">#F8F8F8</color>
|
||||
<color name="dividerColor">@android:color/black</color>
|
||||
</resources>
|
||||
|
Loading…
Reference in New Issue
Block a user