ui: update list style

Make a few changes to the list style to be more consistent.
This commit is contained in:
Alexander Capehart 2022-12-05 03:21:10 +00:00
parent c3500b1b24
commit a02490ae18
No known key found for this signature in database
GPG key ID: 37DBE3621FE9AD47
8 changed files with 28 additions and 30 deletions

View file

@ -197,7 +197,7 @@ private class AlbumSongViewHolder private constructor(private val binding: ItemA
binding.root.apply {
setOnClickListener { listener.onItemClick(item) }
setOnLongClickListener {
listener.onItemLongClick(item)
listener.onSelect(item)
true
}
}

View file

@ -72,16 +72,12 @@ abstract class HomeListFragment<T : Item> :
if (homeModel.selected.value.isEmpty()) {
onItemClick(item)
} 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}" }
if (homeModel.selected.value.isEmpty()) {
homeModel.select(item)
} else {
onItemClick(item)
}
homeModel.select(item)
}
}

View file

@ -41,7 +41,7 @@ interface ItemClickListener {
/** An interface for detecting if an item has had it's menu opened. */
interface MenuItemListener : ItemClickListener {
/** 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. */
fun onOpenMenu(item: Item, anchor: View)

View file

@ -43,11 +43,12 @@ class SongViewHolder private constructor(private val binding: ItemSongBinding) :
binding.songName.text = item.resolveName(binding.context)
binding.songInfo.text = item.resolveArtistContents(binding.context)
binding.songAlbumCover.setOnClickListener { listener.onSelect(item) }
binding.songMenu.setOnClickListener { listener.onOpenMenu(item, it) }
binding.root.apply {
setOnClickListener { listener.onItemClick(item) }
setOnLongClickListener {
listener.onItemLongClick(item)
listener.onSelect(item)
true
}
}
@ -87,11 +88,12 @@ class AlbumViewHolder private constructor(private val binding: ItemParentBinding
binding.parentName.text = item.resolveName(binding.context)
binding.parentInfo.text = item.resolveArtistContents(binding.context)
binding.parentImage.setOnClickListener { listener.onSelect(item) }
binding.parentMenu.setOnClickListener { listener.onOpenMenu(item, it) }
binding.root.apply {
setOnClickListener { listener.onItemClick(item) }
setOnLongClickListener {
listener.onItemLongClick(item)
listener.onSelect(item)
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.parentImage.setOnClickListener { listener.onSelect(item) }
binding.parentMenu.setOnClickListener { listener.onOpenMenu(item, it) }
binding.root.apply {
setOnClickListener { listener.onItemClick(item) }
setOnLongClickListener {
listener.onItemLongClick(item)
listener.onSelect(item)
true
}
}
@ -192,12 +195,13 @@ class GenreViewHolder private constructor(private val binding: ItemParentBinding
R.string.fmt_two,
binding.context.getPlural(R.plurals.fmt_artist_count, item.artists.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 {
setOnClickListener { listener.onItemClick(item) }
setOnLongClickListener {
listener.onItemLongClick(item)
listener.onSelect(item)
true
}
}

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<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" />
</selector>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<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:color="?attr/colorPrimary" android:state_selected="true" />
<item android:color="?attr/colorPrimary" android:state_activated="true" />
<item android:color="?attr/colorControlNormal" />
</selector>

View file

@ -1,11 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
<vector android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
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" />
android:viewportHeight="24"
android:tint="?attr/colorControlNormal"
xmlns:android="http://schemas.android.com/apk/res/android">
<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>

View file

@ -51,7 +51,7 @@
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_medium"
android:layout_marginTop="@dimen/spacing_mid_medium"
android:hint="@string/lbl_relative_path"
app:expandedHintEnabled="false">
@ -67,7 +67,7 @@
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_medium"
android:layout_marginTop="@dimen/spacing_mid_medium"
android:hint="@string/lbl_format"
app:expandedHintEnabled="false">
@ -83,7 +83,7 @@
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_medium"
android:layout_marginTop="@dimen/spacing_mid_medium"
android:hint="@string/lbl_size"
app:expandedHintEnabled="false">
@ -99,7 +99,7 @@
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_medium"
android:layout_marginTop="@dimen/spacing_mid_medium"
android:hint="@string/lbl_sort_duration"
app:expandedHintEnabled="false">
@ -115,7 +115,7 @@
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_medium"
android:layout_marginTop="@dimen/spacing_mid_medium"
android:hint="@string/lbl_bitrate"
app:expandedHintEnabled="false">
@ -131,7 +131,7 @@
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_medium"
android:layout_marginTop="@dimen/spacing_mid_medium"
android:hint="@string/lbl_sample_rate"
app:expandedHintEnabled="false">