diff --git a/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png
index 5886b2c8..a65caa1b 100644
Binary files a/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png and b/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png differ
diff --git a/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png
index 14abbd8d..3ad0f47e 100644
Binary files a/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png and b/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png differ
diff --git a/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png
index 7e7fd6ff..8774c0ff 100644
Binary files a/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png and b/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png differ
diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png
index 365fc77d..a379c006 100644
Binary files a/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png and b/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png differ
diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png
index c2cbfcfb..44621df8 100644
Binary files a/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png and b/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png differ
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
index e39ff9e5..d26a3a6e 100644
Binary files a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
index bbfb35a6..63d16c60 100644
Binary files a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
index 07e99ea4..fe2957ad 100644
Binary files a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
index 609ba6c7..85c1d793 100644
Binary files a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
index f599ec5b..f22fa5cf 100644
Binary files a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/values/colors.xml b/android/app/src/main/res/values/colors.xml
index ab983282..88247a21 100644
--- a/android/app/src/main/res/values/colors.xml
+++ b/android/app/src/main/res/values/colors.xml
@@ -1,4 +1,4 @@
- #ffffff
+ #242832
\ No newline at end of file
diff --git a/assets/spotube-logo-foreground.jpg b/assets/spotube-logo-foreground.jpg
index 41fd55ad..0af774c9 100644
Binary files a/assets/spotube-logo-foreground.jpg and b/assets/spotube-logo-foreground.jpg differ
diff --git a/assets/spotube-logo.png b/assets/spotube-logo.png
index 4a406c7f..b4240f49 100644
Binary files a/assets/spotube-logo.png and b/assets/spotube-logo.png differ
diff --git a/assets/spotube-logo.svg b/assets/spotube-logo.svg
index 9dc4dbee..5cd88f8e 100644
--- a/assets/spotube-logo.svg
+++ b/assets/spotube-logo.svg
@@ -1,71 +1,349 @@
-
-
\ No newline at end of file
+
+
diff --git a/assets/spotube_banner.png b/assets/spotube_banner.png
index 17e208b9..b2be4539 100644
Binary files a/assets/spotube_banner.png and b/assets/spotube_banner.png differ
diff --git a/lib/components/root/sidebar.dart b/lib/components/root/sidebar.dart
index 33448eb5..763fd5f6 100644
--- a/lib/components/root/sidebar.dart
+++ b/lib/components/root/sidebar.dart
@@ -31,10 +31,15 @@ class Sidebar extends HookConsumerWidget {
}) : super(key: key);
static Widget brandLogo() {
- return Image.asset(
- "assets/spotube-logo.png",
- height: 50,
- width: 50,
+ return Container(
+ decoration: BoxDecoration(
+ color: Colors.black,
+ borderRadius: BorderRadius.circular(50),
+ ),
+ child: Image.asset(
+ "assets/spotube-logo.png",
+ height: 50,
+ ),
);
}
diff --git a/lib/components/shared/compact_search.dart b/lib/components/shared/compact_search.dart
index 39e41257..9327463f 100644
--- a/lib/components/shared/compact_search.dart
+++ b/lib/components/shared/compact_search.dart
@@ -7,12 +7,14 @@ class CompactSearch extends HookWidget {
final ValueChanged? onChanged;
final String placeholder;
final IconData icon;
+ final Color? iconColor;
const CompactSearch({
Key? key,
this.onChanged,
this.placeholder = "Search...",
this.icon = Icons.search,
+ this.iconColor,
}) : super(key: key);
@override
@@ -24,14 +26,19 @@ class CompactSearch extends HookWidget {
backgroundColor: PlatformTheme.of(context).secondaryBackgroundColor!,
transitionDuration: const Duration(milliseconds: 100),
barrierColor: Colors.transparent,
+ arrowDxOffset: -6,
bodyBuilder: (context) {
- return Padding(
+ return Container(
padding: const EdgeInsets.all(8.0),
+ width: 300,
child: PlatformTextField(
autofocus: true,
onChanged: onChanged,
placeholder: placeholder,
prefixIcon: icon,
+ padding: platform == TargetPlatform.android
+ ? const EdgeInsets.all(0)
+ : null,
),
);
},
@@ -39,7 +46,7 @@ class CompactSearch extends HookWidget {
);
},
tooltip: placeholder,
- icon: Icon(icon),
+ icon: Icon(icon, color: iconColor),
);
}
}
diff --git a/lib/components/shared/page_window_title_bar.dart b/lib/components/shared/page_window_title_bar.dart
index 66fd10c5..41b02680 100644
--- a/lib/components/shared/page_window_title_bar.dart
+++ b/lib/components/shared/page_window_title_bar.dart
@@ -98,7 +98,7 @@ class _PageWindowTitleBarState extends State {
),
],
onDrag: () {
- appWindow.startDragging();
+ if (kIsDesktop) appWindow.startDragging();
},
title: widget.center,
toolbarOpacity: widget.toolbarOpacity,
diff --git a/lib/components/shared/track_table/track_collection_view.dart b/lib/components/shared/track_table/track_collection_view.dart
index 03792ac8..888738e7 100644
--- a/lib/components/shared/track_table/track_collection_view.dart
+++ b/lib/components/shared/track_table/track_collection_view.dart
@@ -5,6 +5,7 @@ import 'package:fuzzywuzzy/fuzzywuzzy.dart';
import 'package:go_router/go_router.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:platform_ui/platform_ui.dart';
+import 'package:spotube/components/shared/compact_search.dart';
import 'package:spotube/components/shared/shimmers/shimmer_track_tile.dart';
import 'package:spotube/components/shared/page_window_title_bar.dart';
import 'package:spotube/components/shared/image/universal_image.dart';
@@ -205,7 +206,15 @@ class TrackCollectionView extends HookConsumerWidget {
controller: controller,
slivers: [
SliverAppBar(
- actions: collapsed.value ? buttons : null,
+ actions: [
+ if (kIsMobile)
+ CompactSearch(
+ onChanged: (value) => searchText.value = value,
+ placeholder: "Search tracks...",
+ iconColor: color?.titleTextColor,
+ ),
+ if (collapsed.value) ...buttons,
+ ],
floating: false,
pinned: true,
expandedHeight: 400,
@@ -291,10 +300,6 @@ class TrackCollectionView extends HookConsumerWidget {
mainAxisSize: MainAxisSize.min,
children: buttons,
),
- if (kIsMobile) ...[
- const SizedBox(height: 10),
- searchbar,
- ]
],
)
],
diff --git a/lib/pages/genre/genres.dart b/lib/pages/genre/genres.dart
index 06bb5879..32dabf6d 100644
--- a/lib/pages/genre/genres.dart
+++ b/lib/pages/genre/genres.dart
@@ -112,9 +112,11 @@ class GenrePage extends HookConsumerWidget {
),
);
return PlatformScaffold(
- appBar: PageWindowTitleBar(
- actions: [searchbar, const SizedBox(width: 10)],
- ),
+ appBar: kIsDesktop
+ ? PageWindowTitleBar(
+ actions: [searchbar, const SizedBox(width: 10)],
+ )
+ : null,
backgroundColor: PlatformProperty.all(
PlatformTheme.of(context).scaffoldBackgroundColor!,
),
@@ -123,8 +125,8 @@ class GenrePage extends HookConsumerWidget {
children: [
Positioned.fill(child: list),
Positioned(
- top: 10,
- right: 20,
+ top: kIsMobile ? 30 : 10,
+ right: kIsMobile ? 5 : 20,
child: searchbar,
),
],
diff --git a/lib/pages/player/player.dart b/lib/pages/player/player.dart
index a4496eff..f4025783 100644
--- a/lib/pages/player/player.dart
+++ b/lib/pages/player/player.dart
@@ -67,7 +67,9 @@ class PlayerView extends HookConsumerWidget {
hideWhenWindows: false,
backgroundColor: Colors.transparent,
foregroundColor: paletteColor.titleTextColor,
- toolbarOpacity: 0,
+ toolbarOpacity:
+ PlatformProperty.only(android: 1.0, windows: 1.0, other: 0.0)
+ .resolve(platform ?? Theme.of(context).platform),
leading: PlatformBackButton(
color: PlatformProperty.only(
macos: Colors.black,
diff --git a/lib/pages/settings/about.dart b/lib/pages/settings/about.dart
index 7f5354ca..ac1f4caa 100644
--- a/lib/pages/settings/about.dart
+++ b/lib/pages/settings/about.dart
@@ -41,8 +41,11 @@ class AboutSpotube extends HookConsumerWidget {
Row(
mainAxisSize: MainAxisSize.min,
children: [
- PlatformText.subheading(
+ const PlatformText(
"Founder: Kingkor Roy Tirtho",
+ style: TextStyle(
+ fontWeight: FontWeight.bold,
+ ),
),
const SizedBox(width: 5),
CircleAvatar(
diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
index a2ec33f1..96d3fee1 100644
--- a/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -1,68 +1,68 @@
{
- "images" : [
- {
- "size" : "16x16",
- "idiom" : "mac",
- "filename" : "app_icon_16.png",
- "scale" : "1x"
+ "info": {
+ "version": 1,
+ "author": "xcode"
},
- {
- "size" : "16x16",
- "idiom" : "mac",
- "filename" : "app_icon_32.png",
- "scale" : "2x"
- },
- {
- "size" : "32x32",
- "idiom" : "mac",
- "filename" : "app_icon_32.png",
- "scale" : "1x"
- },
- {
- "size" : "32x32",
- "idiom" : "mac",
- "filename" : "app_icon_64.png",
- "scale" : "2x"
- },
- {
- "size" : "128x128",
- "idiom" : "mac",
- "filename" : "app_icon_128.png",
- "scale" : "1x"
- },
- {
- "size" : "128x128",
- "idiom" : "mac",
- "filename" : "app_icon_256.png",
- "scale" : "2x"
- },
- {
- "size" : "256x256",
- "idiom" : "mac",
- "filename" : "app_icon_256.png",
- "scale" : "1x"
- },
- {
- "size" : "256x256",
- "idiom" : "mac",
- "filename" : "app_icon_512.png",
- "scale" : "2x"
- },
- {
- "size" : "512x512",
- "idiom" : "mac",
- "filename" : "app_icon_512.png",
- "scale" : "1x"
- },
- {
- "size" : "512x512",
- "idiom" : "mac",
- "filename" : "app_icon_1024.png",
- "scale" : "2x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
+ "images": [
+ {
+ "size": "16x16",
+ "idiom": "mac",
+ "filename": "app_icon_16.png",
+ "scale": "1x"
+ },
+ {
+ "size": "16x16",
+ "idiom": "mac",
+ "filename": "app_icon_32.png",
+ "scale": "2x"
+ },
+ {
+ "size": "32x32",
+ "idiom": "mac",
+ "filename": "app_icon_32.png",
+ "scale": "1x"
+ },
+ {
+ "size": "32x32",
+ "idiom": "mac",
+ "filename": "app_icon_64.png",
+ "scale": "2x"
+ },
+ {
+ "size": "128x128",
+ "idiom": "mac",
+ "filename": "app_icon_128.png",
+ "scale": "1x"
+ },
+ {
+ "size": "128x128",
+ "idiom": "mac",
+ "filename": "app_icon_256.png",
+ "scale": "2x"
+ },
+ {
+ "size": "256x256",
+ "idiom": "mac",
+ "filename": "app_icon_256.png",
+ "scale": "1x"
+ },
+ {
+ "size": "256x256",
+ "idiom": "mac",
+ "filename": "app_icon_512.png",
+ "scale": "2x"
+ },
+ {
+ "size": "512x512",
+ "idiom": "mac",
+ "filename": "app_icon_512.png",
+ "scale": "1x"
+ },
+ {
+ "size": "512x512",
+ "idiom": "mac",
+ "filename": "app_icon_1024.png",
+ "scale": "2x"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png
index 2e5a98d0..f39ccaf9 100644
Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png differ
diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png
index 433a0be3..9583c467 100644
Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png differ
diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png
index b1c2ea19..b578a673 100644
Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png differ
diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png
index 9783a56f..4b4141f8 100644
Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png differ
diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png
index a93de906..9ce413dc 100644
Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png differ
diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png
index 45edc204..6ea670e1 100644
Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png differ
diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png
index 83cb060e..dad62aa0 100644
Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png differ
diff --git a/pubspec.yaml b/pubspec.yaml
index 78b97f5e..68337146 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -85,4 +85,11 @@ flutter_icons:
android: true
image_path: "assets/spotube-logo.png"
adaptive_icon_foreground: "assets/spotube-logo-foreground.jpg"
- adaptive_icon_background: "#ffffff"
+ adaptive_icon_background: "#242832"
+ windows:
+ generate: true
+ image_path: "assets/spotube-logo.png"
+ icon_size: 48 # min:48, max:256, default: 48
+ macos:
+ generate: true
+ image_path: "assets/spotube-logo.png"
diff --git a/scripts/windows-setup-creator.iss b/scripts/windows-setup-creator.iss
index 9b271435..93302234 100644
--- a/scripts/windows-setup-creator.iss
+++ b/scripts/windows-setup-creator.iss
@@ -25,7 +25,7 @@ PrivilegesRequired=lowest
PrivilegesRequiredOverridesAllowed=dialog
OutputDir=..\build\installer
OutputBaseFilename=Spotube-windows-x86_64-setup
-SetupIconFile=..\windows\runner\resources\icon.ico
+SetupIconFile=..\windows\runner\resources\app_icon.ico
Compression=lzma
SolidCompression=yes
WizardStyle=modern
diff --git a/windows/runner/Runner.rc b/windows/runner/Runner.rc
index 4c36cee9..e8fccc8a 100644
--- a/windows/runner/Runner.rc
+++ b/windows/runner/Runner.rc
@@ -52,7 +52,7 @@ END
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
-IDI_APP_ICON ICON "resources\\icon.ico"
+IDI_APP_ICON ICON "resources\\app_icon.ico"
/////////////////////////////////////////////////////////////////////////////
diff --git a/windows/runner/resources/app_icon.ico b/windows/runner/resources/app_icon.ico
new file mode 100644
index 00000000..84906308
Binary files /dev/null and b/windows/runner/resources/app_icon.ico differ
diff --git a/windows/runner/resources/icon.ico b/windows/runner/resources/icon.ico
deleted file mode 100644
index ada0d7b9..00000000
Binary files a/windows/runner/resources/icon.ico and /dev/null differ