From 1bd8fd7c2b1886108b3dad7b0df72d1467a6768f Mon Sep 17 00:00:00 2001 From: Akshat Singh Kushwaha Date: Sat, 17 Feb 2024 17:02:09 +0530 Subject: [PATCH 1/4] Fix search input onChanged event --- lib/pages/mobile_login/mobile_login.dart | 30 ++++++----- lib/pages/search/search.dart | 2 +- lib/themes/theme.dart | 22 ++++---- pubspec.lock | 68 +++++++++--------------- 4 files changed, 56 insertions(+), 66 deletions(-) diff --git a/lib/pages/mobile_login/mobile_login.dart b/lib/pages/mobile_login/mobile_login.dart index 8b9bce4c..4384368f 100644 --- a/lib/pages/mobile_login/mobile_login.dart +++ b/lib/pages/mobile_login/mobile_login.dart @@ -1,3 +1,4 @@ +import 'package:collection/collection.dart'; import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:flutter_inappwebview/flutter_inappwebview.dart'; @@ -7,6 +8,9 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:spotube/provider/authentication_provider.dart'; import 'package:spotube/utils/platform.dart'; +const _userAgent = + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"; + class WebViewLogin extends HookConsumerWidget { const WebViewLogin({Key? key}) : super(key: key); @@ -17,7 +21,7 @@ class WebViewLogin extends HookConsumerWidget { ref.watch(AuthenticationNotifier.provider.notifier); if (kIsDesktop) { - const Scaffold( + return const Scaffold( body: Center( child: Text('This feature is not available on desktop'), ), @@ -29,8 +33,7 @@ class WebViewLogin extends HookConsumerWidget { child: InAppWebView( initialOptions: InAppWebViewGroupOptions( crossPlatform: InAppWebViewOptions( - userAgent: - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 afari/537.36", + userAgent: _userAgent, ), ), initialUrlRequest: URLRequest( @@ -54,15 +57,18 @@ class WebViewLogin extends HookConsumerWidget { if (exp.hasMatch(url)) { final cookies = await CookieManager.instance().getCookies(url: action); - final cookieHeader = - "sp_dc=${cookies.firstWhere((element) => element.name == "sp_dc").value}"; + final spDcCookie = cookies.firstWhereOrNull((element) => element.name == "sp_dc"); - authenticationNotifier.setCredentials( - await AuthenticationCredentials.fromCookie(cookieHeader), - ); - if (mounted()) { - // ignore: use_build_context_synchronously - GoRouter.of(context).go("/"); + if (spDcCookie != null) { + final cookieHeader = "sp_dc=${spDcCookie.value}"; + + authenticationNotifier.setCredentials( + await AuthenticationCredentials.fromCookie(cookieHeader), + ); + if (mounted()) { + // ignore: use_build_context_synchronously + GoRouter.of(context).pushReplacementNamed("/"); + } } } }, @@ -70,4 +76,4 @@ class WebViewLogin extends HookConsumerWidget { ), ); } -} +} \ No newline at end of file diff --git a/lib/pages/search/search.dart b/lib/pages/search/search.dart index f4a78d4f..43e09ed7 100644 --- a/lib/pages/search/search.dart +++ b/lib/pages/search/search.dart @@ -121,7 +121,7 @@ class SearchPage extends HookConsumerWidget { prefixIcon: const Icon(SpotubeIcons.search), hintText: "${context.l10n.search}...", ), - onSubmitted: (value) async { + onChanged: (value) async { ref.read(searchTermStateProvider.notifier).state = value; // Fl-Query is too fast, so we need to delay the search diff --git a/lib/themes/theme.dart b/lib/themes/theme.dart index 51e98269..2d0a457b 100644 --- a/lib/themes/theme.dart +++ b/lib/themes/theme.dart @@ -8,6 +8,10 @@ ThemeData theme(Color seed, Brightness brightness, bool isAmoled) { surface: isAmoled ? Colors.black : null, brightness: brightness, ); + + const borderRadius = BorderRadius.all(Radius.circular(15)); + const roundedRectangleBorder = RoundedRectangleBorder(borderRadius: borderRadius); + return ThemeData( useMaterial3: true, colorScheme: scheme, @@ -16,9 +20,9 @@ ThemeData theme(Color seed, Brightness brightness, bool isAmoled) { iconColor: scheme.onSurface, ), appBarTheme: const AppBarTheme(surfaceTintColor: Colors.transparent), - inputDecorationTheme: InputDecorationTheme( + inputDecorationTheme: const InputDecorationTheme( border: OutlineInputBorder( - borderRadius: BorderRadius.circular(15), + borderRadius: borderRadius, ), ), iconTheme: IconThemeData(size: 16, color: scheme.onSurface), @@ -36,17 +40,17 @@ ThemeData theme(Color seed, Brightness brightness, bool isAmoled) { dividerColor: Colors.transparent, indicator: BoxDecoration( color: scheme.secondaryContainer, - borderRadius: BorderRadius.circular(15), + borderRadius: borderRadius, ), ), popupMenuTheme: PopupMenuThemeData( - shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(15)), + shape: roundedRectangleBorder, color: scheme.surface, elevation: 4, ), snackBarTheme: SnackBarThemeData( behavior: SnackBarBehavior.floating, - shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(15)), + shape: roundedRectangleBorder, backgroundColor: scheme.onSurface, contentTextStyle: TextStyle(color: scheme.surface), ), @@ -63,11 +67,7 @@ ThemeData theme(Color seed, Brightness brightness, bool isAmoled) { ), ), elevation: const MaterialStatePropertyAll(0), - shape: MaterialStatePropertyAll( - RoundedRectangleBorder( - borderRadius: BorderRadius.circular(10), - ), - ), + shape: MaterialStatePropertyAll(roundedRectangleBorder), ), scrollbarTheme: const ScrollbarThemeData( thickness: MaterialStatePropertyAll(14), @@ -76,4 +76,4 @@ ThemeData theme(Color seed, Brightness brightness, bool isAmoled) { shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)), ), ); -} +} \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock index 1a95f20e..b973d8f1 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -543,10 +543,10 @@ packages: dependency: transitive description: name: file - sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" + sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" url: "https://pub.dev" source: hosted - version: "7.0.0" + version: "6.1.4" file_picker: dependency: "direct main" description: @@ -1255,30 +1255,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.4.2" - leak_tracker: - dependency: transitive - description: - name: leak_tracker - sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" - url: "https://pub.dev" - source: hosted - version: "10.0.0" - leak_tracker_flutter_testing: - dependency: transitive - description: - name: leak_tracker_flutter_testing - sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 - url: "https://pub.dev" - source: hosted - version: "2.0.1" - leak_tracker_testing: - dependency: transitive - description: - name: leak_tracker_testing - sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 - url: "https://pub.dev" - source: hosted - version: "2.0.1" lints: dependency: transitive description: @@ -1323,18 +1299,18 @@ packages: dependency: transitive description: name: matcher - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" url: "https://pub.dev" source: hosted - version: "0.12.16+1" + version: "0.12.16" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.5.0" media_kit: dependency: "direct main" description: @@ -1403,10 +1379,10 @@ packages: dependency: transitive description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.10.0" metadata_god: dependency: "direct main" description: @@ -1491,10 +1467,10 @@ packages: dependency: "direct main" description: name: path - sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.8.3" path_drawing: dependency: transitive description: @@ -1619,10 +1595,10 @@ packages: dependency: transitive description: name: platform - sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" + sha256: ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102 url: "https://pub.dev" source: hosted - version: "3.1.4" + version: "3.1.2" plugin_platform_interface: dependency: transitive description: @@ -1659,10 +1635,10 @@ packages: dependency: transitive description: name: process - sha256: "21e54fd2faf1b5bdd5102afd25012184a6793927648ea81eea80552ac9405b32" + sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" url: "https://pub.dev" source: hosted - version: "5.0.2" + version: "4.2.4" provider: dependency: transitive description: @@ -2241,10 +2217,10 @@ packages: dependency: transitive description: name: vm_service - sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + sha256: c538be99af830f478718b51630ec1b6bee5e74e52c8a802d328d9e71d35d2583 url: "https://pub.dev" source: hosted - version: "13.0.0" + version: "11.10.0" watcher: dependency: transitive description: @@ -2253,6 +2229,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" + web: + dependency: transitive + description: + name: web + sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 + url: "https://pub.dev" + source: hosted + version: "0.3.0" web_socket_channel: dependency: transitive description: @@ -2265,10 +2249,10 @@ packages: dependency: transitive description: name: webdriver - sha256: "003d7da9519e1e5f329422b36c4dcdf18d7d2978d1ba099ea4e45ba490ed845e" + sha256: "3c923e918918feeb90c4c9fdf1fe39220fa4c0e8e2c0fffaded174498ef86c49" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.2" wikipedia_api: dependency: "direct main" description: From f4dce2f6116e57458803d4291560156c52f74b5f Mon Sep 17 00:00:00 2001 From: MerkomassDev <70111455+MerkomassDev@users.noreply.github.com> Date: Wed, 20 Mar 2024 16:20:09 +0100 Subject: [PATCH 2/4] docs: broken link in README.md (fixes #1310) (#1311) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index de00054f..4ad4e1be 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ eliminating the need for Spotify Premium Btw it's not just another Electron app 😉 -Visit the website +Visit the website Discord Server Support me on Patron From 2abb5800be804a0ff42851e6dcab9e25dbb60f1c Mon Sep 17 00:00:00 2001 From: Karim <37943746+ksaadDE@users.noreply.github.com> Date: Tue, 9 Apr 2024 18:53:09 +0200 Subject: [PATCH 3/4] docs: remove appimage link in readme #1082 (#1171) * Updating Readme according to #1082 Updating Readme according to #1082 * Added explanation The explanation is now given and the expression is more formal and explanatory, instead of just linking the issue. --- README.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/README.md b/README.md index 4ad4e1be..457a86de 100644 --- a/README.md +++ b/README.md @@ -97,12 +97,7 @@ This handy table lists all the methods you can use to install Spotube: AppImage - - - Download AppImage - -

Note: AppimageLauncher is required!

- + AppImage's lacking stability led to it's temporal removal. More information at https://github.com/KRTirtho/spotube/issues/1082 Debian/Ubuntu From 3a7a71c6aeebcac648d97ca568907e0670ffa1cb Mon Sep 17 00:00:00 2001 From: Akshat Singh Kushwaha Date: Sat, 25 May 2024 23:47:15 +0530 Subject: [PATCH 4/4] resolved issues --- lib/pages/desktop_login/desktop_login.dart | 2 +- lib/provider/authentication_provider.dart | 2 +- pubspec.lock | 60 +++++++--------------- 3 files changed, 21 insertions(+), 43 deletions(-) diff --git a/lib/pages/desktop_login/desktop_login.dart b/lib/pages/desktop_login/desktop_login.dart index 9c061091..21249649 100644 --- a/lib/pages/desktop_login/desktop_login.dart +++ b/lib/pages/desktop_login/desktop_login.dart @@ -73,4 +73,4 @@ class DesktopLoginPage extends HookConsumerWidget { ), ); } -} +} \ No newline at end of file diff --git a/lib/provider/authentication_provider.dart b/lib/provider/authentication_provider.dart index a82f82c0..8772808b 100644 --- a/lib/provider/authentication_provider.dart +++ b/lib/provider/authentication_provider.dart @@ -167,4 +167,4 @@ class AuthenticationNotifier final authenticationProvider = StateNotifierProvider( (ref) => AuthenticationNotifier(), -); +); \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock index 186d7ce1..0a9526c2 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -639,10 +639,10 @@ packages: dependency: transitive description: name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" url: "https://pub.dev" source: hosted - version: "6.1.4" + version: "7.0.0" file_picker: dependency: "direct main" description: @@ -1399,16 +1399,6 @@ packages: url: "https://pub.dev" source: hosted version: "6.7.1" - master - json_view: - dependency: transitive - description: - name: json_view - sha256: "905c69f9e69d1eab5406b87ab6c10c3706c04c70c6a4959621bd2b43c2d27374" - url: "https://pub.dev" - source: hosted - version: "0.4.2" - leak_tracker: dependency: transitive description: @@ -1433,7 +1423,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.1" -master lints: dependency: transitive description: @@ -1486,18 +1475,18 @@ master dependency: transitive description: name: matcher - sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb url: "https://pub.dev" source: hosted - version: "0.12.16" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.8.0" media_kit: dependency: "direct main" description: @@ -1566,10 +1555,10 @@ master dependency: transitive description: name: meta - sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.11.0" metadata_god: dependency: "direct main" description: @@ -1646,10 +1635,10 @@ master dependency: "direct main" description: name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" url: "https://pub.dev" source: hosted - version: "1.8.3" + version: "1.9.0" path_drawing: dependency: transitive description: @@ -1775,10 +1764,10 @@ master dependency: transitive description: name: platform - sha256: ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102 + sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.4" plugin_platform_interface: dependency: transitive description: @@ -1815,10 +1804,10 @@ master dependency: transitive description: name: process - sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" + sha256: "21e54fd2faf1b5bdd5102afd25012184a6793927648ea81eea80552ac9405b32" url: "https://pub.dev" source: hosted - version: "4.2.4" + version: "5.0.2" provider: dependency: transitive description: @@ -2429,10 +2418,10 @@ master dependency: transitive description: name: vm_service - sha256: c538be99af830f478718b51630ec1b6bee5e74e52c8a802d328d9e71d35d2583 + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 url: "https://pub.dev" source: hosted - version: "11.10.0" + version: "13.0.0" watcher: dependency: transitive description: @@ -2442,17 +2431,6 @@ master source: hosted version: "1.1.0" web: -master - dependency: transitive - description: - name: web - sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 - url: "https://pub.dev" - source: hosted - version: "0.3.0" - web_socket_channel: - -master dependency: transitive description: name: web @@ -2472,10 +2450,10 @@ master dependency: transitive description: name: webdriver - sha256: "3c923e918918feeb90c4c9fdf1fe39220fa4c0e8e2c0fffaded174498ef86c49" + sha256: "003d7da9519e1e5f329422b36c4dcdf18d7d2978d1ba099ea4e45ba490ed845e" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.3" wikipedia_api: dependency: "direct main" description: @@ -2551,4 +2529,4 @@ master version: "2.0.2" sdks: dart: ">=3.3.0 <4.0.0" - flutter: ">=3.16.0" + flutter: ">=3.16.0" \ No newline at end of file