diff --git a/BUGS.md b/BUGS.md index 85ac7a3..670c250 100644 --- a/BUGS.md +++ b/BUGS.md @@ -1,6 +1,6 @@ # Bugs -- annotation playback: check what happens if some songs are not paired in the playlist. I believe the index is wrong and the player plays a different song from what is displayed as title and artist. +X> annotation playback: check what happens if some songs are not paired in the playlist. I believe the index is wrong and the player plays a different song from what is displayed as title and artist. - syncJukeboxIfToken() is always called at startup, even if we have a jukebox already diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b4daf1d..9cce0a1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -20,7 +20,7 @@ android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" - android:roundIcon="@mipmap/ic_launcher" + android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.LockstepPlayer"> + + + + diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..3ff5542 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png index fcb0918..df5bd1c 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..2ef2ace Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png index f130033..96024d9 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..c13de81 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png index 486a0b1..fbb4695 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..a4cb3cd Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index 656dd29..e0969bd 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..7e2c169 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 41f89dd..f848cd2 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..429f34f Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/media/shoe_logo4.svg b/media/shoe_logo4.svg new file mode 100644 index 0000000..a8611e0 --- /dev/null +++ b/media/shoe_logo4.svg @@ -0,0 +1,66 @@ + + + + diff --git a/scripts/generate_launcher_icons.py b/scripts/generate_launcher_icons.py new file mode 100644 index 0000000..aec8a79 --- /dev/null +++ b/scripts/generate_launcher_icons.py @@ -0,0 +1,53 @@ +"""Downscale launcher icon PNGs from mipmap-xxxhdpi masters to lower densities.""" +from __future__ import annotations + +from pathlib import Path + +from PIL import Image + +ROOT = Path(__file__).resolve().parents[1] +RES = ROOT / "app" / "src" / "main" / "res" +SOURCE_FOLDER = "mipmap-xxxhdpi" + +SOURCES = { + "ic_launcher.png": { + "mipmap-xxxhdpi": 192, + "mipmap-xxhdpi": 144, + "mipmap-xhdpi": 96, + "mipmap-hdpi": 72, + "mipmap-mdpi": 48, + }, + "ic_launcher_foreground.png": { + "mipmap-xxxhdpi": 432, + "mipmap-xxhdpi": 324, + "mipmap-xhdpi": 216, + "mipmap-hdpi": 162, + "mipmap-mdpi": 108, + }, +} + + +def main() -> None: + for filename, sizes in SOURCES.items(): + source_path = RES / SOURCE_FOLDER / filename + source = Image.open(source_path) + expected = sizes[SOURCE_FOLDER] + if source.size != (expected, expected): + raise RuntimeError( + f"{source_path} is {source.size[0]}x{source.size[1]}, expected {expected}x{expected}" + ) + + for folder, size in sizes.items(): + if folder == SOURCE_FOLDER: + continue + out_dir = RES / folder + out_dir.mkdir(parents=True, exist_ok=True) + resized = source.resize((size, size), Image.Resampling.LANCZOS) + resized.save(out_dir / filename) + print(f"Wrote {folder}/{filename} ({size}x{size})") + + print("Done.") + + +if __name__ == "__main__": + main()