From 0cdef55e3d67e3b6accd0b31df241f56bf742112 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Mon, 2 Aug 2021 17:08:53 +0800 Subject: [PATCH] flutter project upgraded --- flutter_hbb/README.md | 16 -- flutter_hbb/android/app/build.gradle | 10 +- .../android/app/src/main/AndroidManifest.xml | 10 +- .../res/drawable-v21/launch_background.xml | 12 ++ .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 544 -> 2693 bytes .../main/res/mipmap-hdpi/launcher_icon.png | Bin 2693 -> 0 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 442 -> 1902 bytes .../main/res/mipmap-mdpi/launcher_icon.png | Bin 1902 -> 0 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 721 -> 3510 bytes .../main/res/mipmap-xhdpi/launcher_icon.png | Bin 3510 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 1031 -> 5300 bytes .../main/res/mipmap-xxhdpi/launcher_icon.png | Bin 5300 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 1443 -> 7053 bytes .../main/res/mipmap-xxxhdpi/launcher_icon.png | Bin 7053 -> 0 bytes .../app/src/main/res/values-night/styles.xml | 18 ++ .../app/src/main/res/values/styles.xml | 8 +- flutter_hbb/android/build.gradle | 4 +- flutter_hbb/android/flutter_hbb_android.iml | 29 +++ flutter_hbb/android/gradle.properties | 1 - .../gradle/wrapper/gradle-wrapper.properties | 2 +- flutter_hbb/android/key.properties | 1 + flutter_hbb/ios/.gitignore | 1 + .../ios/Flutter/AppFrameworkInfo.plist | 4 +- .../ios/Runner.xcodeproj/project.pbxproj | 26 +-- .../contents.xcworkspacedata | 2 +- flutter_hbb/lib/model.dart | 20 ++- flutter_hbb/pubspec.lock | 165 ++++++++---------- flutter_hbb/pubspec.yaml | 26 +-- 28 files changed, 173 insertions(+), 182 deletions(-) delete mode 100644 flutter_hbb/README.md create mode 100644 flutter_hbb/android/app/src/main/res/drawable-v21/launch_background.xml delete mode 100644 flutter_hbb/android/app/src/main/res/mipmap-hdpi/launcher_icon.png delete mode 100644 flutter_hbb/android/app/src/main/res/mipmap-mdpi/launcher_icon.png delete mode 100644 flutter_hbb/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png delete mode 100644 flutter_hbb/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png delete mode 100644 flutter_hbb/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png create mode 100644 flutter_hbb/android/app/src/main/res/values-night/styles.xml create mode 100644 flutter_hbb/android/flutter_hbb_android.iml create mode 120000 flutter_hbb/android/key.properties diff --git a/flutter_hbb/README.md b/flutter_hbb/README.md deleted file mode 100644 index 4c570f839..000000000 --- a/flutter_hbb/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# flutter_hbb - -Your Remote Desktop Software - -## Getting Started - -This project is a starting point for a Flutter application. - -A few resources to get you started if this is your first Flutter project: - -- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) -- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) - -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/flutter_hbb/android/app/build.gradle b/flutter_hbb/android/app/build.gradle index c83feda57..2eeab0b0a 100644 --- a/flutter_hbb/android/app/build.gradle +++ b/flutter_hbb/android/app/build.gradle @@ -32,21 +32,17 @@ apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { - compileSdkVersion 29 + compileSdkVersion 30 sourceSets { main.java.srcDirs += 'src/main/kotlin' } - lintOptions { - disable 'InvalidPackage' - } - defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.carriez.flutter_hbb" - minSdkVersion 21 - targetSdkVersion 29 + minSdkVersion 16 + targetSdkVersion 30 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } diff --git a/flutter_hbb/android/app/src/main/AndroidManifest.xml b/flutter_hbb/android/app/src/main/AndroidManifest.xml index d9b85398d..567c1ebbb 100644 --- a/flutter_hbb/android/app/src/main/AndroidManifest.xml +++ b/flutter_hbb/android/app/src/main/AndroidManifest.xml @@ -1,14 +1,8 @@ - - + android:icon="@mipmap/ic_launcher"> + + + + + + + diff --git a/flutter_hbb/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/flutter_hbb/android/app/src/main/res/mipmap-hdpi/ic_launcher.png index db77bb4b7b0906d62b1847e87f15cdcacf6a4f29..ed28303a914d6780d414837087b9860d26190e46 100644 GIT binary patch literal 2693 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 AQ2+n{ diff --git a/flutter_hbb/android/app/src/main/res/mipmap-hdpi/launcher_icon.png b/flutter_hbb/android/app/src/main/res/mipmap-hdpi/launcher_icon.png deleted file mode 100644 index ed28303a914d6780d414837087b9860d26190e46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2693 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 kHwL)NFS;iHCOmi*pfB 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 literal 721 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wSy!iOI#yLg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+5i=O3-AeX1=1l$e`s#|#^}+&7(N@w0CIr{$Oe+Uk^K-ZP~83C zcc@hG6rikF&NPT(23>y!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ diff --git a/flutter_hbb/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png b/flutter_hbb/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png deleted file mode 100644 index afb25941a6e6d62b55394458f9570ffc3bd39b8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3510 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 diff --git a/flutter_hbb/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/flutter_hbb/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index d5f1c8d34e7a88e3f88bea192c3a370d44689c3c..062de677b14cddf431c6fa405ee93c1c459bb088 100644 GIT binary patch literal 5300 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 oc|zI#9*+N!6#ajcw0aM)kMdtDv0yR!M{( 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 diff --git a/flutter_hbb/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png b/flutter_hbb/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png deleted file mode 100644 index 062de677b14cddf431c6fa405ee93c1c459bb088..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5300 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 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` diff --git a/flutter_hbb/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png b/flutter_hbb/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png deleted file mode 100644 index cc13fc9d5800961d018c6b6f6f165e9375348b4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7053 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 diff --git a/flutter_hbb/android/app/src/main/res/values-night/styles.xml b/flutter_hbb/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 000000000..449a9f930 --- /dev/null +++ b/flutter_hbb/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/flutter_hbb/android/app/src/main/res/values/styles.xml b/flutter_hbb/android/app/src/main/res/values/styles.xml index 1f83a33fd..d74aa35c2 100644 --- a/flutter_hbb/android/app/src/main/res/values/styles.xml +++ b/flutter_hbb/android/app/src/main/res/values/styles.xml @@ -1,7 +1,7 @@ - - diff --git a/flutter_hbb/android/build.gradle b/flutter_hbb/android/build.gradle index 4273368a3..110174e8d 100644 --- a/flutter_hbb/android/build.gradle +++ b/flutter_hbb/android/build.gradle @@ -6,7 +6,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.5.0' + classpath 'com.android.tools.build:gradle:4.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.3.3' } @@ -22,8 +22,6 @@ allprojects { rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { project.evaluationDependsOn(':app') } diff --git a/flutter_hbb/android/flutter_hbb_android.iml b/flutter_hbb/android/flutter_hbb_android.iml new file mode 100644 index 000000000..18999696a --- /dev/null +++ b/flutter_hbb/android/flutter_hbb_android.iml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/flutter_hbb/android/gradle.properties b/flutter_hbb/android/gradle.properties index a6738207f..94adc3a3f 100644 --- a/flutter_hbb/android/gradle.properties +++ b/flutter_hbb/android/gradle.properties @@ -1,4 +1,3 @@ org.gradle.jvmargs=-Xmx1536M android.useAndroidX=true android.enableJetifier=true -android.enableR8=true diff --git a/flutter_hbb/android/gradle/wrapper/gradle-wrapper.properties b/flutter_hbb/android/gradle/wrapper/gradle-wrapper.properties index 296b146b7..bc6a58afd 100644 --- a/flutter_hbb/android/gradle/wrapper/gradle-wrapper.properties +++ b/flutter_hbb/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-5.6.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip diff --git a/flutter_hbb/android/key.properties b/flutter_hbb/android/key.properties new file mode 120000 index 000000000..6dc71cf47 --- /dev/null +++ b/flutter_hbb/android/key.properties @@ -0,0 +1 @@ +/Users/hzhou/.android/key.properties \ No newline at end of file diff --git a/flutter_hbb/ios/.gitignore b/flutter_hbb/ios/.gitignore index e96ef602b..151026b91 100644 --- a/flutter_hbb/ios/.gitignore +++ b/flutter_hbb/ios/.gitignore @@ -18,6 +18,7 @@ Flutter/App.framework Flutter/Flutter.framework Flutter/Flutter.podspec Flutter/Generated.xcconfig +Flutter/ephemeral/ Flutter/app.flx Flutter/app.zip Flutter/flutter_assets/ diff --git a/flutter_hbb/ios/Flutter/AppFrameworkInfo.plist b/flutter_hbb/ios/Flutter/AppFrameworkInfo.plist index f2872cf47..9367d483e 100644 --- a/flutter_hbb/ios/Flutter/AppFrameworkInfo.plist +++ b/flutter_hbb/ios/Flutter/AppFrameworkInfo.plist @@ -3,7 +3,7 @@ CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) + en CFBundleExecutable App CFBundleIdentifier @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 9.0 + 8.0 diff --git a/flutter_hbb/ios/Runner.xcodeproj/project.pbxproj b/flutter_hbb/ios/Runner.xcodeproj/project.pbxproj index 811c03816..0724246e2 100644 --- a/flutter_hbb/ios/Runner.xcodeproj/project.pbxproj +++ b/flutter_hbb/ios/Runner.xcodeproj/project.pbxproj @@ -289,16 +289,8 @@ 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.carriez.flutterHbb; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -421,16 +413,8 @@ 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.carriez.flutterHbb; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -448,16 +432,8 @@ 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.carriez.flutterHbb; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -492,4 +468,4 @@ /* End XCConfigurationList section */ }; rootObject = 97C146E61CF9000F007C117D /* Project object */; -} \ No newline at end of file +} diff --git a/flutter_hbb/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/flutter_hbb/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata index 1d526a16e..919434a62 100644 --- a/flutter_hbb/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/flutter_hbb/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -2,6 +2,6 @@ + location = "self:"> diff --git a/flutter_hbb/lib/model.dart b/flutter_hbb/lib/model.dart index 94feb030a..38a577f4f 100644 --- a/flutter_hbb/lib/model.dart +++ b/flutter_hbb/lib/model.dart @@ -21,7 +21,6 @@ class RgbaFrame extends Struct { Pointer data; } -typedef F1 = void Function(Pointer); typedef F2 = Pointer Function(Pointer, Pointer); typedef F3 = void Function(Pointer, Pointer); typedef F4 = void Function(Pointer); @@ -475,7 +474,6 @@ class CursorModel with ChangeNotifier { class FFI { static String id = ""; static String _dir = ''; - static F1 _freeCString; static F2 _getByName; static F3 _setByName; static F4 _freeRgba; @@ -606,14 +604,22 @@ class FFI { } static void setByName(String name, [String value = '']) { - _setByName(Utf8.toUtf8(name), Utf8.toUtf8(value)); + var a = name.toNativeUtf8(); + var b = value.toNativeUtf8(); + _setByName(a, b); + calloc.free(a); + calloc.free(b); } static String getByName(String name, [String arg = '']) { - var p = _getByName(Utf8.toUtf8(name), Utf8.toUtf8(arg)); + var a = name.toNativeUtf8(); + var b = arg.toNativeUtf8(); + var p = _getByName(a, b); assert(p != nullptr && p != null); - var res = Utf8.fromUtf8(p); - _freeCString(p); + var res = p.toDartString(); + calloc.free(p); + calloc.free(a); + calloc.free(b); return res; } @@ -625,8 +631,6 @@ class FFI { _setByName = dylib.lookupFunction, Pointer), F3>( 'set_by_name'); - _freeCString = dylib - .lookupFunction), F1>('rust_cstr_free'); _freeRgba = dylib .lookupFunction), F4>('free_rgba'); _getRgba = dylib.lookupFunction('get_rgba'); diff --git a/flutter_hbb/pubspec.lock b/flutter_hbb/pubspec.lock index d16209cd5..7f7f91a5d 100644 --- a/flutter_hbb/pubspec.lock +++ b/flutter_hbb/pubspec.lock @@ -7,21 +7,21 @@ packages: name: archive url: "https://pub.dartlang.org" source: hosted - version: "2.0.13" + version: "3.1.2" args: dependency: transitive description: name: args url: "https://pub.dartlang.org" source: hosted - version: "1.6.0" + version: "2.2.0" async: dependency: transitive description: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.5.0" + version: "2.6.1" boolean_selector: dependency: transitive description: @@ -57,48 +57,34 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.15.0" - convert: - dependency: transitive - description: - name: convert - url: "https://pub.dartlang.org" - source: hosted - version: "2.1.1" crypto: dependency: transitive description: name: crypto url: "https://pub.dartlang.org" source: hosted - version: "2.1.5" - csslib: - dependency: transitive - description: - name: csslib - url: "https://pub.dartlang.org" - source: hosted - version: "0.16.2" + version: "3.0.1" cupertino_icons: dependency: "direct main" description: name: cupertino_icons url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" + version: "1.0.3" device_info: dependency: "direct main" description: name: device_info url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" + version: "2.0.2" device_info_platform_interface: dependency: transitive description: name: device_info_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "2.0.1" fake_async: dependency: transitive description: @@ -112,63 +98,63 @@ packages: name: ffi url: "https://pub.dartlang.org" source: hosted - version: "0.1.3" + version: "1.1.2" file: dependency: transitive description: name: file url: "https://pub.dartlang.org" source: hosted - version: "5.2.1" + version: "6.1.2" firebase: dependency: transitive description: name: firebase url: "https://pub.dartlang.org" source: hosted - version: "7.3.3" + version: "9.0.1" firebase_analytics: dependency: "direct main" description: name: firebase_analytics url: "https://pub.dartlang.org" source: hosted - version: "6.3.0" + version: "8.2.0" firebase_analytics_platform_interface: dependency: transitive description: name: firebase_analytics_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.3" + version: "2.0.1" firebase_analytics_web: dependency: transitive description: name: firebase_analytics_web url: "https://pub.dartlang.org" source: hosted - version: "0.1.1" + version: "0.3.0+1" firebase_core: dependency: transitive description: name: firebase_core url: "https://pub.dartlang.org" source: hosted - version: "0.5.3" + version: "1.4.0" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "4.0.1" firebase_core_web: dependency: transitive description: name: firebase_core_web url: "https://pub.dartlang.org" source: hosted - version: "0.2.1+1" + version: "1.1.0" flutter: dependency: "direct main" description: flutter @@ -189,7 +175,7 @@ packages: name: flutter_launcher_icons url: "https://pub.dartlang.org" source: hosted - version: "0.8.1" + version: "0.9.1" flutter_spinkit: dependency: transitive description: @@ -207,48 +193,27 @@ packages: description: flutter source: sdk version: "0.0.0" - html: - dependency: transitive - description: - name: html - url: "https://pub.dartlang.org" - source: hosted - version: "0.14.0+4" http: dependency: transitive description: name: http url: "https://pub.dartlang.org" source: hosted - version: "0.12.2" + version: "0.13.3" http_parser: dependency: transitive description: name: http_parser url: "https://pub.dartlang.org" source: hosted - version: "3.1.4" + version: "4.0.0" image: dependency: transitive description: name: image url: "https://pub.dartlang.org" source: hosted - version: "2.1.19" - import_js_library: - dependency: transitive - description: - name: import_js_library - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.2" - intl: - dependency: transitive - description: - name: intl - url: "https://pub.dartlang.org" - source: hosted - version: "0.16.1" + version: "3.0.2" js: dependency: transitive description: @@ -276,14 +241,14 @@ packages: name: nested url: "https://pub.dartlang.org" source: hosted - version: "0.0.4" + version: "1.0.0" package_info: dependency: "direct main" description: name: package_info url: "https://pub.dartlang.org" source: hosted - version: "0.4.3+2" + version: "2.0.2" path: dependency: transitive description: @@ -297,126 +262,126 @@ packages: name: path_provider url: "https://pub.dartlang.org" source: hosted - version: "1.6.24" + version: "2.0.2" path_provider_linux: dependency: transitive description: name: path_provider_linux url: "https://pub.dartlang.org" source: hosted - version: "0.0.1+2" + version: "2.0.2" path_provider_macos: dependency: transitive description: name: path_provider_macos url: "https://pub.dartlang.org" source: hosted - version: "0.0.4+6" + version: "2.0.2" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.4" + version: "2.0.1" path_provider_windows: dependency: transitive description: name: path_provider_windows url: "https://pub.dartlang.org" source: hosted - version: "0.0.4+3" + version: "2.0.3" pedantic: dependency: transitive description: name: pedantic url: "https://pub.dartlang.org" source: hosted - version: "1.9.2" + version: "1.11.1" petitparser: dependency: transitive description: name: petitparser url: "https://pub.dartlang.org" source: hosted - version: "3.1.0" + version: "4.1.0" platform: dependency: transitive description: name: platform url: "https://pub.dartlang.org" source: hosted - version: "2.2.1" + version: "3.0.0" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.3" + version: "2.0.1" process: dependency: transitive description: name: process url: "https://pub.dartlang.org" source: hosted - version: "3.0.13" + version: "4.2.3" provider: dependency: "direct main" description: name: provider url: "https://pub.dartlang.org" source: hosted - version: "4.3.2+3" + version: "5.0.0" quiver: dependency: transitive description: name: quiver url: "https://pub.dartlang.org" source: hosted - version: "2.1.5" + version: "3.0.1" shared_preferences: dependency: "direct main" description: name: shared_preferences url: "https://pub.dartlang.org" source: hosted - version: "0.5.12+4" + version: "2.0.6" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux url: "https://pub.dartlang.org" source: hosted - version: "0.0.2+4" + version: "2.0.2" shared_preferences_macos: dependency: transitive description: name: shared_preferences_macos url: "https://pub.dartlang.org" source: hosted - version: "0.0.1+11" + version: "2.0.2" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.4" + version: "2.0.0" shared_preferences_web: dependency: transitive description: name: shared_preferences_web url: "https://pub.dartlang.org" source: hosted - version: "0.1.2+7" + version: "2.0.1" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows url: "https://pub.dartlang.org" source: hosted - version: "0.0.1+3" + version: "2.0.2" sky_engine: dependency: transitive description: flutter @@ -428,7 +393,7 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.8.0" + version: "1.8.1" stack_trace: dependency: transitive description: @@ -463,14 +428,14 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.2.19" + version: "0.3.0" tuple: dependency: "direct main" description: name: tuple url: "https://pub.dartlang.org" source: hosted - version: "1.0.3" + version: "2.0.0" typed_data: dependency: transitive description: @@ -484,42 +449,42 @@ packages: name: url_launcher url: "https://pub.dartlang.org" source: hosted - version: "5.7.10" + version: "6.0.9" url_launcher_linux: dependency: transitive description: name: url_launcher_linux url: "https://pub.dartlang.org" source: hosted - version: "0.0.1+4" + version: "2.0.1" url_launcher_macos: dependency: transitive description: name: url_launcher_macos url: "https://pub.dartlang.org" source: hosted - version: "0.0.1+9" + version: "2.0.1" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.9" + version: "2.0.4" url_launcher_web: dependency: transitive description: name: url_launcher_web url: "https://pub.dartlang.org" source: hosted - version: "0.1.5+1" + version: "2.0.2" url_launcher_windows: dependency: transitive description: name: url_launcher_windows url: "https://pub.dartlang.org" source: hosted - version: "0.0.1+3" + version: "2.0.1" vector_math: dependency: transitive description: @@ -533,49 +498,63 @@ packages: name: wakelock url: "https://pub.dartlang.org" source: hosted - version: "0.2.1+1" + version: "0.5.2" + wakelock_macos: + dependency: transitive + description: + name: wakelock_macos + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.0+1" wakelock_platform_interface: dependency: transitive description: name: wakelock_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "0.1.0+1" + version: "0.2.1+1" wakelock_web: dependency: transitive description: name: wakelock_web url: "https://pub.dartlang.org" source: hosted - version: "0.1.0+3" + version: "0.2.0+1" + wakelock_windows: + dependency: transitive + description: + name: wakelock_windows + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.0" win32: dependency: transitive description: name: win32 url: "https://pub.dartlang.org" source: hosted - version: "1.7.4" + version: "2.2.5" xdg_directories: dependency: transitive description: name: xdg_directories url: "https://pub.dartlang.org" source: hosted - version: "0.1.2" + version: "0.2.0" xml: dependency: transitive description: name: xml url: "https://pub.dartlang.org" source: hosted - version: "4.5.1" + version: "5.1.2" yaml: dependency: transitive description: name: yaml url: "https://pub.dartlang.org" source: hosted - version: "2.2.1" + version: "3.1.0" sdks: - dart: ">=2.12.0-0.0 <3.0.0" - flutter: ">=1.22.0" + dart: ">=2.13.0 <3.0.0" + flutter: ">=2.0.0" diff --git a/flutter_hbb/pubspec.yaml b/flutter_hbb/pubspec.yaml index 3e235b0d4..3e7a9e9f6 100644 --- a/flutter_hbb/pubspec.yaml +++ b/flutter_hbb/pubspec.yaml @@ -27,29 +27,29 @@ dependencies: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. - cupertino_icons: ^1.0.0 - ffi: ^0.1.3 - path_provider: ^1.6.24 - provider: ^4.3.2+2 + cupertino_icons: ^1.0.3 + ffi: ^1.1.2 + path_provider: ^2.0.2 + provider: ^5.0.0 flutter_easyloading: git: url: git://github.com/open-trade/flutter_easyloading #path: flutter_easyloading - tuple: ^1.0.1 - wakelock: ^0.2.1+1 - device_info: ^1.0.0 - firebase_analytics: ^6.2.0 - package_info: ^0.4.3+2 - url_launcher: ^5.7.10 - shared_preferences: ^0.5.12+4 + tuple: ^2.0.0 + wakelock: ^0.5.2 + device_info: ^2.0.2 + firebase_analytics: ^8.2.0 + package_info: ^2.0.2 + url_launcher: ^6.0.9 + shared_preferences: ^2.0.6 dev_dependencies: - flutter_launcher_icons: "^0.8.0" + flutter_launcher_icons: ^0.9.1 flutter_test: sdk: flutter flutter_icons: - android: "launcher_icon" + android: "ic_launcher" ios: true image_path: "../128x128@2x.png"