mirror of
https://github.com/skyline-emu/skyline.git
synced 2024-11-25 17:36:59 +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
@ -3,7 +3,17 @@
|
|||||||
<component name="DesignSurface">
|
<component name="DesignSurface">
|
||||||
<option name="filePathToZoomLevelMap">
|
<option name="filePathToZoomLevelMap">
|
||||||
<map>
|
<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/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/layout/settings_activity.xml" value="0.22302631578947368" />
|
||||||
<entry key="app/src/main/res/menu/toolbar_log.xml" value="0.11019736842105263" />
|
<entry key="app/src/main/res/menu/toolbar_log.xml" value="0.11019736842105263" />
|
||||||
</map>
|
</map>
|
||||||
|
@ -52,6 +52,8 @@ class GenericAdapter : RecyclerView.Adapter<GenericViewHolder<ViewBinding>>(), F
|
|||||||
|
|
||||||
override fun getItemCount() = currentItems.size
|
override fun getItemCount() = currentItems.size
|
||||||
|
|
||||||
|
fun getFactoryViewType(factory : ViewBindingFactory) = viewTypesMapping.get(factory)
|
||||||
|
|
||||||
override fun getItemViewType(position : Int) = viewTypesMapping.getOrPut(currentItems[position].getViewBindingFactory()) { viewTypesMapping.size }
|
override fun getItemViewType(position : Int) = viewTypesMapping.getOrPut(currentItems[position].getViewBindingFactory()) { viewTypesMapping.size }
|
||||||
|
|
||||||
fun setHeaderItems(items : List<GenericListItem<*>>) {
|
fun setHeaderItems(items : List<GenericListItem<*>>) {
|
||||||
|
@ -6,9 +6,12 @@
|
|||||||
package emu.skyline.input
|
package emu.skyline.input
|
||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.graphics.Canvas
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.KeyEvent
|
import android.view.KeyEvent
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
|
import androidx.core.view.marginTop
|
||||||
|
import androidx.recyclerview.widget.DividerItemDecoration
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
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()
|
update()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,4 +3,5 @@
|
|||||||
<color name="colorPrimary">#FF4285F4</color>
|
<color name="colorPrimary">#FF4285F4</color>
|
||||||
<color name="backgroundColor">#FF121212</color>
|
<color name="backgroundColor">#FF121212</color>
|
||||||
<color name="backgroundColorVariant">#323232</color>
|
<color name="backgroundColorVariant">#323232</color>
|
||||||
|
<color name="dividerColor">@android:color/white</color>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -4,4 +4,5 @@
|
|||||||
<color name="colorPrimary">#FF1E58F0</color>
|
<color name="colorPrimary">#FF1E58F0</color>
|
||||||
<color name="backgroundColor">@android:color/white</color>
|
<color name="backgroundColor">@android:color/white</color>
|
||||||
<color name="backgroundColorVariant">#F8F8F8</color>
|
<color name="backgroundColorVariant">#F8F8F8</color>
|
||||||
|
<color name="dividerColor">@android:color/black</color>
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
Reference in New Issue
Block a user