diff --git a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt index a69bc1d3a..899f4b988 100644 --- a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt @@ -15,17 +15,10 @@ import org.oxycblt.auxio.songs.SongsFragment class MainFragment : Fragment() { - private val shownFragments = listOf( - 0, 1 - ) + private val shownFragments = listOf(0, 1) - private val libraryFragment: LibraryFragment by lazy { - LibraryFragment() - } - - private val songsFragment: SongsFragment by lazy { - SongsFragment() - } + private val libraryFragment: LibraryFragment by lazy { LibraryFragment() } + private val songsFragment: SongsFragment by lazy { SongsFragment() } override fun onCreateView( inflater: LayoutInflater, @@ -44,31 +37,28 @@ class MainFragment : Fragment() { return binding.root } - private fun getFragment(pos: Int): Fragment { - if (shownFragments.contains(pos)) { - return when (pos) { - 0 -> libraryFragment - 1 -> songsFragment - - else -> libraryFragment - } - } - - // Not sure how this would happen but it might - Log.e( - this::class.simpleName, - "Something went terribly wrong while swapping fragments, Substituting with libraryFragment." - ) - - return libraryFragment - } - private inner class PagerAdapter(activity: FragmentActivity) : FragmentStateAdapter(activity) { override fun getItemCount(): Int = shownFragments.size override fun createFragment(position: Int): Fragment { Log.d(this::class.simpleName, "Switching to fragment $position.") - return getFragment(position) + + if (shownFragments.contains(position)) { + return when (position) { + 0 -> libraryFragment + 1 -> songsFragment + + else -> libraryFragment + } + } + + // Not sure how this would happen but it might + Log.e( + this::class.simpleName, + "Attempted to index a fragment that shouldn't be shown. Returning libraryFragment." + ) + + return libraryFragment } } } diff --git a/app/src/main/java/org/oxycblt/auxio/music/MusicUtils.kt b/app/src/main/java/org/oxycblt/auxio/music/MusicUtils.kt index f5d0df530..d09667545 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/MusicUtils.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/MusicUtils.kt @@ -11,7 +11,7 @@ import org.oxycblt.auxio.R import org.oxycblt.auxio.music.models.Album import org.oxycblt.auxio.music.models.Song -private val ID3_GENRES = arrayOf( +private val ID3_GENRES = arrayOf( "Blues", "Classic Rock", "Country", "Dance", "Disco", "Funk", "Grunge", "Hip-Hop", "Jazz", "Metal", "New Age", "Oldies", "Other", "Pop", "R&B", "Rap", "Reggae", "Rock", "Techno", "Industrial", "Alternative", "Ska", "Death Metal", "Pranks", "Soundtrack", "Euro-Techno", diff --git a/app/src/main/java/org/oxycblt/auxio/music/processing/MusicLoader.kt b/app/src/main/java/org/oxycblt/auxio/music/processing/MusicLoader.kt index a13a15965..54cb13ffd 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/processing/MusicLoader.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/processing/MusicLoader.kt @@ -21,7 +21,7 @@ enum class MusicLoaderResponse { // Class that loads music from the FileSystem. // FIXME: This thing probably has some memory leaks *somewhere* -class MusicLoader(private val app: Application) { +class MusicLoader(app: Application) { var genres = mutableListOf() var artists = mutableListOf() @@ -34,7 +34,7 @@ class MusicLoader(private val app: Application) { private var songCursor: Cursor? = null val response: MusicLoaderResponse - val resolver: ContentResolver = app.contentResolver + private val resolver: ContentResolver = app.contentResolver init { response = findMusic() @@ -82,7 +82,7 @@ class MusicLoader(private val app: Application) { // If a genre is still in an old int-based format [Android formats it as "(INT)"], // convert that to the corresponding ID3 genre. Really hope anyone doesn't have // a genre that contains parentheses. - if (name.contains(Regex("[()]"))) { + if (name.contains(Regex("[0123456789)]"))) { name = name.toNamedGenre() } diff --git a/app/src/main/java/org/oxycblt/auxio/recycler/adapters/AlbumAdapter.kt b/app/src/main/java/org/oxycblt/auxio/recycler/adapters/AlbumAdapter.kt index f63ea33dd..797fca6b4 100644 --- a/app/src/main/java/org/oxycblt/auxio/recycler/adapters/AlbumAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/recycler/adapters/AlbumAdapter.kt @@ -11,12 +11,34 @@ class AlbumAdapter(private val data: List) : RecyclerView.Adapter) : RecyclerView.Adapter - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml index 41009195c..6e947155e 100644 --- a/app/src/main/res/layout/fragment_main.xml +++ b/app/src/main/res/layout/fragment_main.xml @@ -9,6 +9,5 @@ android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" /> - \ No newline at end of file diff --git a/app/src/main/res/layout/song_item.xml b/app/src/main/res/layout/song_item.xml index effaeeb8c..74bb97cf7 100644 --- a/app/src/main/res/layout/song_item.xml +++ b/app/src/main/res/layout/song_item.xml @@ -30,12 +30,17 @@ android:id="@+id/song_name" android:layout_width="0dp" android:layout_height="wrap_content" - android:text="@{song.title}" android:layout_marginStart="@dimen/margin_medium" + android:ellipsize="end" + android:maxLines="1" + android:text="@{song.title}" android:textAppearance="?android:attr/textAppearanceListItem" android:textColor="?android:attr/textColorPrimary" + app:layout_constraintBottom_toTopOf="@+id/song_info" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/cover" app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_chainStyle="packed" tools:text="Song Name" /> diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 130355c68..631b7e2e7 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -7,8 +7,8 @@ 8dp 16dp - 64dp 44dp + 56dp 4dp \ No newline at end of file