From 42f852292031b0fcfd10c570b38c4a3bab65a9c4 Mon Sep 17 00:00:00 2001 From: J-Nokwal Date: Thu, 29 Oct 2020 00:54:45 +0530 Subject: [PATCH] new version of flutter --- .gitignore | 44 ++- .metadata | 6 +- README.md | 94 +----- android/.gitignore | 17 +- android/app/build.gradle | 52 +-- android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 41 ++- .../musicfinderexample/MainActivity.java | 18 +- .../com/example/music_player/MainActivity.kt | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 1880 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1074 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 2447 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 4625 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 6248 -> 1443 bytes android/app/src/main/res/values/styles.xml | 10 + android/app/src/profile/AndroidManifest.xml | 7 + android/build.gradle | 4 +- android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 2 +- android/gradlew.bat | 180 +++++----- android/settings.gradle | 18 +- ios/.gitignore | 62 ++-- ios/Flutter/AppFrameworkInfo.plist | 8 +- ios/Flutter/Debug.xcconfig | 1 - ios/Flutter/Release.xcconfig | 1 - ios/Runner.xcodeproj/project.pbxproj | 221 ++++++------- .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 6 +- .../contents.xcworkspacedata | 3 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + ios/Runner/AppDelegate.swift | 2 +- .../Icon-App-1024x1024@1x.png | Bin 11112 -> 10932 bytes ios/Runner/Info.plist | 12 +- ios/Runner/Runner-Bridging-Header.h | 2 +- lib/main.dart | 10 +- lib/my_app.dart | 6 +- lib/pages/now_playing.dart | 12 +- lib/pages/root_page.dart | 6 +- lib/widgets/mp_album_ui.dart | 2 +- lib/widgets/mp_drawer.dart | 2 +- lib/widgets/mp_inherited.dart | 6 +- lib/widgets/mp_lisview.dart | 8 +- pubspec.lock | 313 ++---------------- pubspec.yaml | 44 ++- 46 files changed, 517 insertions(+), 751 deletions(-) create mode 100644 android/app/src/debug/AndroidManifest.xml create mode 100644 android/app/src/main/kotlin/com/example/music_player/MainActivity.kt mode change 100755 => 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png mode change 100755 => 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png mode change 100755 => 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png mode change 100755 => 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png mode change 100755 => 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/profile/AndroidManifest.xml create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings diff --git a/.gitignore b/.gitignore index ee16f87..9d532b1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,41 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp .DS_Store .atom/ -.idea -.vscode/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies .packages +.pub-cache/ .pub/ -build/ -ios/.generated/ -packages -.flutter-plugins -key.properties +/build/ + +# Web related +lib/generated_plugin_registrant.dart + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json diff --git a/.metadata b/.metadata index 46e884c..24544cb 100644 --- a/.metadata +++ b/.metadata @@ -4,5 +4,7 @@ # This file should be version controlled and should not be manually edited. version: - revision: 3ea4d06340a97a1e9d7cae97567c64e0569dcaa2 - channel: beta + revision: 84f3d28555368a70270e9ac8390a9441df95e752 + channel: stable + +project_type: app diff --git a/README.md b/README.md index f0e1b37..7e0499b 100644 --- a/README.md +++ b/README.md @@ -1,90 +1,16 @@ -# Flutter Music Player +# music_player -First Open Source Flutter based Beautiful Material Design Music Player(Online Radio will be added soon.) +A new Flutter project. -# Demo App - -[Play Store BETA](https://play.google.com/store/apps/details?id=com.mtechviral.fluttermusicplayer) - -## Features - -* [x] Android (iOS Coming Soon) - - * [x] Fetch local songs (Inbuilt Permission) - * [x] Beautiful UI with multiple themes(Coming Soon) - * [x] Animation - * [x] Full Fledged Example - * [x] play (local files) - * [x] stop - * [x] pause - * [x] seek - * [x] shuffle - * [x] Album Art - * [x] onComplete - * [x] onDuration / onCurrentPosition - -* Supported formats - - * [Android](https://developer.android.com/guide/topics/media/media-formats.html) - -### Show some :heart: and star the repo to support the project - -### Screenshots - - - -* Note - This project also has a plugin to fetch songs and use audio player which can be used in any of your projects. Check the below link. - -### Flute Music Player Plugin - -[Plugin](https://github.com/iampawan/Flute-Music-Player) - -## iOS - -### Alert: iOS implementation - -This project is not implemented for ios yet.So wait for it or if you can contribute then please do help. - -# Pull Requests - -I welcome and encourage all pull requests. It usually will take me within 24-48 hours to respond to any issue or request. Here are some basic rules to follow to ensure timely addition of your request: - -1. Match coding style (braces, spacing, etc.) This is best achieved using `Reformat Code` feature of Android Studio `CMD`+`Option`+`L` on Mac and `CTRL` + `ALT` + `L` on Linux + Windows . -2. If its a feature, bugfix, or anything please only change code to what you specify. -3. Please keep PR titles easy to read and descriptive of changes, this will make them easier to merge :) -4. Pull requests _must_ be made against `develop` branch. Any other branch (unless specified by the maintainers) will get rejected. -5. Check for existing [issues](https://github.com/iampawan/Flutter-Music-Player/issues) first, before filing an issue. -6. Make sure you follow the set standard as all other projects in this repo do -7. Have fun! - -### Created & Maintained By - -[Pawan Kumar](https://github.com/iampawan) ([@imthepk](https://www.twitter.com/imthepk)) ([Youtube](https://www.youtube.com/c/MTechViral)) -([Insta](https://www.instagram.com/codepur_ka_superhero)) - -> If you found this project helpful or you learned something from the source code and want to thank me, consider buying me a cup of :coffee: -> -> * [PayPal](https://www.paypal.me/imthepk/) - -# License - - Copyright 2018 Pawan Kumar - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 +## Getting Started - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. +This project is a starting point for a Flutter application. -## Getting Started +A few resources to get you started if this is your first Flutter project: -For help getting started with Flutter, view our online -[documentation](http://flutter.io/). +- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) -For help on editing plugin code, view the [documentation](https://flutter.io/platform-plugins/#edit-code). +For help getting started with Flutter, view our +[online documentation](https://flutter.dev/docs), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/android/.gitignore b/android/.gitignore index 65b7315..0a741cb 100644 --- a/android/.gitignore +++ b/android/.gitignore @@ -1,10 +1,11 @@ -*.iml -*.class -.gradle +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat /local.properties -/.idea/workspace.xml -/.idea/libraries -.DS_Store -/build -/captures GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties diff --git a/android/app/build.gradle b/android/app/build.gradle index 243e380..3ce2af8 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -11,15 +11,26 @@ if (flutterRoot == null) { throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") } +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" -def keystorePropertiesFile = rootProject.file("key.properties") -def keystoreProperties = new Properties() -keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) - android { - compileSdkVersion 27 + compileSdkVersion 29 + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } lintOptions { disable 'InvalidPackage' @@ -27,35 +38,26 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.mtechviral.fluttermusicplayer" + applicationId "com.example.music_player" minSdkVersion 16 - targetSdkVersion 27 - versionCode 3 - versionName "0.0.3" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + targetSdkVersion 29 + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName } - signingConfigs { - release { - keyAlias keystoreProperties['keyAlias'] - keyPassword keystoreProperties['keyPassword'] - storeFile file(keystoreProperties['storeFile']) - storePassword keystoreProperties['storePassword'] + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } } } -buildTypes { - release { - signingConfig signingConfigs.release - } -} -} flutter { source '../..' } dependencies { - testImplementation 'junit:junit:4.12' - androidTestImplementation 'com.android.support.test:runner:1.0.1' - androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" } diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..9efd487 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 9835ed8..6828608 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,13 +1,5 @@ - - - - - + package="com.example.music_player"> - + + android:name="io.flutter.embedding.android.NormalTheme" + android:resource="@style/NormalTheme" + /> + + + + diff --git a/android/app/src/main/java/com/mtechviral/musicfinderexample/MainActivity.java b/android/app/src/main/java/com/mtechviral/musicfinderexample/MainActivity.java index 9b79e8d..b05029c 100644 --- a/android/app/src/main/java/com/mtechviral/musicfinderexample/MainActivity.java +++ b/android/app/src/main/java/com/mtechviral/musicfinderexample/MainActivity.java @@ -1,14 +1,16 @@ package com.mtechviral.musicfinderexample; -import android.os.Bundle; -import io.flutter.app.FlutterActivity; -import io.flutter.plugins.GeneratedPluginRegistrant; +// import android.os.Bundle; +// import io.flutter.app.FlutterActivity; +// import io.flutter.plugins.GeneratedPluginRegistrant; +import io.flutter.embedding.android.FlutterActivity; + public class MainActivity extends FlutterActivity { - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - GeneratedPluginRegistrant.registerWith(this); + // @Override + // protected void onCreate(Bundle savedInstanceState) { + // super.onCreate(savedInstanceState); + // GeneratedPluginRegistrant.registerWith(this); - } + // } } diff --git a/android/app/src/main/kotlin/com/example/music_player/MainActivity.kt b/android/app/src/main/kotlin/com/example/music_player/MainActivity.kt new file mode 100644 index 0000000..cbbfaea --- /dev/null +++ b/android/app/src/main/kotlin/com/example/music_player/MainActivity.kt @@ -0,0 +1,6 @@ +package com.example.music_player + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png old mode 100755 new mode 100644 index 3111277934700135cb0d62120c32deca17e721a3..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ delta 1876 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 literal 2447 zcmV;A32^p_P)mb@w;<+XNEIRt<_Hv$1b0LZffd9GeqfB=wZ1@c_I zuz(^4AmCZyDcP{hR75Iotg`953IA_LP*A ze4KgYSy&*ENW69U@ZoP&RaNx^i1R?;0id@0wzjs4wQJYzmu2}Qvrt>^OHL#by*qa7 z_+mptLxjf?SODmIYW-z{gM%9vELde`_d;SCf*E%LRSNbvRn}h0JZ*70CN+G#JiFt(f?v$D4;0HIa!t~0gM4S zr)Nlxd$9oc0QdpSQxxSrp*+6=k|Zqza2mj5Iyb}vAOPTfilY3Nzj{$plB7!ji~=yy z(yT3j09>pn%5fnpzXFmZEdnqi0Pt&;(~^=TEe0?=V*$isF~lY(wLt)V$!ajhBzq_r zfZtCcZ~DuO2e5nZGw9g+tfjN5SO_FPB)6yEwr15WsJZ^S>8nqJWHa3Yc6IClt&SF; zD{i$2WvZ+RgSyT5ymn1JZmjvb0KlVw3SjphwWvi<(+0cH*0QvtRzd*aQQTHW0LVhL zT<+osz!U_m;lSF`?Y>A@Ko(@k{ird(?1CJ9f2yl712BUUF(3mF1fX39;MSsDx4VE6 z06YYc-X&=jH>|10O(F~8qhPTB7vCQU_z?^QY=)qtu>8?J)YsMG`fIP@I{`+i8Q%|R zH^l&ZI;m-+p!SuwPSx^b=^&%H6M!rpg_0w@!*EVd4o0N{=G zQ!Xe8z$v%ag0Qdvk04krz-g>s0PslqWDq6@<_>`U2F&WZT44cRQP3=a-4Uz5xz?*w zNPFB_&=KoI`_meLl$-H-Fs4qJ0N_#kQ!PLM@JL;b!;<(r4Hq<3UJJ&CMNkGLEPzAI zY>GGnu=N83fNYfI+-K+0rXXyzd24q-&47dja0;4fF$(~fTZ{rgrm8xWR}=-~rcYle0uUw&SO8xWJtfqO8{;W9Wf??ci$Vt z*4FKK>+k>2T}sMRoz`QxJ^y11#;OGf0O|E7H*@#BTX1TGe#^jU*{ttV($HGmDgd|x z=>N|tEJgH*}ZbJ+y+g;O80l-!L;gJzEY}kasNF-%2$4z+0aUXS~{n<~g zT5>_c0$dP0wEd^(df`Rw)gRdgTZT ?dBaX=D@7X=D-IGP%J%YzT&z`>r>VdP{UnYM$)4Awdr%76p_Tk{$_a|ZR_S%;yMr&1dp z36}$xWIQTL{$BvF$=us_6nA`oqY*dtZ&~T5QOr5m+B;xI5ElR(oa;;byK({ZU*4}q3CT6hbZhy>b^*Y_0_axa&Zo3dOkG}wV4NG5 zBmg)7=-B%Vo_KPXOZsW@^-Pz;whRHl0l>aL?8laeA9YT>ZB9IO$RV>}{J=dw#^$+(bK09jZV-@ z@YF{W=gysj4}I`5eDT3P~sSs6-7 z=zZdaz03#zg)MRVvl9UFOiut10P?Ir9;>IcS(fFTzB{@+7KP3m}?(UzgT)C1a@iAu5ph?~w7uF0K#vC$pmM>pk+11tc+>#|rE*BEJD{$=CvHt4n z>gxsu251_qGt-?zh5%8oN1eu`wzl@lrlzLtOP4PFa4~d-E@VTYPGetR-;tJWatX z6QiS}$9sEwyVtK@|BJ!F!4tapG=&w-Bj)OU=n{AUs59xAAY251R*DVul1&0MTNfHG zB!Q`w(_}p)I=P(*()Mc$(U7jHbO81pw>2^+B?)BTwzRD=Z#7h}LM{&HQ) zbOfBvzFa3)M1`0SaAeyLC?XAt^HfDE&NDXwKmf?I0(q`pSU{cu{2vUFk*vHIO4I-V N002ovPDHLkV1n$0e}@17 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png old mode 100755 new mode 100644 index 6a2c631fa11e8b10216c5cd62a875421de9ee46f..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 4625 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 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png old mode 100755 new mode 100644 index 078e4bb143896688fa29d2e1017a79f6fe3dfa82..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 6248 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 diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml index 00fa441..1f83a33 100644 --- a/android/app/src/main/res/values/styles.xml +++ b/android/app/src/main/res/values/styles.xml @@ -1,8 +1,18 @@ + + + diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..9efd487 --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/build.gradle b/android/build.gradle index 4476887..3100ad2 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,11 +1,13 @@ buildscript { + ext.kotlin_version = '1.3.50' repositories { google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.0.1' + classpath 'com.android.tools.build:gradle:3.5.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } diff --git a/android/gradle.properties b/android/gradle.properties index 8bd86f6..a673820 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1 +1,4 @@ org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true +android.enableR8=true diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index aa901e1..296b146 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip diff --git a/android/gradlew.bat b/android/gradlew.bat index 8a0b282..aec9973 100644 --- a/android/gradlew.bat +++ b/android/gradlew.bat @@ -1,90 +1,90 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windowz variants - -if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/android/settings.gradle b/android/settings.gradle index 5a2f14f..44e62bc 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,15 +1,11 @@ include ':app' -def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() +def localPropertiesFile = new File(rootProject.projectDir, "local.properties") +def properties = new Properties() -def plugins = new Properties() -def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') -if (pluginsFile.exists()) { - pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } -} +assert localPropertiesFile.exists() +localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } -plugins.each { name, path -> - def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() - include ":$name" - project(":$name").projectDir = pluginDirectory -} +def flutterSdkPath = properties.getProperty("flutter.sdk") +assert flutterSdkPath != null, "flutter.sdk not set in local.properties" +apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/ios/.gitignore b/ios/.gitignore index 1e1aafd..e96ef60 100644 --- a/ios/.gitignore +++ b/ios/.gitignore @@ -1,42 +1,32 @@ -.idea/ -.vagrant/ -.sconsign.dblite -.svn/ - -.DS_Store -*.swp -profile - -DerivedData/ -build/ -GeneratedPluginRegistrant.h -GeneratedPluginRegistrant.m - -*.pbxuser *.mode1v3 *.mode2v3 +*.moved-aside +*.pbxuser *.perspectivev3 - -!default.pbxuser +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. !default.mode1v3 !default.mode2v3 +!default.pbxuser !default.perspectivev3 - -xcuserdata - -*.moved-aside - -*.pyc -*sync/ -Icon? -.tags* - -/Flutter/app.flx -/Flutter/app.zip -/Flutter/flutter_assets/ -/Flutter/App.framework -/Flutter/Flutter.framework -/Flutter/Generated.xcconfig -/ServiceDefinitions.json - -Pods/ diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist index 6c2de80..f2872cf 100644 --- a/ios/Flutter/AppFrameworkInfo.plist +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -3,7 +3,7 @@ CFBundleDevelopmentRegion - en + $(DEVELOPMENT_LANGUAGE) CFBundleExecutable App CFBundleIdentifier @@ -20,11 +20,7 @@ ???? CFBundleVersion 1.0 - UIRequiredDeviceCapabilities - - arm64 - MinimumOSVersion - 8.0 + 9.0 diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig index e8efba1..592ceee 100644 --- a/ios/Flutter/Debug.xcconfig +++ b/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig index 399e934..592ceee 100644 --- a/ios/Flutter/Release.xcconfig +++ b/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index c828963..31293cf 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -8,19 +8,11 @@ /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */ = {isa = PBXBuildFile; fileRef = 2D5378251FAA1A9400D5DBA9 /* flutter_assets */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; }; - 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; - 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; }; - 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; }; - 9740EEB51CF90195004384FC /* Generated.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB31CF90195004384FC /* Generated.xcconfig */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - B38636833C461141B2D18799 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D0A98622EC7FE2F5D6DEF9A /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -30,8 +22,6 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */, - 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -41,16 +31,12 @@ /* Begin PBXFileReference section */ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 2D5378251FAA1A9400D5DBA9 /* flutter_assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = flutter_assets; path = Flutter/flutter_assets; sourceTree = SOURCE_ROOT; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = ""; }; - 4D0A98622EC7FE2F5D6DEF9A /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; - 9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; @@ -63,37 +49,16 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */, - 3B80C3941E831B6300D905FE /* App.framework in Frameworks */, - B38636833C461141B2D18799 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0DFFD2A2600F9C5AD77681C6 /* Pods */ = { - isa = PBXGroup; - children = ( - ); - name = Pods; - sourceTree = ""; - }; - 248BBCC7A5AC24EBC1DB4D4E /* Frameworks */ = { - isa = PBXGroup; - children = ( - 4D0A98622EC7FE2F5D6DEF9A /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( - 2D5378251FAA1A9400D5DBA9 /* flutter_assets */, - 3B80C3931E831B6300D905FE /* App.framework */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, - 9740EEBA1CF902C7004384FC /* Flutter.framework */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, 9740EEB31CF90195004384FC /* Generated.xcconfig */, @@ -107,8 +72,6 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, - 0DFFD2A2600F9C5AD77681C6 /* Pods */, - 248BBCC7A5AC24EBC1DB4D4E /* Frameworks */, ); sourceTree = ""; }; @@ -127,7 +90,6 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */, 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, 97C147021CF9000F007C117D /* Info.plist */, - 97C146F11CF9000F007C117D /* Supporting Files */, 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, @@ -136,13 +98,6 @@ path = Runner; sourceTree = ""; }; - 97C146F11CF9000F007C117D /* Supporting Files */ = { - isa = PBXGroup; - children = ( - ); - name = "Supporting Files"; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -150,15 +105,12 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 848598087E71707B7F34C064 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - B9BD9D3DE1A4D70D00ED5D7D /* [CP] Embed Pods Frameworks */, - D37FFDC6655D41CA21F0AC1D /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -175,18 +127,18 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0910; - ORGANIZATIONNAME = "The Chromium Authors"; + LastUpgradeCheck = 1020; + ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { CreatedOnToolsVersion = 7.3.1; - LastSwiftMigration = 0910; + LastSwiftMigration = 1100; }; }; }; buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, @@ -208,11 +160,8 @@ buildActionMask = 2147483647; files = ( 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, - 9740EEB51CF90195004384FC /* Generated.xcconfig in Resources */, 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, - 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */, 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, - 2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -232,25 +181,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin"; - }; - 848598087E71707B7F34C064 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; @@ -266,41 +197,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - B9BD9D3DE1A4D70D00ED5D7D /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", - "${PODS_ROOT}/.symlinks/flutter/ios/Flutter.framework", - "${BUILT_PRODUCTS_DIR}/music_finder/music_finder.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/music_finder.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - D37FFDC6655D41CA21F0AC1D /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -335,9 +231,84 @@ /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.musicPlayer; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; 97C147031CF9000F007C117D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -349,12 +320,14 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -381,7 +354,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -391,7 +364,6 @@ }; 97C147041CF9000F007C117D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -403,12 +375,14 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -429,9 +403,10 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; @@ -442,9 +417,9 @@ isa = XCBuildConfiguration; baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; buildSettings = { - ARCHS = arm64; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -456,12 +431,12 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - PRODUCT_BUNDLE_IDENTIFIER = com.mtechviral.musicFinderExample; + PRODUCT_BUNDLE_IDENTIFIER = com.example.musicPlayer; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_SWIFT3_OBJC_INFERENCE = On; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; }; name = Debug; }; @@ -469,9 +444,9 @@ isa = XCBuildConfiguration; baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { - ARCHS = arm64; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -483,11 +458,11 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - PRODUCT_BUNDLE_IDENTIFIER = com.mtechviral.musicFinderExample; + PRODUCT_BUNDLE_IDENTIFIER = com.example.musicPlayer; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = On; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; }; name = Release; }; @@ -499,6 +474,7 @@ buildConfigurations = ( 97C147031CF9000F007C117D /* Debug */, 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -508,6 +484,7 @@ buildConfigurations = ( 97C147061CF9000F007C117D /* Debug */, 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 1263ac8..a28140c 100644 --- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ @@ -46,7 +45,6 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - language = "" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" @@ -67,7 +65,7 @@ - - diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift index 71cc41e..70693e4 100644 --- a/ios/Runner/AppDelegate.swift +++ b/ios/Runner/AppDelegate.swift @@ -5,7 +5,7 @@ import Flutter @objc class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, - didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]? + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png index 3d43d11e66f4de3da27ed045ca4fe38ad8b48094..dc9ada4725e9b0ddb1deab583e5b5102493aa332 100644 GIT binary patch literal 10932 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 P-1+_A+?hGkL;m(J7kc&K diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index a79052c..6b2e2e7 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -3,7 +3,7 @@ CFBundleDevelopmentRegion - en + $(DEVELOPMENT_LANGUAGE) CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -11,25 +11,21 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - music_finder_example + music_player CFBundlePackageType APPL CFBundleShortVersionString - 1.0 + $(FLUTTER_BUILD_NAME) CFBundleSignature ???? CFBundleVersion - 1 + $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS UILaunchStoryboardName LaunchScreen UIMainStoryboardFile Main - UIRequiredDeviceCapabilities - - arm64 - UISupportedInterfaceOrientations UIInterfaceOrientationPortrait diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h index 7335fdf..308a2a5 100644 --- a/ios/Runner/Runner-Bridging-Header.h +++ b/ios/Runner/Runner-Bridging-Header.h @@ -1 +1 @@ -#import "GeneratedPluginRegistrant.h" \ No newline at end of file +#import "GeneratedPluginRegistrant.h" diff --git a/lib/main.dart b/lib/main.dart index db1da99..2958812 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; -import 'package:flute_example/my_app.dart'; -import 'package:flute_example/utils/themes.dart'; +import 'package:music_player/my_app.dart'; +import 'package:music_player/utils/themes.dart'; +// import 'package:flute_example/utils/themes.dar'; void main() => runApp(new MyMaterialApp()); @@ -15,6 +16,9 @@ class MyMaterialAppState extends State { @override Widget build(BuildContext context) { return new MaterialApp( - debugShowCheckedModeBanner: false, theme: darkTheme, home: new MyApp()); + debugShowCheckedModeBanner: false, + theme: darkTheme, + home: new MyApp(), + ); } } diff --git a/lib/my_app.dart b/lib/my_app.dart index 0a8e2bf..c4d6562 100644 --- a/lib/my_app.dart +++ b/lib/my_app.dart @@ -1,8 +1,8 @@ -import 'package:flute_example/data/song_data.dart'; -import 'package:flute_example/pages/root_page.dart'; -import 'package:flute_example/widgets/mp_inherited.dart'; import 'package:flute_music_player/flute_music_player.dart'; import 'package:flutter/material.dart'; +import 'package:music_player/data/song_data.dart'; +import 'package:music_player/pages/root_page.dart'; +import 'package:music_player/widgets/mp_inherited.dart'; class MyApp extends StatefulWidget { @override diff --git a/lib/pages/now_playing.dart b/lib/pages/now_playing.dart index b6c8534..36ad889 100644 --- a/lib/pages/now_playing.dart +++ b/lib/pages/now_playing.dart @@ -1,12 +1,12 @@ import 'dart:async'; import 'dart:ui'; -import 'package:flute_example/data/song_data.dart'; -import 'package:flute_example/widgets/mp_album_ui.dart'; -import 'package:flute_example/widgets/mp_blur_filter.dart'; -import 'package:flute_example/widgets/mp_blur_widget.dart'; -import 'package:flute_example/widgets/mp_control_button.dart'; import 'package:flutter/material.dart'; import 'package:flute_music_player/flute_music_player.dart'; +import 'package:music_player/data/song_data.dart'; +import 'package:music_player/widgets/mp_album_ui.dart'; +import 'package:music_player/widgets/mp_blur_filter.dart'; +import 'package:music_player/widgets/mp_blur_widget.dart'; +import 'package:music_player/widgets/mp_control_button.dart'; enum PlayerState { stopped, playing, paused } @@ -148,7 +148,7 @@ class _NowPlayingState extends State { children: [ new Text( song.title, - style: Theme.of(context).textTheme.headline, + style: Theme.of(context).textTheme.headline4, ), new Text( song.artist, diff --git a/lib/pages/root_page.dart b/lib/pages/root_page.dart index ee3b9a2..403536a 100644 --- a/lib/pages/root_page.dart +++ b/lib/pages/root_page.dart @@ -1,8 +1,8 @@ -import 'package:flute_example/pages/now_playing.dart'; -import 'package:flute_example/widgets/mp_inherited.dart'; -import 'package:flute_example/widgets/mp_lisview.dart'; import 'package:flute_music_player/flute_music_player.dart'; import 'package:flutter/material.dart'; +import 'package:music_player/pages/now_playing.dart'; +import 'package:music_player/widgets/mp_inherited.dart'; +import 'package:music_player/widgets/mp_lisview.dart'; class RootPage extends StatelessWidget { @override diff --git a/lib/widgets/mp_album_ui.dart b/lib/widgets/mp_album_ui.dart index 0493834..be528b4 100644 --- a/lib/widgets/mp_album_ui.dart +++ b/lib/widgets/mp_album_ui.dart @@ -21,7 +21,7 @@ class AlbumUIState extends State with SingleTickerProviderStateMixin { initState() { super.initState(); animationController = new AnimationController( - vsync: this, duration: new Duration(seconds: 1)); + duration: new Duration(seconds: 1), vsync: this); animation = new CurvedAnimation( parent: animationController, curve: Curves.elasticOut); animation.addListener(() => this.setState(() {})); diff --git a/lib/widgets/mp_drawer.dart b/lib/widgets/mp_drawer.dart index 58079d6..9944062 100644 --- a/lib/widgets/mp_drawer.dart +++ b/lib/widgets/mp_drawer.dart @@ -1,5 +1,5 @@ import 'dart:io'; -import 'package:flute_example/widgets/mp_inherited.dart'; +import 'package:music_player/widgets/mp_inherited.dart'; import 'package:flutter/material.dart'; import 'package:flute_music_player/flute_music_player.dart'; class MPDrawer extends StatefulWidget { diff --git a/lib/widgets/mp_inherited.dart b/lib/widgets/mp_inherited.dart index 5ef8e83..65cd17b 100644 --- a/lib/widgets/mp_inherited.dart +++ b/lib/widgets/mp_inherited.dart @@ -1,5 +1,5 @@ -import 'package:flute_example/data/song_data.dart'; import 'package:flutter/material.dart'; +import 'package:music_player/data/song_data.dart'; class MPInheritedWidget extends InheritedWidget { final SongData songData; @@ -9,11 +9,11 @@ class MPInheritedWidget extends InheritedWidget { : super(child: child); static MPInheritedWidget of(BuildContext context) { - return context.inheritFromWidgetOfExactType(MPInheritedWidget); + return context.dependOnInheritedWidgetOfExactType(); } @override bool updateShouldNotify(MPInheritedWidget oldWidget) => - // TODO: implement updateShouldNotify + // TOD: implement updateShouldNotify songData != oldWidget.songData || isLoading != oldWidget.isLoading; } diff --git a/lib/widgets/mp_lisview.dart b/lib/widgets/mp_lisview.dart index a08434f..87aa1ed 100644 --- a/lib/widgets/mp_lisview.dart +++ b/lib/widgets/mp_lisview.dart @@ -1,9 +1,9 @@ import 'dart:io'; -import 'package:flute_example/data/song_data.dart'; -import 'package:flute_example/pages/now_playing.dart'; -import 'package:flute_example/widgets/mp_circle_avatar.dart'; -import 'package:flute_example/widgets/mp_inherited.dart'; import 'package:flutter/material.dart'; +import 'package:music_player/data/song_data.dart'; +import 'package:music_player/pages/now_playing.dart'; +import 'package:music_player/widgets/mp_circle_avatar.dart'; +import 'package:music_player/widgets/mp_inherited.dart'; class MPListView extends StatelessWidget { final List _colors = Colors.primaries; diff --git a/pubspec.lock b/pubspec.lock index 26c787d..98c172e 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,90 +1,62 @@ # Generated by pub -# See https://www.dartlang.org/tools/pub/glossary#lockfile +# See https://dart.dev/tools/pub/glossary#lockfile packages: - analyzer: - dependency: transitive - description: - name: analyzer - url: "https://pub.dartlang.org" - source: hosted - version: "0.31.1" - args: - dependency: transitive - description: - name: args - url: "https://pub.dartlang.org" - source: hosted - version: "1.4.1" async: dependency: transitive description: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.0.6" - barback: + version: "2.5.0-nullsafety.1" + boolean_selector: dependency: transitive description: - name: barback + name: boolean_selector url: "https://pub.dartlang.org" source: hosted - version: "0.15.2+14" - boolean_selector: + version: "2.1.0-nullsafety.1" + characters: dependency: transitive description: - name: boolean_selector + name: characters url: "https://pub.dartlang.org" source: hosted - version: "1.0.3" + version: "1.1.0-nullsafety.3" charcode: dependency: transitive description: name: charcode url: "https://pub.dartlang.org" source: hosted - version: "1.1.1" - cli_util: + version: "1.2.0-nullsafety.1" + clock: dependency: transitive description: - name: cli_util + name: clock url: "https://pub.dartlang.org" source: hosted - version: "0.1.2+1" + version: "1.1.0-nullsafety.1" collection: dependency: transitive description: name: collection url: "https://pub.dartlang.org" source: hosted - version: "1.14.6" - convert: - dependency: transitive - description: - name: convert - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.1" - crypto: - dependency: transitive + version: "1.15.0-nullsafety.3" + cupertino_icons: + dependency: "direct main" description: - name: crypto + name: cupertino_icons url: "https://pub.dartlang.org" source: hosted - version: "2.0.2+1" - csslib: + version: "1.0.0" + fake_async: dependency: transitive description: - name: csslib - url: "https://pub.dartlang.org" - source: hosted - version: "0.14.1" - cupertino_icons: - dependency: "direct main" - description: - name: cupertino_icons + name: fake_async url: "https://pub.dartlang.org" source: hosted - version: "0.1.1" + version: "1.2.0-nullsafety.1" flute_music_player: dependency: "direct main" description: @@ -102,304 +74,87 @@ packages: description: flutter source: sdk version: "0.0.0" - front_end: - dependency: transitive - description: - name: front_end - url: "https://pub.dartlang.org" - source: hosted - version: "0.1.0-alpha.9" - glob: - dependency: transitive - description: - name: glob - url: "https://pub.dartlang.org" - source: hosted - version: "1.1.5" - html: - dependency: transitive - description: - name: html - url: "https://pub.dartlang.org" - source: hosted - version: "0.13.3" - http: - dependency: transitive - description: - name: http - url: "https://pub.dartlang.org" - source: hosted - version: "0.11.3+16" - http_multi_server: - dependency: transitive - description: - name: http_multi_server - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.4" - http_parser: - dependency: transitive - description: - name: http_parser - url: "https://pub.dartlang.org" - source: hosted - version: "3.1.1" - io: - dependency: transitive - description: - name: io - url: "https://pub.dartlang.org" - source: hosted - version: "0.3.2+1" - isolate: - dependency: transitive - description: - name: isolate - url: "https://pub.dartlang.org" - source: hosted - version: "1.1.0" - js: - dependency: transitive - description: - name: js - url: "https://pub.dartlang.org" - source: hosted - version: "0.6.1" - kernel: - dependency: transitive - description: - name: kernel - url: "https://pub.dartlang.org" - source: hosted - version: "0.3.0-alpha.9" - logging: - dependency: transitive - description: - name: logging - url: "https://pub.dartlang.org" - source: hosted - version: "0.11.3+1" matcher: dependency: transitive description: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.1+4" + version: "0.12.10-nullsafety.1" meta: dependency: transitive description: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.1.2" - mime: - dependency: transitive - description: - name: mime - url: "https://pub.dartlang.org" - source: hosted - version: "0.9.6" - mockito: - dependency: transitive - description: - name: mockito - url: "https://pub.dartlang.org" - source: hosted - version: "2.2.3" - multi_server_socket: - dependency: transitive - description: - name: multi_server_socket - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.1" - node_preamble: - dependency: transitive - description: - name: node_preamble - url: "https://pub.dartlang.org" - source: hosted - version: "1.4.0" - package_config: - dependency: transitive - description: - name: package_config - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.3" - package_resolver: - dependency: transitive - description: - name: package_resolver - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.2" + version: "1.3.0-nullsafety.3" path: dependency: transitive description: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.5.1" - plugin: - dependency: transitive - description: - name: plugin - url: "https://pub.dartlang.org" - source: hosted - version: "0.2.0+2" - pool: - dependency: transitive - description: - name: pool - url: "https://pub.dartlang.org" - source: hosted - version: "1.3.4" - pub_semver: - dependency: transitive - description: - name: pub_semver - url: "https://pub.dartlang.org" - source: hosted - version: "1.3.2" - quiver: - dependency: transitive - description: - name: quiver - url: "https://pub.dartlang.org" - source: hosted - version: "0.28.0" - shelf: - dependency: transitive - description: - name: shelf - url: "https://pub.dartlang.org" - source: hosted - version: "0.7.2" - shelf_packages_handler: - dependency: transitive - description: - name: shelf_packages_handler - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.3" - shelf_static: - dependency: transitive - description: - name: shelf_static - url: "https://pub.dartlang.org" - source: hosted - version: "0.2.7" - shelf_web_socket: - dependency: transitive - description: - name: shelf_web_socket - url: "https://pub.dartlang.org" - source: hosted - version: "0.2.2" + version: "1.8.0-nullsafety.1" sky_engine: dependency: transitive description: flutter source: sdk version: "0.0.99" - source_map_stack_trace: - dependency: transitive - description: - name: source_map_stack_trace - url: "https://pub.dartlang.org" - source: hosted - version: "1.1.4" - source_maps: - dependency: transitive - description: - name: source_maps - url: "https://pub.dartlang.org" - source: hosted - version: "0.10.4" source_span: dependency: transitive description: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.4.0" + version: "1.8.0-nullsafety.2" stack_trace: dependency: transitive description: name: stack_trace url: "https://pub.dartlang.org" source: hosted - version: "1.9.2" + version: "1.10.0-nullsafety.1" stream_channel: dependency: transitive description: name: stream_channel url: "https://pub.dartlang.org" source: hosted - version: "1.6.4" + version: "2.1.0-nullsafety.1" string_scanner: dependency: transitive description: name: string_scanner url: "https://pub.dartlang.org" source: hosted - version: "1.0.2" + version: "1.1.0-nullsafety.1" term_glyph: dependency: transitive description: name: term_glyph url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" - test: + version: "1.2.0-nullsafety.1" + test_api: dependency: transitive description: - name: test + name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.12.32+1" + version: "0.2.19-nullsafety.2" typed_data: dependency: transitive description: name: typed_data url: "https://pub.dartlang.org" source: hosted - version: "1.1.5" - utf: - dependency: transitive - description: - name: utf - url: "https://pub.dartlang.org" - source: hosted - version: "0.9.0+4" + version: "1.3.0-nullsafety.3" vector_math: dependency: transitive description: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.0.5" - watcher: - dependency: transitive - description: - name: watcher - url: "https://pub.dartlang.org" - source: hosted - version: "0.9.7+7" - web_socket_channel: - dependency: transitive - description: - name: web_socket_channel - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.7" - yaml: - dependency: transitive - description: - name: yaml - url: "https://pub.dartlang.org" - source: hosted - version: "2.1.13" + version: "2.1.0-nullsafety.3" sdks: - dart: ">=2.0.0-dev.28.0 <=2.0.0-edge.0d5cf900b021bf5c9fa593ffa12b15bcd1cc5fe0" + dart: ">=2.10.0-110 <2.11.0" diff --git a/pubspec.yaml b/pubspec.yaml index 645499f..9c39836 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,23 +1,41 @@ -name: flute_example -description: Demonstrates how to use the flute_music_player plugin. +name: music_player +description: A new Flutter project. + +# The following line prevents the package from being accidentally published to +# pub.dev using `pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +version: 1.0.0+1 + +environment: + sdk: ">=2.7.0 <3.0.0" dependencies: flutter: sdk: flutter + flute_music_player: ^0.0.6 + # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. - cupertino_icons: ^0.1.0 - flute_music_player: ^0.0.6 + cupertino_icons: ^1.0.0 dev_dependencies: flutter_test: sdk: flutter - - # For information on the generic Dart part of this file, see the -# following page: https://www.dartlang.org/tools/pub/pubspec +# following page: https://dart.dev/tools/pub/pubspec # The following section is specific to Flutter. flutter: @@ -28,15 +46,19 @@ flutter: uses-material-design: true # To add assets to your application, add an assets section, like this: + # assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + assets: - assets/lady.jpeg - assets/music_record.jpeg # An image asset can refer to one or more resolution-specific "variants", see - # https://flutter.io/assets-and-images/#resolution-aware. + # https://flutter.dev/assets-and-images/#resolution-aware. # For details regarding adding assets from package dependencies, see - # https://flutter.io/assets-and-images/#from-packages + # https://flutter.dev/assets-and-images/#from-packages # To add custom fonts to your application, add a fonts section here, # in this "flutter" section. Each entry in this list should have a @@ -55,5 +77,5 @@ flutter: # - asset: fonts/TrajanPro_Bold.ttf # weight: 700 # - # For details regarding fonts from package dependencies, - # see https://flutter.io/custom-fonts/#from-packages + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages