ui: update list style
Make a few changes to the list style to be more consistent.
This commit is contained in:
parent
c3500b1b24
commit
a02490ae18
8 changed files with 28 additions and 30 deletions
|
@ -197,7 +197,7 @@ private class AlbumSongViewHolder private constructor(private val binding: ItemA
|
||||||
binding.root.apply {
|
binding.root.apply {
|
||||||
setOnClickListener { listener.onItemClick(item) }
|
setOnClickListener { listener.onItemClick(item) }
|
||||||
setOnLongClickListener {
|
setOnLongClickListener {
|
||||||
listener.onItemLongClick(item)
|
listener.onSelect(item)
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,16 +72,12 @@ abstract class HomeListFragment<T : Item> :
|
||||||
if (homeModel.selected.value.isEmpty()) {
|
if (homeModel.selected.value.isEmpty()) {
|
||||||
onItemClick(item)
|
onItemClick(item)
|
||||||
} else {
|
} else {
|
||||||
homeModel.select(item)
|
onSelect(item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onItemLongClick(item: Item) {
|
override fun onSelect(item: Item) {
|
||||||
check(item is Music) { "Unexpected datatype: ${item::class.java}" }
|
check(item is Music) { "Unexpected datatype: ${item::class.java}" }
|
||||||
if (homeModel.selected.value.isEmpty()) {
|
homeModel.select(item)
|
||||||
homeModel.select(item)
|
|
||||||
} else {
|
|
||||||
onItemClick(item)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ interface ItemClickListener {
|
||||||
/** An interface for detecting if an item has had it's menu opened. */
|
/** An interface for detecting if an item has had it's menu opened. */
|
||||||
interface MenuItemListener : ItemClickListener {
|
interface MenuItemListener : ItemClickListener {
|
||||||
/** Called when an item is long-clicked. */
|
/** Called when an item is long-clicked. */
|
||||||
fun onItemLongClick(item: Item) {}
|
fun onSelect(item: Item) {}
|
||||||
|
|
||||||
/** Called when an item desires to open a menu relating to it. */
|
/** Called when an item desires to open a menu relating to it. */
|
||||||
fun onOpenMenu(item: Item, anchor: View)
|
fun onOpenMenu(item: Item, anchor: View)
|
||||||
|
|
|
@ -43,11 +43,12 @@ class SongViewHolder private constructor(private val binding: ItemSongBinding) :
|
||||||
binding.songName.text = item.resolveName(binding.context)
|
binding.songName.text = item.resolveName(binding.context)
|
||||||
binding.songInfo.text = item.resolveArtistContents(binding.context)
|
binding.songInfo.text = item.resolveArtistContents(binding.context)
|
||||||
|
|
||||||
|
binding.songAlbumCover.setOnClickListener { listener.onSelect(item) }
|
||||||
binding.songMenu.setOnClickListener { listener.onOpenMenu(item, it) }
|
binding.songMenu.setOnClickListener { listener.onOpenMenu(item, it) }
|
||||||
binding.root.apply {
|
binding.root.apply {
|
||||||
setOnClickListener { listener.onItemClick(item) }
|
setOnClickListener { listener.onItemClick(item) }
|
||||||
setOnLongClickListener {
|
setOnLongClickListener {
|
||||||
listener.onItemLongClick(item)
|
listener.onSelect(item)
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -87,11 +88,12 @@ class AlbumViewHolder private constructor(private val binding: ItemParentBinding
|
||||||
binding.parentName.text = item.resolveName(binding.context)
|
binding.parentName.text = item.resolveName(binding.context)
|
||||||
binding.parentInfo.text = item.resolveArtistContents(binding.context)
|
binding.parentInfo.text = item.resolveArtistContents(binding.context)
|
||||||
|
|
||||||
|
binding.parentImage.setOnClickListener { listener.onSelect(item) }
|
||||||
binding.parentMenu.setOnClickListener { listener.onOpenMenu(item, it) }
|
binding.parentMenu.setOnClickListener { listener.onOpenMenu(item, it) }
|
||||||
binding.root.apply {
|
binding.root.apply {
|
||||||
setOnClickListener { listener.onItemClick(item) }
|
setOnClickListener { listener.onItemClick(item) }
|
||||||
setOnLongClickListener {
|
setOnLongClickListener {
|
||||||
listener.onItemLongClick(item)
|
listener.onSelect(item)
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -143,11 +145,12 @@ class ArtistViewHolder private constructor(private val binding: ItemParentBindin
|
||||||
binding.context.getPlural(R.plurals.fmt_album_count, item.albums.size)
|
binding.context.getPlural(R.plurals.fmt_album_count, item.albums.size)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
binding.parentImage.setOnClickListener { listener.onSelect(item) }
|
||||||
binding.parentMenu.setOnClickListener { listener.onOpenMenu(item, it) }
|
binding.parentMenu.setOnClickListener { listener.onOpenMenu(item, it) }
|
||||||
binding.root.apply {
|
binding.root.apply {
|
||||||
setOnClickListener { listener.onItemClick(item) }
|
setOnClickListener { listener.onItemClick(item) }
|
||||||
setOnLongClickListener {
|
setOnLongClickListener {
|
||||||
listener.onItemLongClick(item)
|
listener.onSelect(item)
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -192,12 +195,13 @@ class GenreViewHolder private constructor(private val binding: ItemParentBinding
|
||||||
R.string.fmt_two,
|
R.string.fmt_two,
|
||||||
binding.context.getPlural(R.plurals.fmt_artist_count, item.artists.size),
|
binding.context.getPlural(R.plurals.fmt_artist_count, item.artists.size),
|
||||||
binding.context.getPlural(R.plurals.fmt_song_count, item.songs.size))
|
binding.context.getPlural(R.plurals.fmt_song_count, item.songs.size))
|
||||||
binding.parentMenu.setOnClickListener { listener.onOpenMenu(item, it) }
|
|
||||||
|
|
||||||
|
binding.parentImage.setOnClickListener { listener.onSelect(item) }
|
||||||
|
binding.parentMenu.setOnClickListener { listener.onOpenMenu(item, it) }
|
||||||
binding.root.apply {
|
binding.root.apply {
|
||||||
setOnClickListener { listener.onItemClick(item) }
|
setOnClickListener { listener.onItemClick(item) }
|
||||||
setOnLongClickListener {
|
setOnLongClickListener {
|
||||||
listener.onItemLongClick(item)
|
listener.onSelect(item)
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item android:color="?attr/colorSecondaryContainer" android:alpha="0.32" android:state_activated="true" />
|
<item android:alpha="0.12" android:color="?attr/colorPrimary" android:state_activated="true"/>
|
||||||
<item android:color="?attr/colorSurface" />
|
<item android:color="?attr/colorSurface" />
|
||||||
</selector>
|
</selector>
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item android:alpha="0.24" android:color="?attr/colorOnSurface" android:state_enabled="false" />
|
<item android:alpha="0.24" android:color="?attr/colorOnSurface" android:state_enabled="false" />
|
||||||
<item android:color="?attr/colorPrimary" android:state_selected="true" />
|
<item android:color="?attr/colorPrimary" android:state_activated="true" />
|
||||||
<item android:color="?attr/colorControlNormal" />
|
<item android:color="?attr/colorControlNormal" />
|
||||||
</selector>
|
</selector>
|
|
@ -1,11 +1,9 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector android:width="24dp"
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
android:height="24dp"
|
||||||
android:tint="?attr/colorControlNormal"
|
|
||||||
android:viewportWidth="24"
|
android:viewportWidth="24"
|
||||||
android:viewportHeight="24">
|
android:viewportHeight="24"
|
||||||
<path
|
android:tint="?attr/colorControlNormal"
|
||||||
android:fillColor="@android:color/white"
|
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
android:pathData="M12,20Q11.175,20 10.588,19.413Q10,18.825 10,18Q10,17.175 10.588,16.587Q11.175,16 12,16Q12.825,16 13.413,16.587Q14,17.175 14,18Q14,18.825 13.413,19.413Q12.825,20 12,20ZM12,14Q11.175,14 10.588,13.412Q10,12.825 10,12Q10,11.175 10.588,10.587Q11.175,10 12,10Q12.825,10 13.413,10.587Q14,11.175 14,12Q14,12.825 13.413,13.412Q12.825,14 12,14ZM12,8Q11.175,8 10.588,7.412Q10,6.825 10,6Q10,5.175 10.588,4.588Q11.175,4 12,4Q12.825,4 13.413,4.588Q14,5.175 14,6Q14,6.825 13.413,7.412Q12.825,8 12,8Z" />
|
<path android:fillColor="@android:color/white" android:pathData="M6,14Q5.175,14 4.588,13.412Q4,12.825 4,12Q4,11.175 4.588,10.587Q5.175,10 6,10Q6.825,10 7.412,10.587Q8,11.175 8,12Q8,12.825 7.412,13.412Q6.825,14 6,14ZM12,14Q11.175,14 10.588,13.412Q10,12.825 10,12Q10,11.175 10.588,10.587Q11.175,10 12,10Q12.825,10 13.413,10.587Q14,11.175 14,12Q14,12.825 13.413,13.412Q12.825,14 12,14ZM18,14Q17.175,14 16.587,13.412Q16,12.825 16,12Q16,11.175 16.587,10.587Q17.175,10 18,10Q18.825,10 19.413,10.587Q20,11.175 20,12Q20,12.825 19.413,13.412Q18.825,14 18,14Z"/>
|
||||||
</vector>
|
</vector>
|
|
@ -51,7 +51,7 @@
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="@dimen/spacing_medium"
|
android:layout_marginTop="@dimen/spacing_mid_medium"
|
||||||
android:hint="@string/lbl_relative_path"
|
android:hint="@string/lbl_relative_path"
|
||||||
app:expandedHintEnabled="false">
|
app:expandedHintEnabled="false">
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="@dimen/spacing_medium"
|
android:layout_marginTop="@dimen/spacing_mid_medium"
|
||||||
android:hint="@string/lbl_format"
|
android:hint="@string/lbl_format"
|
||||||
app:expandedHintEnabled="false">
|
app:expandedHintEnabled="false">
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="@dimen/spacing_medium"
|
android:layout_marginTop="@dimen/spacing_mid_medium"
|
||||||
android:hint="@string/lbl_size"
|
android:hint="@string/lbl_size"
|
||||||
app:expandedHintEnabled="false">
|
app:expandedHintEnabled="false">
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="@dimen/spacing_medium"
|
android:layout_marginTop="@dimen/spacing_mid_medium"
|
||||||
android:hint="@string/lbl_sort_duration"
|
android:hint="@string/lbl_sort_duration"
|
||||||
app:expandedHintEnabled="false">
|
app:expandedHintEnabled="false">
|
||||||
|
|
||||||
|
@ -115,7 +115,7 @@
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="@dimen/spacing_medium"
|
android:layout_marginTop="@dimen/spacing_mid_medium"
|
||||||
android:hint="@string/lbl_bitrate"
|
android:hint="@string/lbl_bitrate"
|
||||||
app:expandedHintEnabled="false">
|
app:expandedHintEnabled="false">
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="@dimen/spacing_medium"
|
android:layout_marginTop="@dimen/spacing_mid_medium"
|
||||||
android:hint="@string/lbl_sample_rate"
|
android:hint="@string/lbl_sample_rate"
|
||||||
app:expandedHintEnabled="false">
|
app:expandedHintEnabled="false">
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue