diff --git a/app/src/main/java/org/oxycblt/auxio/detail/DetailViewModel.kt b/app/src/main/java/org/oxycblt/auxio/detail/DetailViewModel.kt
index 11d4aef22..3c1db8a1b 100644
--- a/app/src/main/java/org/oxycblt/auxio/detail/DetailViewModel.kt
+++ b/app/src/main/java/org/oxycblt/auxio/detail/DetailViewModel.kt
@@ -29,7 +29,6 @@ import org.oxycblt.auxio.music.Artist
import org.oxycblt.auxio.music.BaseModel
import org.oxycblt.auxio.music.Genre
import org.oxycblt.auxio.music.Header
-import org.oxycblt.auxio.music.HeaderString
import org.oxycblt.auxio.music.MusicStore
import org.oxycblt.auxio.settings.SettingsManager
import org.oxycblt.auxio.ui.DisplayMode
@@ -160,7 +159,7 @@ class DetailViewModel : ViewModel() {
data.add(
ActionHeader(
id = -2,
- string = HeaderString.Single(R.string.lbl_songs),
+ string = R.string.lbl_songs,
icon = R.drawable.ic_sort,
desc = R.string.lbl_sort,
onClick = { view ->
@@ -182,7 +181,7 @@ class DetailViewModel : ViewModel() {
data.add(
Header(
id = -2,
- string = HeaderString.Single(R.string.lbl_albums)
+ string = R.string.lbl_albums
)
)
@@ -191,7 +190,7 @@ class DetailViewModel : ViewModel() {
data.add(
ActionHeader(
id = -3,
- string = HeaderString.Single(R.string.lbl_songs),
+ string = R.string.lbl_songs,
icon = R.drawable.ic_sort,
desc = R.string.lbl_sort,
onClick = { view ->
@@ -212,7 +211,7 @@ class DetailViewModel : ViewModel() {
data.add(
ActionHeader(
id = -2,
- string = HeaderString.Single(R.string.lbl_songs),
+ string = R.string.lbl_songs,
icon = R.drawable.ic_sort,
desc = R.string.lbl_sort,
onClick = { view ->
diff --git a/app/src/main/java/org/oxycblt/auxio/music/Models.kt b/app/src/main/java/org/oxycblt/auxio/music/Models.kt
index 8bc99ad77..954032c43 100644
--- a/app/src/main/java/org/oxycblt/auxio/music/Models.kt
+++ b/app/src/main/java/org/oxycblt/auxio/music/Models.kt
@@ -18,7 +18,6 @@
package org.oxycblt.auxio.music
-import android.content.Context
import android.view.View
import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
@@ -202,11 +201,10 @@ data class Genre(
/**
* A data object used solely for the "Header" UI element.
- * @see HeaderString
*/
data class Header(
override val id: Long,
- val string: HeaderString
+ @StringRes val string: Int
) : BaseModel()
/**
@@ -215,7 +213,7 @@ data class Header(
*/
data class ActionHeader(
override val id: Long,
- val string: HeaderString,
+ @StringRes val string: Int,
@DrawableRes val icon: Int,
@StringRes val desc: Int,
val onClick: (View) -> Unit,
@@ -243,77 +241,3 @@ data class ActionHeader(
return result
}
}
-
-/**
- * The string used for a header instance. This class is a bit complex, mostly because it revolves
- * around passing string resources that are then resolved by the view. This is because ViewModel
- * instance should preferably not have access to a Context but should still generate data,
- * which at times can include [Header] instances that require string resources.
- * @author OxygenCobalt
- */
-sealed class HeaderString {
- /** A single string resource. */
- class Single(@StringRes val id: Int) : HeaderString()
- /** A string resource with an argument. */
- class WithArg(@StringRes val id: Int, val arg: Arg) : HeaderString()
-
- /**
- * Resolve this instance into a string.
- */
- fun resolve(context: Context): String {
- return when (this) {
- is Single -> context.getString(id)
- is WithArg -> context.getString(id, arg.resolve(context))
- }
- }
-
- override fun equals(other: Any?): Boolean {
- if (this === other) return false
-
- return when (this) {
- is Single -> other is Single && other.id == id
- is WithArg -> other is WithArg && other.id == id && other.arg == arg
- }
- }
-
- override fun hashCode(): Int {
- return when (this) {
- is Single -> id.hashCode()
- is WithArg -> 31 * id.hashCode() * arg.hashCode()
- }
- }
-
- /**
- * An argument for the [WithArg] header string.
- */
- sealed class Arg {
- /** A string resource to be used as the argument */
- class Resource(@StringRes val id: Int) : Arg()
- /** A string value to be used as the argument */
- class Value(val string: String) : Arg()
-
- /** Resolve this argument instance into a string. */
- fun resolve(context: Context): String {
- return when (this) {
- is Resource -> context.getString(id)
- is Value -> string
- }
- }
-
- override fun equals(other: Any?): Boolean {
- if (this === other) return false
-
- return when (this) {
- is Resource -> other is Resource && other.id == id
- is Value -> other is Value && other.string == this.string
- }
- }
-
- override fun hashCode(): Int {
- return when (this) {
- is Resource -> id.hashCode()
- is Value -> 31 * string.hashCode()
- }
- }
- }
-}
diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt
index a741adafe..8f7fe8597 100644
--- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt
+++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt
@@ -214,7 +214,6 @@ class PlaybackViewModel : ViewModel(), PlaybackStateManager.Callback {
*/
fun removeQueueDataItem(adapterIndex: Int, apply: () -> Unit) {
val adjusted = adapterIndex + (playbackManager.queue.size - mNextUp.value!!.size)
- logD("$adjusted")
if (adjusted in playbackManager.queue.indices) {
apply()
diff --git a/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt b/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt
index 307285400..3c5f6ab51 100644
--- a/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt
+++ b/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt
@@ -284,7 +284,6 @@ class PlaybackStateManager private constructor() {
if (index > mQueue.size || index < 0) {
logE("Index is out of bounds, did not remove queue item.")
-
return false
}
@@ -301,7 +300,6 @@ class PlaybackStateManager private constructor() {
fun moveQueueItems(from: Int, to: Int): Boolean {
if (from > mQueue.size || from < 0 || to > mQueue.size || to < 0) {
logE("Indices were out of bounds, did not move queue item")
-
return false
}
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 61e7dda93..d09bb027f 100644
--- a/app/src/main/java/org/oxycblt/auxio/search/SearchViewModel.kt
+++ b/app/src/main/java/org/oxycblt/auxio/search/SearchViewModel.kt
@@ -27,7 +27,6 @@ import kotlinx.coroutines.launch
import org.oxycblt.auxio.R
import org.oxycblt.auxio.music.BaseModel
import org.oxycblt.auxio.music.Header
-import org.oxycblt.auxio.music.HeaderString
import org.oxycblt.auxio.music.Music
import org.oxycblt.auxio.music.MusicParent
import org.oxycblt.auxio.music.MusicStore
@@ -85,28 +84,28 @@ class SearchViewModel : ViewModel() {
if (mFilterMode == null || mFilterMode == DisplayMode.SHOW_ARTISTS) {
musicStore.artists.filterByOrNull(query)?.let { artists ->
- results.add(Header(-1, HeaderString.Single(R.string.lbl_artists)))
+ results.add(Header(-1, R.string.lbl_artists))
results.addAll(sort.sortParents(artists))
}
}
if (mFilterMode == null || mFilterMode == DisplayMode.SHOW_ALBUMS) {
musicStore.albums.filterByOrNull(query)?.let { albums ->
- results.add(Header(-2, HeaderString.Single(R.string.lbl_albums)))
+ results.add(Header(-2, R.string.lbl_albums))
results.addAll(sort.sortAlbums(albums))
}
}
if (mFilterMode == null || mFilterMode == DisplayMode.SHOW_GENRES) {
musicStore.genres.filterByOrNull(query)?.let { genres ->
- results.add(Header(-3, HeaderString.Single(R.string.lbl_genres)))
+ results.add(Header(-3, R.string.lbl_genres))
results.addAll(sort.sortParents(genres))
}
}
if (mFilterMode == null || mFilterMode == DisplayMode.SHOW_SONGS) {
musicStore.songs.filterByOrNull(query)?.let { songs ->
- results.add(Header(-4, HeaderString.Single(R.string.lbl_songs)))
+ results.add(Header(-4, R.string.lbl_songs))
results.addAll(sort.sortSongs(songs))
}
}
diff --git a/app/src/main/res/font/inter.ttf b/app/src/main/res/font/inter.ttf
deleted file mode 100644
index 96fd6a12d..000000000
Binary files a/app/src/main/res/font/inter.ttf and /dev/null differ
diff --git a/app/src/main/res/font/inter_semibold.ttf b/app/src/main/res/font/inter_semibold.ttf
deleted file mode 100644
index ddb279290..000000000
Binary files a/app/src/main/res/font/inter_semibold.ttf and /dev/null differ
diff --git a/app/src/main/res/layout-sw600dp/item_detail.xml b/app/src/main/res/layout-sw600dp/item_detail.xml
index e798c2e6d..ed00e99af 100644
--- a/app/src/main/res/layout-sw600dp/item_detail.xml
+++ b/app/src/main/res/layout-sw600dp/item_detail.xml
@@ -24,7 +24,6 @@
style="@style/Widget.Auxio.TextView.Detail"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:fontFamily="@font/inter_semibold"
android:layout_marginStart="@dimen/spacing_medium"
android:ellipsize="end"
android:maxLines="1"
diff --git a/app/src/main/res/layout/item_action_header.xml b/app/src/main/res/layout/item_action_header.xml
index 638780b2b..42e3d1b2b 100644
--- a/app/src/main/res/layout/item_action_header.xml
+++ b/app/src/main/res/layout/item_action_header.xml
@@ -20,7 +20,7 @@
style="@style/Widget.Auxio.TextView.Header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:text="@{header.string.resolve(context)}"
+ android:text="@{context.getString(header.string)}"
app:layout_constraintBottom_toTopOf="@id/header_divider"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
diff --git a/app/src/main/res/layout/item_album_song.xml b/app/src/main/res/layout/item_album_song.xml
index 09e219ba8..ac8cf7af7 100644
--- a/app/src/main/res/layout/item_album_song.xml
+++ b/app/src/main/res/layout/item_album_song.xml
@@ -24,7 +24,7 @@
android:text="@{String.valueOf(song.track)}"
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.Auxio.TitleMidLarge"
- android:fontFamily="@font/inter"
+ android:fontFamily="sans-serif"
android:textColor="@color/sel_accented_secondary"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
diff --git a/app/src/main/res/layout/item_header.xml b/app/src/main/res/layout/item_header.xml
index 383e82961..d33f346e1 100644
--- a/app/src/main/res/layout/item_header.xml
+++ b/app/src/main/res/layout/item_header.xml
@@ -20,7 +20,7 @@
style="@style/Widget.Auxio.TextView.Header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:text="@{header.string.resolve(context)}"
+ android:text="@{context.getString(header.string)}"
app:layout_constraintBottom_toTopOf="@id/header_divider"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
diff --git a/app/src/main/res/layout/widget_default.xml b/app/src/main/res/layout/widget_default.xml
index f02d3bf98..abf8a9794 100644
--- a/app/src/main/res/layout/widget_default.xml
+++ b/app/src/main/res/layout/widget_default.xml
@@ -25,7 +25,6 @@
android:padding="@dimen/spacing_medium"
android:text="@string/def_playback"
android:textAppearance="@style/TextAppearance.Auxio.TitleMidLarge"
- android:textColor="?android:attr/textColorPrimary"
- android:textStyle="bold" />
+ android:textColor="?android:attr/textColorPrimary" />
diff --git a/app/src/main/res/values/styles_android.xml b/app/src/main/res/values/styles_android.xml
index 37275b1e6..598557730 100644
--- a/app/src/main/res/values/styles_android.xml
+++ b/app/src/main/res/values/styles_android.xml
@@ -16,7 +16,7 @@
@@ -39,7 +39,7 @@
diff --git a/app/src/main/res/values/typography.xml b/app/src/main/res/values/typography.xml
index 0d240ad40..07cead865 100644
--- a/app/src/main/res/values/typography.xml
+++ b/app/src/main/res/values/typography.xml
@@ -2,98 +2,81 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
\ No newline at end of file