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 fe221679fd6065d5b8d5292b615ce0fffb796ede..d385fdd71dc1a4a32c203f1f0a68c704259fee28 100644
--- a/src/org/lineageos/eleven/loaders/AlbumLoader.java
+++ b/src/org/lineageos/eleven/loaders/AlbumLoader.java
@@ -100,7 +100,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 de17c5133f245829e27cb403c73c04d3cc1ac48b..465e34772d85d411e4c4f0c2c750b84ebaf63c60 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 19ac9ac4761efa199d428256f9b17842720f2f65..9efff456c0122588ceaff5691f50235fc6a8d07e 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 8208b895830b5b361a67e4db42356aa14cdf96ca..6a9f379de4dcaffe1797888ca6d259036533910a 100644
--- a/src/org/lineageos/eleven/loaders/QueueLoader.java
+++ b/src/org/lineageos/eleven/loaders/QueueLoader.java
@@ -79,7 +79,7 @@ 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,
+ final Song song = new Song(getContext(), id, songName, artist, album, albumId,
durationInSecs, year);
// Add everything up
diff --git a/src/org/lineageos/eleven/loaders/SongLoader.java b/src/org/lineageos/eleven/loaders/SongLoader.java
index 3021ece840adb3e4576f9483baa5be87f8a6ff89..bbd83bf3002a808645973aef03aa9c52e5985d65 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 17ffbed64a551f513c50203074f8626a8d932257..dab23d3c3d07a0e419b0f5053e3b03a21f66e5e3 100644
--- a/src/org/lineageos/eleven/model/Album.java
+++ b/src/org/lineageos/eleven/model/Album.java
@@ -18,8 +18,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;
/**
@@ -63,14 +68,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 9490c29af975b9453c13f0dc1cfff8fd8e4a2fe2..11e8aff535337d7b38a33febdba99e0b2c5f14bb 100644
--- a/src/org/lineageos/eleven/model/Song.java
+++ b/src/org/lineageos/eleven/model/Song.java
@@ -18,8 +18,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;
/**
@@ -80,15 +85,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 9d6612f7816afbc70b8b825af9e28549006913d7..a1fd3af65155829877dcf33ec05ea749f8c44e98 100644
--- a/src/org/lineageos/eleven/ui/fragments/AlbumDetailFragment.java
+++ b/src/org/lineageos/eleven/ui/fragments/AlbumDetailFragment.java
@@ -92,7 +92,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);
}
};
}