From 24062aa62353582f74d0b62f09ac83883472dc16 Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Tue, 19 Jul 2022 09:44:16 -0600 Subject: [PATCH] music: update album type display Only display album types within the artist and album detail menus. Displaying it elsewhere cluttered the UI somewhat. --- app/build.gradle | 2 +- app/src/main/java/org/oxycblt/auxio/music/Music.kt | 5 ++--- .../oxycblt/auxio/music/system/MediaStoreBackend.kt | 6 +----- .../java/org/oxycblt/auxio/search/SearchViewModel.kt | 9 ++++----- .../java/org/oxycblt/auxio/settings/AboutFragment.kt | 2 +- .../java/org/oxycblt/auxio/ui/recycler/ViewHolders.kt | 10 +--------- app/src/main/java/org/oxycblt/auxio/widgets/Forms.kt | 6 +++--- app/src/main/res/values-ja/strings.xml | 2 +- 8 files changed, 14 insertions(+), 28 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 2376637c3..a3055579a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ android { } compileSdkVersion 32 - buildToolsVersion "32.0.0" + buildToolsVersion '33.0.0' // ExoPlayer, AndroidX, and Material Components all need Java 8 to compile. diff --git a/app/src/main/java/org/oxycblt/auxio/music/Music.kt b/app/src/main/java/org/oxycblt/auxio/music/Music.kt index efead07c8..3c0469738 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/Music.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/Music.kt @@ -326,8 +326,8 @@ data class Genre(override val rawName: String?, override val songs: List) * or reject valid-ish dates. * * Date instances are immutable and their internal implementation is hidden. To instantiate one, use - * [from] or [from]. The string representation of a Date is RFC 3339, with granular position - * depending on the presence of particular tokens. + * [from]. The string representation of a Date is RFC 3339, with granular position depending on the + * presence of particular tokens. * * Please, **Do not use this for anything important related to time.** I cannot stress this enough. * This class will blow up if you try to do that. @@ -389,7 +389,6 @@ class Date private constructor(private val tokens: List) : Comparable override fun toString() = StringBuilder().appendDate().toString() private fun StringBuilder.appendDate(): StringBuilder { - // RFC 3339 does not allow partial precision. append(year.toFixedString(4)) append("-${(month ?: return this).toFixedString(2)}") append("-${(day ?: return this).toFixedString(2)}") diff --git a/app/src/main/java/org/oxycblt/auxio/music/system/MediaStoreBackend.kt b/app/src/main/java/org/oxycblt/auxio/music/system/MediaStoreBackend.kt index 74e0c632c..c4fa1d0f9 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/system/MediaStoreBackend.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/system/MediaStoreBackend.kt @@ -534,10 +534,7 @@ open class Api29MediaStoreBackend : BaseApi29MediaStoreBackend() { private var trackIndex = -1 override val projection: Array - get() = - super.projection + - arrayOf( - MediaStore.Audio.AudioColumns.TRACK, MediaStore.Audio.AudioColumns.DATE_TAKEN) + get() = super.projection + arrayOf(MediaStore.Audio.AudioColumns.TRACK) override fun buildAudio(context: Context, cursor: Cursor): Audio { val audio = super.buildAudio(context, cursor) @@ -588,7 +585,6 @@ class Api30MediaStoreBackend : BaseApi29MediaStoreBackend() { // the tag itself, which is to say that it is formatted as NN/TT tracks, where // N is the number and T is the total. Parse the number while leaving out the // total, as we have no use for it. - cursor.getStringOrNull(trackIndex)?.parsePositionNum()?.let { audio.track = it } cursor.getStringOrNull(discIndex)?.parsePositionNum()?.let { audio.disc = it } diff --git a/app/src/main/java/org/oxycblt/auxio/search/SearchViewModel.kt b/app/src/main/java/org/oxycblt/auxio/search/SearchViewModel.kt index db16166f1..a3e810e78 100644 --- a/app/src/main/java/org/oxycblt/auxio/search/SearchViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/search/SearchViewModel.kt @@ -145,19 +145,18 @@ class SearchViewModel(application: Application) : } private fun List.filterAlbumsBy(value: String) = - baseFilterBy(value) { it.rawSortName?.contains(value) == true } + baseFilterBy(value) { it.rawSortName?.contains(value, ignoreCase = true) == true } private fun List.filterArtistsBy(value: String) = - baseFilterBy(value) { it.rawSortName?.contains(value) == true } + baseFilterBy(value) { it.rawSortName?.contains(value, ignoreCase = true) == true } private fun List.filterGenresBy(value: String) = baseFilterBy(value) { false } private inline fun List.baseFilterBy(value: String, additional: (T) -> Boolean) = filter { // The basic comparison is first by the *normalized* name, as that allows a - // non-unicode - // search to match with some unicode characters. If that fails, filter impls have - // fallback values, primarily around sort tags or file names. + // non-unicode search to match with some unicode characters. If that fails, + // filter impls have fallback values, primarily around sort tags or file names. it.resolveNameNormalized(application).contains(value, ignoreCase = true) || additional(it) } diff --git a/app/src/main/java/org/oxycblt/auxio/settings/AboutFragment.kt b/app/src/main/java/org/oxycblt/auxio/settings/AboutFragment.kt index 21e2db058..e5c6bd114 100644 --- a/app/src/main/java/org/oxycblt/auxio/settings/AboutFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/settings/AboutFragment.kt @@ -113,7 +113,7 @@ class AboutFragment : ViewBindingFragment() { // No app installed to open the link requireContext().showToast(R.string.err_no_app) } - } else { + } else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) { // On older versions of android, opening links from an ACTION_VIEW intent might // not work in all cases, especially when no default app was set. If that is the // case, we will try to manually handle these cases before we try to launch the diff --git a/app/src/main/java/org/oxycblt/auxio/ui/recycler/ViewHolders.kt b/app/src/main/java/org/oxycblt/auxio/ui/recycler/ViewHolders.kt index 27ad4e414..5fc1fe995 100644 --- a/app/src/main/java/org/oxycblt/auxio/ui/recycler/ViewHolders.kt +++ b/app/src/main/java/org/oxycblt/auxio/ui/recycler/ViewHolders.kt @@ -82,15 +82,7 @@ private constructor( override fun bind(item: Album, listener: MenuItemListener) { binding.parentImage.bind(item) binding.parentName.textSafe = item.resolveName(binding.context) - - val artistName = item.artist.resolveName(binding.context) - binding.parentInfo.textSafe = - if (item.type != null) { - binding.context.getString( - R.string.fmt_two, binding.context.getString(item.type.string), artistName) - } else { - artistName - } + binding.parentInfo.textSafe = item.artist.resolveName(binding.context) binding.root.apply { setOnClickListener { listener.onItemClick(item) } setOnLongClickListener { view -> diff --git a/app/src/main/java/org/oxycblt/auxio/widgets/Forms.kt b/app/src/main/java/org/oxycblt/auxio/widgets/Forms.kt index 3c1626da5..230755520 100644 --- a/app/src/main/java/org/oxycblt/auxio/widgets/Forms.kt +++ b/app/src/main/java/org/oxycblt/auxio/widgets/Forms.kt @@ -138,13 +138,13 @@ private fun RemoteViews.applyPlayPauseControls( context: Context, state: WidgetComponent.WidgetState ): RemoteViews { + // Controls are timeline elements, override the layout direction to RTL + setInt(R.id.widget_controls, "setLayoutDirection", View.LAYOUT_DIRECTION_LTR) + setOnClickPendingIntent( R.id.widget_play_pause, context.newBroadcastPendingIntent(PlaybackService.ACTION_PLAY_PAUSE)) - // Controls are timeline elements, override the layout direction to RTL - setInt(R.id.widget_controls, "setLayoutDirection", View.LAYOUT_DIRECTION_LTR) - setImageViewResource( R.id.widget_play_pause, if (state.isPlaying) { diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index a6b3daec9..3a0906840 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + \ No newline at end of file