From 87405254574aee68b00de66db343b51cfddf5d16 Mon Sep 17 00:00:00 2001 From: brausjonas Date: Sun, 15 Sep 2024 17:03:37 +0200 Subject: [PATCH] Initial commit --- .gitignore | 43 +++ .metadata | 30 ++ README.md | 16 + analysis_options.yaml | 28 ++ android/.gitignore | 13 + android/app/build.gradle | 44 +++ android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 45 +++ .../kotlin/com/jonas/todoapp/MainActivity.kt | 5 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 28737 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 28737 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 28737 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 28737 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 28737 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 | 18 + android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + android/settings.gradle | 25 ++ lib/elems/filehandler.dart | 75 +++++ lib/elems/todo.dart | 9 + lib/elems/todolist.dart | 10 + lib/main.dart | 29 ++ lib/modals/addlistmodal.dart | 57 ++++ lib/modals/addtodomodal.dart | 57 ++++ lib/modals/editlistmodal.dart | 65 ++++ lib/modals/edittodomodal.dart | 65 ++++ lib/modules/actionbutton.dart | 19 ++ lib/modules/appbar.dart | 25 ++ lib/modules/body.dart | 25 ++ lib/modules/drawer.dart | 53 +++ lib/modules/todolistwidget.dart | 42 +++ lib/modules/todowidget.dart | 34 ++ lib/pages/Home.dart | 29 ++ lib/providers/todoprovider.dart | 141 ++++++++ pubspec.lock | 309 ++++++++++++++++++ pubspec.yaml | 92 ++++++ test/widget_test.dart | 30 ++ 42 files changed, 1515 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/jonas/todoapp/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 lib/elems/filehandler.dart create mode 100644 lib/elems/todo.dart create mode 100644 lib/elems/todolist.dart create mode 100644 lib/main.dart create mode 100644 lib/modals/addlistmodal.dart create mode 100644 lib/modals/addtodomodal.dart create mode 100644 lib/modals/editlistmodal.dart create mode 100644 lib/modals/edittodomodal.dart create mode 100644 lib/modules/actionbutton.dart create mode 100644 lib/modules/appbar.dart create mode 100644 lib/modules/body.dart create mode 100644 lib/modules/drawer.dart create mode 100644 lib/modules/todolistwidget.dart create mode 100644 lib/modules/todowidget.dart create mode 100644 lib/pages/Home.dart create mode 100644 lib/providers/todoprovider.dart create mode 100644 pubspec.lock create mode 100644 pubspec.yaml create mode 100644 test/widget_test.dart diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..29a3a50 --- /dev/null +++ b/.gitignore @@ -0,0 +1,43 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# 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 +.pub-cache/ +.pub/ +/build/ + +# 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..ce66da9 --- /dev/null +++ b/.metadata @@ -0,0 +1,30 @@ +# 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: "4cf269e36de2573851eaef3c763994f8f9be494d" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 4cf269e36de2573851eaef3c763994f8f9be494d + base_revision: 4cf269e36de2573851eaef3c763994f8f9be494d + - platform: android + create_revision: 4cf269e36de2573851eaef3c763994f8f9be494d + base_revision: 4cf269e36de2573851eaef3c763994f8f9be494d + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/README.md b/README.md new file mode 100644 index 0000000..8cc812c --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# todoapp + +Simple Todos + +## 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://docs.flutter.dev/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) + +For help getting started with Flutter development, view the +[online documentation](https://docs.flutter.dev/), 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..0d29021 --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,28 @@ +# 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.dev/lints. + # + # 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..55afd91 --- /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/to/reference-keystore +key.properties +**/*.keystore +**/*.jks diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 0000000..a9a8fba --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,44 @@ +plugins { + id "com.android.application" + id "kotlin-android" + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id "dev.flutter.flutter-gradle-plugin" +} + +android { + namespace = "com.jonas.todoapp" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_1_8 + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "com.jonas.todoapp" + // You can update the following values to match your application needs. + // For more information, see: https://flutter.dev/to/review-gradle-config. + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + 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 = "../.." +} diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /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..8621b49 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/com/jonas/todoapp/MainActivity.kt b/android/app/src/main/kotlin/com/jonas/todoapp/MainActivity.kt new file mode 100644 index 0000000..f416e5f --- /dev/null +++ b/android/app/src/main/kotlin/com/jonas/todoapp/MainActivity.kt @@ -0,0 +1,5 @@ +package com.jonas.todoapp + +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..b498026081f896a99340c99fa9e2639ebc304acd GIT binary patch literal 28737 zcmce7WmKD8v}SNGUbIMCyto%FEmoZ3E=7t{v{-Pr7K%fF;_mM5P~0UHcMXHf8_-<9F}xA~N0Ll)Z+!xy-E3T=5(Sl!<%Tn88}b%7K_! z8kRGieKVutfdfR~Mzm67K9T1lt5r5O3Gx4%7VAH3i8Ped1 zc0)m&m!j_|KJ(^Px;*;AauJ@FBzqUSF{LR1_m!ZEe5aGwN_YQUGwJxbC}annwa{+Wt0?`C75X4(KZI2 zJ8D@?UHc-yTuipSzIGRXq8&$1ub%fCZo@JHD#&>-mXb+)%8(IoVsWV;Xte%(SJ%nY z`e^eKVL(~4kYarukCavQx~ad}^R4GSM83G4y5;a|k9Kp1<)d0qP2{9M0Pq0;fbC}s zI}49*FdSsGod5tV!lyq3KuQ|v<4ZJWSp`Y7T?`x|GBQ?ZKq3G@1CagjPR)JsF#TKF zmb&9LX#ZH-8pAMOb$p3JOgQNS9yLHtA-q7x(sGdF*%JCj|ev;3?Wj1D{lDq^mDJf~ky6@@xzcTy^G+Npfn6+IFucfFnnOWqtS>_5G zUGg9WDcew~FV~p?0uZss0SRO3BN?=$8N9x|7pRr@U^1;LOVS9Ek=~Y#D|@wq=;?bGBo}@!FlPWuT1A_zERj|wPL`XuhGX=1g3l4{H(;b6AhbG z1AP&h{Yy}3lo39RLUTg{(4JkLR&ILCJJo;F5&%Bi9?8JKr+V=h7#io4)omzV^e2?Q z64;ck-zX))ZMu1Oi^c z#>TD)@qM!EfoPlu!Z;C|#VQ7(Ydbu4`ggHZ9&A4Q}SkZceR)D9|6?-(QP&~KM zpj6t)O1Py*rQgR^m!iI^p7PynaYv&UeUbwJBYB=+6H3v;_>p zM_9p^C_*eCLElEiqe^1maSDmq99Yx$+gRYf>HcRZxA`htY`Ej`mHVcWoDsxt_46Ia zmd7VD-@&DoZ(@@~06iKd@H^tNlyy-59Cit*GN9aZozdW8dZp4~l>-?1S2)MaMIFJT zx@UX#tG>V{uZqA0uFAw}r@8eE~wH5`^58@>y5TRjF?uJnRp-`m)WUw`yp_Dfq#8d z6BnUzLy@*9FBAlBZc=TV$EF_GM98MK)}$VAI-Q&Rlv%WLk?<>U^1Uw&Q_dw}l1?|7 zwfRPrp-x0ps`O1a-IL(Ch?k`LPFo}F`os(-gS2O0q@X)N7>xQ;&CId0DDlP-lqiJ~ zo}+Gi`pUbJp`sd3KH2-({cYQRc`qea51~Kz>{!ozy9Y~MROA_&{1ZsL=He3#Gc>3r zXBV+(!KzOgzqx-m`+1FijK%+(QfSW)M2}yqG}(d;iMN2!eeokKdJwH9%0yXH=5b($ z0S?j408X{T9j=D4m&p$?%fF6^j!<*C!3rn({(ScOi0R(d%qz|}VsO`~?ih-Q7lUxF zu>bLPuf_1(R-eRo8h3Wy&}a-kgUuX@2z1$yU#{_ZLGLL7>tK3v*MN?z`jXB~(dshl z&odO)mvRsENqy)UFM-by310fRanM*H3RPt~X#04a9l~`zu+&D+0ZdSI@IJ!UVvdeP zru(!-e}&5u<2zCW8+Tmffbf@8B;Bmi(gJn&1?%l*0f2=M7UjGCd5Nuon z_Xm>E%q}Pf{SG)5*7lK+@#Ymej(YeT%nzr(t2IoWZPLWtpEkPS(rCJ=(Xv;g>y==* zQf&A>Q5k1~Ei)mKQgpL^V?q8p>;g%q+=v;MUWA>mn?7AL{zbs2M&$50wgia2AeNiW zyuU$=8Q||wC<|}7f|b%;L}2&PepP7<$Y!z#f-m;m9P6F8ma4qPh7yqgju41C3dNt& zS2U5t4g{$5yA;+&Q;AyPczIgNpTkQ(U!Fjs%k4U5zpMCQJh73_b0%IU1UnChQfbbO zVL4Wc$Gky?qrcou>R`8&ZPUm+2PmI1`G5H^mxyS+_>48* zIB~y5nd8MhjE`t$qO}Qqc`~C)U#pwZ=+PYM=H--0e)}}sASK<) zG|M}HaV?B-iUEHi6KFP-fbX@fJGYsl!l~_q^bS~~v+-Hqi%DFW|Ig2A zubU&E{p-8VqOj?8O@q~DD1@I_N6y%@+5BDhEwoerq-co=@OOni19iV0(>#AG+^n0m zvI(cCH-DPGnOS_`8#;rEXXKy#)_Sg24&YnxA;aJqr%6!=9w8*srm1V8889~V9?f3m z4t*&jVd#%|b2Vy%oby+HWN{+BKj+H&hR3Ox`Wkzc@`r;J_|i+(>kndlBaP=qyCE1xPT_+4u!>-yrXCevoQF6bA8kF_&br-!(4!L_4e`9q@^6 zf94wO#`Pf&7i97RD(ZU3-(rJ<#epT6IAqzAB+uMz^5{68j?=QV3gFeR%^R@b99YO2 zy!wK5<$@{CjjR@@%CToG&Y`EN?abHsEzl-)LQU|CnaqLi@^F&@0f)46&F?1n0 z-sOrk1%ikZRy-B$!ZIwaS=la!CmB3K@Gn||hlvF7(Y{)rE9?SR!aDX@k&==Q&*VNl zK{AAup21VgyI)Ee8et7h5DmJx9NreLlx63eD&EVRs~YH6C(0bFp!`~K-=P$E#dSktKoo2$+YkJ%3iRB3l2hsc_gCmQ_ym3T7dY7v5{-=ISK{k zV!5-u1ftmCeGxy~7Kl>D-Q8>ZSr$bPf;o&vw7g(oXj3vw^-BfAxy}^}vZU%hnn@~l zK&deS4pX*U&jNQ+Tqh-IeY)|{UVG}1CFiDR5abZmLz8`>BR z!InzoW&cnaSJhej#c<#act%T%mMw4RXCrw0oX(;H)*=j5$k>&GaP-}Rx8AooQO)tM zdTlk{lQk_4fXvUlZP-S?^|>fFMTB3s{Q$8G;4i*HzOjb%QyCzXr16Gjy$eQr@->aP z6)vBj2$##v5NitBzNGha{TDG$zt^mnbx>5$!Jx-a>OL`u;8OvX24N76WZ*optb`Eq2m(t3a5a%er=d78eD zkMcSo^W#ERYWlTNH_gLagUom+^x|dYRqm~iH4`PlRSEycUA}Zbb%m_f3F)sD8i}>V z@m&7wYavwVgr~Wmh<;#4G+FBj>v9UvJea6Fk?OJG&*dS-_AM_Md`w@dYKz&o4*Kbj zj(Aog1P`XH+%_iA3uAP<(9tDIRc7X#7m<6z&cD*sFY?dAYtfNhGElb2_rG_TY*~ol z7_I8^4kfJy^jL)&{kGu){5_Y7@=CTp_i7qZ0l#>i&KjH$TdVEXqx_zdg0to-(Of-eBlJlL7Wkz;IMfiI=qC zs!@0-G_!^ho%aFQM33^JDWQ9QdhUo@Mm6)AB39UOUY4>%@9h9P>0imGMMg$#CQ~VR8S^4n+A{n674q)oXG`|pZ;M;0`fhF~1>_XJPOgC@(KLLXbZ7a#DwrMh?uhohM zl8XWQg*0v*EacCCQ8Y|-Bg*E7>FVv_gj6X)7(e=b+2IT-8{~K@h#udn%Gf(>5Z?@k z-N6uYnSQ5YB#ZcGy+nK!?AyI9Z?pjZ_VD8$I zQ3K`)yxsWNt~J(#*M;x8Nwav4fTN8qEHXs-oz8XT#%h)4cy$&~=BtB3HHlnc745t8 z0?1qclQ@~VyL_~0(~TBmpWlC3(as}PC74@jd0sAL@yXPn{Y?|`ce{E80X)qp6oly| zn0(+IS2IJ|o?=nIoXwcE8lGNG?Q`E+{)*AL1596CCem5_R7`PUWc=!(hP3z_jUFUO zh9ANPI?Z1#yq3QvsxMpcWdQEy5m2hj_csro&hYGLQ$v$P`#Zg+OFf|O<;uDScaqrP~XAO+0IGW@nc&JV=d4R{?647L zO9puArcdMw4oE|-bjXEfT6$>7$y5iN%f!Y zahLay@oS@rU~IUDXObY6Emph9=t~Zaxf94?eEXtY^ypbcPvb(!#~{YPfE@5WH~f!! zQwJ}Yt%5#qu*B^;r6baZjPq}^Q(psTdc*JBOXEUY|&blBH^{=7NyV|YH#2aozL9g}&W91s$fe_dg7CX9`J zdI);r7Pte@!b$TTwQrs_ecx2y^5V>f0s_DIux{n}@e!=Q0n6v;mGlK(zt9YR%y z7=VP0^mkthkBK;NqUK7trnjd^WQZcSlO{#sOk!v6%og-bTVJbqcJDyH`Jo1nbA6F4 ze2Pbc>;7yN@#p8Wgzg!`pVlKs=)X0^O9qtf5z=5biacM({Te$pZ~^NTjf6KBn;J%z z4zY%!e=UKE-ZT8bUOPfebZeXP4E!M@7{JcF{b2A_qnr;*BQCo54l2@!RG~X-{mF4D z!QKn?+o45Uh}|59$5PyTep2Vze18yIs(UTw8JbtfkgvVjpQ+IrXVr`3 zIX}%}w5dx*zl*AG8d-XxkW`FHP$tdeOh-=poq_z$WJh|Oq9m9E_y4_6lD4xKtv+iy3&8xnjO-SRxxSi5d@t3@&ee15xOR?i3XDtLipXt& zeKsup zisJZ_4o;5qJQ_~st@m^cD>1;+pJsJ$Tr}(EU}C=SB!N7+zrY3O%?>QF{VQz(Yeo!0 z#yz3N(|(8_G)osIaAA!3i;K+3EE1>ug0|5?m63+#5IRs>zo@tFm! zHbv>4MgpN`+Iv{_{it>qQA-9PR&A@i@MiI3hI^qou_zz$2F>i9c!>{BS?U4j%5THy zqGwku6;>k_%|%h%w%n8KKd>l4iZ)h%8oRcAxr#zVvRTW?W64aK z(kqUSuD<3wI04WI=)}Z;z(#)1h#j1$2L@YL-*wpCSYNXy(Uu{ZU!THuPJ$b|DIrg}?bt7WQc~^u zD?u%NHjv@07M5J=g=veia$eMTb14?jkD9K0uFf;2jq;h4`^KPN#wO9TQJ;55eD?8? zU53M7mn=w@u;oC&{Ny(VzBD}N6rtChzwa{%F^W18VKxW}Y$^ThRDVs5x_H*6BTm%$ z8)x61s{2`nXI{Ws^eIM5y(lvwH3`$q!mfp!e%za1*RwOi4zYx{me@IU+~O<;fXaMi zOa}SsYr%qT5#)vK`C~NSatWC<($Ktjh3m#tPRAGKCR=t90>}R#LI0h?(&_fNfw_&F zoR%iZfhuq2+GtrLU#2=e)!eaV(vcI@ory%j5^3oAmVI}TJ#Gv4n%KS0Y^=<$YLK;t z@|xI$e!jlp8>?uNX?AqxRssX`0z^Xrf_WgwEQzzn3HVfbOs21kir#dx(2u5G7Tq{M zNh8kRe(TbE`dH@pt(ToD{bz*6SFOI7sW;@igri6IpM{wXZ$`HHg}Wi=dh!Dj!qNK- zSmp2pk3bPV$^u5^HO6VSWcr*R`Y8k#)Ilw5f?__N(#cN!S8%wSgmD7!ow<$oB(_p} zmi)=h*E`EIF7v4)f+Ghz__qn8-aZar2&R=WCp0pp$X-o2&(q{Z;splXRHNk6)x2%4 zUk%V{y0HblH`uf;LdXqOZio0_AcrE#`ZBO3^+doe?MKKm2HB|_bsb0mw123$A5A=} zcy?Wu!EhDD+9DftG3Rs6o`us61Y+`*5=aIv)Ml@j9AF>jpFLi3-t>qCcm-~J$?@f`OsU# z>hJ8D=sBwp-`vr`;T6L3QOD50A4x*4B&w`mY1e6K8EWL z8Ud06r4B zKhn|TKAClahOphXU@Kp!iNE@j;A>ZXwu|=J?Z(x(X5`3?AV&xSx%aLKMb#`Rr-0?8 z?l|?MrAsi)O8W0___th2mtvW4iCC53JZD_>P{s`rv!XNqx*YRYh!Ni_G15FYcm?*l z6xfzr=o~FNP3w2GyY*5FS&9&S8yWP((i`50kpRA8NO*ID@=!#~yA=uOi`x1-kPYXO zl7?_o&`9Jwe_4BATRhzU!rP%#d&bjMWXky}Ze>$ROVE$-(Gann{$sYm4Dck2ec!=Y zOD%Ky64y6!4(4HdWhwC2O;5qx@lH<2+02TMpjWVp1ix6OsPm3PvAI0EHdYY{^@5Yk zC|UdHx=_%j>vQpk7o#S$K&#A+lpmJN{S=a-@etR6Ln_!c8B3+nv5n8|Q!V=QUBgBK zulv|eS)tyI!sR}}X{?5In48%v-&z!n8)$>Ejrl0Zwm8*t)BFFK&DP0`8va z)gq4j`C#H>aasS|T5ijXEJhY`u*}ce9K-+f-jbC=twzv5(*waoQbHfKEHqET_;aS2 z)O_h{Hon&03F+xen8g~9J#@Li&?miyUz|C@WG@8^cs&_3@4fKS=j`u>Jd{!RY!<_R ztpUGds7+cn;kvez5oDV6+SY$zU)cJ1u&g(8vm4rO7`@=?sH90&Abh0|U5@kpd*C~W zN5KK+%0&u<{zozXF=c!6x(${MJ+27{d@bO?UNJvKNZ@N3;E-22t<(lsr?e@ zB{?;^jzt-T&`S`E9FR|e2~F{tojC=L__wvI@O%FdVIx8FF;Xx|>|X;6c?@H`pdp&z z=K4tW>w1&yCXrX{$*z?fXE^6=$A(e!uU>qg!}2*qd~vVD>+PNGufbK`=QCHnp>DDM zikIh0!BYBkqJR^}J5ms0ku4i&=XcyBEMI=FtLu?%?OF&L!u&_!J@DsW86QEm%` z(v{rL7$L5^qL3Z<|GBduL6GGmpRCJ@jV}=ciWc20$dQ=df^V^5PgQQNs7~MteVW5L zJkWrT7s<;Cv6{E_?7Gb-vYh86SE}u+2K&!=yn8VM1{57paaD`UQ)^_Xn$gzz6bKpp zCvqUOhEw!34Ltt?(> zw+2%#YtJq83Y$lcf1Yl8rvBtbTpn z6g3-Lp<0&1$0WxkYMMK$yOF8QQ#z<^Wz@Z%4Bx1#P%1VJpVy)J-KCYw%-VK1g4mLT*{C13)PQI`9AQbjjN+pnmzy8pHyKJg^AXM{zO2zX^m9T3clwgk z(mf`R{ClrICRM!y!DCHv_40<{pU|&rt{bO#7Cd92hi14N%$-N_v!X;wPp}!pqgmLb zLZc;x(bIgF=-5`4ae_;>e*tWulb9rfSRTC%oqxZ+nvJix zjV`hIJpgRVa2#e9vHjmevGRPaYCGlJR$*JP{wBqyn{X2Q_>B}MNg?EJhWW%BJB+h3co z&q5cr?EW%mw05jZqkei;2()>=2sIJUk8ev#E9?sE=vJD{Iv2LQR@_R!&v#U!JlGMqeR?v{j)mX{p)p7{NV$nilWe$ zdQCnrbK1<_gXYa3MS1AT!H0S?;wIbJpR_p++@aj@z@oFgad@=q5H1>E_d{q>uEfJ$(Qm@fSR4*w}Zf&1ku4BBc52x>EW1>6krv5etKOeSB&;(?0uI^pHr(%s%x^&nqs&(H= zEdSDYa4(Z&0y@f5>J#Q$x>9%E!Sp5NGGp!s;IzSJzv9|a$EJvz~Ab=uZsqBZs7;Zmd9V zQcDSGxFL_e8da$i6vP#U&*F;LMz7rRO18#`TM_V-2~QT`6;!`I-NYyoq|kH|=_DFZ z5KMX-U`faERTC(HqEZ=+xMBIu#`gVLDdF=C1W&e2l7A;r(3LtJ`vgOqv#-n(5f^r0 zH@Fk66Z%AHi~MQs-n{QpB4x!ML)l4fT@{#5p7t#!9!1zuR;BFCpJLe=)DsOYHc7qQ zU+7uc230%+o2U7X9KZDn;vo!xw#%AEfn7I^(};hAq}>~2(VG(zu+Usgpt&H9H^66A zU%!vVXD}*wOxUxGZKcQ{Ra6e2WL0#|{1RHC--~K;vcb@IvSx+5H})83OQ6q!rSYMz z;#Y%060^AR)i9c*WzLXm$#Jv{j=+AZ8WL2rTb6{sjyo)DkV+I1CFihcma3O+i{v`i z_g>Q|84{z8*ujU?5ayeWa4zdJ*i`#@fj|%CNHuFh{UkDAn&LEvE0}q?%fG0+)0X&+ zYW5|j*6_wlQLlFY__@HNEXEx;`~8b`rjX-+r%tV{f5?^bBg!fHII@a5tlE|dj#He6 z#Pi4eDK5v3Z%BSsR5Y9Zu+7`ULmpmyAScRPf&VtuJe4H}2;n(uWT0H12=Y{ts8^UZie{*SHuwneA1|f-QUnMIGYJG0& zKG^?ij{oNEd91I!;Y{pH^l@bfu;hR81~`P=PNRlCiAcq}ght^RB;QEGNI(jaNMiNc zT}F#D^ldr{Y)hiuaHhC-2jwtIJ+*vzDvWxaM!SV{r@XjFi) zts{?6)hEpH!)VsEaNg@Xz z`FD1{!^Xie*^Z>eepcbPf6T$j875cOfKd(|FP3w_v4ELKoqXt7nqM4sr#oSb_Iw#- zqoX(6D#SaXN`c2T{wiq>M#}99$ zqH}-J#Pyq&ZMg!@`G|)8__jbsf;;%v&SFTff#)04_KZi*ahRPfI&pA?1TVGb2j_em z>%47mD|Ob`A*dLn$`#$J6*Ph;R;?43i;&~4+T&u6XM}YkY*@~uKVaLn*}lkl$hg28 zad{t1*}o;RZI4*w{7&i6+lhcpR5^87pl)B+ZzF@H2{DD-UkFFpF<2tp9iGFPEpYbo z1I0_}*D07NgjtL!BemY}T$a;JZ`W=>d)(8Siu^2w>r}iT42c`*h7XmT=2$EyN9^N$ z?6Xx`8daU)qjedu-PW@z3(DY?gpu;ZX1wJ}M;3$Y&XdimD?-7lpKsdkZJJe^p*BYn zR4!s%OkK1OX4lJmB_BRo|jx zJ%vQHpW1TBLOhPMa67Qzf6lb3jM!pO-aeHvaX~Oz*ul`Kl-6yofEBCLdtUKk8|}k} zmf=8CUg_71CyQ48?lH8LFO}a{oOm4BO43lP)Uc59QII5V+(WXj?+XgnfLD@LeI3`N zIptiU9@D~yEO-9R}wA$R+sv*M+f>cLD?f3;iVc@k5J1cw-U9o zf%8p(L)Te*OwdKJ+u*A2paJfVzB4cEVcPK4NGIJaLU%)#7fAyIRrAwZE~A$J?KS6R zyM#XPel(5DII*qmZ7`?H3sqp%s8VV_I&<>I{F>iSPzTP!6ZU8WUz7{uVeO0>Uxg_H zV)Y{wbfq1yza_4F=Yzytrii@=lf?+72IfsVs>srl4wdt5UJD=kMVz^@3la=JA79Ho z)MTLde5|kX3LJyRAqe~^C58SaSSjxc!Za2HjK~j11e<_*0@8C@j(D0uq0&UR@3@S( zE|YpA+!$;w-8c)JEC4pB$T5ay4r~=s^836-j{zWF;+qO3l z?(u$$@wVy2-A#54Zd7`^=^+d2GQHwi?$yt>r9WzJCDW@KTS>u7-6EiIzht zhfEsfkNpI#2lwjNr8*YNitbsIb8713LN6_z4Ig~(7{k-lfl^$52RGl1@_rQ73GLL} z7(e#wLw`vQ&Rf|7GR#WRorY`@CKYu;;3oEuzJf^vHVA#@^J_5vQmxWwiqGq2y86CT z4EoiT4CrVpH>}t5K#(|l^K((2Q@bnyx}S3Vnrq9Nu6T}uKN@_~4p%B^@)n`@Y`t$K z)qQlGFt8!;Pr~Y-EthPwN~PtN;`DUe=gMq>Df5P2x9OGTE3pg(b7xJACqVP96J6I1 z@Z7ZqxEF}f!}k1Zz3e73^%WZu&Pj`>h-0}542}hC3Vg~f#_F?Ppz+zQ2IG2f2;KAr z&E2F8L(LUf^z`pEbw;MI;_fp|0~B;9O-UMy$&CRQ3~{|K65v96A*84Fi@{ZBeP->K z19U}^gPn%2-3>x>ilEdS0J{P9O|I}hvKoB36$r!`y`7m|`jcgyfZ3R)caP=5+%In0 zZ|(gsBem>Y-7|_{Ow69`X}s{Upw?j5IbznTzmTSuFz%Lj?XtQ0G*J4mdtK>Cy}fyl zHwCtecQ#T<^yl!<%yWj16;8Ih4o`l!yen;tQ&3JGbl!sAyw0u!l;qtlI5c)V{335`E};XBIe%KzOA8O8;&l z702UD@Xq3Rwya;u9NwzTD`tE3v+%t4Vhv^RCq~a#HA7NCVxzWz?6OPv<z4)cMERl!N~-eSSGqNJqZ~UIW(cugTH; zyktN&1%_DP!Zj(P9p1W|~ChA#oB8@|JdvrG*}$x zCsjeINiN-UTZxxXdeBq*UMS*;= z5>PRKujgcMK$bd1vt5JU?e0t))fAMXkD6_F&f!U%iz)Lkl9Ry|=7RiFquL05jVoq` z?_&YlN@|Q)l6!0ssEWt}@Y#~}Qi#FQ*N*+nj}244Bx5nqqZi-Oy$J4`L2LP%S6VhW zp-~KtSn6jQYqvvEyz6SzYX36qErHDF`@NFW>sCmt|CZmLn>ul2g`sR;W$60ad0Cq+ zC5DlwQ?{ffr=aYZhh}HftS1vQ+X~)R%oVy<1Mx=LZV~%nCsfDqQc^km#L#S!ewo* z0z6CD!0S-fO)NZCpNlhjiw)~vg>sWoIap+^PB89KCw07WbI)@I_u74) z!b?}U_?go9)s2$I=Tm8)C$hcg5xYCuRnbu2;$i6U$eTb1!;E{`!?TgYpn{Yd)KNRf$s&@1{lX z#!N6KMbCqHvdb^R=|Kw*10c+onYs=Li-EV2!Ow%7p18fx(ih(%a9u5hI z&1x(*iJU2a8i@=}GqMVZv)COMK8Zg+zJ8P=#rNfF=iAR4vqI>F0OJ^Dn}Gac1ccI^ zFdzsyPtR~YCvX^YCj6l1@L@ig|}Xo;PE^^?Ho-Ma^!i6o$d*mKdaeA%Qv98 zxfX>)tOT({8Sv9KY@z?keQj&_J90!;lV5BTtnNN;G1j-cd!u;e^qAs)746jzB-!|p zayg?Z{V}TB4tBBU0Y?`kd0hLodV=wdBAq-+RGDF5t?@ms;IR z9s+J68qAuJ=y2PLZ#l$4@fM~p*g|u~Rq3nd&OZIt z>59C6e$OPlNmG6%HeqOBkgOuUL!WEUU*2?ENU`0`?|ei~bF&rh%GcM&;2I9BHMISAFn>V5kg%xNw+!C4AD}vco+*TOncQ66y=ZsASb^#w06-& zSd#iJB_~s`6Z+-4#5>gZ`Xx%-%b+4~cmJDCq-!0ir+~gA#)#w@tmyGd*?oE#Lky{| ziL2zz#Jklu_Yy_iz&{GEbYl^YetYn)m@CIC*BbEVUh$gySt=>r11lS(P-8 zZ8*4}-~Ngi@5&6wncNs?8e;_*yH>Llk=!7MbeZIDk9SedTTkmuwxGL%#0}4wytBg_ z(ij(?{RvXxxb6z)2wE4z`0b9VzPgr5#f_%qGvf2u5D}}z21a7P znxvX)G_accou{5^>U})tX@+l+wo-$Pj*nrnsNeSm+}CdC&J8;%-g&%qOR&q30*8cIcruax_R)cFBy>W}4*~*k}4~sGr>!kyF#VM-w-V zxAF{C#$TM~4Ea?%y9&$7dWPu=w%MHglut&E<;F`GHQ#*`nmw$Sw9;>S8Z|eIcl07{ zf0;t;u5$Am4(IqcSm9SdyKm8fCF+-oqIRX;xB61$XGysq4sC8hYW~yI?Te;}5W*;Y zT_Nl3ODc&qzx{L~44xRQgw1phZ|D81Q|g$)kDwk@bbgD!TT)(Gf) z?6w3Mw!7X7YtMa1AV*aBR&{??Rg^0SW&d`MWiV|Ke=V$)Cm?9-%|ElaL^bEEU=IZ;3L^qjdxRQ#6vWkflj zv{t6ki(&F^&Cg2j)kCo@M|?1CEIccm(9^2!`QmXL2ZmAji}NX*La)Iy-4U1`V^DIdG1Z8A(iiz z+;d+j?CI9~{jiJYcCBDXPNp7v$YA?K?HIiio|+3^`4>ZgO{9wTmB}K8zE|wqe6{Ah z*;Inoy&8BY1n7$LXn}58r)xE4$Vy%Z+H|pQblBGO{AQl1(@gG@5`_%nBWGdrE<)e< z4CPI;Qo@^gKm8z89R1eTG_K$MT-*`lmC}d^`j1`!0!vxkdFI%p&#j@72k=|J<|RfES~4L%y%eulUtgm7H&?>Bu9tvC}Y)gSE*Q<2hf zkjbSsMmYT`RQPf12;Q!JEjEHcfKL08H>*nQ{eM2&Hv?C7rTb1Z#z7=kKQOY%Q|`Tt zh6lO4db?2_ZDr9I>T2wkHLC~uf6k9?Mj6Ozw3yfvig6XR+58S`>bpw*{miqi{CejR zeM9?DO~f1#Th1Wc8?i_lMzfK$uztlScjvc-Od?Z#WY1?_IPTmE6nBjL^s{PZ)N}Nv zDCkBfSWQ%7vFuv`FS#nUa?{5S{_$p_)+6^1RkqHQ7VtlChwbv?U4O5P0(LnowX7d` zm)#DA%bmYO{dWvP3+uSP6!eB*hN2EX#IMLbIIOe0T`(2THN1VdJgB@)s$TjVPfu35 z+TxulcI7=FoR7DJBIHS`WmPuLWB!Sr&F0sceidx1Ks`V2JYut=DLs;thyNUp1pG z*ZA+Duo~c7$-T40hW&)leFExM7aQ*j;jjDiQw9cIge+W2KPo!;t;UJ3;rF7v_sg!e zsThEtcvU0Gm9s0$f=SlsGbvo6IQ__zR@t~AgLz*jMDq*f3z!YA3NIWt%;t>2cGt+u zP39ue-aBq1EaAyKtv7YeUMrD+n)neQZs^RD7Vs?-CGmwty`=S;- z7i*+wG@<64rOh$Tet3vH1RW1CZC=%-qT+kizDC#cw?h8(Rv!YY8(EU~hDBYe%G%EO z^^r@GP&t;Q&<=Mx8mL^AgV9w8y>oZp*sW=B!>=Z z5Jb8|X{1X)a)3cvTIoimyBh|iK}4h*8A7^*0fu3|;s1OW-|hFj7w^@%+Gp>x_F8MN z_1nL-PUYOoathMlml}@MI2(DS^i+6)?%*Za1JE?xJM}CxzFsj}=S+dW5qTz`OoF+- z`eCp1e9$8(4`$R$+gLAv(p;Ihr=qMW&{0kZ3<$9T08QH+hhvBs{56cs!&=%`airG6 z-GQgGyqEQ9_HLPrWs9CCj4rIj5P8>tWs%=ms|sA-g69zT4D+iExG+CmY;@OwFnG|F zv{|$D3{H=Msp=#Tn;{1=*BXv8byk$rN81l2Jkasfd)FK#pp{wpW5)L2O06>b#9#+b(6prP8%pwzrhmAUZ zJ12IlSx?uNTI$xan1ET)ad9VMRAL^>)nh*Kd^xJ--wbW37={=oR!Hg;-#6X6J#bF~ zgHbgyVHh2{4112vg9a9jt1s-_KGkiu$js`*Q_lL$?9x`2Fj!Q!l{?j}#l$q|PKC_b zFNcb7KY3;|QEgds1$1ssFGPv7bg;Uw%Nu@rR~%QS()7pbPP)?QBj;KvLOu0}W}1c#Vo)Zw1WnPKkkUWG_jws*Yw;($y7> z?Kf6il?Re^c8MWD`LoM@)%*qB=#!yMLG~|TasMpEh z-D)aU!zmUe-ULn8ofEJxETHj*MFf4*v&D}(RYoI;b0q%u`tK&`tX^|C%dDAwh%MRxk@4OnKbBt>H zUF0BNL^nO4Sl%l&);R^&Nuv(m%ez=Q8UG-j4iu1Wjh}79KQHeFV{I$FdwQog;$+~x zDb`aFxZ$CehQE945D|BQEdVrPf0Pn>+iJ`d_LOM%T+aT%tUSgyHWK%-l0(=nNz8m` ze^^{zRXxX1cx8S&r!LQ3DoH@+6`<&b{cDT}ua64q^@Zo`Cv;AK-IK%JteZch9V|1* z#L&92cXBH>hCA?FebOE5C-mXZ`GG*QmDInZ)m$a7*z38lMFV(Tc)|Bt)8rM1PVwKp zlcUsLgOH!@!u6Mzvt#|7kcRyXEHzuW_to8=>;((-{*TGn#zREZj=T_578W zJ3yu;40eotyiL4ZkX2Sors_w$SKw^K7AKy5ePS#_+sS7hih(AqqYdeJhsMeZ0OnuE z@Sf)1iHQq*3gcne2}+R{Un)6`lIO_0u?-ztU3*dyyQzA>u(zUgsKfx<;kGVD(zP&U~lJaI;sR4k>AyQ{lR&`c#*5 zFO<8Ro@pDGiBZPhg2K(o7uQI1^4}cFj3LqCsQ6*04ObNU8kI$W75+?n`ly3EY6Wla zlCm@yHhg_L&%Z)uDL9Xl&lF@EU0|}D-SFWjsGRT1^nTb|`S1l+_us*3m0G{a64ky9V;u*+HcWo6Nk1l7EAf`Z;-)m(>iAUSK3W~02e8E) z?MTK59{A?FK|~2&`+ORG*6Li)bsG?r$EHz1LwoFMX-mwuHSD|fLxW5s?Nd5tiz)jd zxtaG!;nV)sO26sm@^Ty16-SU=s`gV69ghA2`zex_daf-3>^-5=T(t|$P#pCi3bTPMNa69X_B zr}%1*naGX;FKBakTtuY!W0SC< zr9!QY&FZSMy69s(?sbJ4!V?h7G&mxmL)GE0drXfmb(t~Ku86b*-CXIup4(HAdZwi| z4jyCd-xj@Pi$o(;gkm`~WG$!#Cp^up&ebZ3w7__tR6SUJ#J)PgrS*66FpFg6*VP$l z!(om}8{hjcKUri&({LF)z=LPYP(X6}Kuo$MJo8))Op&K)mbaUfrRhiA!7ql`7HM&+ z%l@uUfCt!lw2agDi?vJ^ze2EjGzn;07wozpp7E}(hQBbXLe*DI1G6&zYWp#NG1-(l zCs!CZOHSGHLfI5gA0frwqwM(AuSNx}S@#FmgscHd|SCH#`Gaow!5xtSfqcEB2kF-!!1_MK7F%+zKFZ6mkb4F z?chM1q#H=51&lF(jnebfUH2_?5`8ZrE5Ncqliv!uTKDs-x%zKCr=Wq*jbAUBVrZCe zPLGT+Li6BBIEOWY+C^E&Mae*dp3u)8(>krKwXSIqmML$1iLW2$DAi@-%4!-lS%f&c zXHzu3ZWG){HYd>RH?zH9uDFA~z2deOtrLWo&!47W`1(viy8@qj9hSXyPbdTO>1k-s z66^Z(poYrD5uB8)2E3$kJl3{vNqfPGuM?F>R)~b7&{X#acWRs|EKM;fd*$hW-Us#= zCJc?@fLJbRY1(bh<2{eFfY(V}mFx@s70NChMAocGI#m9l{GNKNZc$N_^(*Ri=ZJje z{IgFBZ+oBnv?ambIg3&58$`+LnOz!u6Ar7_Z%M(T@3`vZ^pqj=Z56na43W`&JXJb; z_=Z#;DNr0T+d*zq0h|olaAges8!iz2KW94_h*9_MUcdqo_RVudR=q`=su$NU&G(h@ zenOBDVc8pM1GZ1A{tlDNZdm3a7J_s>ytLPEX%m#(X&${P_vD|5=IC7No9~J(<2q5V zOvZ=^iQ0@~P{Y*Hpu`&ttS66m+{2Dvnp7__;eX3OH5nOv^@<)5nB<=Wu| z>e8Dz@#Z4R^p+E?Oe+VLkI4SuCVk≷ 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≷ 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≷ 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≷ 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≷ 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 + + + + + + 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..cb1ef88 --- /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..399f698 --- /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..d2ffbff --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,18 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = "../build" +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean", Delete) { + delete rootProject.buildDir +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..2597170 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError +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..7bb2df6 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..b9e43bd --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1,25 @@ +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return flutterSdkPath + }() + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false +} + +include ":app" diff --git a/lib/elems/filehandler.dart b/lib/elems/filehandler.dart new file mode 100644 index 0000000..fe25db8 --- /dev/null +++ b/lib/elems/filehandler.dart @@ -0,0 +1,75 @@ +import 'package:path_provider/path_provider.dart'; +import 'dart:convert'; +import 'dart:io'; +class FileHandler { + + static Future get localPath async { + final directory = await getApplicationDocumentsDirectory(); + return directory.path; + } + + static Future get localFile async { + final path = await localPath; + return File("$path/todos.json"); + } + + static Future get fileContent async { + await existCheck(); + File f = await localFile; + String content = await f.readAsString(); + final js = await json.decode(content); + return js; + } + + static Future saveFile(js) async { + File f = await localFile; + String content = json.encode(js); + f.writeAsString(content); + } + + static Future saveList(js, String listName) async { + final content = await fileContent; + content[listName] = js; + await saveFile(content); + } + + static Future renameList(String oldListName, String newListName) async { + var newJs = {}; + + final content = await fileContent; + for (String key in content.keys) { + if (key != oldListName) { + newJs[key] = content[key]; + } else { + newJs[newListName] = content[key]; + } + } + await saveFile(newJs); + } + + static Future addList(String listName) async { + var js = await fileContent; + js[listName] = {}; + await saveFile(js); + } + + static Future removeList(String listName) async { + final js = await fileContent; + var newJs = {}; + for (String key in js.keys) { + if (key != listName) { + newJs[key] = js[key]; + } + } + await saveFile(newJs); + } + + static Future existCheck() async { + File f = await localFile; + bool exists = await f.exists(); + + if (!exists) { + await saveFile({"Personal": {}}); + } + } +} \ No newline at end of file diff --git a/lib/elems/todo.dart b/lib/elems/todo.dart new file mode 100644 index 0000000..ad4f441 --- /dev/null +++ b/lib/elems/todo.dart @@ -0,0 +1,9 @@ +import 'package:flutter/material.dart'; + +class Todo { + Todo({required this.title, required this.widget, required this.checked}); + + String title; + Widget widget; + bool checked; +} \ No newline at end of file diff --git a/lib/elems/todolist.dart b/lib/elems/todolist.dart new file mode 100644 index 0000000..e6283fc --- /dev/null +++ b/lib/elems/todolist.dart @@ -0,0 +1,10 @@ +import 'package:flutter/material.dart'; +import 'package:todoapp/elems/todo.dart'; + +class TodoList { + TodoList({required this.title, required this.widget, required this.todos}); + + String title; + Widget widget; + List todos; +} \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..79a7e1b --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,29 @@ +import 'package:flutter/material.dart'; +import 'package:todoapp/pages/Home.dart'; +import 'package:provider/provider.dart'; +import 'package:todoapp/providers/todoprovider.dart'; + +void main() { + runApp(const MyApp()); +} + +class MyApp extends StatelessWidget { + const MyApp({super.key}); + + @override + Widget build(BuildContext context) { + return MultiProvider( + providers: [ + ChangeNotifierProvider(create: (context) => TodoProvider()) + ], + child: MaterialApp( + theme: ThemeData( + colorScheme: ColorScheme.fromSeed( + seedColor: Colors.blue, brightness: Brightness.dark), + useMaterial3: true, + ), + home: const Home(), + ), + ); + } +} diff --git a/lib/modals/addlistmodal.dart b/lib/modals/addlistmodal.dart new file mode 100644 index 0000000..c3bc309 --- /dev/null +++ b/lib/modals/addlistmodal.dart @@ -0,0 +1,57 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:todoapp/elems/todo.dart'; +import 'package:todoapp/providers/todoprovider.dart'; + +class AddListModal { + static String tempValue = ""; + + static void add(BuildContext context) { + showModalBottomSheet( + context: context, + showDragHandle: true, + useSafeArea: true, + scrollControlDisabledMaxHeightRatio: 1, + builder: (context) => Padding( + padding: const EdgeInsets.only(left: 30, right: 30), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + TextFormField( + autofocus: true, + decoration: const InputDecoration(labelText: "Title"), + onChanged: (value) => tempValue = value, + onFieldSubmitted: (value) { + context.read().addList(value); + Navigator.pop(context); + }, + ), + const SizedBox(height: 20,), + SegmentedButton( + segments: const [ + ButtonSegment( + value: "Cancel", + label: Text("Cancel"), + icon: Icon(Icons.cancel) + ), + ButtonSegment( + value: "Save", + label: Text("Save"), + icon: Icon(Icons.save) + ), + ], + selected: const {"None"}, + style: ButtonStyle(iconColor: WidgetStatePropertyAll(Theme.of(context).colorScheme.primary)), + onSelectionChanged: (p0) { + if (p0.last == "Save") { + context.read().addList(tempValue); + } + Navigator.pop(context); + }, + ) + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/modals/addtodomodal.dart b/lib/modals/addtodomodal.dart new file mode 100644 index 0000000..6839d91 --- /dev/null +++ b/lib/modals/addtodomodal.dart @@ -0,0 +1,57 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:todoapp/elems/todo.dart'; +import 'package:todoapp/providers/todoprovider.dart'; + +class AddTodoModal { + static String tempValue = ""; + + static void add(BuildContext context) { + showModalBottomSheet( + context: context, + showDragHandle: true, + useSafeArea: true, + scrollControlDisabledMaxHeightRatio: 1, + builder: (context) => Padding( + padding: const EdgeInsets.only(left: 30, right: 30), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + TextFormField( + autofocus: true, + decoration: const InputDecoration(labelText: "Title"), + onChanged: (value) => tempValue = value, + onFieldSubmitted: (value) { + context.read().addTodo(value); + Navigator.pop(context); + }, + ), + const SizedBox(height: 20,), + SegmentedButton( + segments: const [ + ButtonSegment( + value: "Cancel", + label: Text("Cancel"), + icon: Icon(Icons.cancel) + ), + ButtonSegment( + value: "Save", + label: Text("Save"), + icon: Icon(Icons.save) + ), + ], + selected: const {"None"}, + style: ButtonStyle(iconColor: WidgetStatePropertyAll(Theme.of(context).colorScheme.primary)), + onSelectionChanged: (p0) { + if (p0.last == "Save") { + context.read().addTodo(tempValue); + } + Navigator.pop(context); + }, + ) + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/modals/editlistmodal.dart b/lib/modals/editlistmodal.dart new file mode 100644 index 0000000..802f71b --- /dev/null +++ b/lib/modals/editlistmodal.dart @@ -0,0 +1,65 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:todoapp/elems/todo.dart'; +import 'package:todoapp/providers/todoprovider.dart'; + +class EditListModal { + static String tempValue = ""; + + static void add(BuildContext context, String title) { + showModalBottomSheet( + context: context, + showDragHandle: true, + useSafeArea: true, + scrollControlDisabledMaxHeightRatio: 1, + builder: (context) => Padding( + padding: const EdgeInsets.only(left: 30, right: 30), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + TextFormField( + autofocus: true, + initialValue: title, + decoration: const InputDecoration(labelText: "Title"), + onChanged: (value) => tempValue = value, + onFieldSubmitted: (value) { + context.read().renameList(title, value); + Navigator.pop(context); + }, + ), + const SizedBox(height: 20,), + SegmentedButton( + segments: const [ + ButtonSegment( + value: "Delete", + label: Text("Delete"), + icon: Icon(Icons.delete) + ), + ButtonSegment( + value: "Cancel", + label: Text("Cancel"), + icon: Icon(Icons.cancel) + ), + ButtonSegment( + value: "Save", + label: Text("Save"), + icon: Icon(Icons.save) + ), + ], + selected: const {"None"}, + style: ButtonStyle(iconColor: WidgetStatePropertyAll(Theme.of(context).colorScheme.primary)), + onSelectionChanged: (p0) { + if (p0.last == "Save") { + context.read().renameList(title, tempValue); + } else if (p0.last == "Delete") { + context.read().removeList(title); + } + Navigator.pop(context); + }, + ) + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/modals/edittodomodal.dart b/lib/modals/edittodomodal.dart new file mode 100644 index 0000000..66edbb3 --- /dev/null +++ b/lib/modals/edittodomodal.dart @@ -0,0 +1,65 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:todoapp/elems/todo.dart'; +import 'package:todoapp/providers/todoprovider.dart'; + +class EditTodoModal { + static String tempValue = ""; + + static void add(BuildContext context, String title) { + showModalBottomSheet( + context: context, + showDragHandle: true, + useSafeArea: true, + scrollControlDisabledMaxHeightRatio: 1, + builder: (context) => Padding( + padding: const EdgeInsets.only(left: 30, right: 30), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + TextFormField( + autofocus: true, + initialValue: title, + decoration: const InputDecoration(labelText: "Title"), + onChanged: (value) => tempValue = value, + onFieldSubmitted: (value) { + context.read().updateTodo(title, value); + Navigator.pop(context); + }, + ), + const SizedBox(height: 20,), + SegmentedButton( + segments: const [ + ButtonSegment( + value: "Delete", + label: Text("Delete"), + icon: Icon(Icons.delete) + ), + ButtonSegment( + value: "Cancel", + label: Text("Cancel"), + icon: Icon(Icons.cancel) + ), + ButtonSegment( + value: "Save", + label: Text("Save"), + icon: Icon(Icons.save) + ), + ], + selected: const {"None"}, + style: ButtonStyle(iconColor: WidgetStatePropertyAll(Theme.of(context).colorScheme.primary)), + onSelectionChanged: (p0) { + if (p0.last == "Save") { + context.read().updateTodo(title, tempValue); + } else if (p0.last == "Delete") { + context.read().removeTodo(title); + } + Navigator.pop(context); + }, + ) + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/modules/actionbutton.dart b/lib/modules/actionbutton.dart new file mode 100644 index 0000000..1f17e96 --- /dev/null +++ b/lib/modules/actionbutton.dart @@ -0,0 +1,19 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:todoapp/modals/addtodomodal.dart'; +import 'package:todoapp/providers/todoprovider.dart'; + +class TodoActionButton extends StatelessWidget { + const TodoActionButton({super.key}); + + @override + Widget build(BuildContext context) { + return FloatingActionButton.extended( + onPressed: () => { + AddTodoModal.add(context) + }, //TODO: implement + label: const Text("Add ToDo"), + icon: const Icon(Icons.add), + ); + } +} diff --git a/lib/modules/appbar.dart b/lib/modules/appbar.dart new file mode 100644 index 0000000..7e187d6 --- /dev/null +++ b/lib/modules/appbar.dart @@ -0,0 +1,25 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:todoapp/providers/todoprovider.dart'; + +class TodoAppBar extends StatefulWidget implements PreferredSizeWidget { + const TodoAppBar({super.key}); + + @override + State createState() => _TodoAppBarState(); + + @override + Size get preferredSize => const Size.fromHeight(kToolbarHeight); +} + +class _TodoAppBarState extends State { + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, todoProvider, child) => AppBar( + elevation: 5, + title: Text(todoProvider.selectedList), + ), + ); + } +} diff --git a/lib/modules/body.dart b/lib/modules/body.dart new file mode 100644 index 0000000..1bf904c --- /dev/null +++ b/lib/modules/body.dart @@ -0,0 +1,25 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:todoapp/providers/todoprovider.dart'; + +import '../elems/todo.dart'; + +class Body extends StatefulWidget { + const Body({super.key}); + + @override + State createState() => _BodyState(); +} + +class _BodyState extends State { + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, todoProvider, child) => Column( + children: [ + for (Todo t in context.read().todos) t.widget, + ], + ), + ); + } +} diff --git a/lib/modules/drawer.dart b/lib/modules/drawer.dart new file mode 100644 index 0000000..565ad6f --- /dev/null +++ b/lib/modules/drawer.dart @@ -0,0 +1,53 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:todoapp/modals/addlistmodal.dart'; +import 'package:todoapp/providers/todoprovider.dart'; + +class TodoDrawer extends StatefulWidget { + const TodoDrawer({super.key}); + + @override + State createState() => _TodoDrawerState(); +} + +class _TodoDrawerState extends State { + @override + Widget build(BuildContext context) { + return Drawer( + child: Padding( + padding: const EdgeInsets.only(left: 20, right: 20), + child: Column( + children: [ + const SizedBox(height: 60), + const Text("ToDo", style: TextStyle(fontSize: 20)), + const SizedBox(height: 20), + const Divider(height: 1), + const SizedBox(height: 20), + const Text("Lists", style: TextStyle(fontSize: 25)), + const SizedBox(height: 10), + SingleChildScrollView( + child: Consumer( + builder: (context, todoProvider, child) => + Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + for (String key in todoProvider.todoLists.keys) + todoProvider.todoLists[key]!.widget, + const SizedBox(height: 30), + FilledButton.icon( + onPressed: () { + AddListModal.add(context); + }, + icon: const Icon(Icons.add), + label: const Text("Add List"), + ) + ], + ), + ) + ) + ], + ), + ), + ); + } +} diff --git a/lib/modules/todolistwidget.dart b/lib/modules/todolistwidget.dart new file mode 100644 index 0000000..2b8bf77 --- /dev/null +++ b/lib/modules/todolistwidget.dart @@ -0,0 +1,42 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:todoapp/modals/editlistmodal.dart'; +import 'package:todoapp/providers/todoprovider.dart'; + +class TodoListWidget extends StatefulWidget { + const TodoListWidget({super.key, required this.title}); + + final String title; + + @override + State createState() => _TodoListWidgetState(); +} + +class _TodoListWidgetState extends State { + @override + Widget build(BuildContext context) { + ButtonStyle buttonStyle = context + .read() + .selectedList == widget.title ? const ButtonStyle() : const ButtonStyle( + backgroundColor: WidgetStatePropertyAll(Color(0x00000000))); + + return FilledButton.tonal( + onPressed: () { + context.read().changeList(widget.title); + Navigator.pop(context); + }, + onLongPress: () { + EditListModal.add(context, widget.title); + }, + style: buttonStyle, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + const Icon(Icons.list), + const SizedBox(width: 10), + Text(widget.title) + ], + ), + ); + } +} diff --git a/lib/modules/todowidget.dart b/lib/modules/todowidget.dart new file mode 100644 index 0000000..a6b2a85 --- /dev/null +++ b/lib/modules/todowidget.dart @@ -0,0 +1,34 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:todoapp/modals/edittodomodal.dart'; +import 'package:todoapp/providers/todoprovider.dart'; + +class TodoWidget extends StatefulWidget { + const TodoWidget({super.key, required this.checked, required this.title}); + + final bool checked; + final String title; + + @override + State createState() => _TodoWidgetState(); +} + +class _TodoWidgetState extends State { + @override + Widget build(BuildContext context) { + return GestureDetector( + onLongPress: () { + EditTodoModal.add(context, widget.title); + }, + child: CheckboxListTile( + value: widget.checked, + title: Text(widget.title, + style: widget.checked + ? const TextStyle(decoration: TextDecoration.lineThrough) + : const TextStyle()), + onChanged: (value) => + {context.read().setTodoState(widget.title, value!)}, + ), + ); + } +} diff --git a/lib/pages/Home.dart b/lib/pages/Home.dart new file mode 100644 index 0000000..c936cd5 --- /dev/null +++ b/lib/pages/Home.dart @@ -0,0 +1,29 @@ +import 'package:flutter/material.dart'; +import 'package:todoapp/modules/actionbutton.dart'; +import 'package:todoapp/modules/appbar.dart'; +import 'package:todoapp/modules/body.dart'; +import 'package:todoapp/modules/drawer.dart'; +import 'package:provider/provider.dart'; +import 'package:todoapp/providers/todoprovider.dart'; + +class Home extends StatefulWidget { + const Home({super.key}); + + @override + State createState() => _HomeState(); +} + +class _HomeState extends State { + @override + Widget build(BuildContext context) { + return FutureBuilder( + future: context.read().readListsFromDisk(), + builder: (context, snapshot) => const Scaffold( + appBar: TodoAppBar(), + body: Body(), + drawer: TodoDrawer(), + floatingActionButton: TodoActionButton(), + ), + ); + } +} diff --git a/lib/providers/todoprovider.dart b/lib/providers/todoprovider.dart new file mode 100644 index 0000000..454650c --- /dev/null +++ b/lib/providers/todoprovider.dart @@ -0,0 +1,141 @@ +import 'dart:io'; + +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:todoapp/elems/filehandler.dart'; +import 'package:todoapp/elems/todo.dart'; +import 'package:todoapp/elems/todolist.dart'; +import 'package:todoapp/modules/todolistwidget.dart'; +import 'package:todoapp/modules/todowidget.dart'; + +class TodoProvider extends ChangeNotifier { + TodoProvider() {} + + Future readListsFromDisk() async { + Map js = await FileHandler.fileContent; + + for (String key in js.keys) { + todoLists[key] = TodoList(title: key, widget: buildTodoListWidget(key), todos: []); + + for (String key2 in js[key].keys) { + todoLists[key]!.todos.add(Todo(title: key2, widget: buildTodoWidget(key2, js[key][key2]), checked: js[key][key2])); + } + } + + todos = todoLists[selectedList]!.todos; + + notifyListeners(); + } + + Map todoLists = {}; + List todos = []; + String selectedList = "Personal"; + + void renameList(String oldTitle, String newTitle) async { + TodoList tempList = todoLists[oldTitle]!; + tempList.title = newTitle; + tempList.widget = buildTodoListWidget(newTitle); + todoLists.remove(oldTitle); + todoLists[newTitle] = tempList; + selectedList = newTitle; + todos = todoLists[newTitle]!.todos; + + await FileHandler.renameList(oldTitle, newTitle); + + notifyListeners(); + } + + void removeList(String title) async { + todoLists.remove(title); + selectedList = "Personal"; + todos = todoLists["Personal"]!.todos; + + await FileHandler.removeList(title); + + notifyListeners(); + } + + void addList(String title) async { + TodoList list = + TodoList(title: title, widget: buildTodoListWidget(title), todos: []); + todoLists[title] = list; + + await FileHandler.addList(title); + + notifyListeners(); + } + + void changeList(String title) { + if (!todoLists.containsKey(title)) { + return; + } + + selectedList = title; + todos = todoLists[title]!.todos; + notifyListeners(); + } + + Future writeTodoChanges() async { + Map js = {}; + + for (Todo t in todos) { + js[t.title] = t.checked; + } + + print(js); + + await FileHandler.saveList(js, selectedList); + } + + void addTodo(String title) async { + todos.add(Todo( + title: title, checked: false, widget: buildTodoWidget(title, false))); + + await writeTodoChanges(); + notifyListeners(); + } + + void removeTodo(String title) async { + Todo todo = todoByTitle(title); + todos.remove(todo); + + await writeTodoChanges(); + notifyListeners(); + } + + void updateTodo(String oldTitle, String newTitle) async { + Todo todo = todoByTitle(oldTitle); + todo.title = newTitle; + todo.widget = buildTodoWidget(newTitle, todo.checked); + + await writeTodoChanges(); + notifyListeners(); + } + + void setTodoState(String title, bool checked) async { + Todo todo = todoByTitle(title); + + todo.checked = checked; + todo.widget = buildTodoWidget(title, checked); + + await writeTodoChanges(); + notifyListeners(); + } + + TodoListWidget buildTodoListWidget(String title) { + return TodoListWidget(title: title); + } + + TodoWidget buildTodoWidget(String title, bool checked) { + return TodoWidget(checked: checked, title: title); + } + + Todo todoByTitle(String title) { + for (Todo t in todos) { + if (t.title == title) { + return t; + } + } + return Todo(title: "None", widget: const SizedBox(), checked: false); + } +} diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..0cfa168 --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,309 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" + source: hosted + version: "1.1.1" + collection: + dependency: transitive + description: + name: collection + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + url: "https://pub.dev" + source: hosted + version: "1.18.0" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 + url: "https://pub.dev" + source: hosted + version: "1.0.8" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + ffi: + dependency: transitive + description: + name: ffi + sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" + url: "https://pub.dev" + source: hosted + version: "2.1.3" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c" + url: "https://pub.dev" + source: hosted + version: "4.0.0" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" + url: "https://pub.dev" + source: hosted + version: "10.0.5" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" + url: "https://pub.dev" + source: hosted + version: "3.0.5" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + lints: + dependency: transitive + description: + name: lints + sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235" + url: "https://pub.dev" + source: hosted + version: "4.0.0" + matcher: + dependency: transitive + description: + name: matcher + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + url: "https://pub.dev" + source: hosted + version: "0.12.16+1" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + url: "https://pub.dev" + source: hosted + version: "0.11.1" + meta: + dependency: transitive + description: + name: meta + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + url: "https://pub.dev" + source: hosted + version: "1.15.0" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + path: + dependency: transitive + description: + name: path + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" + source: hosted + version: "1.9.0" + path_provider: + dependency: "direct dev" + description: + name: path_provider + sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378 + url: "https://pub.dev" + source: hosted + version: "2.1.4" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: "6f01f8e37ec30b07bc424b4deabac37cacb1bc7e2e515ad74486039918a37eb7" + url: "https://pub.dev" + source: hosted + version: "2.2.10" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 + url: "https://pub.dev" + source: hosted + version: "2.4.0" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + platform: + dependency: transitive + description: + name: platform + sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" + url: "https://pub.dev" + source: hosted + version: "3.1.5" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + provider: + dependency: "direct dev" + description: + name: provider + sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c + url: "https://pub.dev" + source: hosted + version: "6.1.2" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" + source: hosted + version: "1.10.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + url: "https://pub.dev" + source: hosted + version: "1.11.1" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + url: "https://pub.dev" + source: hosted + version: "2.1.2" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + test_api: + dependency: transitive + description: + name: test_api + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" + url: "https://pub.dev" + source: hosted + version: "0.7.2" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" + url: "https://pub.dev" + source: hosted + version: "14.2.5" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d + url: "https://pub.dev" + source: hosted + version: "1.0.4" +sdks: + dart: ">=3.5.2 <4.0.0" + flutter: ">=3.22.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..408a9c0 --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,92 @@ +name: todoapp +description: "Simple Todos" +# 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 is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.0+1 + +environment: + sdk: ^3.5.2 + +# 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.8 + +dev_dependencies: + flutter_test: + sdk: flutter + provider: + path_provider: + + # 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: ^4.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 packages. +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/to/resolution-aware-images + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/to/asset-from-package + + # 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/to/font-from-package diff --git a/test/widget_test.dart b/test/widget_test.dart new file mode 100644 index 0000000..c7fd942 --- /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 in the flutter_test package. 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:todoapp/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); + }); +}