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