├── .gitignore ├── .metadata ├── LICENSE.md ├── README.md ├── android ├── .gitignore ├── app │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── debug │ │ └── AndroidManifest.xml │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── ayat_player_flutter_player │ │ │ │ └── MainActivity.java │ │ └── res │ │ │ ├── drawable-anydpi-v24 │ │ │ ├── ic_music_custom.xml │ │ │ ├── ic_next_custom.xml │ │ │ ├── ic_pause_custom.xml │ │ │ ├── ic_play_custom.xml │ │ │ ├── ic_prev_custom.xml │ │ │ └── ic_stop_custom.xml │ │ │ ├── drawable-hdpi │ │ │ ├── ic_music_custom.png │ │ │ ├── ic_next_custom.png │ │ │ ├── ic_pause_custom.png │ │ │ ├── ic_play_custom.png │ │ │ ├── ic_prev_custom.png │ │ │ ├── ic_stop_custom.png │ │ │ └── notification_place_holder.jpg │ │ │ ├── drawable-mdpi │ │ │ ├── ic_music_custom.png │ │ │ ├── ic_next_custom.png │ │ │ ├── ic_pause_custom.png │ │ │ ├── ic_play_custom.png │ │ │ ├── ic_prev_custom.png │ │ │ ├── ic_stop_custom.png │ │ │ └── notification_place_holder.jpg │ │ │ ├── drawable-xhdpi │ │ │ ├── ic_music_custom.png │ │ │ ├── ic_next_custom.png │ │ │ ├── ic_pause_custom.png │ │ │ ├── ic_play_custom.png │ │ │ ├── ic_prev_custom.png │ │ │ ├── ic_stop_custom.png │ │ │ └── notification_place_holder.jpg │ │ │ ├── drawable-xxhdpi │ │ │ ├── ic_music_custom.png │ │ │ ├── ic_next_custom.png │ │ │ ├── ic_pause_custom.png │ │ │ ├── ic_play_custom.png │ │ │ ├── ic_prev_custom.png │ │ │ ├── ic_stop_custom.png │ │ │ └── notification_place_holder.jpg │ │ │ ├── drawable-xxxhdpi │ │ │ ├── ic_music_custom.png │ │ │ ├── ic_next_custom.png │ │ │ ├── ic_pause_custom.png │ │ │ ├── ic_play_custom.png │ │ │ ├── ic_prev_custom.png │ │ │ └── ic_stop_custom.png │ │ │ ├── drawable │ │ │ └── launch_background.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── raw │ │ │ └── keep.xml │ │ │ └── values │ │ │ └── styles.xml │ │ └── profile │ │ └── AndroidManifest.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ └── gradle-wrapper.properties ├── settings.gradle └── settings_aar.gradle ├── assets ├── empty.png ├── logo.png └── me.jpg ├── fonts ├── MetalMania-Regular.ttf ├── RobotoSlab-Bold.ttf ├── RobotoSlab-Light.ttf ├── RobotoSlab-Medium.ttf └── RobotoSlab-Regular.ttf ├── ios ├── .gitignore ├── Flutter │ ├── AppFrameworkInfo.plist │ ├── Debug.xcconfig │ └── Release.xcconfig ├── Runner.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ └── xcshareddata │ │ └── xcschemes │ │ └── Runner.xcscheme ├── Runner.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings └── Runner │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── Icon-App-1024x1024@1x.png │ │ ├── Icon-App-20x20@1x.png │ │ ├── Icon-App-20x20@2x.png │ │ ├── Icon-App-20x20@3x.png │ │ ├── Icon-App-29x29@1x.png │ │ ├── Icon-App-29x29@2x.png │ │ ├── Icon-App-29x29@3x.png │ │ ├── Icon-App-40x40@1x.png │ │ ├── Icon-App-40x40@2x.png │ │ ├── Icon-App-40x40@3x.png │ │ ├── Icon-App-60x60@2x.png │ │ ├── Icon-App-60x60@3x.png │ │ ├── Icon-App-76x76@1x.png │ │ ├── Icon-App-76x76@2x.png │ │ └── Icon-App-83.5x83.5@2x.png │ └── LaunchImage.imageset │ │ ├── Contents.json │ │ ├── LaunchImage.png │ │ ├── LaunchImage@2x.png │ │ ├── LaunchImage@3x.png │ │ └── README.md │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── Runner-Bridging-Header.h ├── lib ├── data │ ├── images.dart │ └── sharedpref.dart ├── main.dart ├── model │ └── iap.dart ├── provider │ ├── audio_player.dart │ ├── audio_query.dart │ └── eq.dart ├── routes │ └── routes.dart ├── screens │ ├── Music_list.dart │ ├── album_list_screen.dart │ ├── album_to_songList.dart │ ├── artist_list_screen.dart │ ├── artist_to_songList.dart │ ├── custom_radio.dart │ ├── dashboard.dart │ ├── edit_profile.dart │ ├── equalizer.dart │ ├── home.dart │ ├── now_playing__screen_2.dart │ ├── now_playing_screen.dart │ ├── playlist_to_songList.dart │ ├── playlistscreen.dart │ ├── search.dart │ ├── settings.dart │ └── splash_screen.dart ├── util │ ├── constants.dart │ └── theme_constants.dart └── widgets │ ├── bottom_nowplaying_ayatbar.dart │ ├── create_playlist_dialog.dart │ ├── custom_drawer.dart │ ├── dashboard_albumlist.dart │ ├── dashboard_artist_list.dart │ ├── dashboard_carousel.dart │ ├── dashboard_next_favorite.dart │ ├── dashboard_playlist.dart │ ├── emptyscreen_widget.dart │ ├── float_modal.dart │ ├── floatingbutton.dart │ ├── gridview_widget.dart │ ├── ifnull_widget.dart │ ├── listview_widget.dart │ ├── material_color_dialog.dart │ ├── modalfit.dart │ ├── myappIcon.dart │ ├── nowplaying_icon.dart │ └── sorting_bottomsheet.dart ├── pubspec.yaml └── screenshots ├── album.png ├── artist.png ├── graphic-banner.png ├── home-dark.png ├── home-light.png ├── nowplaying-classic.png ├── nowplaying-modern.png └── songs.png /.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: f7a6a7906be96d2288f5d63a5a54c515a6e987fe 8 | channel: stable 9 | 10 | project_type: app 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AYaT Player 🎧 2 | 3 | [![Generic badge](https://img.shields.io/badge/Platform-Android-green.svg)](https://github.com/mahadydev/AYat_Player_Flutter) 4 | [![Generic badge](https://img.shields.io/badge/minSdkVersion-21-green.svg)](https://github.com/mahadydev/AYat_Player_Flutter) 5 | [![Generic badge](https://img.shields.io/badge/Download-Google_Play-green.svg)](https://play.google.com/store/apps/details?id=com.mahadydev.ayat_player) 6 | [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://github.com/mahadydev/AYat_Player_Flutter/blob/master/licence.txt) 7 | ## 🆕 A Beautiful music player for Android music lovers 8 | Written in dart/flutter with ❤ 9 | ## Screenshots 10 | | | 11 | |:---:| 12 | |AYaT Player| 13 | ### App Themes 14 | | | 15 | |:---:|:---:| 16 | |Dark| Light| 17 | 18 | ### Player screen 19 | | | | | 20 | |:---:|:---:|:---:| 21 | | Songs | Albums | Artist| 22 | 23 | ### Now playing themes 24 | | | 25 | |:---:|:---:| 26 | |Classic| Modern| 27 | 28 | 29 | ### 🧭 Easy Navigation 30 | Self-explanatory interface without overloaded menus 31 | 32 | ### 🎨 Colorful 33 | You can choose between two different main themes: Light Theme, and Just black for AMOLED displays. Theme comes with default beautiful accent. 34 | 35 | ### 🏠 Dashboard 36 | Dashboard has beautiful carousel with music related picture from unsplash.Get random songs to start with. Also included Albums , playlist , artist . You will love it. 37 | 38 | 39 | ### 📦 Included Features 40 | - Base 2 themes (Light and Dark) 41 | - Choose from 2 now playing themes (more to come) 42 | - Headset/Bluetooth support 43 | - Music Duration Filter 44 | - Volume controls 45 | - Carousel effect on dashboard 46 | - Home screen Widgets 47 | - Lock Screen Playback Controls 48 | - Playlist add/remove song 49 | - User profile 50 | - Browse and play your music by Songs, Albums, Artists, Playlists, 51 | 52 | 53 | I am trying my best to bring you the best user experience. More features are on the 54 | way. 55 | 56 | In any case, you find or notice any Bugs/ Crashes please report them by 57 | sending me an [e-mail](mailto:mahadydev@gmail.com). I will try to respond or fix Bugs/ Crashes as soon as 58 | possible. 59 | 60 | ### 🗂️ License 61 | 62 | AYaT player is released under the GNU General Public License v3.0 63 | (GPLv3), which can be found here: [License](LICENSE.md) 64 | 65 | ### ☝️ Changelog's 66 | 67 | Try the link [here](https://mahadydev.github.io/changelog/ayat-player-changelog.html) 68 | 69 | ### ☝️ FAQ's 70 | Try the link [here](https://mahadydev.github.io/faq/ayat-player-faq.html) 71 | 72 | >Please note: AYaT player is offline local mp3 player app. It 73 | >doesn't support online music download or music streaming. 74 | -------------------------------------------------------------------------------- /android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | -------------------------------------------------------------------------------- /android/app/build.gradle: -------------------------------------------------------------------------------- 1 | def localProperties = new Properties() 2 | def localPropertiesFile = rootProject.file('local.properties') 3 | if (localPropertiesFile.exists()) { 4 | localPropertiesFile.withReader('UTF-8') { reader -> 5 | localProperties.load(reader) 6 | } 7 | } 8 | 9 | def flutterRoot = localProperties.getProperty('flutter.sdk') 10 | if (flutterRoot == null) { 11 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") 12 | } 13 | 14 | def flutterVersionCode = localProperties.getProperty('flutter.versionCode') 15 | if (flutterVersionCode == null) { 16 | flutterVersionCode = '1' 17 | } 18 | 19 | def flutterVersionName = localProperties.getProperty('flutter.versionName') 20 | if (flutterVersionName == null) { 21 | flutterVersionName = '1.0' 22 | } 23 | 24 | apply plugin: 'com.android.application' 25 | apply plugin: 'com.google.gms.google-services' 26 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" 27 | 28 | def keystoreProperties = new Properties() 29 | def keystorePropertiesFile = rootProject.file('key.properties') 30 | if (keystorePropertiesFile.exists()) { 31 | keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) 32 | } 33 | 34 | android { 35 | compileSdkVersion 28 36 | 37 | lintOptions { 38 | disable 'InvalidPackage' 39 | } 40 | 41 | defaultConfig { 42 | applicationId "com.mahadydev.ayat_player" 43 | minSdkVersion 21 44 | targetSdkVersion 28 45 | versionCode flutterVersionCode.toInteger() 46 | versionName flutterVersionName 47 | } 48 | 49 | signingConfigs { 50 | release { 51 | keyAlias keystoreProperties['keyAlias'] 52 | keyPassword keystoreProperties['keyPassword'] 53 | storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null 54 | storePassword keystoreProperties['storePassword'] 55 | } 56 | } 57 | 58 | buildTypes { 59 | release { 60 | signingConfig signingConfigs.release 61 | minifyEnabled true 62 | shrinkResources true 63 | proguardFiles getDefaultProguardFile( 64 | 'proguard-android-optimize.txt'), 65 | 'proguard-rules.pro' 66 | } 67 | } 68 | } 69 | 70 | flutter { 71 | source '../..' 72 | } 73 | 74 | dependencies { 75 | implementation 'com.google.firebase:firebase-analytics:17.2.2' 76 | } -------------------------------------------------------------------------------- /android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | ## Flutter wrapper 2 | -keep class io.flutter.app.** { *; } 3 | -keep class io.flutter.plugin.** { *; } 4 | -keep class io.flutter.util.** { *; } 5 | -keep class io.flutter.view.** { *; } 6 | -keep class io.flutter.** { *; } 7 | -keep class io.flutter.plugins.** { *; } 8 | -dontwarn io.flutter.embedding.** 9 | 10 | ## Gson rules 11 | # Gson uses generic type information stored in a class file when working with fields. Proguard 12 | # removes such information by default, so configure it to keep all of it. 13 | -keepattributes Signature 14 | 15 | # For using GSON @Expose annotation 16 | -keepattributes *Annotation* 17 | 18 | # Gson specific classes 19 | -dontwarn sun.misc.** 20 | #-keep class com.google.gson.stream.** { *; } 21 | 22 | # Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory, 23 | # JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter) 24 | -keep class * implements com.google.gson.TypeAdapter 25 | -keep class * implements com.google.gson.TypeAdapterFactory 26 | -keep class * implements com.google.gson.JsonSerializer 27 | -keep class * implements com.google.gson.JsonDeserializer 28 | 29 | # Prevent R8 from leaving Data object members always null 30 | -keepclassmembers,allowobfuscation class * { 31 | @com.google.gson.annotations.SerializedName ; 32 | } 33 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 18 | 25 | 29 | 33 | 38 | 42 | 43 | 44 | 45 | 46 | 47 | 49 | 52 | 55 | 58 | 61 | 64 | 67 | 70 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /android/app/src/main/java/com/example/ayat_player_flutter_player/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.example.ayat_player_flutter_player; 2 | 3 | import io.flutter.embedding.android.FlutterActivity; 4 | 5 | public class MainActivity extends FlutterActivity { 6 | } 7 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-anydpi-v24/ic_music_custom.xml: -------------------------------------------------------------------------------- 1 | 7 | 9 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-anydpi-v24/ic_next_custom.xml: -------------------------------------------------------------------------------- 1 | 7 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-anydpi-v24/ic_pause_custom.xml: -------------------------------------------------------------------------------- 1 | 7 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-anydpi-v24/ic_play_custom.xml: -------------------------------------------------------------------------------- 1 | 7 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-anydpi-v24/ic_prev_custom.xml: -------------------------------------------------------------------------------- 1 | 7 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-anydpi-v24/ic_stop_custom.xml: -------------------------------------------------------------------------------- 1 | 7 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-hdpi/ic_music_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-hdpi/ic_music_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-hdpi/ic_next_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-hdpi/ic_next_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-hdpi/ic_pause_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-hdpi/ic_pause_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-hdpi/ic_play_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-hdpi/ic_play_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-hdpi/ic_prev_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-hdpi/ic_prev_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-hdpi/ic_stop_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-hdpi/ic_stop_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-hdpi/notification_place_holder.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-hdpi/notification_place_holder.jpg -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/ic_music_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-mdpi/ic_music_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/ic_next_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-mdpi/ic_next_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/ic_pause_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-mdpi/ic_pause_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/ic_play_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-mdpi/ic_play_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/ic_prev_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-mdpi/ic_prev_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/ic_stop_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-mdpi/ic_stop_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/notification_place_holder.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-mdpi/notification_place_holder.jpg -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/ic_music_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-xhdpi/ic_music_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/ic_next_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-xhdpi/ic_next_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/ic_pause_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-xhdpi/ic_pause_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/ic_play_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-xhdpi/ic_play_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/ic_prev_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-xhdpi/ic_prev_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/ic_stop_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-xhdpi/ic_stop_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/notification_place_holder.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-xhdpi/notification_place_holder.jpg -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxhdpi/ic_music_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-xxhdpi/ic_music_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxhdpi/ic_next_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-xxhdpi/ic_next_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxhdpi/ic_pause_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-xxhdpi/ic_pause_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxhdpi/ic_play_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-xxhdpi/ic_play_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxhdpi/ic_prev_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-xxhdpi/ic_prev_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxhdpi/ic_stop_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-xxhdpi/ic_stop_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxhdpi/notification_place_holder.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-xxhdpi/notification_place_holder.jpg -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxxhdpi/ic_music_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-xxxhdpi/ic_music_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxxhdpi/ic_next_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-xxxhdpi/ic_next_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxxhdpi/ic_pause_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-xxxhdpi/ic_pause_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxxhdpi/ic_play_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-xxxhdpi/ic_play_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxxhdpi/ic_prev_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-xxxhdpi/ic_prev_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxxhdpi/ic_stop_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/drawable-xxxhdpi/ic_stop_custom.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/raw/keep.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | jcenter() 5 | } 6 | 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:3.5.0' 9 | classpath 'com.google.gms:google-services:4.3.3' 10 | } 11 | } 12 | 13 | allprojects { 14 | repositories { 15 | google() 16 | jcenter() 17 | } 18 | } 19 | 20 | rootProject.buildDir = '../build' 21 | subprojects { 22 | project.buildDir = "${rootProject.buildDir}/${project.name}" 23 | } 24 | subprojects { 25 | project.evaluationDependsOn(':app') 26 | } 27 | 28 | task clean(type: Delete) { 29 | delete rootProject.buildDir 30 | } 31 | -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.enableR8=true 3 | android.useAndroidX=true 4 | android.enableJetifier=true 5 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip 7 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() 4 | 5 | def plugins = new Properties() 6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') 7 | if (pluginsFile.exists()) { 8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } 9 | } 10 | 11 | plugins.each { name, path -> 12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() 13 | include ":$name" 14 | project(":$name").projectDir = pluginDirectory 15 | } 16 | -------------------------------------------------------------------------------- /android/settings_aar.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /assets/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/assets/empty.png -------------------------------------------------------------------------------- /assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/assets/logo.png -------------------------------------------------------------------------------- /assets/me.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/assets/me.jpg -------------------------------------------------------------------------------- /fonts/MetalMania-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/fonts/MetalMania-Regular.ttf -------------------------------------------------------------------------------- /fonts/RobotoSlab-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/fonts/RobotoSlab-Bold.ttf -------------------------------------------------------------------------------- /fonts/RobotoSlab-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/fonts/RobotoSlab-Light.ttf -------------------------------------------------------------------------------- /fonts/RobotoSlab-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/fonts/RobotoSlab-Medium.ttf -------------------------------------------------------------------------------- /fonts/RobotoSlab-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/fonts/RobotoSlab-Regular.ttf -------------------------------------------------------------------------------- /ios/.gitignore: -------------------------------------------------------------------------------- 1 | *.mode1v3 2 | *.mode2v3 3 | *.moved-aside 4 | *.pbxuser 5 | *.perspectivev3 6 | **/*sync/ 7 | .sconsign.dblite 8 | .tags* 9 | **/.vagrant/ 10 | **/DerivedData/ 11 | Icon? 12 | **/Pods/ 13 | **/.symlinks/ 14 | profile 15 | xcuserdata 16 | **/.generated/ 17 | Flutter/App.framework 18 | Flutter/Flutter.framework 19 | Flutter/Flutter.podspec 20 | Flutter/Generated.xcconfig 21 | Flutter/app.flx 22 | Flutter/app.zip 23 | Flutter/flutter_assets/ 24 | Flutter/flutter_export_environment.sh 25 | ServiceDefinitions.json 26 | Runner/GeneratedPluginRegistrant.* 27 | 28 | # Exceptions to above rules. 29 | !default.mode1v3 30 | !default.mode2v3 31 | !default.pbxuser 32 | !default.perspectivev3 33 | -------------------------------------------------------------------------------- /ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 8.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | 4 | @UIApplicationMain 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "20x20", 5 | "idiom" : "iphone", 6 | "filename" : "Icon-App-20x20@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "20x20", 11 | "idiom" : "iphone", 12 | "filename" : "Icon-App-20x20@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "Icon-App-29x29@1x.png", 19 | "scale" : "1x" 20 | }, 21 | { 22 | "size" : "29x29", 23 | "idiom" : "iphone", 24 | "filename" : "Icon-App-29x29@2x.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "29x29", 29 | "idiom" : "iphone", 30 | "filename" : "Icon-App-29x29@3x.png", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "size" : "40x40", 35 | "idiom" : "iphone", 36 | "filename" : "Icon-App-40x40@2x.png", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "size" : "40x40", 41 | "idiom" : "iphone", 42 | "filename" : "Icon-App-40x40@3x.png", 43 | "scale" : "3x" 44 | }, 45 | { 46 | "size" : "60x60", 47 | "idiom" : "iphone", 48 | "filename" : "Icon-App-60x60@2x.png", 49 | "scale" : "2x" 50 | }, 51 | { 52 | "size" : "60x60", 53 | "idiom" : "iphone", 54 | "filename" : "Icon-App-60x60@3x.png", 55 | "scale" : "3x" 56 | }, 57 | { 58 | "size" : "20x20", 59 | "idiom" : "ipad", 60 | "filename" : "Icon-App-20x20@1x.png", 61 | "scale" : "1x" 62 | }, 63 | { 64 | "size" : "20x20", 65 | "idiom" : "ipad", 66 | "filename" : "Icon-App-20x20@2x.png", 67 | "scale" : "2x" 68 | }, 69 | { 70 | "size" : "29x29", 71 | "idiom" : "ipad", 72 | "filename" : "Icon-App-29x29@1x.png", 73 | "scale" : "1x" 74 | }, 75 | { 76 | "size" : "29x29", 77 | "idiom" : "ipad", 78 | "filename" : "Icon-App-29x29@2x.png", 79 | "scale" : "2x" 80 | }, 81 | { 82 | "size" : "40x40", 83 | "idiom" : "ipad", 84 | "filename" : "Icon-App-40x40@1x.png", 85 | "scale" : "1x" 86 | }, 87 | { 88 | "size" : "40x40", 89 | "idiom" : "ipad", 90 | "filename" : "Icon-App-40x40@2x.png", 91 | "scale" : "2x" 92 | }, 93 | { 94 | "size" : "76x76", 95 | "idiom" : "ipad", 96 | "filename" : "Icon-App-76x76@1x.png", 97 | "scale" : "1x" 98 | }, 99 | { 100 | "size" : "76x76", 101 | "idiom" : "ipad", 102 | "filename" : "Icon-App-76x76@2x.png", 103 | "scale" : "2x" 104 | }, 105 | { 106 | "size" : "83.5x83.5", 107 | "idiom" : "ipad", 108 | "filename" : "Icon-App-83.5x83.5@2x.png", 109 | "scale" : "2x" 110 | }, 111 | { 112 | "size" : "1024x1024", 113 | "idiom" : "ios-marketing", 114 | "filename" : "Icon-App-1024x1024@1x.png", 115 | "scale" : "1x" 116 | } 117 | ], 118 | "info" : { 119 | "version" : 1, 120 | "author" : "xcode" 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahadydev/AYat_Player_Flutter/89d41eb84a566dd587913f2abecad341f017181e/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /ios/Runner/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /ios/Runner/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Runner/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ayat_player_flutter_player 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | $(FLUTTER_BUILD_NAME) 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(FLUTTER_BUILD_NUMBER) 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UISupportedInterfaceOrientations 30 | 31 | UIInterfaceOrientationPortrait 32 | UIInterfaceOrientationLandscapeLeft 33 | UIInterfaceOrientationLandscapeRight 34 | 35 | UISupportedInterfaceOrientations~ipad 36 | 37 | UIInterfaceOrientationPortrait 38 | UIInterfaceOrientationPortraitUpsideDown 39 | UIInterfaceOrientationLandscapeLeft 40 | UIInterfaceOrientationLandscapeRight 41 | 42 | UIViewControllerBasedStatusBarAppearance 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /lib/data/images.dart: -------------------------------------------------------------------------------- 1 | const List images = [ 2 | 'https://images.unsplash.com/photo-1505740420928-5e560c06d30e?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80', 3 | 'https://images.unsplash.com/photo-1473691955023-da1c49c95c78?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80', 4 | 'https://images.unsplash.com/photo-1508700115892-45ecd05ae2ad?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80', 5 | 'https://images.unsplash.com/photo-1494232410401-ad00d5433cfa?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjF9&auto=format&fit=crop&w=1350&q=80', 6 | 'https://images.unsplash.com/photo-1505751104546-4b63c93054b1?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1350&q=80', 7 | 'https://images.unsplash.com/photo-1470229538611-16ba8c7ffbd7?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1350&q=80', 8 | 'https://images.unsplash.com/photo-1496293455970-f8581aae0e3b?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1301&q=80', 9 | 'https://images.unsplash.com/photo-1513614328893-b443e064ba52?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1350&q=80', 10 | 'https://images.unsplash.com/photo-1429962714451-bb934ecdc4ec?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80', 11 | 'https://images.unsplash.com/photo-1511671782779-c97d3d27a1d4?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjF9&auto=format&fit=crop&w=1950&q=80', 12 | ]; 13 | -------------------------------------------------------------------------------- /lib/data/sharedpref.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:shared_preferences/shared_preferences.dart'; 3 | 4 | class SharedPersistantSettings with ChangeNotifier { 5 | SharedPreferences _prefs; 6 | 7 | ///initial values 8 | bool _isFilter30Sec = false; 9 | bool _isCarousel = true; 10 | bool _homeAlbumGrid = false; 11 | bool _volumeControl = true; 12 | int _filterSongSeconds = 30; 13 | String _nowPlayingScreen = 'C'; 14 | bool _albumListGridView = true; 15 | bool _artistListGridView = false; 16 | String _nickname = 'User'; 17 | String _email = ''; 18 | String _photo = ''; 19 | 20 | ///getter 21 | bool get isFilter30Sec => _isFilter30Sec; 22 | bool get isCarousel => _isCarousel; 23 | bool get homeAlbumGrid => _homeAlbumGrid; 24 | bool get volumeControl => _volumeControl; 25 | bool get albumListGridView => _albumListGridView; 26 | bool get artistListGridView => _artistListGridView; 27 | int get filterSongSeconds => _filterSongSeconds; 28 | String get nowPlayingScreen => _nowPlayingScreen; 29 | String get nickname => _nickname; 30 | String get email => _email; 31 | String get photo => _photo; 32 | 33 | SharedPersistantSettings() { 34 | _loadSettings(); 35 | } 36 | 37 | _initPref() async { 38 | if (_prefs == null) _prefs = await SharedPreferences.getInstance(); 39 | } 40 | 41 | ///initial value will be set on start of the app 42 | _loadSettings() async { 43 | await _initPref(); 44 | 45 | _isCarousel = _prefs.getBool('isCarousel') ?? true; 46 | _homeAlbumGrid = _prefs.getBool('homeAlbumGrid') ?? false; 47 | _volumeControl = _prefs.getBool('volumeControl') ?? true; 48 | _albumListGridView = _prefs.getBool('albumListGridView') ?? true; 49 | _artistListGridView = _prefs.getBool('artistListGridView') ?? false; 50 | _filterSongSeconds = _prefs.getInt('filterSongSeconds') ?? 30; 51 | _nowPlayingScreen = _prefs.getString('nowPlayingScreen') ?? 'C'; 52 | _nickname = _prefs.getString('nickname') ?? 'User'; 53 | _email = _prefs.getString('email') ?? ''; 54 | _photo = _prefs.getString('photo') ?? ''; 55 | 56 | notifyListeners(); 57 | } 58 | 59 | ///set image path to device 60 | void setImage(String path) async { 61 | _photo = path; 62 | await _initPref(); 63 | _prefs.setString('photo', _photo); 64 | notifyListeners(); 65 | } 66 | 67 | ///set and save profile name email 68 | setNickEmail(String email, String nick) async { 69 | _nickname = nick; 70 | _email = email; 71 | await _initPref(); 72 | _prefs.setString('nickname', _nickname); 73 | _prefs.setString('email', _email); 74 | notifyListeners(); 75 | } 76 | 77 | ///set Grid/List View on Album Screen 78 | setAlbumListGridView(bool v) async { 79 | _albumListGridView = v; 80 | await _initPref(); 81 | _prefs.setBool('albumListGridView', _albumListGridView); 82 | notifyListeners(); 83 | } 84 | 85 | ///set Grid/List View on Artist Screen 86 | setArtistListGridView(bool v) async { 87 | _artistListGridView = v; 88 | await _initPref(); 89 | _prefs.setBool('artistListGridView', _artistListGridView); 90 | notifyListeners(); 91 | } 92 | 93 | ///set and save Carousel Settings 94 | setCarousel(bool c) async { 95 | _isCarousel = c; 96 | await _initPref(); 97 | _prefs.setBool('isCarousel', _isCarousel); 98 | notifyListeners(); 99 | } 100 | 101 | ///set and save Home Album Grid Settings 102 | setHomeAlbumGrid(bool a) async { 103 | _homeAlbumGrid = a; 104 | await _initPref(); 105 | _prefs.setBool('homeAlbumGrid', _homeAlbumGrid); 106 | notifyListeners(); 107 | } 108 | 109 | ///set and save VolumeControl Settings for now playing screen 110 | setVolumeControl(bool v) async { 111 | _volumeControl = v; 112 | await _initPref(); 113 | _prefs.setBool('volumeControl', _volumeControl); 114 | notifyListeners(); 115 | } 116 | 117 | //Set Filter for Songs 118 | setFilterSec(int f) async { 119 | _filterSongSeconds = f; 120 | await _initPref(); 121 | _prefs.setInt('filterSongSeconds', _filterSongSeconds); 122 | notifyListeners(); 123 | } 124 | 125 | //Set NowPlaying Screen for Songs 126 | setNowPlayingScreen(String n) async { 127 | _nowPlayingScreen = n; 128 | await _initPref(); 129 | _prefs.setString('nowPlayingScreen', _nowPlayingScreen); 130 | notifyListeners(); 131 | } 132 | } 133 | -------------------------------------------------------------------------------- /lib/main.dart: -------------------------------------------------------------------------------- 1 | import 'provider/eq.dart'; 2 | import 'provider/audio_player.dart'; 3 | import 'util/constants.dart'; 4 | import 'package:flutter/services.dart'; 5 | import 'package:provider/provider.dart'; 6 | import 'package:flutter/material.dart'; 7 | import 'data/sharedpref.dart'; 8 | import 'provider/audio_query.dart'; 9 | import 'routes/routes.dart'; 10 | import 'util/theme_constants.dart'; 11 | 12 | void main() async { 13 | WidgetsFlutterBinding.ensureInitialized(); 14 | await SystemChrome.setPreferredOrientations( 15 | [DeviceOrientation.portraitDown, DeviceOrientation.portraitUp]); 16 | SystemChrome.setSystemUIOverlayStyle( 17 | SystemUiOverlayStyle( 18 | statusBarColor: Colors.transparent, 19 | ), 20 | ); 21 | runApp(AyatPlayer()); 22 | } 23 | 24 | class AyatPlayer extends StatelessWidget { 25 | @override 26 | Widget build(BuildContext context) { 27 | return MultiProvider( 28 | providers: [ 29 | ChangeNotifierProvider.value(value: ThemeConstants()), 30 | ChangeNotifierProvider.value(value: SharedPersistantSettings()), 31 | ChangeNotifierProvider.value(value: AudioQuery()), 32 | ChangeNotifierProvider.value(value: AudioPlayer()), 33 | ChangeNotifierProvider.value(value: Eq()), 34 | ], 35 | child: Consumer( 36 | builder: (context, ThemeConstants themeConstants, _) => MaterialApp( 37 | title: Constants.appName, 38 | debugShowCheckedModeBanner: false, 39 | theme: themeConstants.themeData.copyWith( 40 | accentColor: themeConstants.accentColor, 41 | toggleableActiveColor: themeConstants.accentColor), 42 | routes: routes, 43 | ), 44 | ), 45 | ); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /lib/model/iap.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async'; 2 | 3 | import 'package:flutter/material.dart'; 4 | import 'package:flutter_inapp_purchase/flutter_inapp_purchase.dart'; 5 | import 'package:fluttertoast/fluttertoast.dart'; 6 | 7 | class IAP { 8 | ///List of items from managed store 9 | List _items = []; 10 | List get items => _items; 11 | 12 | ///Stream subscription for changes listening 13 | StreamSubscription _purchaseUpdatedSubscription; 14 | StreamSubscription _purchaseErrorSubscription; 15 | StreamSubscription _conectionSubscription; 16 | 17 | ///List of item purchased as non consumable 18 | List _purchases = []; 19 | List get purchases => _purchases; 20 | String connectionResult; 21 | 22 | initIAPs() async { 23 | connectionResult = await FlutterInappPurchase.instance.initConnection; 24 | print("Established IAP Connection..." + connectionResult); 25 | 26 | _conectionSubscription = 27 | FlutterInappPurchase.connectionUpdated.listen((connected) { 28 | print('connected: $connected'); 29 | }); 30 | 31 | _purchaseUpdatedSubscription = FlutterInappPurchase.purchaseUpdated.listen( 32 | (productItem) { 33 | print('purchase-updated: $productItem'); 34 | FlutterInappPurchase.instance 35 | .acknowledgePurchaseAndroid(productItem.purchaseToken); 36 | Fluttertoast.showToast( 37 | msg: 'Thank You ! You are the best <3', 38 | toastLength: Toast.LENGTH_LONG, 39 | gravity: ToastGravity.CENTER, 40 | timeInSecForIosWeb: 1, 41 | textColor: Colors.white, 42 | fontSize: 16.0); 43 | }, 44 | ); 45 | 46 | _purchaseErrorSubscription = FlutterInappPurchase.purchaseError.listen( 47 | (purchaseError) { 48 | print('purchase-error: $purchaseError'); 49 | Fluttertoast.showToast( 50 | msg: purchaseError.message ?? 'Error', 51 | toastLength: Toast.LENGTH_SHORT, 52 | gravity: ToastGravity.CENTER, 53 | timeInSecForIosWeb: 1, 54 | textColor: Colors.red, 55 | fontSize: 16.0); 56 | }, 57 | ); 58 | } 59 | 60 | ///get the list of products from google console managed product 61 | getProducts() async { 62 | List items = 63 | await FlutterInappPurchase.instance.getProducts(['donate_80']); 64 | for (var item in items) { 65 | print('${item.toString()}'); 66 | this._items.add(item); 67 | } 68 | } 69 | 70 | ///request of a purchase 71 | requestPurchase(IAPItem item) async { 72 | await FlutterInappPurchase.instance.requestPurchase(item.productId); 73 | } 74 | 75 | ///Consume all item for re-purchase 76 | consumeAllItems() async { 77 | try { 78 | String msg = await FlutterInappPurchase.instance.consumeAllItems; 79 | print('consumeAllItems: $msg'); 80 | } catch (err) { 81 | print('consumeAllItems error: $err'); 82 | } 83 | } 84 | 85 | ///End all billing connection 86 | Future endBillingConnection() async { 87 | print('ending billing connection'); 88 | await FlutterInappPurchase.instance.endConnection; 89 | if (_conectionSubscription != null) { 90 | _conectionSubscription.cancel(); 91 | _conectionSubscription = null; 92 | } 93 | if (_purchaseUpdatedSubscription != null) { 94 | _purchaseUpdatedSubscription.cancel(); 95 | _purchaseUpdatedSubscription = null; 96 | } 97 | if (_purchaseErrorSubscription != null) { 98 | _purchaseErrorSubscription.cancel(); 99 | _purchaseErrorSubscription = null; 100 | } 101 | print('ended billing connection'); 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /lib/provider/audio_player.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async'; 2 | import 'package:assets_audio_player/assets_audio_player.dart'; 3 | import 'package:flutter/material.dart'; 4 | import 'package:flutter_audio_query/flutter_audio_query.dart'; 5 | 6 | class AudioPlayer with ChangeNotifier { 7 | AssetsAudioPlayer assetsAudioPlayer = 8 | AssetsAudioPlayer.withId('MY_UNIQUE_ID'); 9 | List _subscriptions = []; 10 | 11 | ///Getter variables for AudioPlayer 12 | bool isPlaying = false; 13 | Duration currentSongDuration = Duration(seconds: 0); 14 | Duration currentSongPosition = Duration(seconds: 0); 15 | double currentVolume = 1.0; 16 | LoopMode loopMode = LoopMode.none; 17 | PlayerState playerState = PlayerState.stop; 18 | PlayingAudio currentlyPlaying; 19 | int audioSessionId; 20 | 21 | AudioPlayer() { 22 | initPlayer(); 23 | } 24 | 25 | initPlayer() { 26 | // _subscriptions.add(assetsAudioPlayer.playlistFinished.listen((finished) { 27 | // print("finished : $finished"); 28 | // })); 29 | // _subscriptions 30 | // .add(assetsAudioPlayer.playlistAudioFinished.listen((finished) { 31 | // })); 32 | _subscriptions.add(assetsAudioPlayer.audioSessionId.listen((id) { 33 | audioSessionId = id; 34 | notifyListeners(); 35 | })); 36 | _subscriptions.add(assetsAudioPlayer.current.listen((playing) { 37 | currentSongDuration = playing.audio.duration; 38 | notifyListeners(); 39 | })); 40 | _subscriptions.add(assetsAudioPlayer.currentPosition.listen((position) { 41 | currentSongPosition = position; 42 | notifyListeners(); 43 | })); 44 | _subscriptions.add(assetsAudioPlayer.volume.listen((volume) { 45 | currentVolume = volume; 46 | notifyListeners(); 47 | })); 48 | _subscriptions.add(assetsAudioPlayer.loopMode.listen((loopmode) { 49 | loopMode = loopmode; 50 | notifyListeners(); 51 | })); 52 | _subscriptions.add(assetsAudioPlayer.onReadyToPlay.listen((audio) { 53 | currentlyPlaying = audio; 54 | notifyListeners(); 55 | })); 56 | _subscriptions.add(assetsAudioPlayer.playerState.listen((playerstate) { 57 | playerState = playerstate; 58 | notifyListeners(); 59 | })); 60 | _subscriptions.add(assetsAudioPlayer.isPlaying.listen((isplaying) { 61 | isPlaying = isplaying; 62 | notifyListeners(); 63 | })); 64 | // _subscriptions 65 | // .add(AssetsAudioPlayer.addNotificationOpenAction((notification) { 66 | // print(notification); 67 | // return false; 68 | // })); 69 | } 70 | 71 | //Play a song 72 | playSingleSong(SongInfo songInfo) { 73 | assetsAudioPlayer.open( 74 | Audio.file( 75 | songInfo.filePath, 76 | metas: Metas( 77 | title: songInfo.title, 78 | artist: songInfo.artist, 79 | album: songInfo.album, 80 | image: MetasImage.file(songInfo.albumArtwork), 81 | ), 82 | ), 83 | playInBackground: PlayInBackground.enabled, 84 | showNotification: true, 85 | notificationSettings: NotificationSettings(), 86 | ); 87 | 88 | notifyListeners(); 89 | } 90 | 91 | initPlaylistSounds(List songsList, int index) { 92 | assetsAudioPlayer.open( 93 | Playlist( 94 | audios: convertsongListToPlayList( 95 | songsList, 96 | ), 97 | startIndex: index, 98 | ), 99 | showNotification: true, 100 | playInBackground: PlayInBackground.enabled, 101 | notificationSettings: NotificationSettings(), 102 | ); 103 | } 104 | 105 | //Play song from playlist 106 | List