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);
}
};
}