diff --git a/ios/JellyfinAudioPlayer/Base.lproj/LaunchScreen.xib b/ios/JellyfinAudioPlayer/Base.lproj/LaunchScreen.xib
index acc1201..78f54b9 100644
--- a/ios/JellyfinAudioPlayer/Base.lproj/LaunchScreen.xib
+++ b/ios/JellyfinAudioPlayer/Base.lproj/LaunchScreen.xib
@@ -13,11 +13,7 @@
-
-
-
-
-
+
@@ -29,7 +25,6 @@
-
-
+
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/100.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/100.png
deleted file mode 100644
index b7ef478..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/100.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/1024.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/1024.png
deleted file mode 100644
index 83636b0..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/1024.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/114.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/114.png
deleted file mode 100644
index 1cff6f1..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/114.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/120.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/120.png
deleted file mode 100644
index c88e2aa..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/120.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/128.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/128.png
deleted file mode 100644
index 340c3fe..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/128.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/144.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/144.png
deleted file mode 100644
index 0f1b05e..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/144.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/152.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/152.png
deleted file mode 100644
index 75c65f8..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/152.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/16.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/16.png
deleted file mode 100644
index 481a82a..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/16.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/167.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/167.png
deleted file mode 100644
index 0fc53b3..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/167.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/172.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/172.png
deleted file mode 100644
index 8cd3fbb..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/172.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/180.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/180.png
deleted file mode 100644
index c13c376..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/180.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/196.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/196.png
deleted file mode 100644
index 35136a0..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/196.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/20.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/20.png
deleted file mode 100644
index b447c59..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/20.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/216.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/216.png
deleted file mode 100644
index 564a5ef..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/216.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/256.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/256.png
deleted file mode 100644
index 139cbec..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/256.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/29.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/29.png
deleted file mode 100644
index 44849cb..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/29.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/32.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/32.png
deleted file mode 100644
index b23f0ca..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/32.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/40.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/40.png
deleted file mode 100644
index 866f6ab..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/40.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/48.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/48.png
deleted file mode 100644
index df2fc25..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/48.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/50.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/50.png
deleted file mode 100644
index 4ea2c87..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/50.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/512.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/512.png
deleted file mode 100644
index 2f57563..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/512.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/55.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/55.png
deleted file mode 100644
index f387e6c..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/55.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/57.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/57.png
deleted file mode 100644
index 5aefa82..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/57.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/58.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/58.png
deleted file mode 100644
index d71430f..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/58.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/60.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/60.png
deleted file mode 100644
index d3f77df..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/60.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/64.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/64.png
deleted file mode 100644
index 2a23f2f..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/64.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/72.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/72.png
deleted file mode 100644
index 621b18b..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/72.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/76.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/76.png
deleted file mode 100644
index 4911a0a..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/76.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/80.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/80.png
deleted file mode 100644
index 1963b4b..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/80.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/87.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/87.png
deleted file mode 100644
index b92d64c..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/87.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/88.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/88.png
deleted file mode 100644
index e2d6de3..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/88.png and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-167@2x.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-167@2x.png
new file mode 100644
index 0000000..6d79dbf
Binary files /dev/null and b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-167@2x.png differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-20.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-20.png
new file mode 100644
index 0000000..7efff98
Binary files /dev/null and b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-20.png differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-20@2x.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-20@2x.png
new file mode 100644
index 0000000..4db76dd
Binary files /dev/null and b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-20@2x.png differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-29.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-29.png
new file mode 100644
index 0000000..de1f999
Binary files /dev/null and b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-29.png differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-29@2x.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-29@2x.png
new file mode 100644
index 0000000..f57e285
Binary files /dev/null and b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-29@2x.png differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-40.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-40.png
new file mode 100644
index 0000000..4db76dd
Binary files /dev/null and b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-40.png differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-40@2x.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-40@2x.png
new file mode 100644
index 0000000..26eb924
Binary files /dev/null and b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-40@2x.png differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-76.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-76.png
new file mode 100644
index 0000000..d3ca5ba
Binary files /dev/null and b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-76.png differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-76@2x.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-76@2x.png
new file mode 100644
index 0000000..fc45cd4
Binary files /dev/null and b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIcon-iPad-76@2x.png differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconAppStore-Artwork-1024.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconAppStore-Artwork-1024.png
new file mode 100644
index 0000000..0cddea4
Binary files /dev/null and b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconAppStore-Artwork-1024.png differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-20@2x.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-20@2x.png
new file mode 100644
index 0000000..4db76dd
Binary files /dev/null and b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-20@2x.png differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-20@3x.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-20@3x.png
new file mode 100644
index 0000000..9588106
Binary files /dev/null and b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-20@3x.png differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-29@2x.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-29@2x.png
new file mode 100644
index 0000000..f57e285
Binary files /dev/null and b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-29@2x.png differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-29@3x.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-29@3x.png
new file mode 100644
index 0000000..61d530c
Binary files /dev/null and b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-29@3x.png differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-40@2x.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-40@2x.png
new file mode 100644
index 0000000..26eb924
Binary files /dev/null and b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-40@2x.png differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-40@3x.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-40@3x.png
new file mode 100644
index 0000000..81b50e4
Binary files /dev/null and b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-40@3x.png differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-60@2x.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-60@2x.png
new file mode 100644
index 0000000..81b50e4
Binary files /dev/null and b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-60@2x.png differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-60@3x.png b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-60@3x.png
new file mode 100644
index 0000000..3287a90
Binary files /dev/null and b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/AppIconiPhone-60@3x.png differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/Contents.json b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/Contents.json
index e138c0b..3b096ef 100644
--- a/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/Contents.json
+++ b/ios/JellyfinAudioPlayer/Images.xcassets/AppIcon.appiconset/Contents.json
@@ -1 +1 @@
-{"images":[{"size":"60x60","expected-size":"180","filename":"180.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"40x40","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"60x60","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"57x57","expected-size":"57","filename":"57.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"57x57","expected-size":"114","filename":"114.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"60","filename":"60.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"1024x1024","filename":"1024.png","expected-size":"1024","idiom":"ios-marketing","folder":"Assets.xcassets/AppIcon.appiconset/","scale":"1x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"72x72","expected-size":"72","filename":"72.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"76x76","expected-size":"152","filename":"152.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"50x50","expected-size":"100","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"76x76","expected-size":"76","filename":"76.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"50x50","expected-size":"50","filename":"50.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"72x72","expected-size":"144","filename":"144.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"40x40","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"83.5x83.5","expected-size":"167","filename":"167.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"20x20","expected-size":"20","filename":"20.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"idiom":"watch","filename":"172.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"38mm","scale":"2x","size":"86x86","expected-size":"172","role":"quickLook"},{"idiom":"watch","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"38mm","scale":"2x","size":"40x40","expected-size":"80","role":"appLauncher"},{"idiom":"watch","filename":"88.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"40mm","scale":"2x","size":"44x44","expected-size":"88","role":"appLauncher"},{"idiom":"watch","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"44mm","scale":"2x","size":"50x50","expected-size":"100","role":"appLauncher"},{"idiom":"watch","filename":"196.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"42mm","scale":"2x","size":"98x98","expected-size":"196","role":"quickLook"},{"idiom":"watch","filename":"216.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"44mm","scale":"2x","size":"108x108","expected-size":"216","role":"quickLook"},{"idiom":"watch","filename":"48.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"38mm","scale":"2x","size":"24x24","expected-size":"48","role":"notificationCenter"},{"idiom":"watch","filename":"55.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"42mm","scale":"2x","size":"27.5x27.5","expected-size":"55","role":"notificationCenter"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"watch","role":"companionSettings","scale":"3x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"watch","role":"companionSettings","scale":"2x"},{"size":"1024x1024","expected-size":"1024","filename":"1024.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"watch-marketing","scale":"1x"},{"size":"128x128","expected-size":"128","filename":"128.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"256x256","expected-size":"256","filename":"256.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"128x128","expected-size":"256","filename":"256.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"256x256","expected-size":"512","filename":"512.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"32x32","expected-size":"32","filename":"32.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"512x512","expected-size":"512","filename":"512.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"16x16","expected-size":"16","filename":"16.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"16x16","expected-size":"32","filename":"32.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"32x32","expected-size":"64","filename":"64.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"512x512","expected-size":"1024","filename":"1024.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"}]}
\ No newline at end of file
+{
"images": [
{
"idiom": "iphone",
"size": "20x20",
"filename": "AppIconiPhone-20@2x.png",
"scale": "2x"
},
{
"idiom": "iphone",
"size": "20x20",
"filename": "AppIconiPhone-20@3x.png",
"scale": "3x"
},
{
"idiom": "iphone",
"size": "29x29",
"filename": "AppIconiPhone-29@2x.png",
"scale": "2x"
},
{
"idiom": "iphone",
"size": "29x29",
"filename": "AppIconiPhone-29@3x.png",
"scale": "3x"
},
{
"idiom": "iphone",
"size": "40x40",
"filename": "AppIconiPhone-40@2x.png",
"scale": "2x"
},
{
"idiom": "iphone",
"size": "40x40",
"filename": "AppIconiPhone-40@3x.png",
"scale": "3x"
},
{
"idiom": "iphone",
"size": "60x60",
"filename": "AppIconiPhone-60@2x.png",
"scale": "2x"
},
{
"idiom": "iphone",
"size": "60x60",
"filename": "AppIconiPhone-60@3x.png",
"scale": "3x"
},
{
"idiom": "ipad",
"size": "20x20",
"filename": "AppIcon-iPad-20.png",
"scale": "1x"
},
{
"idiom": "ipad",
"size": "20x20",
"filename": "AppIcon-iPad-20@2x.png",
"scale": "2x"
},
{
"idiom": "ipad",
"size": "29x29",
"filename": "AppIcon-iPad-29.png",
"scale": "1x"
},
{
"idiom": "ipad",
"size": "29x29",
"filename": "AppIcon-iPad-29@2x.png",
"scale": "2x"
},
{
"idiom": "ipad",
"size": "40x40",
"filename": "AppIcon-iPad-40.png",
"scale": "1x"
},
{
"idiom": "ipad",
"size": "40x40",
"filename": "AppIcon-iPad-40@2x.png",
"scale": "2x"
},
{
"idiom": "ipad",
"size": "76x76",
"filename": "AppIcon-iPad-76.png",
"scale": "1x"
},
{
"idiom": "ipad",
"size": "76x76",
"filename": "AppIcon-iPad-76@2x.png",
"scale": "2x"
},
{
"idiom": "ipad",
"size": "83.5x83.5",
"filename": "AppIcon-iPad-167@2x.png",
"scale": "2x"
},
{
"idiom": "ios-marketing",
"size": "1024x1024",
"filename": "AppIconAppStore-Artwork-1024.png",
"scale": "1x"
}
],
"info": {
"version": 1,
"author": "xcode"
}
}
\ No newline at end of file
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/AppIconWithoutBackground.imageset/AppIcon.pdf b/ios/JellyfinAudioPlayer/Images.xcassets/AppIconWithoutBackground.imageset/AppIcon.pdf
new file mode 100644
index 0000000..783d5a6
Binary files /dev/null and b/ios/JellyfinAudioPlayer/Images.xcassets/AppIconWithoutBackground.imageset/AppIcon.pdf differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/BackgroundGradient.imageset/Contents.json b/ios/JellyfinAudioPlayer/Images.xcassets/AppIconWithoutBackground.imageset/Contents.json
similarity index 88%
rename from ios/JellyfinAudioPlayer/Images.xcassets/BackgroundGradient.imageset/Contents.json
rename to ios/JellyfinAudioPlayer/Images.xcassets/AppIconWithoutBackground.imageset/Contents.json
index 43fe06e..0cfdaf6 100644
--- a/ios/JellyfinAudioPlayer/Images.xcassets/BackgroundGradient.imageset/Contents.json
+++ b/ios/JellyfinAudioPlayer/Images.xcassets/AppIconWithoutBackground.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "BackgroundGradient.pdf",
+ "filename" : "AppIcon.pdf",
"idiom" : "universal",
"scale" : "1x"
},
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/BackgroundGradient.imageset/BackgroundGradient.pdf b/ios/JellyfinAudioPlayer/Images.xcassets/BackgroundGradient.imageset/BackgroundGradient.pdf
deleted file mode 100644
index 565e71d..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/BackgroundGradient.imageset/BackgroundGradient.pdf and /dev/null differ
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/IconWithoutBackground.imageset/Contents.json b/ios/JellyfinAudioPlayer/Images.xcassets/IconWithoutBackground.imageset/Contents.json
deleted file mode 100644
index dc090bb..0000000
--- a/ios/JellyfinAudioPlayer/Images.xcassets/IconWithoutBackground.imageset/Contents.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "images" : [
- {
- "filename" : "IconWithoutBackground.pdf",
- "idiom" : "universal",
- "scale" : "1x"
- },
- {
- "idiom" : "universal",
- "scale" : "2x"
- },
- {
- "idiom" : "universal",
- "scale" : "3x"
- }
- ],
- "info" : {
- "author" : "xcode",
- "version" : 1
- },
- "properties" : {
- "preserves-vector-representation" : true
- }
-}
diff --git a/ios/JellyfinAudioPlayer/Images.xcassets/IconWithoutBackground.imageset/IconWithoutBackground.pdf b/ios/JellyfinAudioPlayer/Images.xcassets/IconWithoutBackground.imageset/IconWithoutBackground.pdf
deleted file mode 100644
index b0bc6fa..0000000
Binary files a/ios/JellyfinAudioPlayer/Images.xcassets/IconWithoutBackground.imageset/IconWithoutBackground.pdf and /dev/null differ
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index 3b178f1..002d064 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -327,8 +327,6 @@ PODS:
- React
- RNSVG (12.1.0):
- React
- - RNTableView (3.0.0):
- - React
- SDWebImage (5.8.1):
- SDWebImage/Core (= 5.8.1)
- SDWebImage/Core (5.8.1)
@@ -398,7 +396,6 @@ DEPENDENCIES:
- RNReanimated (from `../node_modules/react-native-reanimated`)
- RNScreens (from `../node_modules/react-native-screens`)
- RNSVG (from `../node_modules/react-native-svg`)
- - RNTableView (from `../node_modules/react-native-tableview`)
- Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
SPEC REPOS:
@@ -492,8 +489,6 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native-screens"
RNSVG:
:path: "../node_modules/react-native-svg"
- RNTableView:
- :path: "../node_modules/react-native-tableview"
Yoga:
:path: "../node_modules/react-native/ReactCommon/yoga"
@@ -539,14 +534,13 @@ SPEC CHECKSUMS:
React-RCTVibration: 4356114dbcba4ce66991096e51a66e61eda51256
ReactCommon: ed4e11d27609d571e7eee8b65548efc191116eb3
RNCAsyncStorage: d059c3ee71738c39834a627476322a5a8cd5bf36
- RNCMaskedView: 5a8ec07677aa885546a0d98da336457e2bea557f
+ RNCMaskedView: f5c7d14d6847b7b44853f7acb6284c1da30a3459
RNCPicker: 55b9b4240d0a9eba8733d02616775d4040de2e7d
RNFastImage: 35ae972d6727c84ee3f5c6897e07f84d0a3445e9
RNGestureHandler: 8f09cd560f8d533eb36da5a6c5a843af9f056b38
RNReanimated: b5ccb50650ba06f6e749c7c329a1bc3ae0c88b43
RNScreens: c526239bbe0e957b988dacc8d75ac94ec9cb19da
RNSVG: ce9d996113475209013317e48b05c21ee988d42e
- RNTableView: e8723c30aec3b259222a12e7d05d763566286a46
SDWebImage: e3eae2eda88578db0685a0c88597fdadd9433f05
SDWebImageWebPCoder: 36f8f47bd9879a8aea6044765c1351120fd8e3a8
Yoga: 3ebccbdd559724312790e7742142d062476b698e
diff --git a/src/components/AlphabetScroller.tsx b/src/components/AlphabetScroller.tsx
index 7dc0cc8..89a7a0c 100644
--- a/src/components/AlphabetScroller.tsx
+++ b/src/components/AlphabetScroller.tsx
@@ -29,7 +29,7 @@ const Letter = styled.Text`
text-align: center;
padding: 1px 0;
font-size: 12px;
- color: salmon;
+ color: #FF3C00;
`;
interface Props {
diff --git a/src/components/ListButton.tsx b/src/components/ListButton.tsx
index 91a9f47..b32f2b0 100644
--- a/src/components/ListButton.tsx
+++ b/src/components/ListButton.tsx
@@ -16,8 +16,8 @@ const Container = styled.TouchableOpacity`
const ListButton: React.FC = ({ children, ...props }) => {
return (
- {children}
-
+ {children}
+
);
};
diff --git a/src/screens/Music/stacks/Album.tsx b/src/screens/Music/stacks/Album.tsx
index 1371d0f..0484019 100644
--- a/src/screens/Music/stacks/Album.tsx
+++ b/src/screens/Music/stacks/Album.tsx
@@ -2,7 +2,7 @@ import React, { useCallback, useEffect } from 'react';
import { StackParams } from '../types';
import { Text, ScrollView, Dimensions, Button, RefreshControl } from 'react-native';
import { useGetImage } from 'utility/JellyfinApi';
-import styled from 'styled-components/native';
+import styled, { css } from 'styled-components/native';
import { useRoute, RouteProp } from '@react-navigation/native';
import FastImage from 'react-native-fast-image';
import { useDispatch } from 'react-redux';
@@ -13,6 +13,7 @@ import { ALBUM_CACHE_AMOUNT_OF_DAYS } from 'CONSTANTS';
import usePlayAlbum from 'utility/usePlayAlbum';
import usePlayTrack from 'utility/usePlayTrack';
import TouchableHandler from 'components/TouchableHandler';
+import useCurrentTrack from 'utility/useCurrentTrack';
type Route = RouteProp;
@@ -25,11 +26,17 @@ const AlbumImage = styled(FastImage)`
margin: 10px auto;
`;
-const TrackContainer = styled.View`
+const TrackContainer = styled.View<{isPlaying: boolean}>`
padding: 15px;
border-bottom-width: 1px;
border-bottom-color: #eee;
flex-direction: row;
+
+ ${props => props.isPlaying && css`
+ background-color: #FF3C0016;
+ margin: 0 -20px;
+ padding: 15px 35px;
+ `}
`;
const Album: React.FC = () => {
@@ -43,6 +50,7 @@ const Album: React.FC = () => {
const dispatch = useDispatch();
const getImage = useGetImage();
const playAlbum = usePlayAlbum();
+ const currentTrack = useCurrentTrack();
// Setup callbacks
const selectAlbum = useCallback(() => { playAlbum(id); }, [playAlbum, id]);
@@ -74,8 +82,10 @@ const Album: React.FC = () => {
{album?.Tracks?.length ? album.Tracks.map((trackId) =>
-
- {tracks[trackId]?.IndexNumber}
+
+
+ {tracks[trackId]?.IndexNumber}
+
{tracks[trackId]?.Name}
diff --git a/src/screens/Player/components/ProgressBar.tsx b/src/screens/Player/components/ProgressBar.tsx
index 39a5775..1d00f37 100644
--- a/src/screens/Player/components/ProgressBar.tsx
+++ b/src/screens/Player/components/ProgressBar.tsx
@@ -72,7 +72,7 @@ export default class ProgressBar extends Component<{}, State> {
maximumValue={duration || 0}
onValueChange={this.handleGesture}
onSlidingComplete={this.handleEndOfGesture}
- minimumTrackTintColor={'#ff8c69'}
+ minimumTrackTintColor={'#FF3C00'}
disabled={!duration}
/>
diff --git a/src/screens/Player/components/Queue.tsx b/src/screens/Player/components/Queue.tsx
index 4987e09..b6d887e 100644
--- a/src/screens/Player/components/Queue.tsx
+++ b/src/screens/Player/components/Queue.tsx
@@ -13,7 +13,7 @@ const QueueItem = styled.View<{ active?: boolean, alreadyPlayed?: boolean }>`
${props => props.active && css`
font-weight: 900;
- background-color: #ff8c6922;
+ background-color: #FF3C0016;
padding: 20px 35px;
margin: 0 -25px;
`}
diff --git a/src/screens/index.tsx b/src/screens/index.tsx
index ef95f57..f62fb4a 100644
--- a/src/screens/index.tsx
+++ b/src/screens/index.tsx
@@ -47,7 +47,7 @@ function Screens() {
}
})}
tabBarOptions={{
- activeTintColor: 'salmon',
+ activeTintColor: '#FF3C00',
inactiveTintColor: 'gray',
}}
>