diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 855c606ea..2e189db2d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -67,6 +67,10 @@
+
+
-
+
(), Toolbar.OnMenuI
indexerModel.reindex()
}
+ binding.homeAppbar.apply {
+ addOnOffsetChangedListener(
+ AppBarLayout.OnOffsetChangedListener { _, offset ->
+ val range = binding.homeAppbar.totalScrollRange
+
+ binding.homeToolbar.alpha = 1f - (abs(offset.toFloat()) / (range.toFloat() / 2))
+
+ binding.homePager.updatePadding(
+ bottom = binding.homeAppbar.totalScrollRange + offset)
+ })
+ }
+
binding.homeToolbar.apply {
sortItem = menu.findItem(R.id.submenu_sorting)
setOnMenuItemClickListener(this@HomeFragment)
diff --git a/app/src/main/java/org/oxycblt/auxio/home/list/HomeListFragment.kt b/app/src/main/java/org/oxycblt/auxio/home/list/HomeListFragment.kt
index a369f1c6a..743ef17f8 100644
--- a/app/src/main/java/org/oxycblt/auxio/home/list/HomeListFragment.kt
+++ b/app/src/main/java/org/oxycblt/auxio/home/list/HomeListFragment.kt
@@ -29,6 +29,7 @@ import org.oxycblt.auxio.ui.Item
import org.oxycblt.auxio.ui.MenuItemListener
import org.oxycblt.auxio.ui.NavigationViewModel
import org.oxycblt.auxio.ui.ViewBindingFragment
+import org.oxycblt.auxio.util.applySpans
/**
* A Base [Fragment] implementing the base features shared across all list fragments in the home UI.
@@ -49,6 +50,7 @@ abstract class HomeListFragment :
override fun onBindingCreated(binding: FragmentHomeListBinding, savedInstanceState: Bundle?) {
binding.homeRecycler.popupProvider = this
binding.homeRecycler.listener = this
+ binding.homeRecycler.applySpans()
}
override fun onDestroyBinding(binding: FragmentHomeListBinding) {
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 cebbc09e6..e23cdb3cc 100644
--- a/app/src/main/java/org/oxycblt/auxio/search/SearchViewModel.kt
+++ b/app/src/main/java/org/oxycblt/auxio/search/SearchViewModel.kt
@@ -36,8 +36,11 @@ import org.oxycblt.auxio.ui.Sort
import org.oxycblt.auxio.util.logD
/**
- * The [ViewModel] for the search functionality
+ * The [ViewModel] for search functionality
* @author OxygenCobalt
+ *
+ * TODO: Add a context to this ViewModel, not because I want to, but because it just makes the code
+ * easier to work with.
*/
class SearchViewModel : ViewModel() {
private val musicStore = MusicStore.getInstance()
@@ -143,9 +146,9 @@ class SearchViewModel : ViewModel() {
*/
private fun List.filterByOrNull(context: Context, value: String): List? {
val filtered = filter {
- // First see if the normal item name will work. If that fails, try the "normalized"
- // [e.g all accented/unicode chars become latin chars] instead. Hopefully this
- // shouldn't break other language's search functionality.
+ // Compare normalized names, which are names with unicode characters that are
+ // normalized to their non-unicode forms. This is just for quality-of-life,
+ // and I hope it doesn't bork search functionality for other languages.
it.resolveNameNormalized(context).contains(value, ignoreCase = true) ||
it.resolveNameNormalized(context).contains(value, ignoreCase = true)
}
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 f04d4c241..163a42518 100644
--- a/app/src/main/java/org/oxycblt/auxio/settings/AboutFragment.kt
+++ b/app/src/main/java/org/oxycblt/auxio/settings/AboutFragment.kt
@@ -74,23 +74,26 @@ class AboutFragment : ViewBindingFragment() {
private fun updateSongCount(songs: List) {
val binding = requireBinding()
- binding.aboutSongCount.textSafe = getString(R.string.fmt_song_count, songs.size)
+ binding.aboutSongCount.textSafe = getString(R.string.fmt_lib_song_count, songs.size)
binding.aboutTotalDuration.textSafe =
getString(
- R.string.fmt_total_duration, songs.sumOf { it.durationSecs }.formatDuration(false))
+ R.string.fmt_lib_total_duration,
+ songs.sumOf { it.durationSecs }.formatDuration(false))
}
private fun updateAlbumCount(albums: List) {
- requireBinding().aboutAlbumCount.textSafe = getString(R.string.fmt_album_count, albums.size)
+ requireBinding().aboutAlbumCount.textSafe =
+ getString(R.string.fmt_lib_album_count, albums.size)
}
private fun updateArtistCount(artists: List) {
requireBinding().aboutArtistCount.textSafe =
- getString(R.string.fmt_artist_count, artists.size)
+ getString(R.string.fmt_lib_artist_count, artists.size)
}
private fun updateGenreCount(genres: List) {
- requireBinding().aboutGenreCount.textSafe = getString(R.string.fmt_genre_count, genres.size)
+ requireBinding().aboutGenreCount.textSafe =
+ getString(R.string.fmt_lib_genre_count, genres.size)
}
/** Go through the process of opening a [link] in a browser. */
diff --git a/app/src/main/java/org/oxycblt/auxio/ui/RecyclerFramework.kt b/app/src/main/java/org/oxycblt/auxio/ui/RecyclerFramework.kt
index 5f1e4a43f..9c3d74571 100644
--- a/app/src/main/java/org/oxycblt/auxio/ui/RecyclerFramework.kt
+++ b/app/src/main/java/org/oxycblt/auxio/ui/RecyclerFramework.kt
@@ -218,8 +218,8 @@ class SyncBackingData(adapter: RecyclerView.Adapter<*>, diffCallback: DiffUti
/**
* Like [AsyncListDiffer], but synchronous. This may seem like it would be inefficient, but in
- * practice Auxio's lists tend to be small enough to the point where this does not matter,
- * and situations that would be inefficient are ruled out with [SyncBackingData.replaceList].
+ * practice Auxio's lists tend to be small enough to the point where this does not matter, and
+ * situations that would be inefficient are ruled out with [SyncBackingData.replaceList].
*/
private class SyncListDiffer(
adapter: RecyclerView.Adapter<*>,
@@ -301,7 +301,7 @@ private class SyncListDiffer(
}
}
})
-
+
_currentList = newList
result.dispatchUpdatesTo(updateCallback)
}
diff --git a/app/src/main/java/org/oxycblt/auxio/ui/StyledImageButton.kt b/app/src/main/java/org/oxycblt/auxio/ui/StyledImageButton.kt
index 7243523e1..f04401770 100644
--- a/app/src/main/java/org/oxycblt/auxio/ui/StyledImageButton.kt
+++ b/app/src/main/java/org/oxycblt/auxio/ui/StyledImageButton.kt
@@ -39,6 +39,8 @@ import org.oxycblt.auxio.util.getDrawableSafe
* useful for the playback buttons, as at times highlighting them is not enough to differentiate
* them.
* @author OxygenCobalt
+ *
+ * TODO: Remove this for Material Buttons (I hope)
*/
class StyledImageButton
@JvmOverloads
diff --git a/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt b/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt
index 3e34adc99..51a1f4c8f 100644
--- a/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt
+++ b/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt
@@ -183,7 +183,7 @@ class WidgetProvider : AppWidgetProvider() {
logW("No good widget layout found")
val minimum =
- unlikelyToBeNull(views.minByOrNull { it.key.width * it.key.height }?.value)
+ unlikelyToBeNull(views.minByOrNull { it.key.width * it.key.height }).value
updateAppWidget(id, minimum)
}
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
index d72c2cfd6..104b13dd8 100644
--- a/app/src/main/res/layout/fragment_home.xml
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -14,6 +14,7 @@
android:id="@+id/home_toolbar"
style="@style/Widget.Auxio.Toolbar"
app:menu="@menu/menu_home"
+ app:layout_scrollFlags="scroll|enterAlways"
app:title="@string/info_app_name" />
رمادي
- الاغنية المُحملة: %d
+ الاغنية المُحملة: %d
- %d اغاني
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index f740a1289..86bdadcd1 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -190,11 +190,11 @@
Načítání hudební knihovny… (%1$d/%2$d)
- Načtených skladeb: %d
- Načtených alb: %d
- Načtených umělců: %d
- Načtených žánrů: %d
- Celková doba trvání: %s
+ Načtených skladeb: %d
+ Načtených alb: %d
+ Načtených umělců: %d
+ Načtených žánrů: %d
+ Celková doba trvání: %s
- "%d skladba"
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index ad0f69e87..d1eb00aa8 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -146,7 +146,7 @@
Grau
- Geladene Lieder: %d
+ Geladene Lieder: %d
- %d Lied
@@ -191,8 +191,8 @@
Schallplatte %d
+%.1f dB
-%.1f dB
- Geladene Alben: %d
- Geladene Künstler: %d
- Geladene Genres: %d
- Gesamtdauer: %s
+ Geladene Alben: %d
+ Geladene Künstler: %d
+ Geladene Genres: %d
+ Gesamtdauer: %s
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index 989e7306a..f34fa10f7 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -74,7 +74,7 @@
Γκρί
- Τραγούδια φορτώθηκε: %d
+ Τραγούδια φορτώθηκε: %d
- %d Τραγούδι
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 1b2561cd1..1a997b3b2 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -165,7 +165,7 @@
Gris
- Canciones cargadas: %d
+ Canciones cargadas: %d
- %d Canción
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index fa62a2e30..01cddaee7 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -80,7 +80,7 @@
Gris
- Titres chargés: %d
+ Titres chargés: %d
- %s Titre
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 02e000c00..5aa5af8c7 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -168,11 +168,11 @@
Grigio
- Canzoni trovate: %d
- Dischi trovati: %d
- Artisti trovati: %d
- Generi trovati: %d
- Durata totale: %s
+ Canzoni trovate: %d
+ Dischi trovati: %d
+ Artisti trovati: %d
+ Generi trovati: %d
+ Durata totale: %s
- %d canzone
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index 9804996b4..0e2f7b240 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -186,11 +186,11 @@
+%.1f dB
-%.1f dB
- 불러온 음악: %d
- 불러온 앨범: %d
- 불러온 아티스트: %d
- 불러온 장르: %d
- 총 길이: %s
+ 불러온 음악: %d
+ 불러온 앨범: %d
+ 불러온 아티스트: %d
+ 불러온 장르: %d
+ 총 길이: %s
- %d 곡
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index 521d0c32a..00bb6e190 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -133,7 +133,7 @@
Grijis
- Nummers geladen: %d
+ Nummers geladen: %d
- %d Nummer
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 9d8bbfa3f..83339a907 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -78,7 +78,7 @@
Szary
- Utwory uruchamia się: %d
+ Utwory uruchamia się: %d
- %d Utwór
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index efbbd8f41..99ae9ca25 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -79,7 +79,7 @@
Grisalho
- Músicas carregado: %d
+ Músicas carregado: %d
- %d Música
diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml
index cf5d97836..a300a8301 100644
--- a/app/src/main/res/values-pt-rPT/strings.xml
+++ b/app/src/main/res/values-pt-rPT/strings.xml
@@ -80,7 +80,7 @@
Grisalho
- Músicas carregado: %d
+ Músicas carregado: %d
- %d Música
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index acc004386..0f25d87c8 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -166,7 +166,7 @@
Серый
- Всего треков: %d
+ Всего треков: %d
- %d трек
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index 1dbb7e15b..04a797ef3 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -60,7 +60,7 @@
Відтворити/Зупинити
- Пісні завантажено: %d
+ Пісні завантажено: %d
- %d Пісня
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 2933acc81..a000aab56 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -167,7 +167,7 @@
灰色
- 已加载 %d 首曲目
+ 已加载 %d 首曲目
- "%d 首歌曲"
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 19dbe5ad4..8cc6f615a 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -192,11 +192,11 @@
Loading your music library… (%1$d/%2$d)
- Songs loaded: %d
- Albums loaded: %d
- Artists loaded: %d
- Genres loaded: %d
- Total duration: %s
+ Songs loaded: %d
+ Albums loaded: %d
+ Artists loaded: %d
+ Genres loaded: %d
+ Total duration: %s
- %d Song