From 1b6ebc67c319981c06f50f3db6aa889d79fa46f8 Mon Sep 17 00:00:00 2001 From: tall3at <91608104+tall3at@users.noreply.github.com> Date: Wed, 15 Dec 2021 21:09:01 +0500 Subject: [PATCH 01/32] first commit --- .gitignore | 46 ++ .metadata | 10 + README.md | 16 + analysis_options.yaml | 29 ++ android/.gitignore | 13 + android/app/build.gradle | 68 +++ android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 41 ++ .../com/mohem_flutter_app/MainActivity.kt | 6 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values-night/styles.xml | 18 + android/app/src/main/res/values/styles.xml | 18 + android/app/src/profile/AndroidManifest.xml | 7 + android/build.gradle | 29 ++ android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 6 + android/settings.gradle | 11 + ios/.gitignore | 33 ++ ios/Flutter/AppFrameworkInfo.plist | 26 + ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Runner.xcodeproj/project.pbxproj | 471 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 91 ++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 +++++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 564 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 1588 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1025 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 1716 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 1920 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 1895 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 3831 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 1888 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 3294 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 3612 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + ios/Runner/Base.lproj/LaunchScreen.storyboard | 37 ++ ios/Runner/Base.lproj/Main.storyboard | 26 + ios/Runner/Info.plist | 45 ++ ios/Runner/Runner-Bridging-Header.h | 1 + lib/main.dart | 115 +++++ pubspec.lock | 167 +++++++ pubspec.yaml | 89 ++++ test/widget_test.dart | 30 ++ web/favicon.png | Bin 0 -> 917 bytes web/icons/Icon-192.png | Bin 0 -> 5292 bytes web/icons/Icon-512.png | Bin 0 -> 8252 bytes web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes web/index.html | 101 ++++ web/manifest.json | 35 ++ 72 files changed, 1830 insertions(+) create mode 100644 .gitignore create mode 100644 .metadata create mode 100644 README.md create mode 100644 analysis_options.yaml create mode 100644 android/.gitignore create mode 100644 android/app/build.gradle create mode 100644 android/app/src/debug/AndroidManifest.xml create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/kotlin/com/mohem_flutter_app/MainActivity.kt create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable/launch_background.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/values-night/styles.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/profile/AndroidManifest.xml create mode 100644 android/build.gradle create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100644 android/settings.gradle create mode 100644 ios/.gitignore create mode 100644 ios/Flutter/AppFrameworkInfo.plist create mode 100644 ios/Flutter/Debug.xcconfig create mode 100644 ios/Flutter/Release.xcconfig create mode 100644 ios/Runner.xcodeproj/project.pbxproj create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata 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.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner/AppDelegate.swift create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 ios/Runner/Base.lproj/Main.storyboard create mode 100644 ios/Runner/Info.plist create mode 100644 ios/Runner/Runner-Bridging-Header.h create mode 100644 lib/main.dart create mode 100644 pubspec.lock create mode 100644 pubspec.yaml create mode 100644 test/widget_test.dart create mode 100644 web/favicon.png create mode 100644 web/icons/Icon-192.png create mode 100644 web/icons/Icon-512.png create mode 100644 web/icons/Icon-maskable-192.png create mode 100644 web/icons/Icon-maskable-512.png create mode 100644 web/index.html create mode 100644 web/manifest.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0fa6b67 --- /dev/null +++ b/.gitignore @@ -0,0 +1,46 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.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/ + +# Web related +lib/generated_plugin_registrant.dart + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..0f055bf --- /dev/null +++ b/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: ffb2ecea5223acdd139a5039be2f9c796962833d + channel: stable + +project_type: app diff --git a/README.md b/README.md new file mode 100644 index 0000000..8468efc --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# mohem_flutter_app + +A new Flutter application. + +## 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/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..61b6c4d --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,29 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at + # https://dart-lang.github.io/linter/lints/index.html. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..6f56801 --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 0000000..e20cb62 --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,68 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +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" + +android { + compileSdkVersion 30 + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = '1.8' + } + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "com.mohem_flutter_app" + minSdkVersion 16 + targetSdkVersion 30 + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + 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 + } + } +} + +flutter { + source '../..' +} + +dependencies { + 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..50ab38d --- /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 new file mode 100644 index 0000000..857f1d1 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/com/mohem_flutter_app/MainActivity.kt b/android/app/src/main/kotlin/com/mohem_flutter_app/MainActivity.kt new file mode 100644 index 0000000..ec84fc4 --- /dev/null +++ b/android/app/src/main/kotlin/com/mohem_flutter_app/MainActivity.kt @@ -0,0 +1,6 @@ +package com.mohem_flutter_app + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..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{ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!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)$ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..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 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..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 0 HcmV?d00001 diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..449a9f9 --- /dev/null +++ b/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..d74aa35 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..50ab38d --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..ed45c65 --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,29 @@ +buildscript { + ext.kotlin_version = '1.3.50' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:4.1.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" + project.evaluationDependsOn(':app') +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..94adc3a --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..bc6a58a --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Fri Jun 23 08:50:38 CEST 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..44e62bc --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1,11 @@ +include ':app' + +def localPropertiesFile = new File(rootProject.projectDir, "local.properties") +def properties = new Properties() + +assert localPropertiesFile.exists() +localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + +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 new file mode 100644 index 0000000..151026b --- /dev/null +++ b/ios/.gitignore @@ -0,0 +1,33 @@ +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*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/ephemeral/ +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 diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..8d4492f --- /dev/null +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 9.0 + + diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..6a06610 --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,471 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 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 */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* 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 = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 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 = ""; }; + 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 = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1020; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* 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; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.mohemFlutterApp; + 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; + 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; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + 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 = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + 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; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.mohemFlutterApp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + 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; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.mohemFlutterApp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + 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 new file mode 100644 index 0000000..a28140c --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,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 new file mode 100644 index 0000000..70693e4 --- /dev/null +++ b/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import UIKit +import Flutter + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + 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/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d36b1fa --- /dev/null +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..dc9ada4725e9b0ddb1deab583e5b5102493aa332 GIT binary patch literal 10932 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f091b6b0bca859a3f474b03065bef75ba58a9e4c GIT binary patch literal 1588 zcmV-42Fv-0P)C1SqPt}wig>|5Crh^=oyX$BK<}M8eLU3e2hGT;=G|!_SP)7zNI6fqUMB=)y zRAZ>eDe#*r`yDAVgB_R*LB*MAc)8(b{g{9McCXW!lq7r(btRoB9!8B-#AI6JMb~YFBEvdsV)`mEQO^&#eRKx@b&x- z5lZm*!WfD8oCLzfHGz#u7sT0^VLMI1MqGxF^v+`4YYnVYgk*=kU?HsSz{v({E3lb9 z>+xILjBN)t6`=g~IBOelGQ(O990@BfXf(DRI5I$qN$0Gkz-FSc$3a+2fX$AedL4u{ z4V+5Ong(9LiGcIKW?_352sR;LtDPmPJXI{YtT=O8=76o9;*n%_m|xo!i>7$IrZ-{l z-x3`7M}qzHsPV@$v#>H-TpjDh2UE$9g6sysUREDy_R(a)>=eHw-WAyfIN z*qb!_hW>G)Tu8nSw9yn#3wFMiLcfc4pY0ek1}8(NqkBR@t4{~oC>ryc-h_ByH(Cg5 z>ao-}771+xE3um9lWAY1FeQFxowa1(!J(;Jg*wrg!=6FdRX+t_<%z&d&?|Bn){>zm zZQj(aA_HeBY&OC^jj*)N`8fa^ePOU72VpInJoI1?`ty#lvlNzs(&MZX+R%2xS~5Kh zX*|AU4QE#~SgPzOXe9>tRj>hjU@c1k5Y_mW*Jp3fI;)1&g3j|zDgC+}2Q_v%YfDax z!?umcN^n}KYQ|a$Lr+51Nf9dkkYFSjZZjkma$0KOj+;aQ&721~t7QUKx61J3(P4P1 zstI~7-wOACnWP4=8oGOwz%vNDqD8w&Q`qcNGGrbbf&0s9L0De{4{mRS?o0MU+nR_! zrvshUau0G^DeMhM_v{5BuLjb#Hh@r23lDAk8oF(C+P0rsBpv85EP>4CVMx#04MOfG z;P%vktHcXwTj~+IE(~px)3*MY77e}p#|c>TD?sMatC0Tu4iKKJ0(X8jxQY*gYtxsC z(zYC$g|@+I+kY;dg_dE>scBf&bP1Nc@Hz<3R)V`=AGkc;8CXqdi=B4l2k|g;2%#m& z*jfX^%b!A8#bI!j9-0Fi0bOXl(-c^AB9|nQaE`*)Hw+o&jS9@7&Gov#HbD~#d{twV zXd^Tr^mWLfFh$@Dr$e;PBEz4(-2q1FF0}c;~B5sA}+Q>TOoP+t>wf)V9Iy=5ruQa;z)y zI9C9*oUga6=hxw6QasLPnee@3^Rr*M{CdaL5=R41nLs(AHk_=Y+A9$2&H(B7!_pURs&8aNw7?`&Z&xY_Ye z)~D5Bog^td-^QbUtkTirdyK^mTHAOuptDflut!#^lnKqU md>ggs(5nOWAqO?umG&QVYK#ibz}*4>0000U6E9hRK9^#O7(mu>ETqrXGsduA8$)?`v2seloOCza43C{NQ$$gAOH**MCn0Q?+L7dl7qnbRdqZ8LSVp1ItDxhxD?t@5_yHg6A8yI zC*%Wgg22K|8E#!~cTNYR~@Y9KepMPrrB8cABapAFa=`H+UGhkXUZV1GnwR1*lPyZ;*K(i~2gp|@bzp8}og7e*#% zEnr|^CWdVV!-4*Y_7rFvlww2Ze+>j*!Z!pQ?2l->4q#nqRu9`ELo6RMS5=br47g_X zRw}P9a7RRYQ%2Vsd0Me{_(EggTnuN6j=-?uFS6j^u69elMypu?t>op*wBx<=Wx8?( ztpe^(fwM6jJX7M-l*k3kEpWOl_Vk3@(_w4oc}4YF4|Rt=2V^XU?#Yz`8(e?aZ@#li0n*=g^qOcVpd-Wbok=@b#Yw zqn8u9a)z>l(1kEaPYZ6hwubN6i<8QHgsu0oE) ziJ(p;Wxm>sf!K+cw>R-(^Y2_bahB+&KI9y^);#0qt}t-$C|Bo71lHi{_+lg#f%RFy z0um=e3$K3i6K{U_4K!EX?F&rExl^W|G8Z8;`5z-k}OGNZ0#WVb$WCpQu-_YsiqKP?BB# vzVHS-CTUF4Ozn5G+mq_~Qqto~ahA+K`|lyv3(-e}00000NkvXXu0mjfd`9t{ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ef06e7edb86cdfe0d15b4b0d98334a86163658 GIT binary patch literal 1716 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f9ed8f5cee1c98386d13b17e89f719e83555b2 GIT binary patch literal 1895 zcmV-t2blPYP)FQtfgmafE#=YDCq`qUBt#QpG%*H6QHY765~R=q zZ6iudfM}q!Pz#~9JgOi8QJ|DSu?1-*(kSi1K4#~5?#|rh?sS)(-JQqX*}ciXJ56_H zdw=^s_srbAdqxlvGyrgGet#6T7_|j;95sL%MtM;q86vOxKM$f#puR)Bjv9Zvz9-di zXOTSsZkM83)E9PYBXC<$6(|>lNLVBb&&6y{NByFCp%6+^ALR@NCTse_wqvNmSWI-m z!$%KlHFH2omF!>#%1l3LTZg(s7eof$7*xB)ZQ0h?ejh?Ta9fDv59+u#MokW+1t8Zb zgHv%K(u9G^Lv`lh#f3<6!JVTL3(dCpxHbnbA;kKqQyd1~^Xe0VIaYBSWm6nsr;dFj z4;G-RyL?cYgsN1{L4ZFFNa;8)Rv0fM0C(~Tkit94 zz#~A)59?QjD&pAPSEQ)p8gP|DS{ng)j=2ux)_EzzJ773GmQ_Cic%3JJhC0t2cx>|v zJcVusIB!%F90{+}8hG3QU4KNeKmK%T>mN57NnCZ^56=0?&3@!j>a>B43pi{!u z7JyDj7`6d)qVp^R=%j>UIY6f+3`+qzIc!Y_=+uN^3BYV|o+$vGo-j-Wm<10%A=(Yk^beI{t%ld@yhKjq0iNjqN4XMGgQtbKubPM$JWBz}YA65k%dm*awtC^+f;a-x4+ddbH^7iDWGg&N0n#MW{kA|=8iMUiFYvMoDY@sPC#t$55gn6ykUTPAr`a@!(;np824>2xJthS z*ZdmT`g5-`BuJs`0LVhz+D9NNa3<=6m;cQLaF?tCv8)zcRSh66*Z|vXhG@$I%U~2l z?`Q zykI#*+rQ=z6Jm=Bui-SfpDYLA=|vzGE(dYm=OC8XM&MDo7ux4UF1~0J1+i%aCUpRe zt3L_uNyQ*cE(38Uy03H%I*)*Bh=Lb^Xj3?I^Hnbeq72(EOK^Y93CNp*uAA{5Lc=ky zx=~RKa4{iTm{_>_vSCm?$Ej=i6@=m%@VvAITnigVg{&@!7CDgs908761meDK5azA} z4?=NOH|PdvabgJ&fW2{Mo$Q0CcD8Qc84%{JPYt5EiG{MdLIAeX%T=D7NIP4%Hw}p9 zg)==!2Lbp#j{u_}hMiao9=!VSyx0gHbeCS`;q&vzeq|fs`y&^X-lso(Ls@-706qmA z7u*T5PMo_w3{se1t2`zWeO^hOvTsohG_;>J0wVqVe+n)AbQCx)yh9;w+J6?NF5Lmo zecS@ieAKL8%bVd@+-KT{yI|S}O>pYckUFs;ry9Ow$CD@ztz5K-*D$^{i(_1llhSh^ zEkL$}tsQt5>QA^;QgjgIfBDmcOgi5YDyu?t6vSnbp=1+@6D& z5MJ}B8q;bRlVoxasyhcUF1+)o`&3r0colr}QJ3hcSdLu;9;td>kf@Tcn<@9sIx&=m z;AD;SCh95=&p;$r{Xz3iWCO^MX83AGJ(yH&eTXgv|0=34#-&WAmw{)U7OU9!Wz^!7 zZ%jZFi@JR;>Mhi7S>V7wQ176|FdW2m?&`qa(ScO^CFPR80HucLHOTy%5s*HR0^8)i h0WYBP*#0Ks^FNSabJA*5${_#%002ovPDHLkV1oKhTl@e3 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..75b2d164a5a98e212cca15ea7bf2ab5de5108680 GIT binary patch literal 3831 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..c4df70d39da7941ef3f6dcb7f06a192d8dcb308d GIT binary patch literal 1888 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 iW8Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist new file mode 100644 index 0000000..bf06aab --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,45 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + mohem_flutter_app + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..202509b --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,115 @@ +import 'package:flutter/material.dart'; + +void main() { + runApp(const MyApp()); +} + +class MyApp extends StatelessWidget { + const MyApp({Key? key}) : super(key: key); + + // This widget is the root of your application. + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Flutter Demo', + theme: ThemeData( + // This is the theme of your application. + // + // Try running your application with "flutter run". You'll see the + // application has a blue toolbar. Then, without quitting the app, try + // changing the primarySwatch below to Colors.green and then invoke + // "hot reload" (press "r" in the console where you ran "flutter run", + // or simply save your changes to "hot reload" in a Flutter IDE). + // Notice that the counter didn't reset back to zero; the application + // is not restarted. + primarySwatch: Colors.blue, + ), + home: const MyHomePage(title: 'Flutter Demo Home Page'), + ); + } +} + +class MyHomePage extends StatefulWidget { + const MyHomePage({Key? key, required this.title}) : super(key: key); + + // This widget is the home page of your application. It is stateful, meaning + // that it has a State object (defined below) that contains fields that affect + // how it looks. + + // This class is the configuration for the state. It holds the values (in this + // case the title) provided by the parent (in this case the App widget) and + // used by the build method of the State. Fields in a Widget subclass are + // always marked "final". + + final String title; + + @override + State createState() => _MyHomePageState(); +} + +class _MyHomePageState extends State { + int _counter = 0; + + void _incrementCounter() { + setState(() { + // This call to setState tells the Flutter framework that something has + // changed in this State, which causes it to rerun the build method below + // so that the display can reflect the updated values. If we changed + // _counter without calling setState(), then the build method would not be + // called again, and so nothing would appear to happen. + _counter++; + }); + } + + @override + Widget build(BuildContext context) { + // This method is rerun every time setState is called, for instance as done + // by the _incrementCounter method above. + // + // The Flutter framework has been optimized to make rerunning build methods + // fast, so that you can just rebuild anything that needs updating rather + // than having to individually change instances of widgets. + return Scaffold( + appBar: AppBar( + // Here we take the value from the MyHomePage object that was created by + // the App.build method, and use it to set our appbar title. + title: Text(widget.title), + ), + body: Center( + // Center is a layout widget. It takes a single child and positions it + // in the middle of the parent. + child: Column( + // Column is also a layout widget. It takes a list of children and + // arranges them vertically. By default, it sizes itself to fit its + // children horizontally, and tries to be as tall as its parent. + // + // Invoke "debug painting" (press "p" in the console, choose the + // "Toggle Debug Paint" action from the Flutter Inspector in Android + // Studio, or the "Toggle Debug Paint" command in Visual Studio Code) + // to see the wireframe for each widget. + // + // Column has various properties to control how it sizes itself and + // how it positions its children. Here we use mainAxisAlignment to + // center the children vertically; the main axis here is the vertical + // axis because Columns are vertical (the cross axis would be + // horizontal). + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text( + 'You have pushed the button this many times:', + ), + Text( + '$_counter', + style: Theme.of(context).textTheme.headline4, + ), + ], + ), + ), + floatingActionButton: FloatingActionButton( + onPressed: _incrementCounter, + tooltip: 'Increment', + child: const Icon(Icons.add), + ), // This trailing comma makes auto-formatting nicer for build methods. + ); + } +} diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..18fcc0f --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,167 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.8.1" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + characters: + dependency: transitive + description: + name: characters + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + charcode: + dependency: transitive + description: + name: charcode + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.1" + clock: + dependency: transitive + description: + name: clock + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.15.0" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.4" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.4" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + lints: + dependency: transitive + description: + name: lints + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.10" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.7.0" + path: + dependency: transitive + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.0" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.1" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.10.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + test_api: + dependency: transitive + description: + name: test_api + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.2" + typed_data: + dependency: transitive + description: + name: typed_data + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0" + vector_math: + dependency: transitive + description: + name: vector_math + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" +sdks: + dart: ">=2.12.0 <3.0.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..5346e91 --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,89 @@ +name: mohem_flutter_app +description: A new Flutter application. + +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter 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.12.0 <3.0.0" + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + sdk: flutter + + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.2 + +dev_dependencies: + flutter_test: + sdk: flutter + + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: ^1.0.0 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + 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 + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware. + + # For details regarding adding assets from package dependencies, see + # 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 + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/test/widget_test.dart b/test/widget_test.dart new file mode 100644 index 0000000..42d9b33 --- /dev/null +++ b/test/widget_test.dart @@ -0,0 +1,30 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility that Flutter provides. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:mohem_flutter_app/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MyApp()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +} diff --git a/web/favicon.png b/web/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8aaa46ac1ae21512746f852a42ba87e4165dfdd1 GIT binary patch literal 917 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|I14-?iy0X7 zltGxWVyS%@P(fs7NJL45ua8x7ey(0(N`6wRUPW#JP&EUCO@$SZnVVXYs8ErclUHn2 zVXFjIVFhG^g!Ppaz)DK8ZIvQ?0~DO|i&7O#^-S~(l1AfjnEK zjFOT9D}DX)@^Za$W4-*MbbUihOG|wNBYh(yU7!lx;>x^|#0uTKVr7USFmqf|i<65o z3raHc^AtelCMM;Vme?vOfh>Xph&xL%(-1c06+^uR^q@XSM&D4+Kp$>4P^%3{)XKjo zGZknv$b36P8?Z_gF{nK@`XI}Z90TzwSQO}0J1!f2c(B=V`5aP@1P1a|PZ!4!3&Gl8 zTYqUsf!gYFyJnXpu0!n&N*SYAX-%d(5gVjrHJWqXQshj@!Zm{!01WsQrH~9=kTxW#6SvuapgMqt>$=j#%eyGrQzr zP{L-3gsMA^$I1&gsBAEL+vxi1*Igl=8#8`5?A-T5=z-sk46WA1IUT)AIZHx1rdUrf zVJrJn<74DDw`j)Ki#gt}mIT-Q`XRa2-jQXQoI%w`nb|XblvzK${ZzlV)m-XcwC(od z71_OEC5Bt9GEXosOXaPTYOia#R4ID2TiU~`zVMl08TV_C%DnU4^+HE>9(CE4D6?Fz oujB08i7adh9xk7*FX66dWH6F5TM;?E2b5PlUHx3vIVCg!0Dx9vYXATM literal 0 HcmV?d00001 diff --git a/web/icons/Icon-192.png b/web/icons/Icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..b749bfef07473333cf1dd31e9eed89862a5d52aa GIT binary patch literal 5292 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 literal 0 HcmV?d00001 diff --git a/web/icons/Icon-512.png b/web/icons/Icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..88cfd48dff1169879ba46840804b412fe02fefd6 GIT binary patch literal 8252 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 literal 0 HcmV?d00001 diff --git a/web/icons/Icon-maskable-192.png b/web/icons/Icon-maskable-192.png new file mode 100644 index 0000000000000000000000000000000000000000..eb9b4d76e525556d5d89141648c724331630325d GIT binary patch literal 5594 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 X>c!)3PgKfL&lX^$Z>Cpu&6)6jvi^Z! literal 0 HcmV?d00001 diff --git a/web/icons/Icon-maskable-512.png b/web/icons/Icon-maskable-512.png new file mode 100644 index 0000000000000000000000000000000000000000..d69c56691fbdb0b7efa65097c7cc1edac12a6d3e GIT binary patch literal 20998 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 MPgg&ebxsLQ025IeI{*Lx literal 0 HcmV?d00001 diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..0da60b3 --- /dev/null +++ b/web/index.html @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + mohem_flutter_app + + + + + + + diff --git a/web/manifest.json b/web/manifest.json new file mode 100644 index 0000000..32285bd --- /dev/null +++ b/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "mohem_flutter_app", + "short_name": "mohem_flutter_app", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A new Flutter application.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +} From 89f6df8c7789b66db7de27f7850634612d44068d Mon Sep 17 00:00:00 2001 From: tall3at <91608104+tall3at@users.noreply.github.com> Date: Wed, 15 Dec 2021 21:14:46 +0500 Subject: [PATCH 02/32] basic structure --- assets/icons/ic_face_id.png | Bin 0 -> 6282 bytes assets/icons/ic_fingerprint.png | Bin 0 -> 12319 bytes assets/icons/ic_sms.png | Bin 0 -> 6433 bytes assets/icons/ic_whatsapp.png | Bin 0 -> 7235 bytes assets/images/bn_map.png | Bin 0 -> 43970 bytes ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + lib/config/app_provider.dart | 19 ++ lib/config/background_loader.dart | 34 ++ lib/config/constants.dart | 8 + lib/config/dependencies.dart | 38 +++ lib/config/localization.dart | 18 + lib/config/routes.dart | 46 +++ lib/generated/codegen_loader.g.dart | 94 ++++++ lib/main.dart | 139 +++----- lib/models/account.dart | 43 +++ lib/models/config_model.dart | 12 + lib/models/parent_list.dart | 26 ++ lib/models/response_models.dart | 34 ++ lib/models/user.dart | 9 + lib/pages/a.dart | 0 lib/pages/user/splash_page.dart | 48 +++ lib/provider/counter.dart | 20 ++ lib/repo/account_repository.dart | 49 +++ lib/services/backend_service.dart | 127 +++++++ lib/services/firebase_service.dart | 180 ++++++++++ lib/services/http_service.dart | 36 ++ lib/services/media_service.dart | 26 ++ lib/services/network_service.dart | 25 ++ lib/services/secure_storage.dart | 33 ++ lib/services/shared_preferences.dart | 119 +++++++ lib/theme/app_theme.dart | 29 ++ lib/theme/colors.dart | 13 + lib/utils/AppPermissionHandler.dart | 36 ++ lib/utils/dialogs.dart | 35 ++ lib/utils/navigator.dart | 9 + lib/utils/utils.dart | 311 ++++++++++++++++++ lib/widgets/app_bar.dart | 28 ++ lib/widgets/blurry_container.dart | 62 ++++ lib/widgets/button/show_circular_button.dart | 23 ++ lib/widgets/button/show_image_button.dart | 43 +++ lib/widgets/dialog/dialogs.dart | 16 + lib/widgets/dialog/message_dialog.dart | 38 +++ lib/widgets/dialog/otp_dialog.dart | 74 +++++ lib/widgets/dragable_sheet.dart | 26 ++ lib/widgets/dropdown/dropdow_field.dart | 78 +++++ lib/widgets/dropdown/dropdown_text.dart | 33 ++ lib/widgets/extensions/extensions_widget.dart | 235 +++++++++++++ lib/widgets/gradient_app_bar.dart | 63 ++++ lib/widgets/images/circular_image.dart | 30 ++ lib/widgets/show_card_buttton.dart | 32 ++ lib/widgets/show_fill_button.dart | 41 +++ lib/widgets/txt.dart | 170 ++++++++++ lib/widgets/txt_field.dart | 155 +++++++++ lib/widgets/user_image.dart | 26 ++ pubspec.lock | 307 ++++++++++++++++- pubspec.yaml | 14 + resources/langs/en-US.json | 38 +++ resources/langs/en.json | 38 +++ resources/s.dart | 0 test/widget_test.dart | 2 +- 61 files changed, 3086 insertions(+), 104 deletions(-) create mode 100644 assets/icons/ic_face_id.png create mode 100644 assets/icons/ic_fingerprint.png create mode 100644 assets/icons/ic_sms.png create mode 100644 assets/icons/ic_whatsapp.png create mode 100644 assets/images/bn_map.png create mode 100644 lib/config/app_provider.dart create mode 100644 lib/config/background_loader.dart create mode 100644 lib/config/constants.dart create mode 100644 lib/config/dependencies.dart create mode 100644 lib/config/localization.dart create mode 100644 lib/config/routes.dart create mode 100644 lib/generated/codegen_loader.g.dart create mode 100644 lib/models/account.dart create mode 100644 lib/models/config_model.dart create mode 100644 lib/models/parent_list.dart create mode 100644 lib/models/response_models.dart create mode 100644 lib/models/user.dart create mode 100644 lib/pages/a.dart create mode 100644 lib/pages/user/splash_page.dart create mode 100644 lib/provider/counter.dart create mode 100644 lib/repo/account_repository.dart create mode 100644 lib/services/backend_service.dart create mode 100644 lib/services/firebase_service.dart create mode 100644 lib/services/http_service.dart create mode 100644 lib/services/media_service.dart create mode 100644 lib/services/network_service.dart create mode 100644 lib/services/secure_storage.dart create mode 100644 lib/services/shared_preferences.dart create mode 100644 lib/theme/app_theme.dart create mode 100644 lib/theme/colors.dart create mode 100644 lib/utils/AppPermissionHandler.dart create mode 100644 lib/utils/dialogs.dart create mode 100644 lib/utils/navigator.dart create mode 100644 lib/utils/utils.dart create mode 100644 lib/widgets/app_bar.dart create mode 100644 lib/widgets/blurry_container.dart create mode 100644 lib/widgets/button/show_circular_button.dart create mode 100644 lib/widgets/button/show_image_button.dart create mode 100644 lib/widgets/dialog/dialogs.dart create mode 100644 lib/widgets/dialog/message_dialog.dart create mode 100644 lib/widgets/dialog/otp_dialog.dart create mode 100644 lib/widgets/dragable_sheet.dart create mode 100644 lib/widgets/dropdown/dropdow_field.dart create mode 100644 lib/widgets/dropdown/dropdown_text.dart create mode 100644 lib/widgets/extensions/extensions_widget.dart create mode 100644 lib/widgets/gradient_app_bar.dart create mode 100644 lib/widgets/images/circular_image.dart create mode 100644 lib/widgets/show_card_buttton.dart create mode 100644 lib/widgets/show_fill_button.dart create mode 100644 lib/widgets/txt.dart create mode 100644 lib/widgets/txt_field.dart create mode 100644 lib/widgets/user_image.dart create mode 100644 resources/langs/en-US.json create mode 100644 resources/langs/en.json create mode 100644 resources/s.dart diff --git a/assets/icons/ic_face_id.png b/assets/icons/ic_face_id.png new file mode 100644 index 0000000000000000000000000000000000000000..913e850d43c2df6b5a2109c2898167ebcffc2855 GIT binary patch literal 6282 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 W2txEMD5U;301S0ab(*vhkN*c^tNOD5 literal 0 HcmV?d00001 diff --git a/assets/icons/ic_fingerprint.png b/assets/icons/ic_fingerprint.png new file mode 100644 index 0000000000000000000000000000000000000000..bf731975d839e1023097654b284f9f991b42f844 GIT binary patch literal 12319 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 literal 0 HcmV?d00001 diff --git a/assets/images/bn_map.png b/assets/images/bn_map.png new file mode 100644 index 0000000000000000000000000000000000000000..b04b5aa34b49f37ab94d59b80b0866a9b5991d29 GIT binary patch literal 43970 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 literal 0 HcmV?d00001 diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig index 592ceee..ec97fc6 100644 --- a/ios/Flutter/Debug.xcconfig +++ b/ios/Flutter/Debug.xcconfig @@ -1 +1,2 @@ +#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 592ceee..c4855bf 100644 --- a/ios/Flutter/Release.xcconfig +++ b/ios/Flutter/Release.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/lib/config/app_provider.dart b/lib/config/app_provider.dart new file mode 100644 index 0000000..6f11d24 --- /dev/null +++ b/lib/config/app_provider.dart @@ -0,0 +1,19 @@ +import 'package:mohem_flutter_app/provider/counter.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class AppProvider extends StatelessWidget { + final Widget child; + + AppProvider({required this.child}); + + @override + Widget build(BuildContext context) { + return MultiProvider( + providers: [ + ChangeNotifierProvider(create: (_) => Counter()), + ], + child: child, + ); + } +} diff --git a/lib/config/background_loader.dart b/lib/config/background_loader.dart new file mode 100644 index 0000000..0683157 --- /dev/null +++ b/lib/config/background_loader.dart @@ -0,0 +1,34 @@ +//class which loads components "in the background", i.e. ui does not depend on it + +import 'package:mohem_flutter_app/services/shared_preferences.dart'; +import 'package:injector/injector.dart'; +//import 'package:revocheckapp/services/firebase_service.dart'; + + +class BackgroundLoader { + Future loadBackgroundData() async { + //init notification setting + try { + /* + final isPromotionNotificationEnabled = await Injector.appInstance + .getDependency() + .promotionNotificationsEnabled; + if (isPromotionNotificationEnabled == null) { + await Injector.appInstance + .getDependency() + .setPromotionNotificationEnabled(true); + Injector.appInstance + .getDependency() + .subscribeForPromotions(); + } */ + } catch (_) { + //something wend wrong, set it to true + await Injector.appInstance + .getDependency() + .setPromotionNotificationEnabled(true); + /*Injector.appInstance + .getDependency() + .subscribeForPromotions();*/ + } + } +} diff --git a/lib/config/constants.dart b/lib/config/constants.dart new file mode 100644 index 0000000..87c2c46 --- /dev/null +++ b/lib/config/constants.dart @@ -0,0 +1,8 @@ +enum YesOrNo { + no, + yes, +} + +const String icons = "assets/icons/"; +const String categorySvgIcons = "assets/category/svg/"; +const String svgIcons = "assets/svg/"; diff --git a/lib/config/dependencies.dart b/lib/config/dependencies.dart new file mode 100644 index 0000000..c9b7074 --- /dev/null +++ b/lib/config/dependencies.dart @@ -0,0 +1,38 @@ +// import 'package:firebase_crashlytics/firebase_crashlytics.dart'; +// import 'package:flutter/material.dart'; + +import 'package:mohem_flutter_app/repo/account_repository.dart'; +import 'package:injector/injector.dart'; + +import 'background_loader.dart'; + + +class AppDependencies { + static void addDependencies() { + Injector injector = Injector.appInstance; + + //add dependencies as needed + injector.registerSingleton(() => AcRepository()); + + // injector.registerSingleton((injector) => AcRepository()); + + _addCrashlytics(); + _loadBackgroundTasksNonBlocking(); + } + + static void _addCrashlytics() { + // Set `enableInDevMode` to true to see reports while in debug mode + // This is only to be used for confirming that reports are being + // submitted as expected. It is not intended to be used for everyday + // development. + //Crashlytics.instance.enableInDevMode = true; + + // Pass all uncaught errors from the framework to Crashlytics. + // FlutterError.onError = Crashlytics.instance.recordFlutterError; + } + + static void _loadBackgroundTasksNonBlocking() { + final backgroundLoader = BackgroundLoader(); + backgroundLoader.loadBackgroundData(); + } +} diff --git a/lib/config/localization.dart b/lib/config/localization.dart new file mode 100644 index 0000000..5d7acdf --- /dev/null +++ b/lib/config/localization.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; + +import 'package:flutter_localizations/flutter_localizations.dart'; + +class AppLocalizations { + static const Iterable> localizationsDelegates = + [ + // ... app-specific localization delegate[s] here + // S.delegate, + GlobalMaterialLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + GlobalCupertinoLocalizations.delegate + ]; + + static const List supportedLocales = [ + const Locale("en", "US") + ]; +} diff --git a/lib/config/routes.dart b/lib/config/routes.dart new file mode 100644 index 0000000..33c8eb0 --- /dev/null +++ b/lib/config/routes.dart @@ -0,0 +1,46 @@ +import 'package:mohem_flutter_app/pages/dashboard/dashboard_page.dart'; +import 'package:mohem_flutter_app/pages/user/complete_profile_page.dart'; +import 'package:mohem_flutter_app/pages/user/forget_password_page.dart'; +import 'package:mohem_flutter_app/pages/user/login_verification_page.dart'; +import 'package:mohem_flutter_app/pages/user/login_verify_account_page.dart'; +import 'package:mohem_flutter_app/pages/user/profile/profile_1_page.dart'; +import 'package:mohem_flutter_app/pages/user/profile/profile_2_page.dart'; +import 'package:mohem_flutter_app/pages/user/profile/profile_3_page.dart'; +import 'package:mohem_flutter_app/pages/user/register_page.dart'; +import 'package:mohem_flutter_app/pages/user/register_selection_page.dart'; +import 'package:mohem_flutter_app/pages/user/splash_page.dart'; +import 'package:flutter/material.dart'; + +class AppRoutes { + //User + static final String splash = "/splash"; + static final String registerSelection = "/registerSelection"; + static final String loginVerifyAccount = "/loginVerifyAccount"; + static final String register = "/register"; + static final String forgetPassword = "/forgetPassword"; + static final String loginVerification = "/loginVerification"; + static final String dashboard = "/dashboard"; + static final String completeProfile = "/completeProfile"; + static final String profile1 = "/profile1"; + static final String profile2 = "/profile2"; + static final String profile3 = "/profile3"; + + + + static final String initialRoute = splash; + + static final Map routes = { + //User + splash: (context) => SplashPage(), + registerSelection: (context) => RegisterSelectionPage(), + loginVerifyAccount: (context) => LoginVerifyAccountPage(), + register: (context) => RegisterPage(), + forgetPassword: (context) => ForgetPasswordPage(), + loginVerification: (context) => LoginVerificationPage(), + dashboard: (context) => DashboardPage(), + completeProfile: (context) => CompleteProfilePage(), + profile1: (context) => Profile1Page(), + profile2: (context) => Profile2Page(), + profile3: (context) => Profile3Page(), + }; +} diff --git a/lib/generated/codegen_loader.g.dart b/lib/generated/codegen_loader.g.dart new file mode 100644 index 0000000..1157a89 --- /dev/null +++ b/lib/generated/codegen_loader.g.dart @@ -0,0 +1,94 @@ +// DO NOT EDIT. This is code generated via package:easy_localization/generate.dart + +// ignore_for_file: prefer_single_quotes + +import 'dart:ui'; + +import 'package:easy_localization/easy_localization.dart' show AssetLoader; + +class CodegenLoader extends AssetLoader{ + const CodegenLoader(); + + @override + Future> load(String fullPath, Locale locale ) { + return Future.value(mapLocales[locale.toString()]); + } + + static const Map en = { + "title": "Hello", + "msg": "Hello {} in the {} world ", + "msg_named": "{} are written in the {lang} language", + "clickMe": "Click me", + "profile": { + "reset_password": { + "label": "Reset Password", + "username": "Username", + "password": "password" + } + }, + "clicked": { + "zero": "You clicked {} times!", + "one": "You clicked {} time!", + "two": "You clicked {} times!", + "few": "You clicked {} times!", + "many": "You clicked {} times!", + "other": "You clicked {} times!" + }, + "amount": { + "zero": "Your amount : {} ", + "one": "Your amount : {} ", + "two": "Your amount : {} ", + "few": "Your amount : {} ", + "many": "Your amount : {} ", + "other": "Your amount : {} " + }, + "gender": { + "male": "Hi man ;) ", + "female": "Hello girl :)", + "with_arg": { + "male": "Hi man ;) {}", + "female": "Hello girl :) {}" + } + }, + "reset_locale": "Reset Language" +}; +static const Map en_US = { + "title": "Hello", + "msg": "Hello {} in the {} world ", + "msg_named": "{} are written in the {lang} language", + "clickMe": "Click me", + "profile": { + "reset_password": { + "label": "Reset Password", + "username": "Username", + "password": "password" + } + }, + "clicked": { + "zero": "You clicked {} times!", + "one": "You clicked {} time!", + "two": "You clicked {} times!", + "few": "You clicked {} times!", + "many": "You clicked {} times!", + "other": "You clicked {} times!" + }, + "amount": { + "zero": "Your amount : {} ", + "one": "Your amount : {} ", + "two": "Your amount : {} ", + "few": "Your amount : {} ", + "many": "Your amount : {} ", + "other": "Your amount : {} " + }, + "gender": { + "male": "Hi man ;) ", + "female": "Hello girl :)", + "with_arg": { + "male": "Hi man ;) {}", + "female": "Hello girl :) {}" + } + }, + "reset_locale": "Reset Language" +}; +static const Map> mapLocales = {"en": en, "en_US": en_US}; +} diff --git a/lib/main.dart b/lib/main.dart index 202509b..df63e0d 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,115 +1,50 @@ +import 'package:mohem_flutter_app/config/app_provider.dart'; +import 'package:mohem_flutter_app/config/dependencies.dart'; +import 'package:mohem_flutter_app/theme/app_theme.dart'; +import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; - -void main() { - runApp(const MyApp()); +import 'package:sizer/sizer.dart'; + +import 'config/localization.dart'; +import 'config/routes.dart'; + +Future main() async { + WidgetsFlutterBinding.ensureInitialized(); + + await EasyLocalization.ensureInitialized(); + runApp( + EasyLocalization( + supportedLocales: [ + Locale('en', 'US'), + ], + path: 'resources/langs', + child: MyApp(), + ), + ); } class MyApp extends StatelessWidget { - const MyApp({Key? key}) : super(key: key); - // This widget is the root of your application. - @override - Widget build(BuildContext context) { - return MaterialApp( - title: 'Flutter Demo', - theme: ThemeData( - // This is the theme of your application. - // - // Try running your application with "flutter run". You'll see the - // application has a blue toolbar. Then, without quitting the app, try - // changing the primarySwatch below to Colors.green and then invoke - // "hot reload" (press "r" in the console where you ran "flutter run", - // or simply save your changes to "hot reload" in a Flutter IDE). - // Notice that the counter didn't reset back to zero; the application - // is not restarted. - primarySwatch: Colors.blue, - ), - home: const MyHomePage(title: 'Flutter Demo Home Page'), - ); - } -} - -class MyHomePage extends StatefulWidget { - const MyHomePage({Key? key, required this.title}) : super(key: key); - - // This widget is the home page of your application. It is stateful, meaning - // that it has a State object (defined below) that contains fields that affect - // how it looks. - - // This class is the configuration for the state. It holds the values (in this - // case the title) provided by the parent (in this case the App widget) and - // used by the build method of the State. Fields in a Widget subclass are - // always marked "final". - - final String title; - - @override - State createState() => _MyHomePageState(); -} - -class _MyHomePageState extends State { - int _counter = 0; - - void _incrementCounter() { - setState(() { - // This call to setState tells the Flutter framework that something has - // changed in this State, which causes it to rerun the build method below - // so that the display can reflect the updated values. If we changed - // _counter without calling setState(), then the build method would not be - // called again, and so nothing would appear to happen. - _counter++; - }); + MyApp() { + AppDependencies.addDependencies(); } @override Widget build(BuildContext context) { - // This method is rerun every time setState is called, for instance as done - // by the _incrementCounter method above. - // - // The Flutter framework has been optimized to make rerunning build methods - // fast, so that you can just rebuild anything that needs updating rather - // than having to individually change instances of widgets. - return Scaffold( - appBar: AppBar( - // Here we take the value from the MyHomePage object that was created by - // the App.build method, and use it to set our appbar title. - title: Text(widget.title), - ), - body: Center( - // Center is a layout widget. It takes a single child and positions it - // in the middle of the parent. - child: Column( - // Column is also a layout widget. It takes a list of children and - // arranges them vertically. By default, it sizes itself to fit its - // children horizontally, and tries to be as tall as its parent. - // - // Invoke "debug painting" (press "p" in the console, choose the - // "Toggle Debug Paint" action from the Flutter Inspector in Android - // Studio, or the "Toggle Debug Paint" command in Visual Studio Code) - // to see the wireframe for each widget. - // - // Column has various properties to control how it sizes itself and - // how it positions its children. Here we use mainAxisAlignment to - // center the children vertically; the main axis here is the vertical - // axis because Columns are vertical (the cross axis would be - // horizontal). - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const Text( - 'You have pushed the button this many times:', - ), - Text( - '$_counter', - style: Theme.of(context).textTheme.headline4, - ), - ], - ), + return AppProvider( + child: Sizer( + builder: (context, orientation, deviceType) { + return MaterialApp( + theme: AppTheme.getTheme(), + debugShowCheckedModeBanner: false, + localizationsDelegates: context.localizationDelegates, + supportedLocales: context.supportedLocales, + locale: context.locale, + initialRoute: AppRoutes.initialRoute, + routes: AppRoutes.routes, + ); + }, ), - floatingActionButton: FloatingActionButton( - onPressed: _incrementCounter, - tooltip: 'Increment', - child: const Icon(Icons.add), - ), // This trailing comma makes auto-formatting nicer for build methods. ); } } diff --git a/lib/models/account.dart b/lib/models/account.dart new file mode 100644 index 0000000..830b62f --- /dev/null +++ b/lib/models/account.dart @@ -0,0 +1,43 @@ +// To parse this JSON data, do +// +// final account = accountFromJson(jsonString); + +import 'dart:convert'; + +import 'package:mohem_flutter_app/models/parent_list.dart'; + + + +Account accountFromJson(String str) => Account.fromJson(json.decode(str)); + +String accountToJson(Account data) => json.encode(data.toJson()); + +class Account { + Account({ + required this.parentList, + required this.selectedItem, + }); + + List? parentList; + int selectedItem; + + factory Account.fromJson(Map json) => Account( + parentList: json["parentList"] == null + ? null + : List.from( + json["parentList"].map((x) => ParentList.fromJson(x))), + selectedItem: + json["selectedItem"] == null ? null : json["selectedItem"], + ); + + Map toJson() => { + "parentList": parentList == null + ? null + : List.from(parentList!.map((x) => x.toJson())), + "selectedItem": selectedItem == null ? null : selectedItem, + }; + + Map toJsonData() => { + "selectedItem": selectedItem == null ? null : selectedItem, + }; +} diff --git a/lib/models/config_model.dart b/lib/models/config_model.dart new file mode 100644 index 0000000..0245ede --- /dev/null +++ b/lib/models/config_model.dart @@ -0,0 +1,12 @@ +class ConfigModel { + ConfigModel(this.endpoint, this.organizationName); + + String endpoint; + + String organizationName; + + factory ConfigModel.fromJson(Map json) => + ConfigModel("", ""); + +// Map toJson() => _$ConfigModelToJson(this); +} diff --git a/lib/models/parent_list.dart b/lib/models/parent_list.dart new file mode 100644 index 0000000..3f2286f --- /dev/null +++ b/lib/models/parent_list.dart @@ -0,0 +1,26 @@ +class ParentList { + ParentList({ + required this.dbId, + required this.text, + required this.path, + required this.isSelected, + }); + + int dbId; + String text; + String path; + bool isSelected; + + factory ParentList.fromJson(Map json) => ParentList( + dbId: json["dbId"] == null ? null : json["dbId"], + text: json["text"] == null ? null : json["text"], + path: json["path"] == null ? null : json["path"], + isSelected: false, + ); + + Map toJson() => { + "dbId": dbId == null ? null : dbId, + "text": text == null ? null : text, + "path": path == null ? null : path, + }; +} diff --git a/lib/models/response_models.dart b/lib/models/response_models.dart new file mode 100644 index 0000000..872893b --- /dev/null +++ b/lib/models/response_models.dart @@ -0,0 +1,34 @@ +/// +/// This example was taken from +/// https://flutter.dev/docs/development/data-and-backend/json +/// + +/// This allows the `User` class to access private members in +/// the generated file. The value for this is *.g.dart, where +/// the star denotes the source file name. + +/// An annotation for the code generator to know that this class needs the +/// JSON serialization logic to be generated. + +class BackendResponse { + BackendResponse({required this.id, required this.isOk, required this.result}); + + int id; + bool isOk; + dynamic result; + + /// A necessary factory constructor for creating a new User instance + /// from a map. Pass the map to the generated `_$UserFromJson()` constructor. + /// The constructor is named after the source class, in this case, User. + factory BackendResponse.fromJson(Map json) => + BackendResponse( + id: 1, + isOk: false, + result: null, + ); +// +// /// `toJson` is the convention for a class to declare support for serialization +// /// to JSON. The implementation simply calls the private, generated +// /// helper method `_$UserToJson`. +// Map toJson() => _$BackendResponseToJson(this); +} diff --git a/lib/models/user.dart b/lib/models/user.dart new file mode 100644 index 0000000..e09c282 --- /dev/null +++ b/lib/models/user.dart @@ -0,0 +1,9 @@ +class User { + int id; + + User(this.id, this.userName, this.userImage, this.createdDate); + + String userName; + String userImage; + String createdDate; +} diff --git a/lib/pages/a.dart b/lib/pages/a.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/pages/user/splash_page.dart b/lib/pages/user/splash_page.dart new file mode 100644 index 0000000..c593f56 --- /dev/null +++ b/lib/pages/user/splash_page.dart @@ -0,0 +1,48 @@ +import 'dart:async'; + +import 'package:mohem_flutter_app/config/routes.dart'; +import 'package:mohem_flutter_app/utils/navigator.dart'; +import 'package:mohem_flutter_app/utils/utils.dart'; +import 'package:mohem_flutter_app/widgets/txt.dart'; +import 'package:flutter/material.dart'; + +class SplashPage extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Scaffold( + body: Container( + width: double.infinity, + height: double.infinity, + child: Column( + children: [ + mFlex(5), + Txt( + "Logo", + fontSize: 45, + bold: true, + ), + mFlex(3), + Txt( + "First Time Log In", + txtType: TxtType.heading1, + isFlatButton: true, + onTap: () { + navigateWithName(context, AppRoutes.registerSelection); + }, + ), + mFlex(1), + Txt( + "Already Signed Up and Logged In", + txtType: TxtType.heading1, + isFlatButton: true, + onTap: () { + navigateWithName(context, AppRoutes.loginVerification); + }, + ), + mFlex(5), + ], + ), + ), + ); + } +} diff --git a/lib/provider/counter.dart b/lib/provider/counter.dart new file mode 100644 index 0000000..0272327 --- /dev/null +++ b/lib/provider/counter.dart @@ -0,0 +1,20 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +class Counter with ChangeNotifier, DiagnosticableTreeMixin { + int _count = 0; + + int get count => _count; + + void increment() { + _count++; + notifyListeners(); + } + + /// Makes `Counter` readable inside the devtools by listing all of its properties + @override + void debugFillProperties(DiagnosticPropertiesBuilder properties) { + super.debugFillProperties(properties); + properties.add(IntProperty('count', count)); + } +} \ No newline at end of file diff --git a/lib/repo/account_repository.dart b/lib/repo/account_repository.dart new file mode 100644 index 0000000..770cbb4 --- /dev/null +++ b/lib/repo/account_repository.dart @@ -0,0 +1,49 @@ +import 'dart:convert'; +import 'dart:io'; + +import 'package:mohem_flutter_app/models/account.dart'; +import 'package:mohem_flutter_app/models/response_models.dart'; +import 'package:mohem_flutter_app/services/backend_service.dart'; +import 'package:injector/injector.dart'; + +abstract class IAcRepository { + Future getAccountList(); + + Future updateAccount(String dataAsJson); +} + +class AcRepository implements IAcRepository { + static const String ACCOUNT_API_CONTROLLER_MOBILE = + "AccountApiControllerMobile/"; + + static const String ACCOUNT_LIST = ACCOUNT_API_CONTROLLER_MOBILE + "list"; + static const String UPDATE_LIST = + ACCOUNT_API_CONTROLLER_MOBILE + "saveaccountselected"; + + @override + Future getAccountList() async { + BackendResponse response = await Injector.appInstance + .getDependency() + .getAuthenticatedAPI(ACCOUNT_LIST); + + if (response != null && response.isOk) { + return Account.fromJson(response.result); + } else { + throw Exception(); + } + } + + @override + Future updateAccount(String dataAsJson) async { + BackendResponse response = await Injector.appInstance + .getDependency() + .postAuthenticatedAPI(UPDATE_LIST, dataAsJson); + + if (response != null && response.isOk) { + //if parsing failed, throw exception + return response; + } else { + throw Exception(); + } + } +} diff --git a/lib/services/backend_service.dart b/lib/services/backend_service.dart new file mode 100644 index 0000000..b2e4de0 --- /dev/null +++ b/lib/services/backend_service.dart @@ -0,0 +1,127 @@ +import 'dart:convert'; +import 'dart:io'; +import 'package:mohem_flutter_app/models/response_models.dart'; +import 'package:mohem_flutter_app/services/secure_storage.dart'; +import 'package:http/http.dart'; +import 'package:injector/injector.dart'; + +import 'http_service.dart'; +import 'network_service.dart'; + +abstract class IBackendApiService { + Future getUnauthenticatedAPI(String route); + + Future getAuthenticatedAPI(String route); + + Future postUnauthenticatedAPI( + String route, String dataAsJson); + + Future postAuthenticatedAPI(String route, String dataAsJson); + + Future deleteAuthenticatedAPI(String route, String id); +} + +class BackendApiService implements IBackendApiService { + static String _homeUrl = "https://check.revotec.eu/check2/"; + static String _serverApiBaseUrl = _homeUrl + "mapi/v1/"; + + static String get homeUrl => _homeUrl; + + final ISecureStorage _secureStorage = + Injector.appInstance.getDependency(); + final IHttpService _httpService = + Injector.appInstance.getDependency(); + + ///internal helper functions which executes the given api call + ///and wraps the response + Future _callApi(Future callback) async { + Response response; + try { + //execute future + response = await callback; + //check response code, and if not ok return isOk = false + //200 for Get + //201 for Post + + // print("res121: " + + // response.statusCode.toString() + + // " Body:" + + // response.body.toString()); + //if delete request sent so server is returning 204 in case of success. + if (response.statusCode == 204) + return BackendResponse(id: 1, isOk: true, result: null); + + if (response.statusCode != 200 && response.statusCode != 201) + return BackendResponse(id: -1, isOk: false, result: null); + //if response code is good then parse message and return parsed response + return BackendResponse.fromJson(json.decode(response.body)); + //return BackendResponse.fromJson(dioResponse.body); + } catch (e) { + return BackendResponse(id: -1, isOk: false, result: null); + // try { + // return BackendResponse.fromJson(json.decode(response.body)); + // } catch (e) { + // return BackendResponse(id:-1, isOk:false,result: null); + // } + } + } + + @override + Future getAuthenticatedAPI(String route) async { + await checkConnection(); + final token = await _secureStorage.readBearerToken(); + return _callApi(_httpService.get(_serverApiBaseUrl + route, headers: { + 'Content-Type': 'application/json', + 'Accept': '*/*', + HttpHeaders.authorizationHeader: "Bearer $token" + })); + } + + @override + Future getUnauthenticatedAPI(String route) async { + await checkConnection(); + return _callApi(_httpService.get(_serverApiBaseUrl + route, + headers: {'Content-Type': 'application/json', 'Accept': '*/*'})); + } + + @override + Future postAuthenticatedAPI( + String route, String dataAsJson) async { + await checkConnection(); + final token = await _secureStorage.readBearerToken(); + // print("res121: " + _serverApiBaseUrl + route); + return _callApi(_httpService + .post(_serverApiBaseUrl + route, body: dataAsJson, headers: { + 'Content-Type': 'application/json', + 'Accept': '*/*', + HttpHeaders.authorizationHeader: "Bearer $token" + })); + } + + @override + Future postUnauthenticatedAPI( + String route, String dataAsJson) async { + await checkConnection(); + return _callApi(_httpService.post(_serverApiBaseUrl + route, + body: dataAsJson, headers: {'Content-Type': 'application/json'})); + } + + Future checkConnection() async { + if (!(await Injector.appInstance + .getDependency() + .isHostAvailable(_homeUrl))) throw NetworkException(); + } + + @override + Future deleteAuthenticatedAPI( + String route, String id) async { + await checkConnection(); + final token = await _secureStorage.readBearerToken(); + return _callApi( + _httpService.delete(_serverApiBaseUrl + route + "/" + id, headers: { + 'Content-Type': 'application/json', + 'Accept': '*/*', + HttpHeaders.authorizationHeader: "Bearer $token" + })); + } +} diff --git a/lib/services/firebase_service.dart b/lib/services/firebase_service.dart new file mode 100644 index 0000000..ad76959 --- /dev/null +++ b/lib/services/firebase_service.dart @@ -0,0 +1,180 @@ +/* +import 'dart:io' show Platform; +import 'package:firebase_messaging/firebase_messaging.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_local_notifications/flutter_local_notifications.dart'; + +abstract class IFirebaseService { + Future get token; + + Future backgroundMessageHandler(Map message); + + Future messageHandler(Map message); + + Future onLaunch(Map message); + + Future onResume(Map message); + + void subscribeForPromotions(); + + void unsubscribeFromPromotions(); +} + +//https://medium.com/@SebastianEngel/easy-push-notifications-with-flutter-and-firebase-cloud-messaging-d96084f5954f +class FirebaseService implements IFirebaseService { + FirebaseMessaging _firebaseMessaging; + + FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin; + + FirebaseService() {. + _firebaseMessaging = FirebaseMessaging(); + + //https://github.com/FirebaseExtended/flutterfire/issues/1695 + _firebaseMessaging.configure( + onMessage: messageHandler, + onBackgroundMessage: + Platform.isAndroid ? myBackgroundMessageHandler : null, + onLaunch: onLaunch, + onResume: onResume, + ); + + //monitor firebase token changes + //https://firebase.google.com/docs/cloud-messaging/android/client#sample-register + ///The registration token may change when: + // + //The app deletes Instance ID + //The app is restored on a new device + //The user uninstalls/reinstall the app + //The user clears app data. + /// + + //for the first release we don't care about token refreshes + /*Stream fcmStream = _firebaseMessaging.onTokenRefresh; + fcmStream.listen((token) { + + });*/ + + //ios specific settings + //taken from https://github.com/FirebaseExtended/flutterfire/blob/master/packages/firebase_messaging/example/lib/main.dart + _firebaseMessaging.requestNotificationPermissions( + const IosNotificationSettings( + sound: true, badge: true, alert: true, provisional: true)); + _firebaseMessaging.onIosSettingsRegistered + .listen((IosNotificationSettings settings) { + print("Settings registered: $settings"); + }); + + var initializationSettingsAndroid = + AndroidInitializationSettings('app_icon'); + var initializationSettingsIOS = + IOSInitializationSettings(onDidReceiveLocalNotification: onDidReceiveLocalNotification); + var initializationSettings = InitializationSettings( + initializationSettingsAndroid, initializationSettingsIOS); + flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin(); + flutterLocalNotificationsPlugin.initialize(initializationSettings, + onSelectNotification: selectNotification); + } + + Future onDidReceiveLocalNotification(int id, String title, String body, String payload) async{ + var androidPlatformChannelSpecifics = AndroidNotificationDetails( + 'new_message_channel_id', + 'Neue Nachricht', + 'Channel für neue Nachrichten', + importance: Importance.Max, + priority: Priority.High, + ticker: 'ticker'); + var iOSPlatformChannelSpecifics = IOSNotificationDetails(); + var platformChannelSpecifics = NotificationDetails( + androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics); + await flutterLocalNotificationsPlugin.show( + 0, + title, + body, + platformChannelSpecifics); + } + + @override + Future backgroundMessageHandler(Map message) async { + await myBackgroundMessageHandler(message); + } + + @override + Future messageHandler(Map message) async { + print("onMessage: $message"); + +// initialise the plugin. app_icon needs to be a added as a drawable resource to the Android head project + + var androidPlatformChannelSpecifics = AndroidNotificationDetails( + 'new_message_channel_id', + 'Neue Nachricht', + 'Channel für neue Nachrichten', + importance: Importance.Max, + priority: Priority.High, + ticker: 'ticker'); + var iOSPlatformChannelSpecifics = IOSNotificationDetails(); + var platformChannelSpecifics = NotificationDetails( + androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics); + + if(Platform.isAndroid) { + await flutterLocalNotificationsPlugin.show( + 0, + message["notification"]["title"], + message["notification"]["body"], + platformChannelSpecifics); + }else if(Platform.isIOS){ + await flutterLocalNotificationsPlugin.show( + 0, + message["aps"]["alert"]["title"], + message["aps"]["alert"]["body"], + platformChannelSpecifics); + } + } + + Future selectNotification(String payload) async { + if (payload != null) { + debugPrint('notification payload: ' + payload); + } + } + + @override + Future onLaunch(Map message) async { + print("onLaunch: $message"); + } + + @override + Future onResume(Map message) async { + print("onResume: $message"); + } + + @override + Future get token => _firebaseMessaging.getToken(); + + @override + void subscribeForPromotions() { + _firebaseMessaging.subscribeToTopic("promotions"); + } + + @override + void unsubscribeFromPromotions() { + _firebaseMessaging.unsubscribeFromTopic("promotions"); + } +} + +Future myBackgroundMessageHandler(Map message) { + debugPrint("BACKGROUND MESSAGE RECEIVED"); + print("BACKGROUND MESSAGE RECEIVED"); + return Future.value(() => true); + + /*if (message.containsKey('data')) { + // Handle data message + final dynamic data = message['data']; + } + + if (message.containsKey('notification')) { + // Handle notification message + final dynamic notification = message['notification']; + }*/ + + // Or do other work. +} +*/ \ No newline at end of file diff --git a/lib/services/http_service.dart b/lib/services/http_service.dart new file mode 100644 index 0000000..ff99ed0 --- /dev/null +++ b/lib/services/http_service.dart @@ -0,0 +1,36 @@ +import 'dart:convert'; +import 'dart:io'; +import 'dart:async'; + + +import 'package:http/http.dart' as http; +import 'package:http/http.dart'; +import 'package:path/path.dart'; +import 'package:injector/injector.dart'; + +abstract class IHttpService { + Future post(url, + {Map headers, body, Encoding encoding}); + + Future get(url, {Map headers}); + + Future delete(url, {Map headers}); +} + +class HttpService implements IHttpService { + @override + Future delete(url, {Map? headers}) { + return http.delete(url, headers: headers); + } + + @override + Future get(url, {Map? headers}) { + return http.get(url, headers: headers); + } + + @override + Future post(url, + {Map? headers, body, Encoding? encoding}) { + return http.post(url, headers: headers, body: body, encoding: encoding); + } +} diff --git a/lib/services/media_service.dart b/lib/services/media_service.dart new file mode 100644 index 0000000..0762d7f --- /dev/null +++ b/lib/services/media_service.dart @@ -0,0 +1,26 @@ +// import 'dart:io'; +// +// import 'package:image_picker/image_picker.dart'; +// +// abstract class IMediaService { +// Future takePicture(); +// +// Future openImageFromGallery(); +// } +// +// class MediaService implements IMediaService { +// @override +// Future openImageFromGallery() async { +// final pickedFile = +// await ImagePicker().getImage(source: ImageSource.gallery); +// if (pickedFile == null) return null; +// return File(pickedFile.path); +// } +// +// @override +// Future takePicture() async { +// final pickedFile = await ImagePicker().getImage(source: ImageSource.camera); +// if (pickedFile == null) return null; +// return File(pickedFile.path); +// } +// } diff --git a/lib/services/network_service.dart b/lib/services/network_service.dart new file mode 100644 index 0000000..50a861d --- /dev/null +++ b/lib/services/network_service.dart @@ -0,0 +1,25 @@ + +import 'dart:io'; + +abstract class INetworkService { + Future isHostAvailable(String endpoint); +} + +class NetworkService implements INetworkService{ + @override + Future isHostAvailable(String endpoint) async { + try { + final result = await InternetAddress.lookup(endpoint.substring(endpoint.indexOf('//')+2).substring(0,endpoint.substring(endpoint.indexOf('//')+2).indexOf('/'))); + if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) { + return true; + } else{ + return false; + } + } on SocketException catch (_) { + return false; + } + } +} + +class NetworkException implements Exception { +} diff --git a/lib/services/secure_storage.dart b/lib/services/secure_storage.dart new file mode 100644 index 0000000..7622f7f --- /dev/null +++ b/lib/services/secure_storage.dart @@ -0,0 +1,33 @@ +abstract class ISecureStorage { + Future readBearerToken(); + + Future clearUserCredentials(); +} + +class SecureStorage implements ISecureStorage { + ///return bearer token if present, or null if not + @override + Future readBearerToken() async { + try { + return ""; + } catch (_) { + //an error occured returning null + return ""; + } + } + + ///returns true if write was successful, false otherwise + @override + Future writeBearerToken(String token) async { + try { + await ""; + return true; + } catch (_) { + //an error occured returning false + return false; + } + } + + @override + Future clearUserCredentials() async {} +} diff --git a/lib/services/shared_preferences.dart b/lib/services/shared_preferences.dart new file mode 100644 index 0000000..890a616 --- /dev/null +++ b/lib/services/shared_preferences.dart @@ -0,0 +1,119 @@ +import 'dart:convert'; + +import 'package:mohem_flutter_app/models/config_model.dart'; + +import 'package:shared_preferences/shared_preferences.dart' +as SharedPrefsPlugin; + +/// +/// Taken from AlarmGuide Project +/// + +abstract class ISharedPreferences { + Future get authState; + + Future setAuthState(int authState); + + Future get configState; + + Future setConfigState(int confState); + + Future get config; + + Future setConfig(ConfigModel config); + + Future get promotionNotificationsEnabled; + + Future setPromotionNotificationEnabled(bool newSetting); + + Future get helpAlreadyShown; + + Future setHelpAlreadyShown(); + + Future get useS3; + + Future setUseS3(int value); +} + +class SharedPreferences implements ISharedPreferences { + static const String _AUTH_STATE_KEY = "auth_key"; + static const String _CONFIG_KEY = "config"; + static const String _CONFIG_STATE_KEY = "config_key"; + static const String _PROMOTION_NOTIFICATION_KEY = "promotion"; + static const String _HELP_ALREADY_SHOWN = "help_shown"; + static const String _USE_S3 = "s3"; + + @override + Future get authState async { + final sharedPrefs = await SharedPrefsPlugin.SharedPreferences.getInstance(); + return sharedPrefs.getInt(_AUTH_STATE_KEY); + } + + @override + Future setAuthState(int authState) async { + final sharedPrefs = await SharedPrefsPlugin.SharedPreferences.getInstance(); + sharedPrefs.setInt(_AUTH_STATE_KEY, authState); + } + + @override + Future get config async { + final sharedPrefs = await SharedPrefsPlugin.SharedPreferences.getInstance(); + final configAsJson = sharedPrefs.getString(_CONFIG_KEY); + return ConfigModel.fromJson(jsonDecode(configAsJson!)); + } + + @override + Future setConfig(ConfigModel config) async { + final sharedPrefs = await SharedPrefsPlugin.SharedPreferences.getInstance(); + sharedPrefs.setString(_CONFIG_KEY, jsonEncode(config)); + setConfigState(1); + } + + @override + Future get promotionNotificationsEnabled async { + final sharedPrefs = await SharedPrefsPlugin.SharedPreferences.getInstance(); + return sharedPrefs.getBool(_PROMOTION_NOTIFICATION_KEY); + } + + @override + Future setPromotionNotificationEnabled(bool newSetting) async { + final sharedPrefs = await SharedPrefsPlugin.SharedPreferences.getInstance(); + sharedPrefs.setBool(_PROMOTION_NOTIFICATION_KEY, newSetting); + } + + @override + Future get helpAlreadyShown async { + final sharedPrefs = await SharedPrefsPlugin.SharedPreferences.getInstance(); + return sharedPrefs.getBool(_HELP_ALREADY_SHOWN); + } + + @override + Future setHelpAlreadyShown() async { + final sharedPrefs = await SharedPrefsPlugin.SharedPreferences.getInstance(); + sharedPrefs.setBool(_HELP_ALREADY_SHOWN, true); + } + + @override + Future get configState async { + final sharedPrefs = await SharedPrefsPlugin.SharedPreferences.getInstance(); + return sharedPrefs.getInt(_CONFIG_STATE_KEY); + } + + @override + Future setConfigState(int confState) async { + final sharedPrefs = await SharedPrefsPlugin.SharedPreferences.getInstance(); + sharedPrefs.setInt(_CONFIG_STATE_KEY, confState); + } + + @override + Future setUseS3(int value) async { + final sharedPrefs = await SharedPrefsPlugin.SharedPreferences.getInstance(); + sharedPrefs.setInt(_USE_S3, value); + } + + @override + Future get useS3 async { + final sharedPrefs = await SharedPrefsPlugin.SharedPreferences.getInstance(); + return sharedPrefs.getInt(_USE_S3); + } +} diff --git a/lib/theme/app_theme.dart b/lib/theme/app_theme.dart new file mode 100644 index 0000000..5202825 --- /dev/null +++ b/lib/theme/app_theme.dart @@ -0,0 +1,29 @@ +import 'package:flutter/material.dart'; + +import 'colors.dart'; + +class AppTheme { + static getTheme() => ThemeData( + // This is the theme of your application. + // + // Try running your application with "flutter run". You'll see the + // application has a blue toolbar. Then, without quitting the app, try + // changing the primarySwatch below to Colors.green and then invoke + // "hot reload" (press "r" in the console where you ran "flutter run", + // or simply save your changes to "hot reload" in a Flutter IDE). + // Notice that the counter didn't reset back to zero; the application + // is not restarted. + primaryColor: primaryColor, + primarySwatch: Colors.blue, + backgroundColor: Colors.white, + primaryTextTheme: TextTheme( + headline6: TextStyle(color: Colors.white), + ), + ); +} + +extension ExtendedRevoCheckTheme on TextTheme { + //add custom styles and colors here + //taken from https://medium.com/@crizantlai/flutter-how-to-extend-themedata-b5b987a95bb5 + TextStyle get price => const TextStyle(color: Colors.redAccent); +} diff --git a/lib/theme/colors.dart b/lib/theme/colors.dart new file mode 100644 index 0000000..8510500 --- /dev/null +++ b/lib/theme/colors.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; + +const Color primaryColor = Colors.white; +const Color accentColor = Colors.blue; +const Color appBackgroundColor = Colors.white; +Color? accentColorDark = Colors.green[800]; +const Color borderColor = Colors.blueGrey; +Color? borderLightColor = Colors.blueGrey[50]; +Color backgroudColor = + Colors.blueGrey[50]!.withOpacity(0.5) ?? Colors.transparent; +const Color iconColor = Colors.blueGrey; +Color? headingColor = Colors.blueGrey[800]; +Color? txtColor = Colors.blueGrey[500]; diff --git a/lib/utils/AppPermissionHandler.dart b/lib/utils/AppPermissionHandler.dart new file mode 100644 index 0000000..3e3877e --- /dev/null +++ b/lib/utils/AppPermissionHandler.dart @@ -0,0 +1,36 @@ +import 'package:permission_handler/permission_handler.dart'; + +import 'dialogs.dart'; + +enum ConfirmAction { CANCEL, ACCEPT } + +Future requestPermissionGranted( + context, Permission requestPermissions) async { + var result = await requestPermissions.request(); + + switch (result) { + case PermissionStatus.granted: + // Application has been given permission to use the feature. + return true; + case PermissionStatus.denied: + // Application has been denied permission to use the feature. + return false; + case PermissionStatus.permanentlyDenied: + ConfirmAction? res = await showConfirmDialogs( + context, + 'You was denied Permission. You have give manual permission from app setting. ', + 'Open App Setting', + 'Cancel'); + if (res == ConfirmAction.ACCEPT) { + return false; + } else if (res == ConfirmAction.CANCEL) { + return false; + } + return false; + case PermissionStatus.restricted: + // iOS has restricted access to a specific feature. + return false; + default: + return false; + } +} diff --git a/lib/utils/dialogs.dart b/lib/utils/dialogs.dart new file mode 100644 index 0000000..a6bff7e --- /dev/null +++ b/lib/utils/dialogs.dart @@ -0,0 +1,35 @@ +import 'package:flutter/material.dart'; + +import 'AppPermissionHandler.dart'; + +Future showConfirmDialogs( + context, msg, positiveText, negativeText) async { + return showDialog( + context: context, + barrierDismissible: false, + builder: (context) { + return AlertDialog( + backgroundColor: Colors.white, + title: Text(msg, style: TextStyle(fontSize: 16)), + actions: [ + TextButton( + child: Text( + negativeText, + ), + onPressed: () { + Navigator.of(context).pop(ConfirmAction.CANCEL); + }, + ), + TextButton( + child: Text( + positiveText, + ), + onPressed: () { + Navigator.of(context).pop(ConfirmAction.ACCEPT); + }, + ) + ], + ); + }, + ); +} diff --git a/lib/utils/navigator.dart b/lib/utils/navigator.dart new file mode 100644 index 0000000..f9855a9 --- /dev/null +++ b/lib/utils/navigator.dart @@ -0,0 +1,9 @@ +import 'package:flutter/material.dart'; + +navigateWithName(BuildContext context, String routeName, {Object? arguments}) { + Navigator.pushNamed(context, routeName, arguments: arguments); +} + +pop(BuildContext context) { + Navigator.of(context).pop(); +} diff --git a/lib/utils/utils.dart b/lib/utils/utils.dart new file mode 100644 index 0000000..e0b0f03 --- /dev/null +++ b/lib/utils/utils.dart @@ -0,0 +1,311 @@ +import 'dart:convert'; +import 'dart:io'; +import 'dart:typed_data'; +import 'dart:ui'; + +import 'package:mohem_flutter_app/config/constants.dart'; +import 'package:mohem_flutter_app/theme/colors.dart'; +import 'package:mohem_flutter_app/widgets/txt.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/svg.dart'; + +import 'package:sizer/sizer.dart'; + +Color getColorFromHex(String hexColor) { + hexColor = hexColor.toUpperCase().replaceAll('#', ''); + + if (hexColor.length == 6) { + hexColor = 'FF' + hexColor; + } + + return Color(int.parse(hexColor, radix: 16)); +} + +Widget spacerVertical(double v) { + return Container( + height: v, + width: double.infinity, + ); +} +Future delay(int millis) async { + return await Future.delayed(Duration(milliseconds: millis)); +} + +inkWellCorner({double? r}) { + return RoundedRectangleBorder( + borderRadius: BorderRadius.circular(r ?? 4), + ); +} + +Widget spacerHorizontal(double v) { + return Container( + height: v, + width: v, + ); +} + +Widget mHeight(double f) { + return Container( + width: f, + height: f, + ); +} + +Widget mDivider(Color color, {double? h}) { + return Container( + width: double.infinity, + height: h ?? 1, + color: color, + ); +} + +Widget mDivider3({double? h}) { + return Container( + width: double.infinity, + height: h ?? 1, + color: borderLightColor!.withOpacity(0.7) ?? Colors.transparent, + ); +} + +Widget mDivider2(Color color, double w) { + return Container( + width: w, + height: 1, + color: color, + ); +} + +InputDecoration txtField(String label) { + return new InputDecoration( + border: InputBorder.none, + focusedBorder: InputBorder.none, + enabledBorder: InputBorder.none, + errorBorder: InputBorder.none, + hintText: label, + hintStyle: TextStyle(color: Colors.grey), + disabledBorder: InputBorder.none, + isDense: false, + contentPadding: EdgeInsets.only(left: 15, right: 15), + ); +} + +Widget mWidth(double f) { + return Container( + width: f, + height: f, + ); +} + +Widget mFlex(int f) { + return Flexible( + flex: f, + child: Container( + width: double.infinity, + height: double.infinity, + ), + ); +} +Widget mExp(int f) { + return Expanded( + flex: f, + child: Container( + width: double.infinity, + ), + ); +} + +spacer() { + return SizedBox( + height: 8, + ); +} + +Widget floatButton(String icon, {Color? color, required Function onClick, String? title}) { + return Padding( + padding: const EdgeInsets.only(top: 12, bottom: 12), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + FloatingActionButton( + onPressed: () { + onClick(); + }, + heroTag: icon, + backgroundColor: accentColor, + elevation: 4, + child: Container( + child: SvgPicture.asset( + categorySvgIcons + icon, + color: color, + ), + width: double.infinity, + height: double.infinity, + decoration: containerRadius(Colors.white, 200), + clipBehavior: Clip.antiAlias, + padding: EdgeInsets.all(15), + margin: EdgeInsets.all(1), + ), + ), + if (title != null) mHeight(2.w), + if (title != null) + Txt( + title, + fontSize: 12.sp, + bold: true, + color: headingColor, + ) + ], + ), + ); +} + +navigateTo(context, page) { + Navigator.push(context, MaterialPageRoute(builder: (context) => page)); +} + +circularImage(String im, double width, double height) { + return new Container(width: 190.0, height: 190.0, decoration: new BoxDecoration(shape: BoxShape.circle, image: new DecorationImage(fit: BoxFit.fill, image: new AssetImage(im)))); +} + +circularImage2(String im, double width, double height) { + return new Container(width: width, height: height, decoration: new BoxDecoration(shape: BoxShape.circle, image: new DecorationImage(fit: BoxFit.fill, image: new AssetImage(im)))); +} + +cardRadius(double radius) { + return RoundedRectangleBorder( + side: BorderSide(color: Colors.transparent, width: 1), + borderRadius: BorderRadius.circular(radius), + ); +} + +cardRadiusWithoutBorder(double radius) { + return RoundedRectangleBorder( + side: BorderSide(color: Colors.transparent, width: 1), + borderRadius: BorderRadius.circular(radius), + ); +} + +Image imageFromBase64String(String base64String) { + return Image.memory(base64Decode(base64String)); +} + +Uint8List dataFromBase64String(String base64String) { + return base64Decode(base64String); +} + +String base64String(Uint8List data) { + return base64Encode(data); +} + +Widget overLayWidget({double? width, double? height,List? color}) { + return Container( + width: width ?? double.infinity, + height: height ?? 60, + decoration: BoxDecoration( + gradient: LinearGradient( + colors: color!=null?color:[ + Colors.black.withOpacity(0.2), + Colors.black.withOpacity(0.1), + Colors.black.withOpacity(0.004), + ], + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + tileMode: TileMode.clamp, + ), + ), + ); +} + +Decoration containerRadius(Color color, double r) { + return BoxDecoration( + color: color, + borderRadius: BorderRadius.all(Radius.circular(r)), + ); +} + +Decoration containerRadiusTop({Color? color, double? r}) { + return BoxDecoration( + color: color ?? Colors.white, + borderRadius: BorderRadius.only(topRight: Radius.circular(r ?? 12), topLeft: Radius.circular(r ?? 12)), + ); +} + +Decoration containerRadiusBorder(Color color, double r) { + return BoxDecoration( + color: Colors.transparent, + border: Border.all(color: color, width: 1), + borderRadius: BorderRadius.all(Radius.circular(r)), + ); +} + +Decoration containerRadiusBottom(Color color, double r) { + return BoxDecoration( + color: color, + borderRadius: BorderRadius.only(bottomLeft: Radius.circular(r), bottomRight: Radius.circular(r)), + ); +} + +ShapeBorder cardRadiusTop(double radius) { + return RoundedRectangleBorder( + side: BorderSide(color: Colors.transparent, width: 0), + borderRadius: BorderRadius.only(topLeft: Radius.circular(radius), topRight: Radius.circular(radius)), + ); +} + +Decoration containerColorRadiusBorderWidth(Color background, double radius, Color color, double w) { + return BoxDecoration( + color: background, + border: Border.all( + width: w, // + color: color // <--- border width here + ), + borderRadius: BorderRadius.circular(radius), + ); +} + +ShapeBorder cardRadiusTop2(double radius) { + return RoundedRectangleBorder( + borderRadius: BorderRadius.only(topLeft: Radius.circular(radius), topRight: Radius.circular(radius)), + ); +} + +ShapeBorder cardRadiusBottom(double radius) { + return RoundedRectangleBorder( + borderRadius: BorderRadius.only(bottomLeft: Radius.circular(radius), bottomRight: Radius.circular(radius)), + ); +} + +Decoration containerColorRadiusBorder(Color background, double radius, Color color) { + return BoxDecoration( + color: background, + border: Border.all( + width: 1, // + color: color // <--- border width here + ), + borderRadius: BorderRadius.circular(radius), + ); +} + + + + + + +//Decoration appGradient = BoxDecoration( +// gradient: LinearGradient( +// colors: [ +// Colors.green[200], +// Colors.green, +// ], +// begin: Alignment.topCenter, +// end: Alignment.bottomCenter, +// ), +//); +// launchURL(String url) async { +// if (await canLaunch(url)) { +// await launch(url); +// } else { +// throw 'Could not launch $url'; +// } +// } diff --git a/lib/widgets/app_bar.dart b/lib/widgets/app_bar.dart new file mode 100644 index 0000000..3ad0b80 --- /dev/null +++ b/lib/widgets/app_bar.dart @@ -0,0 +1,28 @@ +import 'package:mohem_flutter_app/theme/colors.dart'; +import 'package:mohem_flutter_app/widgets/txt.dart'; +import 'package:flutter/material.dart'; +import 'package:sizer/sizer.dart'; + +AppBar appBar({ + Color? backgroundColor, + double? elevation, + String? title, + Color? titleColor, + bool? isTitleCenter, + Color? backIconColor, + List? actions, +}) { + return AppBar( + backgroundColor: backgroundColor ?? appBackgroundColor, + elevation: elevation ?? 0, + centerTitle: isTitleCenter ?? true, + iconTheme: IconThemeData( + color: backIconColor ?? Colors.black, //change your color here + ), + actions: actions, + title: Txt( + title ?? "", + txtType: TxtType.appBar, + ), + ); +} diff --git a/lib/widgets/blurry_container.dart b/lib/widgets/blurry_container.dart new file mode 100644 index 0000000..8bebc4a --- /dev/null +++ b/lib/widgets/blurry_container.dart @@ -0,0 +1,62 @@ +import 'dart:ui'; + +import 'package:flutter/material.dart'; + +const kDemoText = Center( + child: Text( + '', + style: TextStyle( + fontSize: 25, + color: Colors.white, + letterSpacing: 2, + ), + textAlign: TextAlign.center, + ), +); +const double kBlur = 1.0; +const EdgeInsetsGeometry kDefaultPadding = EdgeInsets.all(16); +const Color kDefaultColor = Colors.transparent; +const BorderRadius kBorderRadius = BorderRadius.all(Radius.circular(20)); +const double kColorOpacity = 0.0; + +class BlurryContainer extends StatelessWidget { + final Widget child; + final double blur; + final double? height, width; + final EdgeInsetsGeometry padding; + final Color bgColor; + + final BorderRadius borderRadius; + + //final double colorOpacity; + + BlurryContainer({ + this.child = kDemoText, + this.blur = 5, + required this.height, + required this.width, + this.padding = kDefaultPadding, + this.bgColor = kDefaultColor, + this.borderRadius = kBorderRadius, + //this.colorOpacity = kColorOpacity, + }); + + @override + Widget build(BuildContext context) { + return ClipRRect( + borderRadius: borderRadius, + child: BackdropFilter( + filter: ImageFilter.blur(sigmaX: blur, sigmaY: blur), + child: Container( + height: height!, + width: width!, + padding: padding, + color: bgColor == Colors.transparent + ? bgColor + : bgColor.withOpacity(0.5), + child: child, + ), + ), + ); + } +} diff --git a/lib/widgets/button/show_circular_button.dart b/lib/widgets/button/show_circular_button.dart new file mode 100644 index 0000000..c2bd90c --- /dev/null +++ b/lib/widgets/button/show_circular_button.dart @@ -0,0 +1,23 @@ +import 'package:mohem_flutter_app/utils/utils.dart'; +import 'package:flutter/material.dart'; + +class ShowCircularButton extends StatelessWidget { + VoidCallback onPressed; + IconData? iconData; + ShowCircularButton({this.iconData,required this.onPressed}); + @override + Widget build(BuildContext context) { + return Card( + shape: cardRadius(1000), + color: Colors.black.withOpacity(0.2), + margin: EdgeInsets.all(12), + child: IconButton( + onPressed: onPressed, + icon: Icon( + iconData?? Icons.amp_stories_outlined, + color: Colors.white, + ), + ), + ); + } +} diff --git a/lib/widgets/button/show_image_button.dart b/lib/widgets/button/show_image_button.dart new file mode 100644 index 0000000..8e60d11 --- /dev/null +++ b/lib/widgets/button/show_image_button.dart @@ -0,0 +1,43 @@ +import 'package:mohem_flutter_app/theme/colors.dart'; +import 'package:mohem_flutter_app/utils/utils.dart'; +import 'package:flutter/material.dart'; + +import '../txt.dart'; + +class ShowImageButton extends StatelessWidget { + String icon, title; + VoidCallback onClick; + + ShowImageButton( + {required this.icon, required this.title, required this.onClick}); + + @override + Widget build(BuildContext context) { + return InkWell( + onTap: onClick, + child: Container( + width: double.infinity, + child: Column( + children: [ + Container( + width: double.infinity, + height: 120, + color: accentColor, + padding: EdgeInsets.all(30), + child: Image.asset( + icon, + color: Colors.white, + ), + ), + mHeight(12), + Txt( + title, + txtType: TxtType.heading2, + color: Colors.blue, + ) + ], + ), + ), + ); + } +} diff --git a/lib/widgets/dialog/dialogs.dart b/lib/widgets/dialog/dialogs.dart new file mode 100644 index 0000000..9a5a822 --- /dev/null +++ b/lib/widgets/dialog/dialogs.dart @@ -0,0 +1,16 @@ +import 'package:flutter/material.dart'; + +void showMDialog( + context, { + Widget? child, +}) async { + return showDialog( + context: context, + barrierDismissible: true, + builder: (context) { + return Dialog( + child: child, + ); + }, + ); +} diff --git a/lib/widgets/dialog/message_dialog.dart b/lib/widgets/dialog/message_dialog.dart new file mode 100644 index 0000000..4181370 --- /dev/null +++ b/lib/widgets/dialog/message_dialog.dart @@ -0,0 +1,38 @@ +import 'package:mohem_flutter_app/theme/colors.dart'; +import 'package:mohem_flutter_app/utils/navigator.dart'; +import 'package:mohem_flutter_app/utils/utils.dart'; +import 'package:mohem_flutter_app/widgets/show_fill_button.dart'; +import 'package:mohem_flutter_app/widgets/txt.dart'; +import 'package:flutter/material.dart'; + +class MessageDialog extends StatelessWidget { + String? title, buttonTitle; + VoidCallback? onClick; + MessageDialog({this.title, this.buttonTitle,this.onClick}); + + @override + Widget build(BuildContext context) { + return Container( + color: Colors.white, + padding: EdgeInsets.all(30), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Txt( + title ?? "message", + txtType: TxtType.heading3, + ), + mHeight(40), + ShowFillButton( + title: buttonTitle ?? "Continue", + width: double.infinity, + onPressed: () { + onClick!(); + }, + ) + ], + ), + ); + } +} diff --git a/lib/widgets/dialog/otp_dialog.dart b/lib/widgets/dialog/otp_dialog.dart new file mode 100644 index 0000000..3790c44 --- /dev/null +++ b/lib/widgets/dialog/otp_dialog.dart @@ -0,0 +1,74 @@ +import 'package:mohem_flutter_app/theme/colors.dart'; +import 'package:mohem_flutter_app/utils/navigator.dart'; +import 'package:mohem_flutter_app/utils/utils.dart'; +import 'package:mohem_flutter_app/widgets/show_fill_button.dart'; +import 'package:mohem_flutter_app/widgets/txt.dart'; +import 'package:flutter/material.dart'; + +class OtpDialog extends StatelessWidget { + VoidCallback onClick; + + OtpDialog({required this.onClick}); + + @override + Widget build(BuildContext context) { + return Container( + color: Colors.white, + padding: EdgeInsets.all(30), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Txt( + "Please insert OTP Code", + txtType: TxtType.heading3, + ), + mHeight(20), + Row( + children: [ + Expanded( + child: Container( + width: double.infinity, + height: 60, + color: accentColor.withOpacity(0.3), + ), + ), + mWidth(12), + Expanded( + child: Container( + width: double.infinity, + height: 60, + color: accentColor.withOpacity(0.3), + ), + ), + mWidth(12), + Expanded( + child: Container( + width: double.infinity, + height: 60, + color: accentColor.withOpacity(0.3), + ), + ), + mWidth(12), + Expanded( + child: Container( + width: double.infinity, + height: 60, + color: accentColor.withOpacity(0.3), + ), + ), + ], + ), + mHeight(40), + ShowFillButton( + title: "Check Code", + width: double.infinity, + onPressed: () { + onClick(); + }, + ) + ], + ), + ); + } +} diff --git a/lib/widgets/dragable_sheet.dart b/lib/widgets/dragable_sheet.dart new file mode 100644 index 0000000..4d91118 --- /dev/null +++ b/lib/widgets/dragable_sheet.dart @@ -0,0 +1,26 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +showDraggableDialog(BuildContext context, Widget child) { + showGeneralDialog( + barrierLabel: "Label", + barrierDismissible: false, + barrierColor: Colors.black.withOpacity(0.2), + transitionDuration: Duration(milliseconds: 200), + context: context, + pageBuilder: (context, anim1, anim2) { + return Dismissible( + direction: DismissDirection.vertical, + key: const Key('key'), + onDismissed: (_) => Navigator.of(context).pop(), + child: child, + ); + }, + transitionBuilder: (context, anim1, anim2, child) { + return SlideTransition( + position: Tween(begin: Offset(0, 1), end: Offset(0, 0)).animate(anim1), + child: child, + ); + }, + ); +} diff --git a/lib/widgets/dropdown/dropdow_field.dart b/lib/widgets/dropdown/dropdow_field.dart new file mode 100644 index 0000000..091b6f6 --- /dev/null +++ b/lib/widgets/dropdown/dropdow_field.dart @@ -0,0 +1,78 @@ +import 'package:mohem_flutter_app/theme/colors.dart'; +import 'package:mohem_flutter_app/utils/utils.dart'; +import 'package:flutter/material.dart'; +import 'package:mohem_flutter_app/theme/colors.dart'; +import 'package:mohem_flutter_app/utils/utils.dart'; + +import '../txt.dart'; + +class DropdownField extends StatefulWidget { + String? hint; + List? list; + + DropdownField({this.hint, this.list}); + + @override + State createState() => _DropdownFieldState(); +} + +class _DropdownFieldState extends State { + String? dropdownValue; + + @override + Widget build(BuildContext context) { + return Container( + decoration: containerColorRadiusBorderWidth( + Colors.transparent, + 4, + borderColor, + 0.5, + ), + margin: EdgeInsets.all(2), + padding: EdgeInsets.only(left: 8, right: 8), + child: DropdownButton( + value: dropdownValue, + icon: const Icon(Icons.keyboard_arrow_down_sharp), + elevation: 16, + iconSize: 16, + iconEnabledColor: borderColor, + iconDisabledColor: borderColor, + isExpanded: true, + style: const TextStyle(color: Colors.black), + hint: Txt( + widget.hint ?? "", + txtType: TxtType.heading1, + bold: false, + color: borderColor, + ), + underline: Container( + height: 0, + ), + onChanged: (String? newValue) { + setState(() { + dropdownValue = newValue!; + }); + }, + items: (widget.list ?? + [ + 'One', + 'Two', + 'Free', + 'Four', + ]) + .map>( + (String value) { + return DropdownMenuItem( + value: value, + child: Txt( + value, + txtType: TxtType.heading1, + bold: false, + ), + ); + }, + ).toList(), + ), + ); + } +} diff --git a/lib/widgets/dropdown/dropdown_text.dart b/lib/widgets/dropdown/dropdown_text.dart new file mode 100644 index 0000000..4031a98 --- /dev/null +++ b/lib/widgets/dropdown/dropdown_text.dart @@ -0,0 +1,33 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:mohem_flutter_app/config/constants.dart'; +import 'package:mohem_flutter_app/theme/colors.dart'; +import 'package:mohem_flutter_app/utils/utils.dart'; +import 'package:mohem_flutter_app/widgets/txt.dart'; + +class DropDownText extends StatelessWidget { + String title; + + DropDownText(this.title); + + @override + Widget build(BuildContext context) { + return Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Txt( + title, + txtType: TxtType.heading3, + color: accentColor, + ), + mWidth(16), + SvgPicture.asset( + svgIcons + "ic_arrow_down.svg", + width: 10, + height: 10, + ), + ], + ); + } +} diff --git a/lib/widgets/extensions/extensions_widget.dart b/lib/widgets/extensions/extensions_widget.dart new file mode 100644 index 0000000..caaaba9 --- /dev/null +++ b/lib/widgets/extensions/extensions_widget.dart @@ -0,0 +1,235 @@ +import 'dart:math'; + +import 'package:flutter/material.dart'; + +extension ExtendedText on Widget { + showOverlay({double? width, double? height}){ + return Container( + width: width ?? double.infinity, + height: height ?? 60, + decoration: BoxDecoration( + gradient: LinearGradient(colors: [ + Colors.black.withOpacity(0.2), + Colors.black.withOpacity(0.1), + Colors.black.withOpacity(0.004), + ], begin: Alignment.topCenter, end: Alignment.bottomCenter, tileMode: TileMode.clamp), + ), + child: this, + ); + } +} + + + + + +extension ImageExt on Image { + Widget circular() { + return ClipRRect( + clipBehavior: Clip.hardEdge, + borderRadius: BorderRadius.circular(100), + child: this, + ); + } +} + +extension WidgetExt on Widget { + Widget toWidget() { + return this as Widget; + } + + Widget sized({double? width, double? height}) { + return SizedBox( + width: width, + height: height, + child: this, + ); + } + Widget inkWell({required VoidCallback onTap,double radius=0}){ + return InkWell( + child: Material(child: this,color: Colors.transparent,), + onTap: onTap, + ); + } + Widget sizeSq(double size) { + return SizedBox( + width: size, + height: size, + child: this, + ); + } + + Widget fillParent({double hFactor = 1, double? vFactor}) { + return FractionallySizedBox( + heightFactor: null, + widthFactor: hFactor, + child: this, + ); + } + + Widget margin( + {double top = 0, double bottom = 0, double left = 0, double right = 0}) { + var pad = + EdgeInsets.only(top: top, left: left, bottom: bottom, right: right); + try { + (this as dynamic).margin = pad; + } catch (err) { + return Padding( + padding: pad, + child: this, + ); + } + return this; + } + + Widget toClip({double r = 40}) { + return ClipRRect( + borderRadius: BorderRadius.all( + Radius.circular(r), + ), + clipBehavior: Clip.antiAlias, + child: this, + ); + } + + // Widget scrollable({Axis? direction, bool fadingEdge = true}) { + // var scrollview = SingleChildScrollView( + // child: this, + // controller: ScrollController(), + // scrollDirection: direction ?? Axis.vertical, + // ); + // return fadingEdge ? scrollview.fadingEdge() : scrollview; + // } + + Widget expand() { + return Expanded( + child: this, + ); + } + + Widget align(Alignment alignment) { + return Align( + alignment: alignment, + child: this, + ); + } + + Widget center() { + return Center( + child: this, + ); + } + + Widget padding(EdgeInsets padding) { + return Padding( + padding: padding, + child: this, + ); + } + + Widget paddingAll(double padding) { + return Padding( + padding: EdgeInsets.all(padding), + child: this, + ); + } + + // Widget onTap(VoidCallback onTap, {double corners = 0}) { + // return Clickable.widget(child: this, corners: corners, onTap: onTap); + // } + + Widget ignoreInteraction() { + return IgnorePointer( + child: this, + ); + } +} + +// extension xScrollView on ScrollView { +// Widget fadingEdge() => FadingEdgeScrollView.fromScrollView( +// child: this, +// gradientFractionOnEnd: 0.08, +// gradientFractionOnStart: 0.08, +// shouldDisposeScrollController: true, +// ); +// } +// +// extension x2ScrollView on SingleChildScrollView { +// Widget fadingEdge() => FadingEdgeScrollView.fromSingleChildScrollView( +// child: this, +// gradientFractionOnEnd: 0.08, +// gradientFractionOnStart: 0.08, +// shouldDisposeScrollController: true, +// ); +// } + +class Position { + final double x, y, w, h; + + Position(this.x, this.y, this.w, this.h); +} + +extension KeyExt on GlobalKey { + Position globalPosition() { + RenderBox box = currentContext!.findRenderObject() as RenderBox; + Offset xy = box.localToGlobal(Offset.zero); + Size wh = box.size; + return Position(xy.dx, xy.dy, wh.width, wh.height); + } +} + +extension StateExt on State { + reload({VoidCallback? b}) { + setState(b ?? () {}); + } +} + +// extension LocatiionExt on Location { +// LatLng toLatLng() { +// return LatLng(lat!, lng!); +// } +// } + +// extension xList on List { +// T randomItem() { +// final random = new Random(); +// var i = random.nextInt(this.length); +// return this[i]; +// } +// +// List append(List items) { +// this.addAll(items); +// return this; +// } +// +// bool isFirst(T item) => first == item; +// +// bool isLast(T item) => last == item; +// +// getOneByOne( +// {required int delayMillis, +// required Function(T) callback, VoidCallback? complete}) async { +// for (var i in this) { +// await delay(delayMillis); +// callback(i); +// } +// complete!(); +// } +// } + +extension xFuture on Future { + thenWithDelay(int millis, Function(T) thenBlock) { + then((value) { + Future.delayed(Duration(milliseconds: millis)) + .then((value) => thenBlock(value)); + }); + } +} + +extension xDouble on int { + Duration durationMillis() => Duration(milliseconds: this); + + Duration durationSec() => Duration(seconds: this); + + Duration durationHour() => Duration(hours: this); +} diff --git a/lib/widgets/gradient_app_bar.dart b/lib/widgets/gradient_app_bar.dart new file mode 100644 index 0000000..c3ded30 --- /dev/null +++ b/lib/widgets/gradient_app_bar.dart @@ -0,0 +1,63 @@ +import 'package:flutter/material.dart'; + +class GradientAppBar extends StatelessWidget { + final String title; + final double barHeight = 50.0; + IconData? iconData; + + GradientAppBar(this.title, {this.iconData}); + + @override + Widget build(BuildContext context) { + final double statusbarHeight = MediaQuery.of(context).padding.top; + + return new Container( + padding: EdgeInsets.only(top: statusbarHeight), + height: statusbarHeight + barHeight, + child: Row( + children: [ + IconButton( + onPressed: () { + Navigator.pop(context); + }, + icon: Icon( + Icons.arrow_back_ios, + color: Colors.white, + ), + ), + Expanded( + child: Center( + child: Text( + title, + style: TextStyle( + fontSize: 20.0, + color: Colors.white, + fontWeight: FontWeight.bold), + ), + ), + ), + if (iconData != null) + IconButton( + onPressed: () {}, + icon: Icon( + iconData, + color: Colors.white, + ), + ), + ], + ), + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [ + Colors.black.withOpacity(0.4), + Colors.black.withOpacity(0.2), + Colors.black.withOpacity(0.0001), + ], + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + tileMode: TileMode.clamp, + ), + ), + ); + } +} diff --git a/lib/widgets/images/circular_image.dart b/lib/widgets/images/circular_image.dart new file mode 100644 index 0000000..dd64efa --- /dev/null +++ b/lib/widgets/images/circular_image.dart @@ -0,0 +1,30 @@ +import 'package:mohem_flutter_app/config/constants.dart'; +import 'package:mohem_flutter_app/utils/utils.dart'; +import 'package:flutter/material.dart'; + +class CircularImage extends StatelessWidget { + double? w, h, padding; + String? image; + + CircularImage({this.w, this.h, this.image, this.padding}); + + @override + Widget build(BuildContext context) { + return Container( + width: w ?? 120, + height: h ?? 120, + child: Card( + shape: cardRadius(2000), + clipBehavior: Clip.antiAlias, + elevation: 4, + child: Card( + shape: cardRadius(2000), + clipBehavior: Clip.antiAlias, + elevation: 0, + margin: EdgeInsets.all(padding ?? 0), + child: Image.asset(image ?? icons + "green.jpg"), + ), + ), + ); + } +} diff --git a/lib/widgets/show_card_buttton.dart b/lib/widgets/show_card_buttton.dart new file mode 100644 index 0000000..7b9ac38 --- /dev/null +++ b/lib/widgets/show_card_buttton.dart @@ -0,0 +1,32 @@ +import 'package:mohem_flutter_app/theme/colors.dart'; +import 'package:mohem_flutter_app/widgets/show_fill_button.dart'; +import 'package:flutter/material.dart'; + +class ShowCardButton extends StatelessWidget { + String title; + VoidCallback onPressed; + Color txtColor; + + ShowCardButton({ + required this.title, + required this.onPressed, + this.txtColor = Colors.white, + }); + + @override + Widget build(BuildContext context) { + return Card( + margin: EdgeInsets.zero, + elevation: 20, + child: Container( + width: double.infinity, + padding: EdgeInsets.all(12), + child: ShowFillButton( + title: title, + onPressed: onPressed, + txtColor: txtColor, + ), + ), + ); + } +} diff --git a/lib/widgets/show_fill_button.dart b/lib/widgets/show_fill_button.dart new file mode 100644 index 0000000..168521e --- /dev/null +++ b/lib/widgets/show_fill_button.dart @@ -0,0 +1,41 @@ +import 'package:mohem_flutter_app/theme/colors.dart'; +import 'package:mohem_flutter_app/widgets/txt.dart'; +import 'package:flutter/material.dart'; + +class ShowFillButton extends StatelessWidget { + String title; + VoidCallback onPressed; + Color txtColor; + double elevation, radius,width; + + ShowFillButton({ + required this.title, + required this.onPressed, + this.txtColor = Colors.white, + this.elevation = 4, + this.radius = 6, + this.width=88, + }); + + @override + Widget build(BuildContext context) { + return ElevatedButton( + style: ElevatedButton.styleFrom( + onPrimary: Colors.black87, + primary: accentColor, + minimumSize: Size(width, 45), + padding: EdgeInsets.symmetric(horizontal: 16), + elevation: elevation, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.all(Radius.circular(radius)), + ), + ), + onPressed: onPressed, + child: Txt( + title.toUpperCase(), + color: txtColor, + txtType: TxtType.heading1, + ), + ); + } +} diff --git a/lib/widgets/txt.dart b/lib/widgets/txt.dart new file mode 100644 index 0000000..8591277 --- /dev/null +++ b/lib/widgets/txt.dart @@ -0,0 +1,170 @@ +// import 'package:auto_size_text/auto_size_text.dart'; +import 'package:mohem_flutter_app/theme/colors.dart'; +import 'package:mohem_flutter_app/utils/utils.dart'; +import 'package:flutter/material.dart'; +import 'package:sizer/sizer.dart'; + +enum TxtType { + small, + normal, + heading1, + heading2, + heading3, + appBar, +} + +class Txt extends StatelessWidget { + String text; + int? maxLines; + double? fontSize; + Color? color; + bool? bold; + bool? isUnderline; + bool? isFlatButton; + double? pedding; + TextAlign? textAlign; + FontWeight? fontWeight; + Function? onTap; + TxtType txtType; + + Txt(this.text, {this.maxLines, this.color, this.bold, this.fontSize, this.isUnderline, this.isFlatButton, this.pedding, this.textAlign, this.fontWeight, this.onTap, this.txtType = TxtType.normal}); + + @override + Widget build(BuildContext context) { + if (isFlatButton != null) + return Padding( + padding: EdgeInsets.only(right: pedding ?? 0, left: pedding ?? 0), + child: InkWell( + onTap: () { + onTap!(); + }, + customBorder: inkWellCorner(r: 4), + child: Padding( + padding: const EdgeInsets.only( + left: 14, + right: 14, + top: 6, + bottom: 6, + ), + child: getText(), + ), + ), + ); + else + return getText(); + } + + Widget getText() { + return Material( + type: MaterialType.transparency, + child: Text( + text, + maxLines: maxLines, + textAlign: textAlign, + overflow: maxLines != null ? TextOverflow.ellipsis : null, + style: TextStyle( + fontSize: fontSize ?? + (txtType == TxtType.small + ? 8.sp + : txtType == TxtType.normal + ? 10.sp + : txtType == TxtType.heading1 + ? 11.sp + : txtType == TxtType.heading2 + ? 12.sp + : txtType == TxtType.heading3 + ? 13.sp + : txtType == TxtType.appBar + ? 14.sp + : 8.sp), + color: color ?? + (txtType == TxtType.appBar + ? Colors.black + : txtType == TxtType.heading1 + ? headingColor + : txtType == TxtType.heading2 + ? headingColor + : txtType == TxtType.heading3 + ? headingColor + : null), + fontWeight: (fontWeight != null) + ? fontWeight + : ((bold != null) + ? FontWeight.bold + : (txtType == TxtType.appBar + ? FontWeight.bold + : txtType == TxtType.heading1 + ? FontWeight.bold + : txtType == TxtType.heading2 + ? FontWeight.bold + : txtType == TxtType.heading3 + ? FontWeight.bold + : null)), + decoration: (isUnderline != null) ? TextDecoration.underline : null, + ), + ), + ); + } +} + +// class TxtAuto extends StatelessWidget { +// String text; +// int? maxLines; +// double? fontSize; +// Color? color; +// bool? bold; +// bool? isUnderline; +// bool? isFlatButton; +// double? pedding; +// TextAlign? textAlign; +// +// TxtAuto( +// this.text, { +// this.maxLines, +// this.color, +// this.bold, +// this.fontSize, +// this.isUnderline, +// this.isFlatButton, +// this.pedding, +// this.textAlign, +// }); +// +// @override +// Widget build(BuildContext context) { +// if (isFlatButton != null) +// return Padding( +// padding: EdgeInsets.only(right: pedding ?? 0, left: pedding ?? 0), +// child: InkWell( +// onTap: () {}, +// customBorder: inkWellCorner(r: 4), +// child: Padding( +// padding: const EdgeInsets.only( +// left: 14, +// right: 14, +// top: 6, +// bottom: 6, +// ), +// child: getText(), +// ), +// ), +// ); +// else +// return getText(); +// } +// +// Widget getText() { +// return AutoSizeText( +// text, +// maxLines: maxLines, +// textAlign: textAlign, +// overflow: maxLines != null ? TextOverflow.ellipsis : null, +// style: TextStyle( +// fontSize: fontSize, +// color: color, +// fontWeight: (bold != null) ? FontWeight.bold : null, +// decoration: (isUnderline != null) ? TextDecoration.underline : null, +// ), +// ); +// } +// } diff --git a/lib/widgets/txt_field.dart b/lib/widgets/txt_field.dart new file mode 100644 index 0000000..c081229 --- /dev/null +++ b/lib/widgets/txt_field.dart @@ -0,0 +1,155 @@ +import 'package:mohem_flutter_app/theme/colors.dart'; +import 'package:mohem_flutter_app/utils/utils.dart'; +import 'package:mohem_flutter_app/widgets/txt.dart'; +import 'package:flutter/material.dart'; +import 'package:sizer/sizer.dart'; + +class TxtField extends StatelessWidget { + TextEditingController controller = new TextEditingController(); + String? title; + String? hint; + String? lable; + IconData? prefixData; + IconData? postfixData; + bool isNeedFilterButton; + bool isNeedClickAll; + bool isButtonEnable; + double? elevation; + Function? onTap; + String? buttonTitle; + int? maxLines; + bool isSidePaddingZero; + bool isNeedBorder; + + TxtField({ + this.title, + this.lable, + this.hint, + this.prefixData, + this.postfixData, + this.isNeedClickAll = false, + this.isNeedFilterButton = false, + this.elevation, + this.onTap, + this.isButtonEnable = false, + this.buttonTitle, + this.maxLines, + this.isSidePaddingZero = false, + this.isNeedBorder = true, + }); + + @override + Widget build(BuildContext context) { + controller.text = title ?? ""; + return InkWell( + onTap: isNeedClickAll == false + ? null + : () { + onTap!(); + }, + customBorder: inkWellCorner(), + child: Row( + children: [ + Expanded( + child: Card( + elevation: elevation, + margin: isSidePaddingZero ? EdgeInsets.zero : null, + child: TextField( + autofocus: false, + controller: controller, + enabled: isNeedClickAll == true ? false : true, + maxLines: maxLines, + onTap: () {}, + decoration: InputDecoration( + labelText: lable, + alignLabelWithHint: true, + fillColor: Colors.white, + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: accentColor, width: isNeedBorder ? 1.0 : 0), + borderRadius: BorderRadius.circular(4.0), + ), + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: borderColor, width: isNeedBorder ? 1.0 : 0), + borderRadius: BorderRadius.circular(4.0), + ), + disabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: borderColor, width: isNeedBorder ? 1.0 : 0), + borderRadius: BorderRadius.circular(4.0), + ), + prefixIcon: prefixData != null + ? Icon( + Icons.search, + color: borderColor, + ) + : null, + labelStyle: TextStyle(color: borderColor, fontSize: 13.sp), + hintStyle: TextStyle(color: borderColor, fontSize: 9.sp), + hintText: hint ?? "", + contentPadding: prefixData == null + ? EdgeInsets.only( + left: 12, + right: 12, + top: maxLines != null ? 12 : 0, + bottom: maxLines != null ? 12 : 0, + ) + : EdgeInsets.zero, + ), + ), + ), + ), + if (isNeedFilterButton) mWidth(8), + if (isNeedFilterButton) + InkWell( + onTap: isNeedClickAll + ? null + : () { + controller.clear(); + }, + child: Container( + width: 55, + height: 55, + child: Card( + color: accentColor, + // margin: EdgeInsets.all(4), + // shape: cardRadius(0), + child: Icon( + postfixData ?? Icons.filter_alt, + color: Colors.white, + ), + ), + ), + ), + if (isButtonEnable) + Material( + child: InkWell( + onTap: () {}, + customBorder: inkWellCorner(), + child: Container( + height: 55, + child: Card( + color: accentColor, + // margin: EdgeInsets.all(4), + // shape: cardRadius(0), + child: Center( + child: Padding( + padding: const EdgeInsets.only(left: 12, right: 12), + child: Txt( + buttonTitle ?? "Search", + color: Colors.white, + fontSize: 18, + bold: true, + ), + ), + ), + ), + ), + ), + ), + ], + ), + ); + } +} diff --git a/lib/widgets/user_image.dart b/lib/widgets/user_image.dart new file mode 100644 index 0000000..9ff8102 --- /dev/null +++ b/lib/widgets/user_image.dart @@ -0,0 +1,26 @@ +import 'package:mohem_flutter_app/config/constants.dart'; +import 'package:mohem_flutter_app/utils/utils.dart'; +import 'package:flutter/material.dart'; + +class UserImage extends StatelessWidget { + double? size; + String? url; + + UserImage({this.size, this.url}); + + @override + Widget build(BuildContext context) { + return Container( + height: size ?? 60, + width: size ?? 60, + decoration: containerRadius(Colors.transparent, 1000), + clipBehavior: Clip.antiAlias, + child: Image.asset( + url ?? icons + "Blue Masked.jpg", + width: double.infinity, + height: double.infinity, + fit: BoxFit.cover, + ), + ); + } +} diff --git a/pubspec.lock b/pubspec.lock index 18fcc0f..1910eb0 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,6 +1,13 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + args: + dependency: transitive + description: + name: args + url: "https://pub.dartlang.org" + source: hosted + version: "2.3.0" async: dependency: transitive description: @@ -43,6 +50,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.15.0" + crypto: + dependency: transitive + description: + name: crypto + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" cupertino_icons: dependency: "direct main" description: @@ -50,6 +64,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.0.4" + easy_localization: + dependency: "direct main" + description: + name: easy_localization + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.0" + easy_logger: + dependency: transitive + description: + name: easy_logger + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.2" fake_async: dependency: transitive description: @@ -57,6 +85,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.2.0" + ffi: + dependency: transitive + description: + name: ffi + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.2" + file: + dependency: transitive + description: + name: file + url: "https://pub.dartlang.org" + source: hosted + version: "6.1.2" flutter: dependency: "direct main" description: flutter @@ -69,11 +111,63 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.0.4" + flutter_localizations: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + flutter_svg: + dependency: "direct main" + description: + name: flutter_svg + url: "https://pub.dartlang.org" + source: hosted + version: "0.22.0" flutter_test: dependency: "direct dev" description: flutter source: sdk version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + http: + dependency: "direct main" + description: + name: http + url: "https://pub.dartlang.org" + source: hosted + version: "0.13.4" + http_parser: + dependency: transitive + description: + name: http_parser + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.0" + injector: + dependency: "direct main" + description: + name: injector + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + intl: + dependency: transitive + description: + name: intl + url: "https://pub.dartlang.org" + source: hosted + version: "0.17.0" + js: + dependency: transitive + description: + name: js + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.3" lints: dependency: transitive description: @@ -95,6 +189,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.7.0" + nested: + dependency: transitive + description: + name: nested + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" path: dependency: transitive description: @@ -102,6 +203,181 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.8.0" + path_drawing: + dependency: transitive + description: + name: path_drawing + url: "https://pub.dartlang.org" + source: hosted + version: "0.5.1+1" + path_parsing: + dependency: transitive + description: + name: path_parsing + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.1" + path_provider: + dependency: "direct main" + description: + name: path_provider + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.8" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.9" + path_provider_ios: + dependency: transitive + description: + name: path_provider_ios + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.7" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.4" + path_provider_macos: + dependency: transitive + description: + name: path_provider_macos + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.4" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.4" + permission_handler: + dependency: "direct main" + description: + name: permission_handler + url: "https://pub.dartlang.org" + source: hosted + version: "7.1.0" + permission_handler_platform_interface: + dependency: transitive + description: + name: permission_handler_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "3.7.0" + petitparser: + dependency: transitive + description: + name: petitparser + url: "https://pub.dartlang.org" + source: hosted + version: "4.4.0" + platform: + dependency: transitive + description: + name: platform + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.0" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.2" + process: + dependency: transitive + description: + name: process + url: "https://pub.dartlang.org" + source: hosted + version: "4.2.4" + provider: + dependency: "direct main" + description: + name: provider + url: "https://pub.dartlang.org" + source: hosted + version: "6.0.1" + shared_preferences: + dependency: transitive + description: + name: shared_preferences + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.11" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.9" + shared_preferences_ios: + dependency: transitive + description: + name: shared_preferences_ios + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.8" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.3" + shared_preferences_macos: + dependency: transitive + description: + name: shared_preferences_macos + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.2" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.2" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.3" + sizer: + dependency: "direct main" + description: + name: sizer + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.15" sky_engine: dependency: transitive description: flutter @@ -156,6 +432,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.3.0" + universal_io: + dependency: transitive + description: + name: universal_io + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.4" vector_math: dependency: transitive description: @@ -163,5 +446,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.0" + win32: + dependency: transitive + description: + name: win32 + url: "https://pub.dartlang.org" + source: hosted + version: "2.3.1" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.0" + xml: + dependency: transitive + description: + name: xml + url: "https://pub.dartlang.org" + source: hosted + version: "5.3.1" sdks: - dart: ">=2.12.0 <3.0.0" + dart: ">=2.14.0 <3.0.0" + flutter: ">=2.5.0" diff --git a/pubspec.yaml b/pubspec.yaml index 5346e91..c383e65 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -34,6 +34,15 @@ dependencies: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.2 + path_provider: ^2.0.4 + injector: ^2.0.0 + provider: ^6.0.0 + easy_localization: ^3.0.0 + http: ^0.13.3 + permission_handler: 7.1.0 + flutter_svg: ^0.22.0 + sizer: ^2.0.15 + dev_dependencies: flutter_test: @@ -61,6 +70,11 @@ flutter: # assets: # - images/a_dot_burr.jpeg # - images/a_dot_ham.jpeg + assets: + - resources/langs/ + - assets/ + - assets/icons/ + - assets/images/ # An image asset can refer to one or more resolution-specific "variants", see # https://flutter.dev/assets-and-images/#resolution-aware. diff --git a/resources/langs/en-US.json b/resources/langs/en-US.json new file mode 100644 index 0000000..c9f87fc --- /dev/null +++ b/resources/langs/en-US.json @@ -0,0 +1,38 @@ +{ + "title": "Hello", + "msg": "Hello {} in the {} world ", + "msg_named": "{} are written in the {lang} language", + "clickMe": "Click me", + "profile": { + "reset_password": { + "label": "Reset Password", + "username": "Username", + "password": "password" + } + }, + "clicked": { + "zero": "You clicked {} times!", + "one": "You clicked {} time!", + "two": "You clicked {} times!", + "few": "You clicked {} times!", + "many": "You clicked {} times!", + "other": "You clicked {} times!" + }, + "amount": { + "zero": "Your amount : {} ", + "one": "Your amount : {} ", + "two": "Your amount : {} ", + "few": "Your amount : {} ", + "many": "Your amount : {} ", + "other": "Your amount : {} " + }, + "gender": { + "male": "Hi man ;) ", + "female": "Hello girl :)", + "with_arg": { + "male": "Hi man ;) {}", + "female": "Hello girl :) {}" + } + }, + "reset_locale": "Reset Language" +} \ No newline at end of file diff --git a/resources/langs/en.json b/resources/langs/en.json new file mode 100644 index 0000000..c9f87fc --- /dev/null +++ b/resources/langs/en.json @@ -0,0 +1,38 @@ +{ + "title": "Hello", + "msg": "Hello {} in the {} world ", + "msg_named": "{} are written in the {lang} language", + "clickMe": "Click me", + "profile": { + "reset_password": { + "label": "Reset Password", + "username": "Username", + "password": "password" + } + }, + "clicked": { + "zero": "You clicked {} times!", + "one": "You clicked {} time!", + "two": "You clicked {} times!", + "few": "You clicked {} times!", + "many": "You clicked {} times!", + "other": "You clicked {} times!" + }, + "amount": { + "zero": "Your amount : {} ", + "one": "Your amount : {} ", + "two": "Your amount : {} ", + "few": "Your amount : {} ", + "many": "Your amount : {} ", + "other": "Your amount : {} " + }, + "gender": { + "male": "Hi man ;) ", + "female": "Hello girl :)", + "with_arg": { + "male": "Hi man ;) {}", + "female": "Hello girl :) {}" + } + }, + "reset_locale": "Reset Language" +} \ No newline at end of file diff --git a/resources/s.dart b/resources/s.dart new file mode 100644 index 0000000..e69de29 diff --git a/test/widget_test.dart b/test/widget_test.dart index 42d9b33..a360c7e 100644 --- a/test/widget_test.dart +++ b/test/widget_test.dart @@ -13,7 +13,7 @@ import 'package:mohem_flutter_app/main.dart'; void main() { testWidgets('Counter increments smoke test', (WidgetTester tester) async { // Build our app and trigger a frame. - await tester.pumpWidget(const MyApp()); + await tester.pumpWidget( MyApp()); // Verify that our counter starts at 0. expect(find.text('0'), findsOneWidget); From ac982166303809a1a7654ee71f0c13c76a40bcee Mon Sep 17 00:00:00 2001 From: tall3at <91608104+tall3at@users.noreply.github.com> Date: Wed, 15 Dec 2021 21:15:13 +0500 Subject: [PATCH 03/32] basic structure 1.0 --- lib/config/routes.dart | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/lib/config/routes.dart b/lib/config/routes.dart index 33c8eb0..4d1049e 100644 --- a/lib/config/routes.dart +++ b/lib/config/routes.dart @@ -1,13 +1,4 @@ -import 'package:mohem_flutter_app/pages/dashboard/dashboard_page.dart'; -import 'package:mohem_flutter_app/pages/user/complete_profile_page.dart'; -import 'package:mohem_flutter_app/pages/user/forget_password_page.dart'; -import 'package:mohem_flutter_app/pages/user/login_verification_page.dart'; -import 'package:mohem_flutter_app/pages/user/login_verify_account_page.dart'; -import 'package:mohem_flutter_app/pages/user/profile/profile_1_page.dart'; -import 'package:mohem_flutter_app/pages/user/profile/profile_2_page.dart'; -import 'package:mohem_flutter_app/pages/user/profile/profile_3_page.dart'; -import 'package:mohem_flutter_app/pages/user/register_page.dart'; -import 'package:mohem_flutter_app/pages/user/register_selection_page.dart'; + import 'package:mohem_flutter_app/pages/user/splash_page.dart'; import 'package:flutter/material.dart'; @@ -32,15 +23,6 @@ class AppRoutes { static final Map routes = { //User splash: (context) => SplashPage(), - registerSelection: (context) => RegisterSelectionPage(), - loginVerifyAccount: (context) => LoginVerifyAccountPage(), - register: (context) => RegisterPage(), - forgetPassword: (context) => ForgetPasswordPage(), - loginVerification: (context) => LoginVerificationPage(), - dashboard: (context) => DashboardPage(), - completeProfile: (context) => CompleteProfilePage(), - profile1: (context) => Profile1Page(), - profile2: (context) => Profile2Page(), - profile3: (context) => Profile3Page(), + }; } From 84704953321f719b848978f1f36a0dc7f3cb3772 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Thu, 16 Dec 2021 16:38:24 +0300 Subject: [PATCH 04/32] Gradle updated, fonts added & structure improvements --- .gitignore | 2 + analysis_options.yaml | 5 ++ android/app/build.gradle | 2 +- android/build.gradle | 4 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- assets/fonts/ar/Cairo-Bold/Cairo-Bold.eot | Bin 0 -> 154516 bytes assets/fonts/ar/Cairo-Bold/Cairo-Bold.otf | Bin 0 -> 140080 bytes assets/fonts/ar/Cairo-Bold/Cairo-Bold.ttf | Bin 0 -> 161416 bytes assets/fonts/ar/Cairo-Bold/Cairo-Bold.woff | Bin 0 -> 74656 bytes assets/fonts/ar/Cairo-Light/Cairo-Light.eot | Bin 0 -> 144240 bytes assets/fonts/ar/Cairo-Light/Cairo-Light.otf | Bin 0 -> 147168 bytes assets/fonts/ar/Cairo-Light/Cairo-Light.ttf | Bin 0 -> 143888 bytes assets/fonts/ar/Cairo-Light/Cairo-Light.woff | Bin 0 -> 73548 bytes .../fonts/en/WorkSans-Bold/WorkSans-Bold.eot | Bin 0 -> 120674 bytes .../fonts/en/WorkSans-Bold/WorkSans-Bold.otf | Bin 0 -> 109860 bytes .../fonts/en/WorkSans-Bold/WorkSans-Bold.ttf | Bin 0 -> 120400 bytes .../fonts/en/WorkSans-Bold/WorkSans-Bold.woff | Bin 0 -> 62096 bytes .../en/WorkSans-Light/WorkSans-Light_0.eot | Bin 0 -> 232202 bytes .../en/WorkSans-Light/WorkSans-Light_0.otf | Bin 0 -> 94240 bytes .../en/WorkSans-Light/WorkSans-Light_0.ttf | Bin 0 -> 231908 bytes .../en/WorkSans-Light/WorkSans-Light_0.woff | Bin 0 -> 97348 bytes .../en/WorkSans-Light/WorkSans-Regular.otf | Bin 0 -> 88808 bytes .../en/WorkSans-Light/WorkSans-Regular.ttf | Bin 0 -> 131620 bytes .../en/WorkSans-Light/WorkSans-Regular.woff | Bin 0 -> 68324 bytes assets/fonts/poppins/Poppins-Black.ttf | Bin 0 -> 151340 bytes assets/fonts/poppins/Poppins-Bold.ttf | Bin 0 -> 153900 bytes assets/fonts/poppins/Poppins-ExtraBold.ttf | Bin 0 -> 152712 bytes assets/fonts/poppins/Poppins-ExtraLight.ttf | Bin 0 -> 161404 bytes assets/fonts/poppins/Poppins-Light.ttf | Bin 0 -> 159848 bytes assets/fonts/poppins/Poppins-Medium.ttf | Bin 0 -> 156480 bytes assets/fonts/poppins/Poppins-Regular.ttf | Bin 0 -> 158192 bytes assets/fonts/poppins/Poppins-SemiBold.ttf | Bin 0 -> 155192 bytes assets/fonts/poppins/Poppins-Thin.ttf | Bin 0 -> 161600 bytes lib/config/dependencies.dart | 4 +- lib/config/routes.dart | 15 ++--- lib/main.dart | 8 +-- lib/pages/login/login_screen.dart | 38 +++++++++++ lib/services/http_service.dart | 2 - lib/theme/app_theme.dart | 62 +++++++++++++----- lib/theme/colors.dart | 6 +- lib/utils/utils.dart | 2 +- pubspec.lock | 18 ++--- pubspec.yaml | 59 ++++++++++++----- 43 files changed, 157 insertions(+), 72 deletions(-) create mode 100644 assets/fonts/ar/Cairo-Bold/Cairo-Bold.eot create mode 100644 assets/fonts/ar/Cairo-Bold/Cairo-Bold.otf create mode 100644 assets/fonts/ar/Cairo-Bold/Cairo-Bold.ttf create mode 100644 assets/fonts/ar/Cairo-Bold/Cairo-Bold.woff create mode 100644 assets/fonts/ar/Cairo-Light/Cairo-Light.eot create mode 100644 assets/fonts/ar/Cairo-Light/Cairo-Light.otf create mode 100644 assets/fonts/ar/Cairo-Light/Cairo-Light.ttf create mode 100644 assets/fonts/ar/Cairo-Light/Cairo-Light.woff create mode 100644 assets/fonts/en/WorkSans-Bold/WorkSans-Bold.eot create mode 100644 assets/fonts/en/WorkSans-Bold/WorkSans-Bold.otf create mode 100644 assets/fonts/en/WorkSans-Bold/WorkSans-Bold.ttf create mode 100644 assets/fonts/en/WorkSans-Bold/WorkSans-Bold.woff create mode 100644 assets/fonts/en/WorkSans-Light/WorkSans-Light_0.eot create mode 100644 assets/fonts/en/WorkSans-Light/WorkSans-Light_0.otf create mode 100644 assets/fonts/en/WorkSans-Light/WorkSans-Light_0.ttf create mode 100644 assets/fonts/en/WorkSans-Light/WorkSans-Light_0.woff create mode 100644 assets/fonts/en/WorkSans-Light/WorkSans-Regular.otf create mode 100644 assets/fonts/en/WorkSans-Light/WorkSans-Regular.ttf create mode 100644 assets/fonts/en/WorkSans-Light/WorkSans-Regular.woff create mode 100644 assets/fonts/poppins/Poppins-Black.ttf create mode 100644 assets/fonts/poppins/Poppins-Bold.ttf create mode 100644 assets/fonts/poppins/Poppins-ExtraBold.ttf create mode 100644 assets/fonts/poppins/Poppins-ExtraLight.ttf create mode 100644 assets/fonts/poppins/Poppins-Light.ttf create mode 100644 assets/fonts/poppins/Poppins-Medium.ttf create mode 100644 assets/fonts/poppins/Poppins-Regular.ttf create mode 100644 assets/fonts/poppins/Poppins-SemiBold.ttf create mode 100644 assets/fonts/poppins/Poppins-Thin.ttf create mode 100644 lib/pages/login/login_screen.dart diff --git a/.gitignore b/.gitignore index 0fa6b67..034a5be 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,9 @@ *.log *.pyc *.swp +*.lock .DS_Store +pubspec.lock .atom/ .buildlog/ .history diff --git a/analysis_options.yaml b/analysis_options.yaml index 61b6c4d..90c25c1 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -22,6 +22,11 @@ linter: # `// ignore_for_file: name_of_lint` syntax on the line or in the file # producing the lint. rules: + always_specify_types: true + always_declare_return_types: true + always_use_package_imports: true + avoid_empty_else: true + avoid_annotating_with_dynamic: true # avoid_print: false # Uncomment to disable the `avoid_print` rule # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule diff --git a/android/app/build.gradle b/android/app/build.gradle index e20cb62..4e4b395 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -26,7 +26,7 @@ apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { - compileSdkVersion 30 + compileSdkVersion 31 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 diff --git a/android/build.gradle b/android/build.gradle index ed45c65..66edc25 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,12 +1,12 @@ buildscript { - ext.kotlin_version = '1.3.50' + ext.kotlin_version = '1.6.0' repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.0' + classpath 'com.android.tools.build:gradle:7.0.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index bc6a58a..ed1a787 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-6.7-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip diff --git a/assets/fonts/ar/Cairo-Bold/Cairo-Bold.eot b/assets/fonts/ar/Cairo-Bold/Cairo-Bold.eot new file mode 100644 index 0000000000000000000000000000000000000000..ed5f0c34e3959db557a14604fa24aac43ea035c2 GIT binary patch literal 154516 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 WOv&>nkmKQ!J)mMq`velU=lv6Alsbw4 literal 0 HcmV?d00001 diff --git a/assets/fonts/ar/Cairo-Bold/Cairo-Bold.otf b/assets/fonts/ar/Cairo-Bold/Cairo-Bold.otf new file mode 100644 index 0000000000000000000000000000000000000000..8bc25fbbb7487f5c5ff080e1e26a0b2ae68e0c82 GIT binary patch literal 140080 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

