diff --git a/res/drawable-hdpi/ic_launcher_background.png b/res/drawable-hdpi/ic_launcher_background.png
new file mode 100644
index 0000000000000000000000000000000000000000..81a2dd3ec5d5510f7b8b22d21a3d2a78f5fa7eae
Binary files /dev/null and b/res/drawable-hdpi/ic_launcher_background.png differ
diff --git a/res/drawable-hdpi/ic_launcher_foreground.png b/res/drawable-hdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..c9b91eac962345b85ba1f015fe82d4064f14a4b6
Binary files /dev/null and b/res/drawable-hdpi/ic_launcher_foreground.png differ
diff --git a/res/drawable-mdpi/ic_launcher_background.png b/res/drawable-mdpi/ic_launcher_background.png
new file mode 100644
index 0000000000000000000000000000000000000000..cec448828a5f949d4aadeb4fe8fb293b1cc550e0
Binary files /dev/null and b/res/drawable-mdpi/ic_launcher_background.png differ
diff --git a/res/drawable-mdpi/ic_launcher_foreground.png b/res/drawable-mdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..1faa459d60d008884f0790de289b1ceec85ce8d2
Binary files /dev/null and b/res/drawable-mdpi/ic_launcher_foreground.png differ
diff --git a/res/drawable-xhdpi/ic_launcher_background.png b/res/drawable-xhdpi/ic_launcher_background.png
new file mode 100644
index 0000000000000000000000000000000000000000..103d35d4af08fbb810d11cda6ffc66e6dd63e793
Binary files /dev/null and b/res/drawable-xhdpi/ic_launcher_background.png differ
diff --git a/res/drawable-xhdpi/ic_launcher_foreground.png b/res/drawable-xhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..072cce2ebb1758106a96c2a27093c79a808c613b
Binary files /dev/null and b/res/drawable-xhdpi/ic_launcher_foreground.png differ
diff --git a/res/drawable-xxhdpi/ic_launcher_background.png b/res/drawable-xxhdpi/ic_launcher_background.png
new file mode 100644
index 0000000000000000000000000000000000000000..f9a92be1bea6ac15dd4ee94e5487379065f3f56b
Binary files /dev/null and b/res/drawable-xxhdpi/ic_launcher_background.png differ
diff --git a/res/drawable-xxhdpi/ic_launcher_foreground.png b/res/drawable-xxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..8a7ab03a8abcb7a0e17218ff69c96a2b3878e3a5
Binary files /dev/null and b/res/drawable-xxhdpi/ic_launcher_foreground.png differ
diff --git a/res/drawable-xxxhdpi/ic_launcher_background.png b/res/drawable-xxxhdpi/ic_launcher_background.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce6c4f103d9943b8f4afa050a4faff156103b7bd
Binary files /dev/null and b/res/drawable-xxxhdpi/ic_launcher_background.png differ
diff --git a/res/drawable-xxxhdpi/ic_launcher_foreground.png b/res/drawable-xxxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..94d2016f24666c480a8e700b62b752fb41ec8e9b
Binary files /dev/null and b/res/drawable-xxxhdpi/ic_launcher_foreground.png differ
diff --git a/res/drawable/ic_launcher_background.xml b/res/drawable/ic_launcher_background.xml
deleted file mode 100644
index 3275d87d71f594c26c76d5ee48f517466618dca8..0000000000000000000000000000000000000000
--- a/res/drawable/ic_launcher_background.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
diff --git a/res/drawable/ic_launcher_foreground.xml b/res/drawable/ic_launcher_foreground.xml
deleted file mode 100644
index ce461bc034a4a275ecce6df8cc5c9c3148f50ec7..0000000000000000000000000000000000000000
--- a/res/drawable/ic_launcher_foreground.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/res/drawable/ic_launcher_monochrome.xml b/res/drawable/ic_launcher_monochrome.xml
deleted file mode 100644
index 37fc89bc66d0e682ceb8254f9e53168c31764b8a..0000000000000000000000000000000000000000
--- a/res/drawable/ic_launcher_monochrome.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
diff --git a/res/mipmap-anydpi/ic_launcher.xml b/res/mipmap-anydpi/ic_launcher.xml
index b58c81ff94fc2cd9353409539d491f43b91966a5..5fff407ad20d538167d5295bbb5c30b1c4a21a59 100644
--- a/res/mipmap-anydpi/ic_launcher.xml
+++ b/res/mipmap-anydpi/ic_launcher.xml
@@ -1,10 +1,20 @@
+ ~ Copyright Murena SAS 2024
+ ~ This program is free software: you can redistribute it and/or modify
+ ~ it under the terms of the GNU General Public License as published by
+ ~ the Free Software Foundation, either version 3 of the License, or
+ ~ (at your option) any later version.
+ ~
+ ~ This program is distributed in the hope that it will be useful,
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ ~ GNU General Public License for more details.
+ ~
+ ~ You should have received a copy of the GNU General Public License
+ ~ along with this program. If not, see .
+ -->
-
diff --git a/res/values-de/e_strings.xml b/res/values-de/e_strings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cc32355d3ce3a0fbf42e000831e7ce716f26f7e9
--- /dev/null
+++ b/res/values-de/e_strings.xml
@@ -0,0 +1,19 @@
+
+
+
+ Unbekannt
+
\ No newline at end of file
diff --git a/res/values-is/e_strings.xml b/res/values-is/e_strings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..18b8e86684e5305139fea4c159d95f4c050b4541
--- /dev/null
+++ b/res/values-is/e_strings.xml
@@ -0,0 +1,19 @@
+
+
+
+ Óþekkt
+
\ No newline at end of file
diff --git a/res/values-it/e_strings.xml b/res/values-it/e_strings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..01524d46b1601cffa720c87594085400d71d4bcc
--- /dev/null
+++ b/res/values-it/e_strings.xml
@@ -0,0 +1,18 @@
+
+
+ Sconosciuto
+
\ No newline at end of file
diff --git a/res/values-ja/e_strings.xml b/res/values-ja/e_strings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..48368b059cbc0f9adac91cd6a36535d77c09ed6f
--- /dev/null
+++ b/res/values-ja/e_strings.xml
@@ -0,0 +1,4 @@
+
+
+ 不明
+
\ No newline at end of file
diff --git a/res/values-nl/e_strings.xml b/res/values-nl/e_strings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4495045a695a02c3d191105b6c4d8728838c4b09
--- /dev/null
+++ b/res/values-nl/e_strings.xml
@@ -0,0 +1,19 @@
+
+
+
+ Onbekend
+
\ No newline at end of file
diff --git a/res/values-sv/e_strings.xml b/res/values-sv/e_strings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d68f467c040546dfc6128b47ed45534a0333af79
--- /dev/null
+++ b/res/values-sv/e_strings.xml
@@ -0,0 +1,4 @@
+
+
+ Okänd
+
\ No newline at end of file
diff --git a/res/values-uk/e_strings.xml b/res/values-uk/e_strings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e512e3396cf49ca7bd33c07bba4a1a7ace0d9a7b
--- /dev/null
+++ b/res/values-uk/e_strings.xml
@@ -0,0 +1,4 @@
+
+
+ Невідомий
+
\ No newline at end of file
diff --git a/res/values/e_strings.xml b/res/values/e_strings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6f9477e08defbc557bafaaa9856c74948733ee53
--- /dev/null
+++ b/res/values/e_strings.xml
@@ -0,0 +1,19 @@
+
+
+
+ Unknown
+
\ No newline at end of file
diff --git a/src/org/lineageos/eleven/MusicPlaybackService.java b/src/org/lineageos/eleven/MusicPlaybackService.java
index 1e943332678dc24a9accad9623e282b098ca973f..ddd1960fcf9c79f63b1900ad6f43d87f881f8fe8 100644
--- a/src/org/lineageos/eleven/MusicPlaybackService.java
+++ b/src/org/lineageos/eleven/MusicPlaybackService.java
@@ -1586,7 +1586,7 @@ public class MusicPlaybackService extends MediaBrowserService
final Intent intent = new Intent(what);
intent.putExtra("id", getAudioId());
- intent.putExtra("artist", getArtistName());
+ intent.putExtra("artist", getArtistName(getApplicationContext()));
intent.putExtra("album", getAlbumName());
intent.putExtra("track", getTrackName());
intent.putExtra("playing", isPlaying());
@@ -1678,7 +1678,8 @@ public class MusicPlaybackService extends MediaBrowserService
}
mSession.setMetadata(new MediaMetadata.Builder()
- .putString(MediaMetadata.METADATA_KEY_ARTIST, getArtistName())
+ .putString(MediaMetadata.METADATA_KEY_ARTIST,
+ getArtistName(getApplicationContext()))
.putString(MediaMetadata.METADATA_KEY_ALBUM_ARTIST, getAlbumArtistName())
.putString(MediaMetadata.METADATA_KEY_ALBUM, getAlbumName())
.putString(MediaMetadata.METADATA_KEY_TITLE, getTrackName())
@@ -1707,7 +1708,7 @@ public class MusicPlaybackService extends MediaBrowserService
private Notification buildNotification() {
final String albumName = getAlbumName();
- final String artistName = getArtistName();
+ final String artistName = getArtistName(getApplicationContext());
final boolean isPlaying = isPlaying();
String text = TextUtils.isEmpty(albumName)
? artistName : artistName + " - " + albumName;
@@ -2243,12 +2244,18 @@ public class MusicPlaybackService extends MediaBrowserService
*
* @return The current song artist name
*/
- public String getArtistName() {
+ public String getArtistName(Context context) {
synchronized (this) {
if (mCursor == null) {
return null;
}
- return mCursor.getString(mCursor.getColumnIndexOrThrow(AudioColumns.ARTIST));
+ String artistName =
+ mCursor.getString(mCursor.getColumnIndexOrThrow(AudioColumns.ARTIST));
+
+ if (artistName.equals(MediaStore.UNKNOWN_STRING)) {
+ artistName = context.getResources().getString(R.string.unknown_metadata);
+ }
+ return artistName;
}
}
@@ -2944,7 +2951,7 @@ public class MusicPlaybackService extends MediaBrowserService
*/
public BitmapWithColors getAlbumArt(boolean smallBitmap) {
final String albumName = getAlbumName();
- final String artistName = getArtistName();
+ final String artistName = getArtistName(getApplicationContext());
final long albumId = getAlbumId();
final String key = albumName + "_" + artistName + "_" + albumId;
final int targetIndex = smallBitmap ? 0 : 1;
@@ -3865,7 +3872,7 @@ public class MusicPlaybackService extends MediaBrowserService
@Override
public String getArtistName() {
- return mService.get().getArtistName();
+ return mService.get().getArtistName(mService.get());
}
@Override
diff --git a/src/org/lineageos/eleven/appwidgets/AppWidgetLarge.java b/src/org/lineageos/eleven/appwidgets/AppWidgetLarge.java
index 0ab18eab39f31d0c3c418eaa025d570496c8ee89..8a7f15bb7b717dcba7758b2b45fcff9af7846c25 100644
--- a/src/org/lineageos/eleven/appwidgets/AppWidgetLarge.java
+++ b/src/org/lineageos/eleven/appwidgets/AppWidgetLarge.java
@@ -114,7 +114,7 @@ public class AppWidgetLarge extends AppWidgetBase {
R.layout.app_widget_large);
final CharSequence trackName = service.getTrackName();
- final CharSequence artistName = service.getArtistName();
+ final CharSequence artistName = service.getArtistName(service);
final CharSequence albumName = service.getAlbumName();
final Bitmap bitmap = service.getAlbumArt(true).getBitmap();
diff --git a/src/org/lineageos/eleven/appwidgets/AppWidgetLargeAlternate.java b/src/org/lineageos/eleven/appwidgets/AppWidgetLargeAlternate.java
index 1616f83838d70ad52b6dc1bae4f3b3d8c108b91d..bead4bedc120a211d0df9d2e91da3f4c1a3aad3c 100644
--- a/src/org/lineageos/eleven/appwidgets/AppWidgetLargeAlternate.java
+++ b/src/org/lineageos/eleven/appwidgets/AppWidgetLargeAlternate.java
@@ -119,7 +119,7 @@ public class AppWidgetLargeAlternate extends AppWidgetBase {
R.layout.app_widget_large_alternate);
final CharSequence trackName = service.getTrackName();
- final CharSequence artistName = service.getArtistName();
+ final CharSequence artistName = service.getArtistName(service);
final CharSequence albumName = service.getAlbumName();
final Bitmap bitmap = service.getAlbumArt(true).getBitmap();
diff --git a/src/org/lineageos/eleven/appwidgets/AppWidgetSmall.java b/src/org/lineageos/eleven/appwidgets/AppWidgetSmall.java
index 1f3a6cb229f9f59b8642119a0a0a341d463c5022..4e39d331ba8f609d633dc08ca2712e64c74c0e8c 100644
--- a/src/org/lineageos/eleven/appwidgets/AppWidgetSmall.java
+++ b/src/org/lineageos/eleven/appwidgets/AppWidgetSmall.java
@@ -116,7 +116,7 @@ public class AppWidgetSmall extends AppWidgetBase {
final CharSequence trackName = service.getTrackName();
final CharSequence albumName = service.getAlbumName();
- final CharSequence artistName = service.getArtistName();
+ final CharSequence artistName = service.getArtistName(service);
final Bitmap bitmap = service.getAlbumArt(true).getBitmap();
// Set the titles and artwork
diff --git a/src/org/lineageos/eleven/loaders/AlbumLoader.java b/src/org/lineageos/eleven/loaders/AlbumLoader.java
index b97d28d874b1ac38a317c35b3180bf2ac09d5b0e..58b409e409d13d57b6ab37db0c20e5af65ba837e 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 0be86b14d3af7cae8bfc39b9751b58465e1ee8ea..19a3d1f1996b5e3732c4dcb0a8c0ab9309caf56a 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 708f55fea0966a60407da7179458887a0a9597b9..f5176cbb8bbdec09d0a08053950ec5e069e61911 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 a248f86300b4ca2b63852a2320967415cedd973c..3ec3c7d36dd9172bce938f2524fb0ad60d326e59 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 c79ea7813b2311dd83547e1c3fed4fa37ff2be2d..3deb0ea099b11a7746aa0a02f80b211cd9b2198d 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 35d180fef9f5ce2df49ddc0709f80f490a7daea0..6be8ec8082aae1b5152bf869aa8db7596845cc50 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 d91c5375a2581fd53724b95ec0a13837ff349cdc..4545f3de8172f4cf6b45f75db407a6365ddea1f5 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
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);
}
};
}