diff --git a/res/values/strings.xml b/res/values/strings.xml index 589125362204c5495593a1ec5abb89d6a410be63..dce326e97c4d2201637c433b4e57dfd8f4125144 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -172,4 +172,6 @@ %1$s %2$s Music playback + + Unknown diff --git a/src/org/lineageos/eleven/loaders/AlbumLoader.java b/src/org/lineageos/eleven/loaders/AlbumLoader.java index 41e7b20a8d13c69e6a640d1a4f9b6ec5b0c2af15..2707512b4478fae244c4235e271aa2a1a172481f 100644 --- a/src/org/lineageos/eleven/loaders/AlbumLoader.java +++ b/src/org/lineageos/eleven/loaders/AlbumLoader.java @@ -99,7 +99,7 @@ public class AlbumLoader extends SectionCreator.SimpleListLoader { } // Create a new album and add everything up - final Album album = new Album(id, albumName, artist, songCount, year); + final Album album = new Album(getContext(), id, albumName, artist, songCount, year); mAlbumsList.add(album); } while (cursor.moveToNext()); } diff --git a/src/org/lineageos/eleven/loaders/AlbumSongLoader.java b/src/org/lineageos/eleven/loaders/AlbumSongLoader.java index 568500d065dd680231a10cd302b4aa67afeea82c..7d66ea01c133e86daa1154de9b98086764be3080 100644 --- a/src/org/lineageos/eleven/loaders/AlbumSongLoader.java +++ b/src/org/lineageos/eleven/loaders/AlbumSongLoader.java @@ -88,7 +88,8 @@ public class AlbumSongLoader extends WrappedAsyncTaskLoader> { final int year = cursor.getInt(5); // Create a new song - final Song song = new Song(id, songName, artist, album, mAlbumID, seconds, year); + final Song song = new Song(getContext(), id, songName, artist, album, mAlbumID, + seconds, year); // Add everything up mSongList.add(song); diff --git a/src/org/lineageos/eleven/loaders/LastAddedLoader.java b/src/org/lineageos/eleven/loaders/LastAddedLoader.java index 584b8665ef1e6be33a73657533db14898a2ab206..98806557ec7d6c3eac27a1faa6f727ebca7986f0 100644 --- a/src/org/lineageos/eleven/loaders/LastAddedLoader.java +++ b/src/org/lineageos/eleven/loaders/LastAddedLoader.java @@ -84,8 +84,8 @@ public class LastAddedLoader extends SectionCreator.SimpleListLoader { final int year = cursor.getInt(6); // Create a new song - final Song song = new Song(id, songName, artist, album, albumId, durationInSecs, - year); + final Song song = new Song(getContext(), id, songName, artist, album, albumId, + durationInSecs, year); // Add everything up mSongList.add(song); diff --git a/src/org/lineageos/eleven/loaders/PlaylistSongLoader.java b/src/org/lineageos/eleven/loaders/PlaylistSongLoader.java index c27f0d54d122bca4666dd4f163f9a8ca770c21bd..ac6c1f9e1599ca03a2a3295752f87604f3f041eb 100644 --- a/src/org/lineageos/eleven/loaders/PlaylistSongLoader.java +++ b/src/org/lineageos/eleven/loaders/PlaylistSongLoader.java @@ -150,8 +150,8 @@ public class PlaylistSongLoader extends WrappedAsyncTaskLoader> { .getColumnIndexOrThrow(AudioColumns.YEAR)); // Create a new song - final Song song = new Song(id, songName, artist, album, albumId, durationInSecs, - year); + final Song song = new Song(getContext(), id, songName, artist, album, albumId, + durationInSecs, year); // Add everything up mSongList.add(song); diff --git a/src/org/lineageos/eleven/loaders/QueueLoader.java b/src/org/lineageos/eleven/loaders/QueueLoader.java index ac4c3f2116a00da0aee91f979ce4d87e31f08f3b..6a9f379de4dcaffe1797888ca6d259036533910a 100644 --- a/src/org/lineageos/eleven/loaders/QueueLoader.java +++ b/src/org/lineageos/eleven/loaders/QueueLoader.java @@ -79,8 +79,8 @@ public class QueueLoader extends WrappedAsyncTaskLoader> { final int year = cursor.getInt(6); // Create a new song - final Song song = new Song(id, songName, artist, album, albumId, durationInSecs, - year); + final Song song = new Song(getContext(), id, songName, artist, album, albumId, + durationInSecs, year); // Add everything up mSongList.add(song); diff --git a/src/org/lineageos/eleven/loaders/SongLoader.java b/src/org/lineageos/eleven/loaders/SongLoader.java index 35f9315942db6e8b7e051a37bf6478ab074ecc26..281c3658c375ec3a05920d35887cd37a9988dc0e 100644 --- a/src/org/lineageos/eleven/loaders/SongLoader.java +++ b/src/org/lineageos/eleven/loaders/SongLoader.java @@ -103,7 +103,7 @@ public class SongLoader extends SectionCreator.SimpleListLoader { final int year = cursor.getInt(6); // Create a new song - final Song song = new Song(id, songName, artist, album, albumId, + final Song song = new Song(getContext(), id, songName, artist, album, albumId, durationInSecs, year); if (cursor instanceof SortedCursor) { diff --git a/src/org/lineageos/eleven/model/Album.java b/src/org/lineageos/eleven/model/Album.java index 356f4710a75eccef0cea485ef95a0a65abe58cc7..6aa706afd41ed2827355d97bcdde51693bffe64f 100644 --- a/src/org/lineageos/eleven/model/Album.java +++ b/src/org/lineageos/eleven/model/Album.java @@ -17,8 +17,13 @@ */ package org.lineageos.eleven.model; +import android.content.Context; +import android.provider.MediaStore; + import androidx.annotation.NonNull; +import org.lineageos.eleven.R; + import java.util.Objects; /** @@ -62,14 +67,18 @@ public class Album { * @param songNumber The number of songs in the album * @param albumYear The year the album was released */ - public Album(final long albumId, final String albumName, final String artistName, - final int songNumber, final String albumYear) { + public Album(final Context context, final long albumId, final String albumName, + final String artistName, final int songNumber, final String albumYear) { super(); mAlbumId = albumId; mAlbumName = albumName; - mArtistName = artistName; mSongNumber = songNumber; mYear = albumYear; + if (MediaStore.UNKNOWN_STRING.equals(artistName)) { + mArtistName = context.getResources().getString(R.string.unknown_metadata); + } else { + mArtistName = artistName; + } } @Override diff --git a/src/org/lineageos/eleven/model/Song.java b/src/org/lineageos/eleven/model/Song.java index 7baea326dc749d74835b099ad436d03ec1d88af7..be9a03d29075c37b79a7ce02df0b2b704009e2cf 100644 --- a/src/org/lineageos/eleven/model/Song.java +++ b/src/org/lineageos/eleven/model/Song.java @@ -17,8 +17,13 @@ */ package org.lineageos.eleven.model; +import android.content.Context; +import android.provider.MediaStore; + import androidx.annotation.NonNull; +import org.lineageos.eleven.R; + import java.util.Objects; /** @@ -79,15 +84,20 @@ public class Song { * @param duration The duration of a song in seconds * @param year The year the song was recorded */ - public Song(final long songId, final String songName, final String artistName, + public Song(Context context, final long songId, final String songName, final String artistName, final String albumName, final long albumId, final int duration, final int year) { mSongId = songId; mSongName = songName; - mArtistName = artistName; mAlbumName = albumName; mAlbumId = albumId; mDuration = duration; mYear = year; + + if (MediaStore.UNKNOWN_STRING.equals(artistName)) { + mArtistName = context.getResources().getString(R.string.unknown_metadata); + } else { + mArtistName = artistName; + } } @Override diff --git a/src/org/lineageos/eleven/ui/fragments/AlbumDetailFragment.java b/src/org/lineageos/eleven/ui/fragments/AlbumDetailFragment.java index 894d017f3dbd51a955fea4d45f69c8f3e7b2469a..badeb70baead073d64c2546d5d4f91c25c0e4b49 100644 --- a/src/org/lineageos/eleven/ui/fragments/AlbumDetailFragment.java +++ b/src/org/lineageos/eleven/ui/fragments/AlbumDetailFragment.java @@ -94,7 +94,7 @@ public class AlbumDetailFragment extends DetailFragment implements IChildFragmen protected PopupMenuHelper createActionMenuHelper() { return new AlbumPopupMenuHelper(getActivity(), getChildFragmentManager()) { public Album getAlbum(int position) { - return new Album(mAlbumId, mAlbumName, mArtistName, -1, null); + return new Album(getContext(), mAlbumId, mAlbumName, mArtistName, -1, null); } }; }