-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%0AdK5T}~3q`SL~rJCJT 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 ANdN!< literal 0 HcmV?d00001 diff --git a/assets/fonts/ar/Cairo-Bold/Cairo-Bold.ttf b/assets/fonts/ar/Cairo-Bold/Cairo-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4f0268978ee7e7e12659943b372fc4d00e97a2e0 GIT binary patch literal 161416 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/ar/Cairo-Bold/Cairo-Bold.woff b/assets/fonts/ar/Cairo-Bold/Cairo-Bold.woff new file mode 100644 index 0000000000000000000000000000000000000000..91e3d0637cb463df41cf5c6dcb9752427508854b GIT binary patch literal 74656 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 z zB%T&Hc!Q&ynzIky)q3kt(to+fb4;R_e*VeJE}O}+@$2dHRE6>57(BZOX*z=R6!cAvx4_o{RP#0#oiXNFX7VfPSE zjX5Qo3(jL(Dq#-m5FW^bpSS)w6EJ4At}HgpCRwl8q~p&;nlB;MqTJ`-$0)u3$WihNfnbU zE7X(@@8(VB)wBUve@Joz_ZmfR7}fKaANi*l`toOe#}5C1pf~HY)XQ*)8rt>6wSE;} z!c%zjb90AvI?x)#Yt6vvNTqOHTtgdeiZ(SQaCL14o|1y_2ga?`be?>8RB)AeYUfmeYSrrUT{SQr!Pws45JVo>;I%)HYAHUsw#+8c=V0+2Kp@X?p99#V=NR0;GehVl;#DLJTsj}m953^? z)#u}x6>XQ~na*~|GnpPMjyyBZvBTx}2dJClJ%I3khrthA&_z*7lBf^3VDh|NaKgr~ zR-caxRyJOe3sy8lE(l@)jWxv@8xnAhM>4sb%V6)thQ$ZT0^f%QT*r6WI)InyjF-72 z8!sCNUKU0&$DC)delK6Y7yCWW`T_r{(`xgt2^;@fjhUhlB4(G)#8R;oykh~bcEdb- zbuhlc$FIZjUtr?{r-=bh0mrI>bX}X%Oq4kdtUem0l=FXhiifkAJg%Ib(+121D}8|E z$=>3{bueUr%4!C-H4ATfg$KSdlRC@?g0CAr<3v#lc;C6*o*8)JdU`yl>&}y0y1A(l zOWL6`ObFAy#|o`N2*$WXrl0jwT}Z<$$xvL&e*Z+UI6Au8J$luyt+y(#TiZL*L^6ZXGJ63)<{E>|MuykHx%O9 zrhuXIGRk2|(Kn2eA9`{y zf2w#iJG3i1e&Y7qPmE`GeJj-$=xA$i5A>zJb*$~-OW%3#z3;sA;kFwO4L-Q$qP@A? z-iy{eICzNPVT}NbCVdU0&@{QR7zzNltOKe-mj?6Xc8E&1m@Ljp6By^mixF5tX4z^@ z_9|LB{tl=g%a#rp-^W)Q{HoAK{dD&5^YvJ2RZls?m z?O^-YytqvYNq>M>Qm&X*Q9W^&?Paa7bY9!V!%Jt6%(PkNd(SZa?f9E+c$0Md$&;^s zLmqnd8_+f-#`B|>1=e6i@?+IziJ8#{81r6nTT1fwU^E!Uv_A2$Jd6dv!ciFufTe!* zEBZ?5ea}BnuPk}n>25mtmXmd*m-m-ms5^;puO?rlzoDbc`c%U(tLdjo+vw;?wpO}$ zR$3{?0gF>SuU~?2&o8SGE4wl36-EM%KS}Vny+ZdSDciY{i91wdtz+gBJ38`_*ZCg3 z_iNv!#gnBmx%E|yJ4}*OQk4EZsbf^RtGFG_AgQ3FDn7V=Wi-cVEZgC%TQ_7?lGJ_d z2UVJJ$?%)Bv%WqM;MCTX3?u^aXc!ZCWilBL>@f?KiE|+z?Od21n$a460{~M>zHwVy z`_?zUd24I?mbRu)+{opAl8fRGr#|+v9XmeuvF+P$8p}q<@V{)7;px!gIQ^!~B4~<3 zb-+LZKnBP?i0m{n?<1nZ6EU3~ay)h+*2;^_1Vvs_ZpsQqvL9WqG&DBG8rP1c#zRVD zrYZW4ullZ&oAS~Xn=a0J%s><&Cl~n(oKI${}Ns}z2so=3WpZ0gKBDLi==2U zxT4vVc9`J>a|~&UuI($=K+yCVgX)^TGm!v5dlNlvg&fwR!`D+G!YmerQ{ zoL;$OM>ISd47%f6lTBN zog3h!cx(pkBr58h2X6XP!8ki|!}+L>MpZa@lk~%-|3w3(%i-V4Y3Sy&=lVy^`A_0p zTVSqViMiHR&*f#~3Ugx;%hgzuu@rW2dAW66ckAwitVcV;-E>%us!`w`TVTHb#pe4k zO^)=RJA3n~`I9Frc&G>SIk|Nii(oIsL_L}(%$aDC4u<9I8rquG<6ZCgtA`%?s{>bD z5uBN!>*=o2W2L8V{Pquj_-)`UKU{1eU!fSI6)gHalnGgFWLuQFqMbUHNoCGHdZxS8 zH=o+F_0CjVS3CX3Qg-9+)dkeETvYm7`2NY|^kw>>p1tGT=&9{LM>!AvIL3W^8&I$P zEcfwk_;2VHWQ(2EWJQ}buyQztv-3)k!es&-2}6lcA{Ge-d>*q}wp(ZNAo|QcQudjZ zp5s2VR9So)r9xu4%yPFp1Ksir;x^m|J&I&^nk_4%V;~UHNHB-4WXw)PN*|}wd=93Y z|1R?tOb$GanVL}MmhR;FxOJ2}d8$iNj>HG((bv!C^^|LUyG_3g9Q$$G*x%t}_dbn& z4=m40m9MXx`Ab=Y3s*umJathQ2!Wn*9;ipk{?HsZbQfJ!`VINO6Dg{>O@HVSmVTW$ zb50o){gX8Hh>yD6E|59VS(C>~=@<3bLu(H4$+ z6YqY3cc7h%xPPdHck~avdT}S&Q@kip_764aat@*vvLX>(2ZS|7l8Kle)2mtd{Vu#Y=^4N>5VF(H>&97Y&wk@ zW($~0T=>YvF_%&ut;?I6&3*7+PfMggI!F&0pic@Pe0&J7GNV|7H(35erbriEa{~qp~h&f-f&O(G<}wMiO=ghSi5_1*zAdaR|u=cwA2XYe$&j| zzmX8z32224%SAFlbo#H;lbxa3&i?qwwo;eCLmSoGqe8ycH_YFk zMFXrwpMP}vFFjM`^8eBty8I7L+$#Oy0>w*!F$(vvv>4GpJ6J{xI?Gz)8Wn4-2NGf7D!AY~osq9i*817kSgCI6s zY3G8ZoOlDHEh;*2W+-!Jh+S>XffXWL?C~2;4+I%2EW>q$11>YZ0`AWSCIFZhI4aHH zE^~P+QByTvDisVe13*i#DcFcb0B}|x_uE8&_9vwulPqR(iZbu@hI*UNJrSPknkqS* z?z1G@o&`|=GXv$L%eve%_iy>hg|{u`b-(M9rn$M=PWP8w+dF6Zg{+f)%xO9(Ne{yZ zJ;hF*9WNY$w@j_Hd~gA=B;`@nIvX&~*KFfpE#|&rw}*`rsDp7#+ESh8fY#Icb|50n zqJ8#Xi3BOsXkRr(V$FP5qop`Ubp98c{!ox(kr6R904+ zB@z?mtD$o+Qi$f5jwhY9=h|}yEDTEDnBDM(J$oH73$y;>HEXJZ7E1FXRz!LmeU(J< z)fM4UH!!y%)59z_oB3mKQjL;mF0wW#g0q9IOudTfq=gb8D823HEknW8s}pyR&fl?r zcxY~po|B~Hrj_1A1Yi9kO;)@sbh;BTyaM%SDtlS55|)bdJyCu~XzU$< zT7}XxQjyHTTf9)r0+iW?ZvCz!>*xeAtG+`%-9Zj;MLz%MRpv2_pVY8Mt983RYi7O{^&I` z$9QlDvCir*q)F?neu%JY5b#)38!jX^rMcO(98iD^R}gjUIg1a->uqCy7(M{}Bw+0L z1>q;178gy9w$K)a9}sHuW*o%dz}|+io;}wP9%PD1g)4gDqYw$j(s@(_3|2)yME}AO z^dQ}7k9L?7aSne|j&qPgwm650;))bimA2MqxUV${lM;0HykbZIAZ|6BiqtZIs%I4Eap7mVP zuL;huIW5X)ZA<`@zI5Adx3RpFgS2(=vDYw8+%e8B90q!~Nt|t|enVkn7Fd%HRj7cn*6ti>JSdu9cx0y1p>|=6m)p}mz*zsCphxyR3 zrz!eN@`#*gV|TETo0ru1R}e^))7a_La{k=#IUK9>9C?KJUh7z+_OX08l+Zg^cLDGZ zxC=;gu~FuCfSvhs#;=H29j33a_4^KdkS?Z}=16fWiiFBRwc^b&R_n{;3udgAgc(%e z-f3ca;ZlB|43Y+u{thzlV3}Vb`OL(C2=>AG;fz%3#v~~|z@#AErW>og!<_msm!%Jb z@hbIUFkUY~UqG8aOi>TIoXe}wff-hevGm7sEFN5ijJHWci}#bA#cgS-Yn>e#thlM@ zA)qgf!gbGb^egx<1bR~yI?GGiA7lv`Eg`0mYe~@ro48AqxLPE3a2?Ez_p*1sfa<0**fd9NUUpCIEw* zHm)8S9)f*KVwxYha?=ji+_cH!sugsA4s=eeOtVenx#243!ac*etQ>Jy6feKfIe{*P zngSl#UdQY^cWmFbb!y9I2NXUV?xjDLbJTHKm7?_5@HdcCOe$elFyCI7UE)#I)hiW# z)i(09<|ya?bm;6?MUOT=@LKd(&I8HmQHsi~@VC9i zi%t5I%Jf%BcR-H{syS=XA8K`$p+DPRG>CaW1%F#pT$SXRrL1jVZX?k4=^!~`(wuXA z+y@-rqPdHTJC>Pe88R!U(zea)v*I&34g6gNoyF**#81vRcfXOP5OQ)8d)ig!zUO(~ zRRtkD4+pBb<4e*fgH6!qXR9G>ub9naNC=|aB_WJ<+$6U?)`LsJKVhpHpgNityNFxU z-FsnS7tnlqy4XOesrhv*&sV-5fS&)Zf}Ug2_W}3sFS^V0%vUzLBw2HEw(I-P1-#(WcP7|QXM?G$j15&>O(%#yTI(qvZFsISdzyxe3aYo+FPuc&?X+IhkPsYHyetvdh8J+n;1y@|ADvJq z7`AIe?ejnP6Lhu z19eV0X?MjrPQW=f$S0lWnAcdaiASEL&mxvr@azXV^2E2+InMJ$%9ND z6Xx++Fni(T^70g3p9A`U1NzbBp?8cDaI7Ok>BbG~*Dc8df=k|etoFdKNtoPREs^Cb zUj|lgc9#S0tPoHuN#5mvF;qiZT=FhvFo|=1rW&&UbJBuMK76*~97g0;z}q{W=PuE_jk=t{$&Gg^NR(!cmX40}IiRwzaDyh13)oCzXw(RmtC800P zR}^OAXAE&-+4$Dja?tN7UbHToky+)qrLg2yjF7S7*qT)<0jd#%H_XzqVa=u2awMbn+Dz(8#}-as&^fFu-*iDo z@B@|go%s2)>QzeXZ0GOkqOo$QsnLe#HZS1WXG5OzimSqSx7Wn@1$8R+Kzm;`?w9I- z50mk6O1Es@#N^5Gwd2K!RdkGw;%-FzW&MJ-xqMfNHAa+YL9Y0@V~u!8wYg!9o(ck4 zrchYHRP5F2SA~&Ivo4t1#LO~Xie0wWp7YZr@C-yp4ODoo`w#cqi3^lz5EtgY(}pUX z3}7T|oefaO<9<2p^qJUMeuOGK4Vx?Xn|QjQ&hRoW_p7VM*is!4cNxST*G1PPr+{6C zc$1CqZWiy{55xWO--~q(R99R55@)&c`L2-J|CB3ac8M#bEGXhbH;-X8LqYQj5i*JL zCi)8LB^!#9^#FOnCvmYvuDWn*PSV?Bj#?#_XnK&PaN|WUSJRsH9#5IV$L+^=@9|+x z%r&K_95TkIK*sn5${4R#>q?KFoM-hi>34$7C{KLvdnixbD+)bIVm&32BsucL*2e-E zlMn_mG!@rnjiS#e{Hj~OPV*+`zdw+cvv@5i`aWz-Uc>!SqZ!^Gjg5pf<{Gmt%>Zo! zqR@7KRN>BXODJi$CF}^Rx(q6DDVm%?T9>k?{JykOOH)^eG!?NoN0*XNZkI+ysTjsG$(+qtc-7@#F}fjD2@E+R zM@&)zteU;zgjdV29gane76I>{WcsL=mXA_9)|m% z?yJUpkBRvU>{aX~s=s;5H*g*BbzF6GZhM~G@4E5VEwB!(#9aGGnRe`Gu>Ug-HJ>yr`+t z`<8zJm@>+FINn*!aX=+grdd z@Q14WbWAhx7Xtj5zY6@lCVtB5vU_V|a(OP?W%8IMdS578t=XQjRdi`b9lqt(p2`Uu zLf)()@nib5)QE9NpHwlg-YAXhalMVMnt9>*{jbuN17G~iRh8{Tp1x6owm<*E3|&=v zdc$YFc%by7(mxZdX59wg-mV-3pt59)tRkDqvEq?bQX+7E-SQ-mraTpgw{@V-z<_%X zCYKh8fUz=&jM*C9itL{Cz!uQ>Rzt(I7gy+%*(JuuH>_K`W_;B+@CD8m`g__6`CO*O zt4BJiK0JE9!k+m-QAtHq@4=e#gEW{85?i@nxnbM3v$ZOK(yQlReUR4y9(zyAyXOC% zzJC6Hf6%H3EZ>oNDO+k?wo2&u!g^jZ*rk@sxp( zBoSM$)7!~Ii~oaMT-@0pG7HsFO_ryURHj>i8h~^2z#&bMX9>pYQB|AOZSnRPBds^- zjfq$Um&5#X4bwljk7|Bie5?;%ubN`SQLzCJUQBui_qn7^ ziI+3dysj$n5@xQ;hgc2z{la&7XrMEb3ForebkNP;Akory=@_r~9mP2hvh|$1wS@6& zxE?wsR-|m=p*V*K(%kvh!hEYGuf=D~+7SltQ4AQZGnV*}Jo?7?ohyj9fTafhL>xx^Bx0AibmP*Cst`tM76{ z(e0-Sjk5S6?$egWoK_N5W^Glfw#tTN&jrxTLv$&xP{mq1TEIO`sp1}U zHdtN>>4pm2$EdRSILlfAH>Jk2K>)8g!)KE*h}F3VmDx7j);<7jO!GC{_8~UlCo`go zjc(F2*015IyLi1aD=|gNYQn=0Bv!$TmQzrKYlk3Mv~QcA?_aFfPp&kvEa=@{M8^@1 z09ZEL@OTBRPVZqEW#p_$hqPc+~U8jsW$xh7;uKIGOVyb{c(6Cb>9xyCH%XJRYwSQakp zMUY9Yex%$Bu<8sl;q4V<8+5jEK3i*)Eh9Y4gm%)-?1mi3Uw}$pM+5m|b>4y~c^3XQ zRP5(@3$$`YLdGi{0m-&31v=j!7_&x>f+%?r&r@;GnWLb5C)fwIXC!c0HPraNlMbqj zUCzR`B>@3`irHxGyUhPW?SHX8)XN{5yWC_Ulq1kpYj@jfH4^*ds_L#U7YjUIy;ht$!MeMFb-^%(!4i<$)5B>S zK=i-wr6o#FS(DQe7Sf!1%AAdexsZ-X7~{ab4ytj)u*3H-2?ME!IB@4&Z1G1H-esGO zEwwxuTbjvNZ12(Q`FoW72;QT!)qI64$yZ1%zCxUQrL~ec%JDn3Xm4Qo=1cIFm~aoS z-E#@It;!JB2T#DCW{uRkXLM-##va}x}Axr~OW9#q3M_7XE>*y>k6wck|Blu2buP z@N?&`Kc;(kzVD`fV#&4pq+dC5y=YQoM-S$56#%gA+u0}o=x5(teUVGec;p_C@$tc!>=|EYU+ZPShz_fO< z3eOTvzLQnSmJU^GE=S4e;6Of{j^v}c3eBZGgNEivpixtQseHZkKbijWbra{VJbt#X z>kaLx4I}*!Y=!S=SAu6N9Jofbo%SJ zDWS7RXZ6n&-JKM5mu2heT4MNBzoFvmMfNjwn&y|aGp7Ds(9yC=`!(kogX{1OpWhs< zmg?Rf6+y@7*wCO!q(XHs@@k}PZ-F`S78-}OJy>+t!;ZMvj+n{ubdT)8jMA_-9vNOo za6`D^hQN>-_kIkQi*I#O5+=u6q7(O?(%qiJ&Mwo%nCbgm$Opw%Gml#f<{ND=pB6CZ z0p|A>-En|fv%x$>bg%3c(|d7x5#i$q2CAU4BrdgfH*N*eaTh8&v7~Q`RK<1H z?7-{X%M`C2=$$%kI)ifT*HCckUB~JoK z9m)p+d_tDgvn-W6CNy<406ByenTh$MAy#AtxV?+XtgOay(CPmqec;%uzrSm~((7rC z&N&@iIjs8uR?Oji<&za60WT~PtI2kwrHE#%4;)5RzzcE*&> z5lrb^mxJ5M5EuVojSZ0ZzxwE1RTvlWR@v*3)@=9c8@Svfq1^KinDb3?wF%mbvBz$i z_Ph?-Ti%k=W09cEuI;2TPxFkBO_Pe? z4~9+FyIsV3Jp^lh?~_5dpfOx;8k1`qoW{ygH4bVMo+D;xxUGYeC<`W0VoMoYQrW0M zoYTbw7A8T3QC++)7G}jsf>?$-V}pOc4gNa>{I>)AAABj>&tN9fIyxe=t&g2&Bo|4Z`N8ArvQ;T^ZD1HflLFRGd*h1?b2FHODn*oSboOuX1=B~Xn zWXx{3f>`{6jdXUm zptBaBvuDe6X0SWSBn1ZMGPH&@Q8MM$7|(>puNp05uVGve|0`*dR1Z3R9?BH&z!z<2 zYhJ8*2-f_~C)|{?23&H!e117>OR)zx<0Iw9x-RY4XeCjJ1z+H(JlN35MXKm@+T&!@cFGOh+0-h{*Xq?uS7z6x?qIX&O#xr^HhZJ$Y2RGQ7fmL zYPr!K+Do}gN{?uIY_KqbWj^#sEH0h9bKr2##HO22JD2OdrtP|uTQ;xXN~PY1r?$Mi zU)i!L-!ivhYU75@n>WHEBwFvk^n}|uVt500oY;Fbu==WzOH+M)sY^!>taV*|puN7n zt!4-mHN9;`E4(ca#Q8OG3SqPLs2(>9>4jA64C!M>Ky>RZHFl>p9Jv_;BN9ouPB zQ6)Bfc}11Pl_0ETwW11H2TjlfPzcxZ2sqwlgX66NU;oBp<->^(;Hxd4ZuG;RYi!Rs zKrQCh+Ysa+0+ifsD8i=B1`Ip+c*?O9kU%U9J7)fNn;iSRkYhgvFrBpWx3iclD;2v) zyzb;Uc1vx+p0!=JrFwTZ1PPsc@z`^;yKOnzZMb?-;OaL3*R++Ro#{2rH0$NEAdYAEQn<*VW9}8m14p?( z4%@3A3Ll`^(pkJKQ&dw~E>e|hQLHjEWw|r~aiS*^L05nZZx1soX)qV%-X8ppS||M& zUiCf2POe@L1((SB4BulUnhi#nVJXGL*~+BU^jnuSEqtDS-kFJ-{_`c*_P#P_&p<8a z{u<1kz#NHO&kpprM6zV|J<(pFY_H0PEq!fata5gi2YaqM{Wadvor^B%2O#S=qOPAv z3e2gVHJ{SVr19EQF8|<`s+7yO)JVB3oOrlhkD5L}GLz73ZUV&S14M)Pq@c94cp7@I zhbM#C|7z&3^Ng1$ecCPh1nVp7SYsWw&3u&5t4n`&dY-*H0163s!)K(g&;^nuz3A7} zLKQWvVzqV@SERelo6@D}vduu2%Mp_6&GojoLdQ&ZB%3xYnIW1+nFWOxQ4V!v)U=BL zva&3{vCgHMuZ#v$dg-aI^~oFk@xiuG%%8k^?dV!~iE!umMXS#! z6ZiLR+!x)pY4mK5FS6>o>AjKoof{`zTgNk-V%Gajx&_u!N0Owqn1j<-%>&>Yz8mX^ zKZufyNzQ{NoKh@4Xo5&zy1sSc&F}Fuu#Ot)KQNf+0!;p=xy_>tkka=y#W)yc7=8jU z)RR0JE)K-t9WONI=GCRMt82!RyD}|JjnF*N8VsjhHY}E5GI5u)!6y9#ac4otkybiv z0?E*3!pM=ezYM6z>G6$nZVbs|-iwP*q6La5x&%z*EWv9*J!9o9sZK{8WTzwO5_w&a zCX=>1kNeX^&W6c8am|)}@z8aNRCz8nRyylBeP`-wr2n>jmY%KfnTebZlglh=O!(+o zR!hz4DbrNp#dlb9`o{#SJ=7%bpGHe?TQs2M#zz$z;rXsj*D`0K|9CVUgvS1nw8nh< z9FDd*n}4nJj?()rFWS-_mjCSBT-i1DBAY*~puJxJYd~N4$>N#@ILq}HlGoeemEMS% zw<9b#RUD1l$;l-%FS$hCy=x(QtTHqC9A+h#CNF>Vnis1wlb1dy(vowX%liLs@~N+X z^{FbTFFc<*z|Q=2B^N-Gu`5%{x#9{x+yENz(pl#CA7fVu)?hXr zuXC|7J=}0M_PLRhCp%hl!JGen_~6bJ=ekapR(DPAE@V3f8vhVJ6^e}v{QUK2I_un} zH*eTL>(uzVNg`~*nCFM1> z?%7;e(a_fM%Izl|k!xcc!^xu&7ct}1%DIy2tQN}*u?kXIY_YSlJrQ-O zL`T`FJg@h7DD|X0EsYI{Sin!+6s`G|eh=4wuWkLGu&w`}#QIxelA=ecp-EF|*bZEO z3w7x+s<`k|nSUzQ-+?^MK=5>;8M?;GSSd3uz9?0es}Rsr*@ImM?2$9Wy?dO!id|J5 zL=7z7)7c!O%zZveeOX^71vm%=sF!+Kp>D64qXcO{zN&%-?jYY@d^fM@uBpwbn5<|( zKv=?U$}F{J`p4^4h^Mpx%cu)vyUO*1?zPSH3EMnV#Z7UbsdP(1R&*d$=R8(cXY}iJ zERWL0hFHW}QaP`3>5D+uPgShx9C?26W#sF)COQSHf+cC%Ci{X^?a+m;2j;lfHpeGy zb8IZG!}ZW9SP?8o(>K`{qv?k(bS=UU2-d=@_!7&Fx)MhCZV&^z;>(1K==eWreBsw; z=kH;HI{oX?2Dsg*p!=tYhx@==5)eos4w&G(hj>^@e^ClZj0)r4yYK-R7ln5|EPF=4 z*oO3T+9P9~2ZmuUtk}Vs&jLR@XL4BAI+fg^@#8l*U;K7H+d=i<6#2r@tw-rZKr@ zjS=tiHwBB0((mH&7WaXM0{(L_+{Nzp#qUb50#0uySlgg!>ADxL1gwG=TR-ZmaG#hr=#h5dU@%?@`)?ix_=`5p6-+HBR;Z)SNKZsX|E$# z^%NFO<&&Z@smv$Cu{;tgd&3=@UcL42c*j1B?@Ht#o1DcNK)E1xp1 z*dzUZ*QWZGmikS*_?j1`-Lw-h=^=5li+dzupKyB5A0(&+~Ll6J3KxpEzT z?Tv*a(P$)$dhNxZN&iGo$lql9;d(+>;kn$`DFdCa!FarNH}9B*FWL2#jxT26i_`o% zX_5S`Jipu?U|oxK^YiljJ-}Z)^m^)(J|D=!T@OD8HTrGx9`w0YvHBEy_~6S8Rrb<0 zwCmK>*CChkQ(r;TTNrP5(>d~-^a(Zw{2bKCX&7VV(=yfqC#Xvr*o9?!g&-SWs!VT0 z;;}SQ81Gd9Q?kX7KMdvXp%N$GU-f~*VH0@I!86JPCvp$pM^2^ zJ|W`}VwG`)^5iK53(RS$12n6gj-NR$%@#WPN2+ z9KqHtPH>08A-KB)4Z+>r-Q8iZ;10oE2AAN$U4y$@a0?9X@VNHf@4Z*kYtNojJ@un| z_3Bfn>g-c5g=+<$e|@?;r^?j4O{o7s9iX_b1TezGDMOK=H%WDqhH?X= zjs6TH4E<40sqvuqX~}IA7Tzk!8&0hJgxAPk>=c{=#9SFf`Y76`b#Yo1DUO!=QSPdbSVRo<=`Q#M&62|#i!^sIAe>1zoIM)8 zIK>f5Wt7bG?=M%)Xum6!)x$qOo3!G=cw|#EZ09WK^Fi0!dcRHj%!H_ij4>yTcqhmK zH7)?q@`c4>O~bNAuPGP`FOB)c9#90nEnBoMGn|9?ikTV zx;2E*^kW9>{0i}FXlY-PNN8;6FSCb}MZcFc4&Dsr>Mt3R`UgoeRBi>qxN9Q9!%o@D zgvO+BEz68NlaNI|Z3SwTN~-LtVy_R?5vHGk0+8U711}V^^(|wkfB@^<1ZOZzpDp`D z;h>lhnM?}8bk3pQ?~;x2-nHKZHqC?g%PJFQ+8dTl8s7}~w*X(PGpTYc^y@iX0$N`b%TVrJ1! znxw#0Ye;2Tj3m7EW>vk%W=)KQ^?&n z2$vs{Fj(C*j;CdA0HviEiA)gB1ca1!QR8uF%x3+NcnnO#ODl7GIW(a^p^EbKY=<^W zl0;&-f6E!BX{irhieeyY^raU^rlU9nVgEYy6O+WA3z)w_VLUc7(QgZNd8! zEP%_T+-U6RJJk=n|Tk|{qqa;ix*TtyDd4NZK_#_OEbMe$Oxrks2%)vPA*7k^Rs^L?>y zPm!o<9pe+l+?3qUkQ!qe^C#+FF>Sj8@KR)W^1I4KB9^~*^Ka~qsVlpjiQMV-zYkfx zVqfQ1XNRQc4pkw<%&FCQ}f%_xu$}Ugc+x}9BXpMQy5G1Pv71AzBMwXoYr5i z!{4B;Hh2l2Tp+5cKKtlqsmim0GCqA&P$q(ugHArDjay&Iok~q2NWNV!X3;p9`_y=) z)1hGyTkn9`^EaIq->e&1Bu|4sOP7{KNW<~$xq1o{U&X3T`wdQ) zwK2%?vzSASc<|rm)Mx2+dm&z$!EV?N6k9RhoGRb>A}>^{*#F8%EP>v1A5D3FfSJ3nzcpyUSaSDyT8&`iyd@=Nq1yxaquCsRZ~xKro!Q9AY} zH_ivakoM5ddC?53RktKM%`PXojIGH8$heYk+!@|fORURk7IAgP(L~?(1xemc&rnZa zePFZ^$*)5KrH9hb?b3QYs6kC0sW~07p~v{Zthuz1a{Xg@(P^@RkHt;_WA~xpC)*+ROvXtv_wQF?;Cg zAeQSe$F4y@LKQWN6yg+$SA6{jR#Qs+3WcpSD9WNp7D9iU2w#C1Bt}uNIGXurd63O< z_)9x&>404MF8kwWUcg(%m+SW}c(SQaths+XKX+59n-vr;sRw=4{pgeiVO1pqs?ci*RdD+YpHL;8 zX>m~@i$V)wlhxC8#cZ9CmEXp-=B$HlplV6yRFCPVHFOJ>i#%?4;_EJEEo$A7Rsb+U zZJ5I{oxZZ2ojR;oj>k5BoNsYg^SDismZmEO#LqhSuzhQ@IX+8b@A1u6enJAFxTIwF z`z-3S*Q%Itxnu_eevcU7ea6i?TLXv=%!rGCeRLd z82_T5h5k6H0do=ecjLAn@95LCXilSux5PNqFsG&Oz=%d^(l3nML9(6&-LNs~JYH^& zeOb?=&|x9dgIVFzUfLcoCD4eEiJ1yMz9)Z#0v)_f=2Qz$Nn8af0c0LT#aZWoWvVsHTY{&j-SPuQ-s)b7->afEiFt{cd*|sP*6q5A)KxFLS%| zMOuXgy@nNG#!YX@lDrD4T$yh4wgeODr|fz|hucANj}aD@(`abhVMv=MJst~7VjBxa zo*QesK9`%Ox%+StVCg$SZ0pHlw%74t+EkA7ww-Q=q{1d*I)9+)*s$YV|Duk))i0ql z9G@f@{wy&)mut;hYfTJs%D@>0j5*9wKN#;TqqBQlk45|~((#L{Uf-X&y%y**HFBj{w&g{4wbl3} zjye1o^*;sUBpR?km>+Ow0Mcn9lji2WWIWDIN+*EXT{(fpg68`y+6%_%^{H~TB4A^!ut5zm~E6y7&6ih7Tx(dJgwyp}z2H#!t#+ zy&We36_|~<+QeRxz)BWqm2hE5!bHC5mYq01&3f1u7%nnrDR9%VvepiMcPPw^GS@Nl z!g(ig`7G1%cFfTn#&3m#X3{D{P9Is9uCJsKhDoxs1Z|$W#D5+p@nY*zcPV<&HiWD1 zlF4{Tr4xbHOBfjwNZ_=&rBD1|y_|Q?*rVCRulvgUS4PXUbUz__u^o7=a(c}*l;R!u zMY;e|7bv@;5v>5Hax9k$jIfxzv~+IaGCGDXF9e^v`_L-DqD?k?%COsu!+f&n3_%;k zfjKK8bC^Ump>>a#6I|#>$wxB#>VbEuT~iROZ2In$TxBwv$`Ivy%MCj3eoENTiv-N5 zf7eB@6Im=goA&A%wQ2KCQNBqabz-_HJDJ_8S%|H~(>RfIy)-4f%jIrpE?TjsdycH+wa;gYNPK%Z1_lE^~8jmvnxWHqPGGUG@i+tSX9qPBLt65^KLt?#|7a zjGYQa?iQq57bbJP;2n~zijIkmLz%=i9SAX8iEvNEXz*v180W%Hy~Xmq2DBU74qLJS zaE4e9*uwVPU{{t0>`cGd#1v~!bC(G1SHMkT6RG-=9O0jDMMk%L9pigUID%Z=P(!5Bc=|MQ(`M`rGh-Tf>SX{C}3<6bI z(3>NE{>^`+1o!iXNAut{J7w@x4mN!uD5abzbwO&QopExN1lQpwwm2QVxW8@+gqut@ zDRHluwzFL0e$IL)f90;_;!<&*J&_LY_V}eg4%&7*kIg983)L6wpBo-Dz+GV!d_cu0 z@u^VW3dLLIOYedG97&BDv!W3fuOO@i26B1rTc~j)XsEmvHcod%2U=qYH$pVU&o?`* z8c>a1e4gYVr!&phFBw;cU8I|6q-pgcS>pT6E4v51O^W*$YfXyAU?7u2XgUYGF*$p3 zXx`N2VG44H*T;0?fZ;}@=_%`=Fn3gxNRea817-+Bgb(9^20GLX!wZL#fZoW%Uu)te zK)J9wrC%SYi4hiPrP&g0$|ZIfI~STamK*xyAcW>W|8LCzXWzQalNdkkxNLYPCpO$iX|vCc(KZd z!wHaPZbQ8j;4{yB$g`Y09sr?C6mBpUhncfUO(W6#HcZ!iWiQ^@QjXW@G*^cZcYW_K zrtD9xX_&9JlZEr@q*w0ldKzy9GetUi@w1<{G1)$VtetG)3} zKJ**4DlHBi$D>@_Qb>%DpQg6cLQ~wT6OECQm~|IM0w=B2P}K-kSNvdzt9L-{7)1lZ zo_XuKZUX4{9svw`frNR0s`uQ&Vokn>0Q3y8TnW`k)IdnjSYZ4cyeqVyAS)CsS_kvihAypP<;v?3YemH)VaepA zU`~CQ&$>^TU>cesV9X$QmGMKL%mr*c(g|Y1F+V1$HxP{epPYKa z3U%+NA6h`f&r$RG&#(bFP;VUGF$QToe=0*?ZcGmUxJhSb7zx$yxT&+dYwbxI(@#}pa}9s(JeVVe}+5s zv+R_`0%B!b(|?p+iOZ*0xAhSS$8i|OR)w3GwlD1L;GMBa1{fIXwoi46UF9nA9Uk%p zP&|iu(op|)|II+*OnGZcqy8n1!@BC(T7GXm!XHw>8X}=I;Z#b4t6r38Rg%L#pQHI` z+*nWomcRPdz;}2ss^ZhNecq}Dmj)b*z9m(R%gx}S3VRzTr`V@4Mbt2CyBO0W0PJ96 zs3)`{%wOhB`P#l|l@VW5>k+1bh89;o{L0SYs%fkdZ0(pzvTqV$CBzpRdEY#UeD=+@ zelI1Ac^wtc7msrMq%|@PGcmamGY`{@)4kN_sKaPF|HbX-ntUY~$LUz@JYUDLdqgZM z@JB5@21Jg;6vvzC5)RTNy8YraF*bHHl{|Ib5pR2pcwvl#)a+spP?(;Dh@)Xub{XkR z`sTu)X9gV$vW!y;D*jPhFF&bazmRBHeGXCYHkR{f%=S{Dhp2(LUzC6~U<@;X#g+f5@sPXXMom4-{YZx+y>$a(&EMRZ@Jw_nU)@Z7UZ&ZYqXPAq z&izu*>DKb_v*(m}EsWv1U;E76e(UJuVU9XQ?MDu$qprfn#5@Xxb2Ik^bEngCAW7F( z^~m(p5-3Y5_Ect#vp48irvQj|=1($ek@mfxNe@IhaCF#FRTk2;BN0rai#(u(fUEn# z-z-v`o7uJYS6Dze%_bhb9W^KvaiKDU%Jkk9a(&;|+F7*H?eF^OpLK9bVq{Z>T1mLj zRyU%t-t+8VBzs7O&=q|@o<;jKcO$}K%puDI%r7Ma#uoH#zufqw_mkZ4>}IK*=Zd_3 znd{au6@TZI&iH8fDi;4}KKla4cMa|{zHj~AE1ek^SsU#s3Y2?q)rOM(Pr?DKyq|F~ z7o|Y{^Laou5$LiX6=j(=WvOtpWEG%Z&XBNKRssbIE6Uiy8P2ewSzZD~EUVA*g}*sN zOJ+GU6*#P@?ZpV^s2l0*C9+fn?L|=LwVcor6hzo*#f+n-QyX#Y<=3WvH4@t^Qj60` zIMyvzl|4FKEr;(n6~L zEqvD4jV0$J)#i_z0I}%djQU5(QF+H1ayP_#OH$%t95+fqxr<8(zPz6$hR1kMvCJi> zN76poKT9oa3b4vka!X(YMHFYQZ;%CLr)JXTC0OQ=Za!~({d)tQBUUrRa6|7ty>!Dw zEY3hHoii`5pInGUC+|BaGpdw&l?+m!7d4!*(UG;aB3+HYE9O7?%oli93VlrW6xIc5 zZ~0N#l4;wL3O_4+!-BTMM=~yIC5VN#Z!D0VAqkcu83cJF$L~7}Icg2$ha~8MHR|?duxWki9EV zvqRz&EL7BdOze{;l+SbQ#}}@7O<*wg4DRY6y_kXr2LaJZ$HTz|Kmh5aBsdX>O*%0Q zt^*R0PSJoPftY#YrQmWPLEfY#I0J~AH*pAV1(M`V;ekVe7>46%;9?-Y;iM)w1&Cuf zu>@`c5*tqOfMbDJTjR~(>W(AHkFfrUhC6AGIQ}VyyGxHK{z+Rq&5y+XX$-;|ccD{_sVum9az7z!zzqj9ILUaW6Yf<+@ z(Kk4$Vm0Zed8umTWDymbVDkv%6k~Qhi4iG$Dv)_hOo}tR0riMj24#|Ylw686yS~MU z+=>);s=S%%iX3;E&&oG~BIOrMbp7upQc``GiA?4UD>}at?aldD4CEqZQLW)M(#Umup`ybC{;;WB)?iL z`lJ3EU$JZ(6_vF%ov*A!{g0%MsvjiUOtxm#XB5w){`K8NWbmURF119T!$*x>T8PLc zN0nU~i719gon1Pz$!JEUUFx$xmyTMyv}Kc9j%vI7%BDCR^>*pfBf}dNcd66+oHlCi z(yB+UIjZi`q(`wd>h99HPR27T@6xdTxp|bYRo)?ue@~%R_B_>h&!AQDJPm$N#9N9a zRdP?+TaF}+W>4B%CO6e`Pup7|Hw|x3+*{fpRdY|>TmHk9*^~E{-Awh|)Av@~Ohelf zeUuVPRoqj3loLv0*^_;g=}L9n(|uIvN+aEqe3bT2HQdvDlz*e>9wWUfeW3~%6TYgc zVgdFvP-m9h&OO-*RevMQSGQ5uY0>~K*g!Xl=;Ux~5f-8>gjx4DVXR8oCv)o%f?^kj ztam?lLWHi9ghOiuP8l0??zD%DGLK2f{lv$&OCJ3kJUm!M;uuk zk?II}yM=vn&84c5lZcXae2YKE8~57R+Au3Cb!D8@tGIGpb#ySx_0(kzkD{A-#eZvr zdWmfPR@Y*c>zP&wL%>tlkfxo%)6lY_C^%|JHt7?;WmHuCn_FU$(zyEEm#NKkeC_}r z>@k(^^GmW6gngg2ac1`9j{Wv{u=hj18o_W@e2}P$GBRacnL)auIx9FgX}PVHT zzV}60A;LXd{Bz6voM}9b!9nCwvdNZ9Q(qHvMQU2^@228uMvnr_?5^6rM(muB)tt~3 zW}3Bv9XGn4+GiW5RhHZ5Y27n0Am-SxbQ4qb0U)UQ$Pwn%2x4Aj{t<;0Cam|9)%WT9 z{v}d)CiJc#IP^Ej2l#E$zyOHQgPy^&gwknP=_n~P^qHE{z;R0KbBH=CfmEGP- zr}r`qq2JmEyslzw&ECbRJ`^1(YgH&X#Yc}8SN|5HPL#J`@bv+i=!489a6l+gb@?U& zd%7hdi!DkGqt#zMd0tR#(vaqR$*cm&S&<8wW7?c3j^LrmZu+K?L|KqKS#SCh{WXM= zJm6zbte#&{nC;gI2%G!jDkNKb&;f81QE&$+BfU$Nw*a`pSE=I~^}7{Qr@y?_IEd zNKd#oOh>xY!-v7SM;Cv#@mK=*yZ!^@sWttq7 zxj(G|pfGlBwBfBcJMp+|wMQ$-D-~~cZy?`qv;$CRyAE-K`7YKxoC|+lbS_tG zWsMY_sy?2N2lkydBf1FMl+Z6FN|&{c{&Euvrfo&^UfHurNn=VcQA?Nl<+-P3LXRM_ zKa(lr*-ql1bVCaVrVSev6&FY2sX6*{K!?VoM&eL-svKi;eWKqgw3axzXX8A+P)1#| z*?zM2gRazZI>$=>4&_HVhW3BMj3J5+%u zB z7_*jp1|3rs#h$6vmV&;{{F=l{)4w77_>Zshz1qosN?WN4OAWFQeeiyYh@yFI$1GTl zU_T|Sbe2}Pg@kdcb*#sfHZA;V|oSIq%gSpk=7Yq-P>BJJ=3kGE5Q2lrhgkD9tUrGah7L|dMMXwM zPG>dh+wS>j+yD4{oe%026O#wTggp-Khd2;cPXsa$ zXq!zW_7gwq%l#(Z{qX!6uGqUqJnI z$MpUXY=N1!E-8dB2?M;6^1x-D&-lWJc%4%m{wwgWZChYnp>wLdJA9Vs?5XEMmglJ6 zZ+uyLJ!dTSU$zfzOn8k7db|3_?@=_b^G;vSDGWQOTv5EZjh?2=euZTOg2Jl;zHWrw zavXT5-FFV6%bafs-lih@oIQ8HtOdA`+4__VMu(k(7A%!KHBc5WJ2Tz=_D`M)L+R;^ zQtkt~uC7?rHeaZ!#Tkyj?T-phh-0ho3XzP^u#&Utt4Xkp zmUZO(y#knC@$O#1U|pfo%P#*`@J{<-Eo_>Z!o%dRLZZA0ra4IV|Nf8IO|_=Am-+(E zhVMoPC1ntD5q9~v7#OA|s~{a2dvhtkw{K*~uxg{SP?(tlvk9yrti@Is3H0od2`Ulj zkQpE8u18DpDmpkA@Co=jocz1>LO@m*v$-LKrQx8Dh2;3U$P z&k61n-Hid5Bi~E{;sjK-SrA6_5Oym#xn+>WEGw&gLnP?K)ET zj^B+owccI0>Q{WS$v7A&q}$9a&8dHH^PdqCR1Xp_Qe<8n+~XxnDL6P7C(4a7j0DI; zT|p%wnV*Eb1R9RgU_ZMSe-=(K{2Yx$eTX}v(oi|Bfg3k9mR9lA+PKaxS1%hcfq2j% zWT`ayKrV4ho{lN=v#-75J?D3tomH3yrtzT}J_CvK3k?h62B8LH3)2aSOq5)Qjuoc{ zj2|OO7xaR~@kO$~ViJimC!E<9&EX`<+P?Zfbkjzt;>j_YwZRBEDUmglFqujKDBnZx6LHD-6F5zMe@DD21KX zMUyE=ZVyNn}Si7F!)pgszA5Sx3+NyHo2)Mi2Btmrv!fDJl0JPbHr^}@dbE3Ahf5? zIMzquZ-BrcsbSoXu)oWZ8xMka+i1(t!aIsy(2hGy!0*>Bfzf5+#3wU>r$E`;t6I5) z&s|fG^zrUOgS! zmaP4AX`)Rwpwid9n`Aag2XuJzJ>(cca3JQ+*-gcQy`lLF9~ITOldxoIadJji|4iPk zs0A<()O}=Z@y0AkdW<2|>r0d~0|NfI|H4-}{2)f^qy`#(G=m@PRb)jqjcgqeMZKhx z8-UrNe8GMk_y(i&m9cM%HG>zHik3RnnA!r}(wKWR(v=O(H9~k8sD_@`%L3-S)Mgxj z+A$Fb7auU(@n$4v9*p)1Y9V5%jcGw-F{ZjSuj;iiq4E!H8Za~!T*RmZBXXm!fuOlD z3f!a2#XBBcO`uUN|463%YQyz|KSVZW zF3ft$LuY34+5*#_y5zTb z##jv77<;+{hUMxe2ct%7(%1I&>hB6w;_374+leMp7ov*w0 zXrAxdxP!4gYk%SR^bf&$hio-c`jdi%ylYWg6`HnscPN7a`-odQwFfQk{AIq)%%_Aq ziz>dpL`}PE{FEHUVlua)f>n|?Wh8UE^1L^_2fF_6C6A69@|9Im%`U`o=Upq>A;>?K z#~fE2&8c4L!}wPv-Qji{ZHHWZH4rNeuRFhe*)Y>;IGjjTnD=466^zVeE{q#1+i0CX z<(NM*IdP$DYKeNPEIOztYtSsOPMV)Hw>b(i0Ga40Q8}wgpq!fz(9Q*>!_9L-%zX{9 zCR^m39^#z-z)4Q0cx$r3F)O0VNimH~h)P)mhEY3>#K$TkByFZ#%TTS}irTOgBf*8O zpeW(*s`H-2*u%GcI7H$LL#pMZ6p!x-%1y|fD>Fm&rTev&@?V7zS@8#Xp4X6*O;PE= zoVZ39soSuO{W4WUI#vB}b_3LEyQ~VQRGo!Qt4FtermGO7pD|*!2DTY}O@FKrUo7K^ z`jSxw5!VDx;cs8Bn@_otw(B<))pi%lqIonh{TPkA%Pgv^v`_Otv*Rxo=3k*<58OEG zKsJ+XCp$i~!81qa*R3|IZC{Y4=GW^)wn(#0VAQj$A?$Oc?Qvub+tRA2oV-bqk*#&Gb#CDZkh9my7F zJiNp1rQ`KOoVS1-30j6E-u1(sy}+9(NqqXS=LD$T+l?ds=fTX)3k%@Aqxz1$W_aB8 z>!)iZQ-6nXWK&f312DQpHQO_wwAqaTcQ^RI@`Oul|IG-sh zvatcz0lKLL{&f_aWC&{wVM89hfUQkwwCKyu5<_BtGX~+t6iNHgrtA;7bd3(e+nG-LRvxDN)cwuc^{At}EHer4 z`CfCo$l5#0rv0Ob=h{0InxP}n$2>A`S{EJN4Bx;;>71j_p%eP%vS0r2{7+kDFvl$JSSMitY`3 zd_9zY6`2!)_C-9m``#+K7!Dhq>0D&wOI?2r=P^0SQ1&}lpS783PvPVjt)s^udehQA zL3vh1`p!et<4WxL^i=tTx@C1I%ct=^byl-$@93#DTs?UM4809g=c%sXdZSY!$9SD8 z#0AWh;x`z_G@oI0D&$FZicV;oWX+$<_Z16(3+UVL_d)0T#M7O~g z9Z*$JwqJh5-3hBecNFn$@s}{er3F@Y5V$wtsV;dre^i%^G|0)Ux?14r)ZxO>o2nzE zb=-TlPUg9MZRWke9o21JY^Dp4ctjrdM>zOy7-ZS&Y9zGu&g6yvg4zM)kA@ql*?RX4 zOrQnx27y~SDc~BA+p6)3&$zqnQVUfDQ`ut!hFda#-h{F3)xFuZ2cs@+eAUIz) zJXASj2)oPc0lV}>Fr0e5Ap_>qn((yceWNx)Zp06ctjN=>3R5DCgfjfAZoC1~YL?L- zOEOgSrpR+NakHE`S7s%Aff0c7M?CNn*D6IkRWr_^uTl+luc%ef)bd8aC5Q<9@&DLU zbf&nt1Lcj7^0uHaf{C}G&tEYf(w|DVIco9Fpy68%4)X!Y-(}7<`(5WN$YY#vK)Qn? z8f+EnF=k8@+GA3S>_3{?(xQ%B)pO6~S0vqML7gUoxOyUMHJ7hmaoxR#TtI)Uj_S62 zFsNh0sS8&qZPy#rL1EMAIW6p>Cx3WEG+GLn>3mR#eV9b|S=Q%K$JY0J znS%%{{hr9&=SdIv`}u=n2!~t@w776}sRmzAE+Df6;oO;oc4`^3Xe>wnldgN?b*a0; zZPE8O%Ydsfft4`-p;ek8w^6kQ7>f*jKH^#zKt@l<)XM&5`u{Q2d^*K3?)(g72y+|+ zR|C3m`kQ||Xkb>J4|dDco*4kEU{22mr)0nl1XX$=c?(9zpI@rrZ1MhBa%pvZipDd( z{LE+&G8kR!g@Mb`w-j~(FpX^7}MTe#6UIglmn;$y`d(1q83Z}MP(yj9tI|HCIF zZJMH&mUVS4nkBWTtnH~N(kTkqeB#4 z+@x3eJyrb#QAhujs|V!crG^%N@<&-vpdwuI7F?FuhaKbPn&_a^&T9jq zJ%ff=zGgUxVfrKWu$QRIl{X+Ez@O#)1vrWJ`%zfAb<<-Z(Q*uQHbAsIRXMP9a#;r> zlnPd7B=2lZz37tmqi-Quhlr_=2X#cUJ*GZrQIM<$<`sh*_=ZYGAVq{z;1* z2Om_R3}v=u5rA|-EL7lPn6BiWG|c}Rdz17glaT*NGw(>-fJO@q0W@bqsmMSew&3Du)tiAd0`9a*5QKamfq$;c%cs3q6BBay#46W#C(v3 z5|-YkL3p7I%2WG8qy8X`1%w;#x3DFr}K@*4FF{Y2dj?L~t-4WZ4Xrp_$GrAGpGI z>rM*(a*9{)nj#)JT-(}~eJf9)M{UX!zyZ#D7ByPszo7NTo9cOa z2FNAuXLn{y>iZ`k(p8}kkC}RT$0!Gc|LaIm&@m-Aeq{4er)lsLvt!G&Roq+C9cVw< zUmL98_j5T`wUprLEBz$N@6E4fIGIO#xr3^6k$;PtYlWxSn9?xhx>%ge6?IA)dQIBD zzprOZd&f39i-hX9OBdERr?`DY^3aOs(1k?P+&5e;FzC_JkVE3xcN+V8$a)^F9>;2e z@hWAKvvD+v!PuCk(XOuebcZvYHgg)jin?t*d3cTf@NIms!=RKIXM;}CGioLW)2%eU zk|&=(d^$(QtrT;EPQsJ^pH|F`@~@tl?Ci}lH%5)67=Oz(?p@wVWe3!w_GRmUbg3+Z zSH)Ug$p!(FdI8z3U2*^Sfhv*QAK?N}o_t8*@ZV=GB$7x5DGnZ~vOTHA2;qFtm>%;O zd&MCSN(v0gJo=eZlbdpYAH76g)W4}rz9Pa6U62sfbg9HmIfg|_UzJO`I%319u?F2Z zy=9khoCFTX7U{6X;Q0OUOohq8^X`%Q$7TO+kdm)C_)i*RfCJL}=ytbSBtLlOv-691 z>_Yv^HvlvY_b2YV3$E?V!0|D8meJCSer?Y;OgYk|dQy+{S7*OiDli@#e|A68V!QSy zCZe<0tP!1x`XfW-qk&*Z?=Ix3jdxHFHTpAogBFRdUG*;iEF2C6;xOpC7k2xb6NZi( zn-3RMH6emT(2N0{fm$41%8vN{0HnK>UR~D@TfbOaro-%%?T$U9XR-072Y#6U2l9e9@Q=G<>Y?vdoLFH01>-N;aQEXxIv*hL577I7fAv1; zJIdA8M@pRX-fTDmybBfcW6g1CRKGI%cqJqP#Scm z$?>dxS@=QGfS|6J9;23DiONU$0_j_NBc_o1a8X8w~SVFx|CrPZ52#sJ5)u zish1tm=@y324;P+u07VbX_oS)u_@Tv;6+>