diff --git a/README.md b/README.md
index 038188766..6a3a06217 100644
--- a/README.md
+++ b/README.md
@@ -14,6 +14,7 @@
Play Local / Downloaded Songs Support :open_file_folder:
High Quality mp3 / m4a / flac Format :fire:
Lyrics Support :pencil:
+ SponsorBlock Support :scissors:
No Ads :no_entry_sign:
No Subscriptions :dollar:
12 Supported Languages :us:
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 9ac9620e8..af3b8bcd2 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -43,6 +43,7 @@ linter:
- non_constant_identifier_names
- noop_primitive_operations
- null_closures
+ - omit_local_variable_types
- overridden_fields
- package_api_docs
- package_names
@@ -64,9 +65,13 @@ linter:
- prefer_single_quotes
- prefer_typing_uninitialized_variables
- recursive_getters
+ - require_trailing_commas
- sized_box_for_whitespace
- slash_for_doc_comments
- sort_child_properties_last
+ - sort_constructors_first
+ - sort_pub_dependencies
+ - sort_unnamed_constructors_first
- test_types_in_equals
- throw_in_finally
- type_init_formals
@@ -88,5 +93,6 @@ linter:
- use_is_even_rather_than_modulo
- use_named_constants
- use_rethrow_when_possible
+ - use_super_parameters
- valid_regexps
- void_checks
\ No newline at end of file
diff --git a/android/app/build.gradle b/android/app/build.gradle
index a9f5e732c..8afd08325 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -60,6 +60,7 @@ android {
targetSdkVersion 33
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
+ multiDexEnabled true
}
signingConfigs {
@@ -91,4 +92,5 @@ flutter {
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
+ implementation 'com.android.support:multidex:1.0.3'
}
diff --git a/flutter_launcher_icons.yaml b/flutter_launcher_icons.yaml
deleted file mode 100644
index aa8e3147a..000000000
--- a/flutter_launcher_icons.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-flutter_icons:
- android: "launcher_icon"
- adaptive_icon_background: "#191919"
- adaptive_icon_foreground: "assets/images/ic_launcher_foreground.png"
- adaptive_icon_round: "assets/images/ic_launcher_round.png"
- image_path: "assets/images/ic_launcher.png"
- ios: true
\ No newline at end of file
diff --git a/flutter_native_splash.yaml b/flutter_native_splash.yaml
deleted file mode 100644
index 8d4dfb253..000000000
--- a/flutter_native_splash.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
- flutter_native_splash:
- image: assets/images/splash.png
- color: "151515"
-
-
- android_12:
- image: assets/images/splash.png
- color: "151515"
\ No newline at end of file
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png
new file mode 100644
index 000000000..076a59c5f
Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png
new file mode 100644
index 000000000..4b3d1cf37
Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png
new file mode 100644
index 000000000..5970594cf
Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png
new file mode 100644
index 000000000..14c9e4a59
Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png
new file mode 100644
index 000000000..1982a706b
Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png
new file mode 100644
index 000000000..81fd8742e
Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png differ
diff --git a/lib/API/musify.dart b/lib/API/musify.dart
index e89d0cbac..169a99791 100644
--- a/lib/API/musify.dart
+++ b/lib/API/musify.dart
@@ -19,6 +19,8 @@ import 'package:youtube_explode_dart/youtube_explode_dart.dart';
final yt = YoutubeExplode();
final OnAudioQuery _audioQuery = OnAudioQuery();
+final random = Random();
+
List ytplaylists = [];
List searchedList = [];
List playlists = [];
@@ -30,14 +32,14 @@ List localSongs = [];
final lyrics = ValueNotifier('null');
String _lastLyricsUrl = '';
+String _alternateApiUrl = '';
int id = 0;
Future fetchSongsList(String searchQuery) async {
final List list = await yt.search.search(searchQuery);
- searchedList = [];
- for (final s in list) {
- searchedList.add(
+ searchedList = [
+ for (final s in list)
returnSongLayout(
0,
s.id.toString(),
@@ -48,9 +50,9 @@ Future fetchSongsList(String searchQuery) async {
s.thumbnails.lowResUrl.toString(),
s.thumbnails.maxResUrl.toString(),
s.title.split('-')[0].toString(),
- ),
- );
- }
+ )
+ ];
+
return searchedList;
}
@@ -58,7 +60,7 @@ Future get10Music(dynamic playlistid) async {
final List playlistSongs =
await getData('cache', 'playlist10Songs$playlistid') ?? [];
if (playlistSongs.isEmpty) {
- int index = 0;
+ var index = 0;
await for (final song in yt.playlists.getVideos(playlistid).take(10)) {
playlistSongs.add(
returnSongLayout(
@@ -154,47 +156,25 @@ Future searchPlaylist(String query) async {
}
return playlists
- .where((playlist) =>
- playlist['title'].toLowerCase().contains(query.toLowerCase()))
+ .where(
+ (playlist) =>
+ playlist['title'].toLowerCase().contains(query.toLowerCase()),
+ )
.toList();
}
Future