From 3576785dc5145e944ef78f93229ed461af5ca46f Mon Sep 17 00:00:00 2001 From: otbenjello Date: Thu, 9 Nov 2023 10:49:31 +0100 Subject: [PATCH 1/2] commit --- android/app/src/main/AndroidManifest.xml | 2 + assets/font/Poppins-Bold.ttf | Bin 0 -> 153944 bytes assets/font/Poppins-Medium.ttf | Bin 0 -> 156520 bytes assets/font/Poppins-Regular.ttf | Bin 0 -> 158240 bytes assets/img/Activity_tab.svg | 5 + assets/img/Activity_tab_select.svg | 9 + assets/img/Camera_tab.svg | 5 + assets/img/Camera_tab_select.svg | 9 + assets/img/Home_tab.svg | 3 + assets/img/Home_tab_select.svg | 9 + assets/img/Profile_tab.svg | 4 + assets/img/Profile_tab_select.svg | 9 + assets/img/Search_tab.svg | 4 + assets/img/SleepGraph.png | Bin 0 -> 11490 bytes assets/img/bg_dots.png | Bin 0 -> 8690 bytes assets/img/black_btn.png | Bin 0 -> 599 bytes assets/img/email.svg | 4 + assets/img/google.png | Bin 0 -> 760 bytes assets/img/lock.svg | 5 + assets/img/logoSM.svg | 604 ++++++++++ assets/img/more_btn.png | Bin 0 -> 423 bytes assets/img/notification_active.png | Bin 0 -> 1505 bytes assets/img/on_1.svg | 56 + assets/img/on_2.svg | 55 + assets/img/on_3.svg | 76 ++ assets/img/p_achi.png | Bin 0 -> 2003 bytes assets/img/p_activity.png | Bin 0 -> 2422 bytes assets/img/p_contact.png | Bin 0 -> 2056 bytes assets/img/p_next.png | Bin 0 -> 572 bytes assets/img/p_notification.png | Bin 0 -> 1844 bytes assets/img/p_personal.png | Bin 0 -> 1811 bytes assets/img/p_privacy.png | Bin 0 -> 2020 bytes assets/img/p_setting.png | Bin 0 -> 2478 bytes assets/img/p_workout.png | Bin 0 -> 1989 bytes assets/img/show_password.svg | 7 + assets/img/sleep_graph.png | Bin 0 -> 6488 bytes assets/img/sub_menu.svg | 5 + assets/img/suunto.png | Bin 0 -> 30802 bytes assets/img/u1.png | Bin 0 -> 44476 bytes assets/img/user_text.svg | 14 + assets/img/workout1.svg | 43 + ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Podfile | 44 + ios/Runner.xcodeproj/project.pbxproj | 154 ++- .../contents.xcworkspacedata | 3 + ios/Runner/AppDelegate.swift | 4 +- ios/Runner/Base.lproj/Main.storyboard | 13 +- ios/Runner/Info.plist | 4 + lib/Modele/Mds/DeviceConnectionStatus.dart | 3 +- lib/Modele/Mds/DeviceModel.dart | 3 +- lib/Modele/Mds/device.dart | 3 +- lib/Modele/Mds/manager_state_watch.dart | 3 +- lib/View/activity/activity.dart | 28 + lib/View/home/activity_tracker.dart | 431 +++++++ lib/View/home/blank_view.dart | 19 + lib/View/home/home_view.dart | 1072 +++++++++++++++++ lib/View/home/notification_view.dart | 87 ++ lib/View/login/login_view.dart | 201 ++++ lib/View/login/signup_view.dart | 233 ++++ lib/View/main_tab/main_tab_view.dart | 121 ++ lib/View/main_tab/select_view.dart | 63 + lib/View/map/my_map.dart | 154 +++ lib/View/map/test.dart | 117 ++ lib/View/on_boarding/on_boarding_view.dart | 118 ++ lib/View/on_boarding/started_view.dart | 68 ++ lib/View/profile/profile_view.dart | 354 ++++++ lib/common/colo_extension.dart | 18 + lib/common_widget/dates.dart | 80 ++ lib/common_widget/graph.dart | 187 +++ lib/common_widget/helpers.dart | 22 + lib/common_widget/info.dart | 66 + lib/common_widget/latest_activity_row.dart | 61 + lib/common_widget/notification_row.dart | 59 + lib/common_widget/on_boarding_page.dart | 54 + lib/common_widget/round_button.dart | 75 ++ lib/common_widget/round_text_field.dart | 48 + lib/common_widget/setting_row.dart | 41 + lib/common_widget/stats.dart | 197 +++ lib/common_widget/steps.dart | 33 + lib/common_widget/tab_button.dart | 40 + lib/common_widget/title_subtitle_cell.dart | 50 + lib/common_widget/today_target_cell.dart | 67 ++ lib/main.dart | 26 +- linux/flutter/generated_plugin_registrant.cc | 4 + linux/flutter/generated_plugins.cmake | 1 + macos/Flutter/Flutter-Debug.xcconfig | 1 + macos/Flutter/Flutter-Release.xcconfig | 1 + macos/Podfile | 43 + macos/Runner.xcodeproj/project.pbxproj | 98 +- .../contents.xcworkspacedata | 3 + pubspec.yaml | 33 +- .../flutter/generated_plugin_registrant.cc | 3 + windows/flutter/generated_plugins.cmake | 1 + 94 files changed, 5500 insertions(+), 42 deletions(-) create mode 100644 assets/font/Poppins-Bold.ttf create mode 100644 assets/font/Poppins-Medium.ttf create mode 100644 assets/font/Poppins-Regular.ttf create mode 100644 assets/img/Activity_tab.svg create mode 100644 assets/img/Activity_tab_select.svg create mode 100644 assets/img/Camera_tab.svg create mode 100644 assets/img/Camera_tab_select.svg create mode 100644 assets/img/Home_tab.svg create mode 100644 assets/img/Home_tab_select.svg create mode 100644 assets/img/Profile_tab.svg create mode 100644 assets/img/Profile_tab_select.svg create mode 100644 assets/img/Search_tab.svg create mode 100644 assets/img/SleepGraph.png create mode 100644 assets/img/bg_dots.png create mode 100644 assets/img/black_btn.png create mode 100644 assets/img/email.svg create mode 100644 assets/img/google.png create mode 100644 assets/img/lock.svg create mode 100644 assets/img/logoSM.svg create mode 100644 assets/img/more_btn.png create mode 100644 assets/img/notification_active.png create mode 100644 assets/img/on_1.svg create mode 100644 assets/img/on_2.svg create mode 100644 assets/img/on_3.svg create mode 100644 assets/img/p_achi.png create mode 100644 assets/img/p_activity.png create mode 100644 assets/img/p_contact.png create mode 100644 assets/img/p_next.png create mode 100644 assets/img/p_notification.png create mode 100644 assets/img/p_personal.png create mode 100644 assets/img/p_privacy.png create mode 100644 assets/img/p_setting.png create mode 100644 assets/img/p_workout.png create mode 100644 assets/img/show_password.svg create mode 100644 assets/img/sleep_graph.png create mode 100644 assets/img/sub_menu.svg create mode 100644 assets/img/suunto.png create mode 100644 assets/img/u1.png create mode 100644 assets/img/user_text.svg create mode 100644 assets/img/workout1.svg create mode 100644 ios/Podfile create mode 100644 lib/View/activity/activity.dart create mode 100644 lib/View/home/activity_tracker.dart create mode 100644 lib/View/home/blank_view.dart create mode 100644 lib/View/home/home_view.dart create mode 100644 lib/View/home/notification_view.dart create mode 100644 lib/View/login/login_view.dart create mode 100644 lib/View/login/signup_view.dart create mode 100644 lib/View/main_tab/main_tab_view.dart create mode 100644 lib/View/main_tab/select_view.dart create mode 100644 lib/View/map/my_map.dart create mode 100644 lib/View/map/test.dart create mode 100644 lib/View/on_boarding/on_boarding_view.dart create mode 100644 lib/View/on_boarding/started_view.dart create mode 100644 lib/View/profile/profile_view.dart create mode 100644 lib/common/colo_extension.dart create mode 100644 lib/common_widget/dates.dart create mode 100644 lib/common_widget/graph.dart create mode 100644 lib/common_widget/helpers.dart create mode 100644 lib/common_widget/info.dart create mode 100644 lib/common_widget/latest_activity_row.dart create mode 100644 lib/common_widget/notification_row.dart create mode 100644 lib/common_widget/on_boarding_page.dart create mode 100644 lib/common_widget/round_button.dart create mode 100644 lib/common_widget/round_text_field.dart create mode 100644 lib/common_widget/setting_row.dart create mode 100644 lib/common_widget/stats.dart create mode 100644 lib/common_widget/steps.dart create mode 100644 lib/common_widget/tab_button.dart create mode 100644 lib/common_widget/title_subtitle_cell.dart create mode 100644 lib/common_widget/today_target_cell.dart create mode 100644 macos/Podfile diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 9cbac3c..9fe0770 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -29,6 +29,8 @@ + diff --git a/assets/font/Poppins-Bold.ttf b/assets/font/Poppins-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..00559eeb290fb8036f10633ff0640447d827b27c GIT binary patch literal 153944 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%0AC7VmlS@LZ-TEZV}oirP&oT11@@uCp8_l( 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 + + + + diff --git a/assets/img/Activity_tab_select.svg b/assets/img/Activity_tab_select.svg new file mode 100644 index 0000000..2db3444 --- /dev/null +++ b/assets/img/Activity_tab_select.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/img/Camera_tab.svg b/assets/img/Camera_tab.svg new file mode 100644 index 0000000..96879b2 --- /dev/null +++ b/assets/img/Camera_tab.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/img/Camera_tab_select.svg b/assets/img/Camera_tab_select.svg new file mode 100644 index 0000000..0829dbf --- /dev/null +++ b/assets/img/Camera_tab_select.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/img/Home_tab.svg b/assets/img/Home_tab.svg new file mode 100644 index 0000000..92f7447 --- /dev/null +++ b/assets/img/Home_tab.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/img/Home_tab_select.svg b/assets/img/Home_tab_select.svg new file mode 100644 index 0000000..0845568 --- /dev/null +++ b/assets/img/Home_tab_select.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/img/Profile_tab.svg b/assets/img/Profile_tab.svg new file mode 100644 index 0000000..d35c124 --- /dev/null +++ b/assets/img/Profile_tab.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/img/Profile_tab_select.svg b/assets/img/Profile_tab_select.svg new file mode 100644 index 0000000..cdb3acc --- /dev/null +++ b/assets/img/Profile_tab_select.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/img/Search_tab.svg b/assets/img/Search_tab.svg new file mode 100644 index 0000000..ba4aefd --- /dev/null +++ b/assets/img/Search_tab.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/img/SleepGraph.png b/assets/img/SleepGraph.png new file mode 100644 index 0000000000000000000000000000000000000000..aa4bda1be78da2ef8d67dc1fa798588f30d1fd85 GIT binary patch literal 11490 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 literal 0 HcmV?d00001 diff --git a/assets/img/bg_dots.png b/assets/img/bg_dots.png new file mode 100644 index 0000000000000000000000000000000000000000..eca6f23f5dbfb987655825370acbde57883a9092 GIT binary patch literal 8690 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 literal 0 HcmV?d00001 diff --git a/assets/img/email.svg b/assets/img/email.svg new file mode 100644 index 0000000..7cccbd9 --- /dev/null +++ b/assets/img/email.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/img/google.png b/assets/img/google.png new file mode 100644 index 0000000000000000000000000000000000000000..0a765fa83035d0f137b6b0abeaebefcb83aad5c2 GIT binary patch literal 760 zcmVyEgt`Yqn?)~of{eHjiJNKM}U>n5U4kevP zDD82xNv9y%?(B%KTw5{Rt>Epc!=qLlEfH|UE zey1Tg^Vpcg#*dim*lhsj{R=aJX3E$}s5arU%hm@BCZL=V28I_z$bUf_V$3dL%3!iF zG<&t8VZ6KJV0K+rMOQ=N8z45YHxN;cf+c5Xmn`AS4S~oYR6yQP_mk_|bmREi$HqcB zn$qh!T2%8Lt!kJJka_-U&ql3Od)I{J71F8%BR}CEfY=l$Ii17{30;%JmYy}oR^q99 zsY!Dy77mSAy>gl#R~htTTCUR1ecpKfM_K6A<9K{6H2+CvrfFg*YWG0GUdP zXjzVJo(cx+_Xdq46CiUu=$y;e!%)%&tF*=$x%5&66FBZBTo}uKL&L$)uyr)QWPVuR zJkk!qz{&|&WkeJwj=pxA-WH6d@seRB`hLTgLx|;dNo@s3?Vzt)kAHpA0+KCCs0Z; zX;p`6qk=9KbiZDGpWo*>f_Mu@i6KJG{LwBJ!s7$^9$16y&gpzv*4p}~My#q~Wu>q^ zKi|hCx0vBxS3v?}?3uanB2?195>xyq9Z6>xgBzUDURuSofb_T48ak$)^OfE8iiSpX qJ-kN9uH=3ZYkNrS>)9tMGyWfn8R0=~t`^n+0000 + + + + diff --git a/assets/img/logoSM.svg b/assets/img/logoSM.svg new file mode 100644 index 0000000..07707ba --- /dev/null +++ b/assets/img/logoSM.svg @@ -0,0 +1,604 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/more_btn.png b/assets/img/more_btn.png new file mode 100644 index 0000000000000000000000000000000000000000..107a1e8e7d25b170c9715b68de38ca013ad531ee GIT binary patch literal 423 zcmeAS@N?(olHy`uVBq!ia0vp^B0$W+!N$PA*f;BaHITzt9OUlAu6!sQHp^Tqy&iV7^UHCH%1KxX0SLD14DZz0}E7*ACLxt2|x_e1EHB0FhW%W z#TGEZRf{ZOhO;?9+KxIH-3L;f1s;*b3=CqbAk63)r1AkMc*4`gF+@YOHSjd=Ap;)Y z#eNf*IYiSQ9J9kTPDAD`LNZ26Xc>xrU07Kwe>|+`;jOjT_Ik=I zX|c^d{@XNhMegHSxl`*1Cr;2Ubm!3MurSR(zR=G3K^Ie9#U1aL^Q=40XVlGV zmkrENq%*UQsBQcnZ4kn`trr3HprcK z;yEOK@$I##Y{&-U4hlxxzp*mg$5zagtdruk%F$m!nXY9@Dcu`TAChf!g`s|J`spgFLm-O76lomq z!|lmA5s@{;#6;lny;}Q-C{xi`?Ycl#v_`ck$xaH4en7?cT)R5z8qj0*cFTo9JIZ}Y8NiS0}z5_+Gw(yz_Y+IzVJfsfmp zc}i!W5DTF?@M7QtA^nw`svXvbayp53VkJ{QiEdQzwoEs7Bv9k*;mgLl<4?ZmaS zQg2rckeH#Ro;k0NV$rV^<^VC7wv_E99F8fHDZ?S8*pIW!REvp$^|%{4_{;2fu);pB z6+gSABxbW}F1`sNLDOgW_t7#h*WK9Aiz5-_YuF#YZeaqGPQjA4@h0PVY~HPdHc z;vNz00;zVIEj_Rce=BS>6sCe`k{e%|v5tTL>ImH2hcXo;=aJ)-9yAfh9-c(SN1c3H zf-UpTVib@a#oP_=rPEd#uZ*c_gm`~;uLz~b6v{~zEOr*HEPX$9FMIifzpRCY^A87( z+1E=?%xS(=Hpdn%g*tAKYGkM1@H{&BUL7_5{+jm76<a?pBndcz zkkMN{ZNTeh=q#02geOcA8f2w|BkSHVJ1{mg$mUNTVZw&4K1~r?@|1Sri~U7C7B;lG z&sKAmv!#hWc;hmnbj^~4qzqSKV=yB?E491b+Q`^*yOfmwW@DhO(5_o)x01?pnM&~* zw!d?Y+)JvTydTLtn$)USJly=H0+Dp*-}-U$;K2u z@zbZNlw2F7R8`2oZ!SxktIInO2a1g-VuNP3HkFGkH<5(z0 zMJ-ZI=NB_V;zR~tEvmXEraaLOPGC#jG4@M2Q{fWaQsvmV1#q!+HpV zAOBJ``i_aLYph7kGfG|vTlo9#U=*SCD9*O|?esi0vett9eL)pl1W@flbjE27T za_~soygx050EO66A waj)em*jQjo^~{xV)3sIp5WX}59eyom8!W-8>@5=QjNN&aSd5EZCHeyCU-j;w6#xJL literal 0 HcmV?d00001 diff --git a/assets/img/on_1.svg b/assets/img/on_1.svg new file mode 100644 index 0000000..076cf1b --- /dev/null +++ b/assets/img/on_1.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/on_2.svg b/assets/img/on_2.svg new file mode 100644 index 0000000..fce3f8f --- /dev/null +++ b/assets/img/on_2.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/on_3.svg b/assets/img/on_3.svg new file mode 100644 index 0000000..30dcb79 --- /dev/null +++ b/assets/img/on_3.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/p_achi.png b/assets/img/p_achi.png new file mode 100644 index 0000000000000000000000000000000000000000..556d0b14eaf3f95acca81ab42c70dbffa6178d68 GIT binary patch literal 2003 zcmX|Cc{me{AK&I4OB0Goj*am)=NOT!9J9rih!L+NSA=Y0p;vP!V~L0)XL5#KD?-Yu zku3N5=1PlDgb**k-~04^p3n0+p3mp+ZxYGI5(1V50{{Ss70%3dmlbva7ZwBnfcNKx zsk;V9v9&x2sOpmA?V4~eM=Nh@Yk>N$76$MGWdQUk(BQ68r%C z|8;D3dGFG8vA6j@^W_8oYwu?Hpx;Y(H3ts{N z1Xrxguy&3j?;QOD?9KP*8P5LAzNlOPMSK)bOTcSso2FslNKIu$rh+hb{Jn&PMEjqy zW~W+@2-g>jD_HP*D7~j!m?Gl};6D;@-J~=&zd*Y}cjjtd-4v#Ac67X%@G*g~I5tFE z?3|x>O+01{X5ffks~$;O=nQb(wV4G`^IKE`=u6RDzvTj!>}3vS5Z*s)Nz~Edohj`t z#H%1HRq@mE!heZuYd7R4##~sZOQ{)qnbjIlCIB{UX)uGc?Ebv$#=w=X6Ug)r(4UA8 zno(n7UH|;?tKxt_!Zgp@PJ#X`m_S%(vo4hu6W#sR$(~2gY!8$SPlE9&Xasw%DaOJW zJXZVBD4Rv|(K1o_a#Zj-SM#up43(L;OzSb>@l<&mAIc&f;toh^cgl1*$oao)hy_8I zNd>w}FI*HuQ5BiPx!Kn;b%7d(mlJ9s5i!QM+#j|nQPyHQmQZ@77ZtOyCsR@P7cjU> zni&hgjv$5g0(>D+O!tu`T4_Vot~opxV^@h-DX%#VM|+Raq0KITR6S=p(7{l$k3esw zK;c&3W0HF|b7@})&Dr-Sx@Bnmwx$@X#qxW4-63=Jb2V0?5|TwQa_C&~Vb`yar>NEO8>T=; z86-t{vkxsLfIbbf8&ckWOMO5cl)r?;_DIl$)P^Gpxdw@N+r<88oJB*oudlXL=2`J) zLezVkpNoRK(9IS3`{uB3SWoP*PTvAIfnRmg@b&lbxr3Z&>*54GSlKA+te}%$`3r2- zks`G$Ox9*e)-Y%i)-wm=J#s`YKOYDh3TV!E z3RvRmqZ2VHS+0-27`1uULLgdBGX~M0Wms51;a5~@>|xE|_(0q7iKVG635wCVZZ54y zBdjo-pt5n~3%2cRb3tKSPFUQ)gp4bg>o*$WcvacHWq1_ahjp(^sbI6CNLA|xXdrax zufVRxYgh2sLC5}%L{#hKFy*dh3!eYjp7F_7vfu)|2}|5)q^Q(XqKeVI!LJSy+h;z= zsL6{;MM1x7D7mUQIhk2dv9Z8|e(fc`(OA>hn9o(1?C0v?Q32e!NHvK-v|fmtf7#6? z^6JTLwepdL0TYIXqH!N9>7MlnUIF}UPJKa9$Z?09J39fw6!kGH4azyU)?*M;v{Uou z9AFc>3t-3}pH4#4xHuCD-QzdOf95K_g~D4fD}8X#g7yxonc+D6`h~?IdAivSirmX{ zhdIDRRhMQE2bxTT+1JeA<>Tq;H^L5mo zHgj)RkA=3jv$(3tD^Zj+PO?7ejeRMSXpd4us^95IlKuIzm!oH#RxJP@phtY#D0v@K zhx*nK=Xw881!`JGGtQ<8c9Dsc9=Yh(d8BRi;3-1=Cfhtn78MfpbWnH@Y~5(T;LM8> zbt~jPu7P%M`SY_fgeC9md4+QzJ(gLU(XbkQ$2ITxwnOKdT%n5g36qfXhRK@x%S4_q z>-$rsUi(;IwwRf>bSh!|0Tu_7J?t960#CiDd6jEw0PS`ZYV9VTcQK5qeig~nbyAmb z%eg^my(;%Jt?SUsI#>7JBVUc1#u*W0=tzR{{ChKj7wIDg$xJwTf&b6GlvslD=`Z=0f=CiEK zxZq$<&(Dl#yPr?_wdEt=vhap@r-Y4J%&dBd*?NDS1}pW^_4?L7&(X@<#;oe38~tBdUw@7O literal 0 HcmV?d00001 diff --git a/assets/img/p_activity.png b/assets/img/p_activity.png new file mode 100644 index 0000000000000000000000000000000000000000..418e7a15fe9362315a1090a0dd183166eabc646f GIT binary patch literal 2422 zcmYLLcQhLcA5GATPyAct%sAR-U4${U}d=U%)0M6;5w9HRf@)V%6 z001zHy@LD10E5kSH33BGrIiyC;fdDsGBN_loM;e$4R{f7<}`8wb)d+NhTafwWBl`IB8tH{)+mRp=> zl`C~3UH86<;*jtQg2rg0FTn#rF1F(bOY)gJaSUq4xV|IUP5MT?4#g%@#9-GUY0QnS z@K*WR@c=~LZP7uG-Ga!CH%kSP1>s1(*nSRt!U)3}!ztBZ@A%cF#62jFzX|D3MHJw5 z1Z|CmT~Vo=SSE7dlSajYMM8EOJ)LTy`7}{jpjX?}v!~STj7i7ZeEp=`e(~RXO9h?M zJ8qntnAQ0d^s(PHyup0Yf#gma$0J4S#=ct0Og-7LV{Y`xqgveiBf!oKC)Jx4y47X zL5PQ~_sT7*@=DUNy(D6$l>%(O%PV3pcDT2Nb|z&Zq&IBe{$A4|&p5-4;VGOQTB+uw zwN95g$D-aBHu>xQF>iRVmJUP}Oe!;d%_upD?)fus<6&1^&ArC2qOJZr zt-+?|5LPfM0t^Nx4kG$$h|Pz<8S-?SB5z>a4~=g5ttdR(E*s^e!YEw7zo$?`E|XYR zTVwWDlT>i<5sCWBV2I=n{gjDto!_b|Yo@Q%2^$+rZ&hg(^Ojr(6?b_A2e`>d6k@Kk z5w(04g>LnU&7%?q?>cgW>`*MKLWIkL=C{^xE(N6@NfLD>;Ui{2%W8`bgdVgwwQni+ zYa-pXLB1FKjpNK%(-+=PeM;9Rf87DERvL(v4N7M;GoRKa^oXNt6W)Jl*m2!uhnMs6 zTI|J(`dZS*t$ZLA==RMbIf6ihNjl^&wQ(HJUme3nmpL>u$ewZTmHFhAsHO~+YGgNb z1Fa@Wr5~Z05Zn0POwW=2-%EnDmSyZCpAVaAD!+An1<6t!+IY!g>J&TVTqV$x>joG5 zV7sSK2;26YXTeua7n3TeqCSt*NPa3wdOx$Te=MF|FmD zt3=@z7hu8wYuv-%=2b5QQMEl`v>^5=v0I2lnftM6?PKeK+P5fQ@MJj+B%N(t(J9G7rljlcy!D2^m`CeKf{B6ev_E3n zyBGj`m4)zCCTDMFQ{F4f&5CDTi10nURtQniwVDE2B)?+hDqYvNQB7VPl@rz{I~s(1dRj*DhL|7HEf4LP;;mS5JAoV3>b2ru_B6I{`g&TGd9$K|H9iYURHFofZc zkQEPlRUq@ugLW8MXa{y}Go`g`c{8#3CV%kWAZ~O!2~~_cZ&dFjHNUST+A%YX!Cq>P z?#s;b&%*gY+v50VGzHgnz7?7sU29sk1B_dO0`dvm6IPD~pv`jvEwDMTQv$5andTTP zu4+=h3dKH4&q{bQ;1zX@5O-;diEb3@Pp~keUtN+l0g?RCd!>;-J2Ej1lUrUFMxR<3 zmR~v(-88Um30D-X4B=(LdNYChhRuWKBFnzTH8|Ye2dMo^>ULX+Ndn%|dlV)jC`g0Ko%0D7==nYiNw8YHv zEK#^>9WD(Ky%%L)z3mJTP~6G5i+Im0&|HyFlZ_J266f`;IcO)-mtbgs&Yo+bgQ4Q#mtQ7{-Ji!LO|YZa9-2aVJA6U`mj|Cyp8r~ ze^iG_Rqg~r#@vpRQg(00=59|=7tCn=*20-7BR(M=&_fsV>BmLC@$e-r`20#!vEeyh z|MZS1gnaHFx@`DbK8O)x=qAzAB7$xeYzv)DzHACIX+TLo_SnfXT_tym(riKN)TOaP z#r1W*&C7Sns}m!-4RxGFh5o}#Qccn)SxtQY>ZV#vJx}R&?q2YcoPnbv3zo^97RJ*R z`V2YqrieLmAF>5jU*fBN{Aaj=ccLfGDP={+GX!&?rUw5lkY*%vd45DZN+nHo?seGX z1I}mle5-0_-^GD*`Y?wk4tl~ry`-^}=8LA=$2HAi^;obl#d5IL?f20_ki4_87^2MO zldOnilkUv9!cpcrBR$0GQSXs)X2+6k$bk_P|GrkIYC;+MlXlQg!A>A4jcqC8$UzUu znH!dkLdCi})0~2`l`?ogA)kO$&Az8tTYrSYO%TwXLV|>}gEh=DfqXT_^*y1JEPndG=xG~k5j9=n{stacesur< literal 0 HcmV?d00001 diff --git a/assets/img/p_contact.png b/assets/img/p_contact.png new file mode 100644 index 0000000000000000000000000000000000000000..1243afc4a63e6c86a76cf00c2f0fc52f247d3cd1 GIT binary patch literal 2056 zcmYLKc|6mNAO8+HhD6ML6k|p?qD77{Gjrx@(z28*WO7YnX|8EWaz!)OiX3@z=E|LV z@NCRdjuIWB5YfT>_&v|-c|Nb#`}ICv@AuyyinF7QC|C{*0D!118tJmbYP%5R2LMox zK>6Ms0}6Msu>@*{73Oyg(HCp$=imUqceEhD2a*H!>{fPQ29p0*qd+i#_y0K$0Hg#0 zeE)PDcX;D}26vKMZLga~NQZ~%ZncLB0>QCkK8 z0Zm(^g&S6=4;vWl<}TUsaY)i4>xA26ZeF;t2PQx6{Mm&t9`(UT(y2Alz;;lpj=o5Qqd<%fVh@z;@;P~ln-COt~QPVn$?MDCO#p(QB<`@%g#ZnwW}pYLFzh6t1Sv6Bsj`s_^m9SgaD;6K>xSqd_`9`btwzUIKGx zah)E7dzLw=qPop5Hagj*m0vje7Cfm8y%Z<@DpOA*rB-D-Vku3~J&&6_zZRBSXD(f= zH_ZvnalBHm}|EmsbOOd+VPb_GUD_NVcqC#f?hHaz?~$ z;W=W?n@-jVB8vWvH1ZGeBW4YEN$C=;k*jHge4!bO$b_3%x6DA2}h%CyXyPU#Fy%9oi8d+vW>PDdcjJfFruCNNw>ZIhmoH#)6|l`7rrU^(UCcnjRA zA03&NO_1wA_@z^P zRR@J{*WLod!-7rTtZghAPJ|X>S~0Za*y$m*TYZZ1(K*9T$FSHi!|VpxD9+W3=1{8- z{O-)Jl2y%J6*zpzIdDWzH47kHxh|rYhK>APiFD^;wnxFlsY*IkaeOAL5W>GF9fXy%8P`z7{m+L0;W@`qypG=>#d8 znV+>$`ZU`w?c6P*`IK;{)5I$U$og@C6A3Qb4Uxt^O`C#2ieR$I+nGp@?A0UDlJGn6 zR*oSg2led&@N5>-qb|@h%B92#Wt2Az-=Ahe4`P*LTAzsn0h4nK`oUPw4q;9~`$B+T z#aS+o;`^-E82HjCQWjrdo#Fa;uretoE9&lG)zY_%v7h357u^(fQ7U&LU?sxa3P{o; za~%(I1wZ}bSn3}drnkjhbSC^ZyW|h+Zv;XoQfN;xRcoPr)yl)V&j|BxR(`eB6dQNI zl(oh+bKg=bIgOHg2jr^1?O}s5)7gGT_pmuuKVx0whfJRvSU4?-9BxaIKr0D^3pH zfG|5&j<|!1uk>%1h$cQe8koRVU%KE1t|eyJ4R_Z+l^6!ff+2$#K6#=$-n|t;|HWcU;+?>^gw9l1&mPD zK(Pf(aMc0}nBi;*khW_pnkE4$&H|6fVg?2=RS;(M3{v?3G%eQC#WBP}aO;$feuoVN z+Rk$Z9c9rrX6|n=nsU8i`2sabB~@mf)a)rnpO_A4moTpM_^Nz>`v7wTOCbB>;_AGh z+lr1#r=Pz2_q*uhT%LgXPl2C=)-ZiqF|T0n;v1svH6q?~4fJ26+U(o-gqJl{^MuBP z!ny+~6)S2>isX)Ob1us1kq{}qWzTv2`DVr>XNFgMBvd5sF1)hp?E~MRCo7_6+`m|v zbKwtL=mg)(CH|a#C+}}Nm=~(}?w&ix{FWbbZpXL#Y`W zz&C}(ZenS`_0*qy2jUzLv2?FlUMly0%9(Te=Wb1N_2+f%*=T)tqtxdeI$W!({SWli z?mgOH6&`R$Fooeu<30uM3*t{$OIZJMeQ0XnJ%0J*=B?f#0o%_N2OeFK`Sw8M4$~y{ z1>TCKHyFNX<}j?YxF3Hi;7hDh%Zu)p*#;95x6U!-oc=1PN})>pH#75s8wUSm+i!tl N!PC{xWt~$(698m^$36f6 literal 0 HcmV?d00001 diff --git a/assets/img/p_notification.png b/assets/img/p_notification.png new file mode 100644 index 0000000000000000000000000000000000000000..ec50c03c2c0a54a425964119e3e16a9bb2f9502f GIT binary patch literal 1844 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 literal 0 HcmV?d00001 diff --git a/assets/img/p_privacy.png b/assets/img/p_privacy.png new file mode 100644 index 0000000000000000000000000000000000000000..3416e780b1f86f91bcdb687b8290ca5db063c903 GIT binary patch literal 2020 zcmX|Cc|6mNAOFq>Gg1k;njD!u=BniEaIOrG7)p-F3J)PRS|}QtvwCv1g&cFul{;dx zFd;)1PeV*zGL{@QJp6votIzB8e!Y*^`~CMP$-&NA93lq+06-jNW8t{NupOw1>;VAK z(*=>6I|dZyXnhu-4JdrwG5D*lC_gkB(A?1?fFMW?5ZbNmzzih+TU&uN0Pz2E0RTw2 z4ha6&vD@L@OW(on=Kl=N1O3ruA=oW0fA1IQf8dRVa&3nB%H64vkpC#xSWxdn1A=$K1o{(hoyVZi?pa9 zwe`4>ESn=%=+@SW%Oe(|7d8E_i%F?!xlZjhpF*6|o!35Ywl7^^q79e&xfzFTZfkHB zJlbj;ru3bxj~#fDt!8w-GT(YCg^Ncd5Sgnz0ti&NT+;c}bNZ&CAzL^WA~MnOlSz$S z(ir_@P4~m%#}@?rB|~a&S?W#rk^D<=*$2Lo8Fl*b39U7$q#;=SXyUWyy>I{iSc2;< z`0~r+X=;5op_5Q-jzrh@K8jW3pZII_XV*%#4+a%c^#MiKe_s@uc3r)hXEfKBW86&A zyM+!R|Cz=3<~To8+HEo86rCJD+zO8Gk3Li+*IStnz`-EH!nPCQ5jv2~6S!Wqa_vdm zz>Jn78G&gXXNOlB*6K9ZnImU-m&2gzp7#+3Nkc4z^sBMGjt=w&m$kldN{>~A_x|>H z(O2|AXM0XP=Jjg(J=>}ZUvusIJs`oQv3bbW8%>K}BNAMAY+GJlJM=A1rH6 zX|y~FwJxb%bPPc*)ma*V6J?+!6?~`MjA9HfX>_0Y^DjYL`ZTC0Fi>;$3twvrRi)qI z(rP7fWbKzf$EZ8@XVfIrhO1+|{H+0Kuy5##j8OPS;=G19k|~A8SN|@uo+?j>A;I=W+ez_*8gm(@)G~Gx=bWLu>wq|=0(PZe&6QqdBr$)+ zS5%WqK1A|N^`v+1}YLB@c5!z%>EeZ()yzt6R!B!w* zf&8TxSW%^ST5Pc98tCzxDQQ)f_qee&F~>JDMQh^_wJX4M`q3qiWgWQ62fuXho9)(w z?)#DaO6TGB($SUljM9@}1EgoqugXBlSiK9}$bgi5>?YYeNBR&g5rpOI?AxJm-i@;9tX_PgtRU~g;1K01 zYdwLwc*aO8K<;XeTjX_Q=cl_O89PIY^hhE6%a9E1*IqBgE+YT!ofRrEwe}y3gk^AE4GCF%EL&Y`@0t(W)f3SJoV^-^H!CqPIEKKPesi0P6~5h ztLNi45ex(+MuLH32_9d(<&U5FaExZPV(|_WYK$z#j_fhZyjFN$0!A`1CATz+plpS< z&mZvWYKfkp{~FQu;}lRiUhWS?_R?zgbt%_yGIdOrw|97xAVM9Pp{JG7GNfy$aBI}dJ&@rKen(S?i}+u$w2>St^__}TfTCa%jn zC#$Vngdqz_`KY1+Hd<)ua7OPzXVyl*=v(3J&NgKYK@F4JUqUQz&Pa=`*|?|aUR;KJ zSERO3#`}eJ(xf_m%za-_{iIE%_bvn(20Hwh?CG5SHY@T^kxW$7sGL#arQrD+M6Erf zxbCkQF&Zy#qvUj*6!GQqGxJ%0MDnWZkK&w9g252^1zR)H4p&&BgBbNn1{NPrU8$WMmu;{wmSz zwt*eqAIvGa%qKy;NZMVx3m45!MF+?R_c*H?`R4c(D&FVNvk$Ces|%uo_@hg&G8l4g zulz2gjSp`}t96|8?a+Qw2^oW$1pmWqZiUD5!*B0Yhx(K!lWN@VC3q-ej>)m_L6N6p85|AG t%PJls+MRQUCpWg4vN0;m(HecwwwQikXsWRNrt9vvL|NKd(9U|@{TFEpunzzL literal 0 HcmV?d00001 diff --git a/assets/img/p_setting.png b/assets/img/p_setting.png new file mode 100644 index 0000000000000000000000000000000000000000..9ff665c4e9b0e36da422e443b5a7c3dbd9356c82 GIT binary patch literal 2478 zcmX|DcQhM{8;!kcJ+CpIS~Y5KqC!Pd32lN9txc_}U8B+3JTeJMTN^o_p_i?mg%G^Gh&6!P!{_SOEY4yCDLGzF@Hnh%+++05p00 z6NVRt#vcvW2UHIVu3s3e%UwfPBoZKVp_u{nGy(vIUy%#w(){tCHlVo%p!?sR766EI z2hjhUL0#~#!Cl~2=l@JsK=W_Us|ky?msR5t7hN)4Rb*(z6eWy001cQ3p9pk z@tuoXJ{iIw=66{d?>zCv^zhI7e3Agi_|X?%@#L4YVyuwYaIY-6s?S^)s~-VOLz~Au zOrOD}pf&@nJeA ztAZ$ngou}0>Lk2=IRrS|Gr_^79fFtebSl8y>d^ zp+@TTf(H0oKL#u+j`f(OZ-SNM_rBDkgtq7+Zv*c(d0! zu4PiVsgJ9To8Z}KCu_lR=dY%azkrKv(tc#LE$t1i~^2LVeJv zHswt>r~E6wIXe&TqZe?**xLVtIs zNy9r!TQj%wcW{SABYN&R0edER+Pxf73E|8}13JGo6kT5|AZwcPddnxBALhi8P-puPSI99Kcb-&Iqg@Ilw#RiRmzZ7LUAC6wZZ(B5P|-ssd>?0#iknRXIg`| z3?5lEsbBl}jD^;b-1j8_^r&d0#~{3=4#qi1@n1Xw4kmfE-0u`A4h&r^DA-;SL64(7 zhP6Vt{Ju-y3oLl}ECWBV{Ekk>@(`Tr>xqfNY8}o#88r|q7jW3GbVl;>zCY4Pu;9)R zgMBeYf$+np>n#n4h>v`8u}5#a2zqANR>^C@3C20*;jHv)R&}N6+s_t0I>5VAk`Lav1Ytme$ zbu~lRug&Wsc3DCeLPqh$M<2|}Z{{qQZ{GW`%FRuwQN zh`!xE^i_Tl(2}p>Q!mtY?Q_o){ezWk%D3fYhw(6=Fy#H|RI#;A$Zv1GGWM!|Fs!xm zDS*qfy)VaHYKq*({7~icY&>=mUm6ffM#d2X&q@oimGwZo9F^P8!jU2#!o8?ZH}kMy zqi>+HFVDZubxVFAM`bm^@r%+KN%w2U6Elad^|v&~&s5$HlEu59^11EG!e%#6sgv*A z&3?Dk_rYeGhp9HudFQ7lZvkx(`cqof29BpbsfH9p?E#nM@qu=H)$|M}(`8;(xS!I) z)eVw`UGn$*JG#A?&v1}wucj8Ma$;eRDfaI?yFFF(<94MMZYJI{_PD?#EQ{$8P-b=_ zaVd!xg=9-DwcFF!*?g;7=Ja9i=UxSRBkgGSQKof$=`*P(@wt!Pt|p?(nA|=Udd9G+ zs&nU6W9bw%8873J(t^ImUF~|U_z_{{@dW~OF%%%zai9J@rlhd!$1=}Mgc0L!diZ^> zk`_kZ14LG@PVXg6l`gvDCN(q+&Xgw1ylrr*NAe7*Ahy#Udg-|zbJmIb^q3Dj{@&%t z!T#koXFZVtxO;=g%hJoesVHngR`=P8kb>T8uSbCsYN9qUc-?`-G;Zzot!H%bem5%1 zrtTwXFtSS@WejG6M%`|H71SRyaGwv{IJ1MNq7ZO*_ z6MRQ;$oh7`9cSQiUt+4W)%1X3!O<*3=b=0lZ*Qk}j$=1zuYn_5h{M#;Myat%HePhi zLXC65sc_BH)=6dRH*KcTPU?ew0$;7$F(hO#J?+WFNhd=2)M6**PY?r{^#yVMe5}O# zfIjBvTwu4#CK)>=b|QZhFE3l#6@x32x_do{SnP8mQ;3qLU+FFmQZ%MHa6h_Fn6ap4 z+o{UQ(fkUz{+q(9L#Aki#&e7=mQhng1T0`I~?&H*hgGC{u}bNSY4F%U+H%LQxs7-U$-9vmuoPV2%( zLV}6Rv+5)#7-t)|Mds3(7MH?s=u`zsC_mZ%iJitU$Lu)1aN^pZ*%cABaWcGC>EI5P zV%;^5-ga?FW#eE?Hk>Icpese>K&UtCxlt+T_5noFQh2`7j#SCEDJSHTa%`#*8h9nu zF)wq0f?1e+i3~q9rivtkauu^S}B>t9L%FAwpemr2HJ=t)Nbe80M+KvQ@mH zcG8Wq&2f}4bH}9dJjj zph6iwAPwYRT4Z|Lw&3P2_4l==icXS5i~iai8>Rqe4q5nC@@v{6H)t&(SNz%YgD?tbGH2EOIM0sn3VePx lL+W43)s`49QyO*?s-Oc|P%mV$>-pN=3|F-2>;Q#C0+4l&0#~s?|Yh+6W07=v?K*pBx zD*zxgXN<#KChcn?*;5!7#dA(KoKy|P(H%r|$$20R3D04Q3sQwdCC2f`%qW0*lBR4k+>($q|Rt`>*M$AP1V1Djo#Pv zKA27Um2sZho8i-Yo_ej|DY0^?ApUT07PZvVsV`A@%1as|1xqN5OuG5OV>@&XZGL@KMkCZj|{4`P8N9$9UZ-&J0RgdG^Xa6WW(3y4Crd4F# zXC1mSPols7%TvXut9jjFs%E83k1Z2UFmqiLJ>n`gGR&o#Cp?afp{}vtSu}l79e5Rm z=btXP?;eFtBe-z0X1Qb<=|sWuid+?Kdc)@AQ?K+~`;x5rl~~Kiv~88K>oLr4J&!gg zyfd0lL0?Kgt7Bw79v|i-RcxBk|?--PVhgFAzUxh%WT-x-NemCnGMy@9!j*ZtE|;ICY3qz?Y9j3@+oA1I8vSB$FSXa9j0GD(Mr8m%cY}Iy92|o78ViqG39NQaJ`>D{PR!9f@O~t>VN6 zIRnG&S8AL+E0=7qV1{sPB6Mx$;+w}Ab}34RgjOuc+paqF0X{&veLjC!=6q(D`SZ)l zC_b9@f`RM|NS?DRDU#36uY_Iy-hTDMsjc&+pSVx&_^6?I$;PYk=QLa6Z)X`K$)kSZ zgpyL=OWHD6xlzsGR?$Hg7?;xN)^QIMzS-Heeoy!sPT|{KwQ4%p%<|!3bV?AX{=;|W zXK%Z(`ceg=%Q162%h^fm*B5eEDQsnAn5Sse6vX_1h3*SEJW}?Yk5G05eT8j00}}0q zj+Wqzn5+BCLuY%WU5_=#CPCI<6gP4g>&g25T76MJX*Fj>S&DB6--4Ho;RQlx|aOd1*CbVs#O%aHs{0+kS8z*7c4v8%k!U@E^6IsS6pA*e_ zxr2M*ew*=q3*KgyP@>gXJ1=_R>Ih0pMb2&MAZZJG`xl`yv-%!;KrB$;_DHRLV$|_Lr(#i86&=+E5;cX=pa75I#(Zk=h(?SXTNO8 zi>N;GaLxq4yf1_+lz{SQ8tGxpT5nzR#ng0W^(vA!CQ}g)T-J=ftvvb*k%kmCfOyu4 zu>80fleV6X9|I>ZyovKU)a|VUcsTsAB0+5rR7dj$e-{m1?qT}Al zageGc!K9{Aa-oP*PE4mAgjPKn!l1tqQ$z+Ey+e;|HA&{v-Yn2OnKoBEEs zp6VMz{)AXJiPyePGh{B-V{-=7f4FaijWxXNi#+p%7Z5e$p74Be(I#J{ueepM1s>pX z^KlruZ^AmK{EYJ>Oye!xQd^w%y^de`+j)F`5mz^tF&G?uCxmk=2ON{Nr(eD7lcI?w z^CxGvMX+iexI|DelbK78A|m9(8?7g7hZegcZpn^mNodx8JgSA4gpSt@KTjM&n^IDn84$U&S=xr|bkNftYn~Bc{|}naj)L}vZReosgbuu2j0Rf Qp}X(U_#y#UjwOfx2b&IojQ{`u literal 0 HcmV?d00001 diff --git a/assets/img/show_password.svg b/assets/img/show_password.svg new file mode 100644 index 0000000..fda0dff --- /dev/null +++ b/assets/img/show_password.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/img/sleep_graph.png b/assets/img/sleep_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..1a603247aff3abf389cc96f7f3e08a209ceda2c7 GIT binary patch literal 6488 zcmZ8`WmFVi&^I6`Es_f?tkUgLvh*JmR~A@01*KbLMY_8dmW~yW4k_uSdjTm4K^k1T zLppqTzP<1BVP?*qbM8GiCVq1#QUea9AY~%O!^5Lce)CG}UOL?qocQ5A?>uK8z856U zZwy`V@W^QXm+8Gw5wzKa%A5wBtdxOG1uv{6t~z{9ITk=>XP;o$-HlwT?6c;N44 zkooBRs>7ZyZe(~`Q$OWVeyT~u74)3rC@?p-_&g=NxK)nre0s4oF57_2yt0xnhpxO< zZZKTq5C|2*o!+RL|1SGiuJ;ma+yo5+&FS3Qle(Ic(t8 zBN=tmSCt?4B17_%v|zji{~zl!PRjpVKDMj8cB|YY8??28)>&>N;uBhQgvfmuYS5O9 zussu$|F=^>QPSbt?Rp^YAj76ax)x?5`*}!EE@9kErJ`wuhMXE@ zmnIp8B*1oyXiOokbioRHL{ zoBijS=v5p6n^Is>4>N6HID~kN6H0r8%B21m#pc6an$F=$|71rzShtZI?{oo_4gi#rFca>pH{x(l#@A{uvql!L0oy!+{WGI}XDGAd`4}Mw^?R-4lCL!>C zdctAB_wty0YxDgZgM2r?OZRWTsytG}y(#Ri>{tL2F2=o7_D){r0%QF^6DH2TEprb2 z?TzMEaS3c?H*AE%>JbKe3A0*Km+tRLxmV~UJQ{UIpY^fP+}d){H&tG{DD|D}w;vB1 z+u`2XMF^r=XdlNOJD|59(Xdt)+$4fbZp3svKaiq*q-w?^KF++%3eCAM><&scy8WQ@ z-N*h(PBlQHISj0~o^>(ztzslvR4C$;-6$8~dF>* zpCw_;r|0LO-#44HJ6|TNyt#D9RmRQpU%dpR^R2ZS}wq)yys1+_Zpu9*8g^!x0V_y()Z0W8vd)`8WaQo6O@6)-$=$1+fG02zHj zBap{kF~#=9W-w zua9v^R#@m0n~c0rgeG`o?fXEnk!QjM`Jm!V%Qc4oOJ}M|6md~+Pz0$&gHeqD<{^?M zd=Nr_J$lE;fQNg7MC3*&8=YRQN9#F#lbi5YA4_ah1U&w5<2*UBvm|XZljl%rYc}s- znz7jf5my?+h`(uQo)v}rT7?waZDnnBK6oT^G?XY}f4tSF(#<9@ze^%6y{^GVO3dw& znV40g)0ao5O(vjV?LLSJLDATrL=N@ko-I#lDAg0wuYlYZ%p z1@b0`e=cGqd^bK86p_!$3amCnWf@5(^J9hAaJGlRZgP|}Hf+}f+^78zQtU8aGBfL` z0aLJK5m83JNZ%%?e18v{lzn(4uc##0AXZ_-z4h2mxP0RDYC~TB183Ed8&UGzkBa#aRh}3p_Ca;UX`SgHTk*p9L;9# zKO2nb*P@N|u1_kUd9MtlL|@L=3UpEoh;3VT<2UpRgaRWZSR^;BiiM$%9t^AxSr?V#8(18}5zZlkmEF`X~)Xc{zRe7B2c-uAEG z9t!4 zyv&Rt(r(LO00XhKb#_u)E5c#r4_|Q;!}vR5lp^u??!)Q49C!o|Czd(RlUPNzDah{cz9Ijq>S+so ze}w0CJ)^vQc_1)Q=K(c|*LpUDcDZSASN~4xMKDDGqLvKH3wrc5>d( z$1fcde2g)LnT>F?u84wAr+FvXXni>c7O8aC|HnKAR{qdR(q;RClSX~h<#0CBwJ|vg z@fiO0%C={Gxb?b5apqS3`R>1^=kMGg2clRAui=)wL->e;qfC{5XM}qZRPcI=fniBR zTbw2efr&F$=+$ceg~gcozx!nG_4-60wOfLV%B}ognbXhuy|1zJv9UjTJh&}MP1C<5 z8N7I;01jDY+&(9qMvG;NL4!<0;Y8plyiYM=+iE;HR^jgz*(*oF%Bu=j>JK_jM_k`G zK6P^mHU(~lA^PbqAY*kXcIpFNJs&!d4Z=+cvOTG&d9B@Ejw#t+NoHtgwJ=^B;dSdq zpI=>X?8`j&S25HE`@-GYeMN(}Syg<@PUrP1gAMsyA;sXFTMYKXUE|A+2KWa={96-W z-T<;DBE7`Hjom)1*>ZkDR36wB0u!znRDiocUCALRYdDrzxZUznj z6j(1tX4PGtw%47R$9h}#Y?LdM9;knD3_wjh!j8d_WR5(;V`3)Bd3MCku}sCJUHp(_ zVspDx0Y?kqV1XiG$wG0f=i*O2?6aRjgKK|bW>!pQF4}#&(QSbNh(IkUX$X}{rk$Kl zhzAud&Y7a-duw&~6DKp{Xw=Ka(j8TEU>SjMd^`v9-nm6ANi<)-W}Nw#{IFD5jkT>1 zz@;iPxvIqDA6wA=(zvM^{$gS$e^0?u|udyNIz`zt0Mn^*n%Z z_y(wSsmaSV?8MZX|30U?Yi1z$t_3C(H+u2?4b7BQ0SSO2pZQ{Z2WVE@-6d_fY}&_7 zYtRLn4|d^(?UxFkb!b9kYeguTjobu%=lGOx-8JWEkQZsj~a$i{68cPKac0xpeZp^&|Jzte{g6i3hE|98ky zXSGOuZNCbtp2Qc zCYgRs_ByMH5n1!$b|Rrf{{H6iaURlG-C)G+wb=0InOlZl#?*##uX9F_vJjPusAU+= z+Pf!iue<@4IPG8wD@v(vbn@v5}y#vIJ3m!VImvu`Gfm zg3K=&9;os+savrWa?X)|k=a{GPHoLPM7VuPV*n3J=+-M&jB-w*gF`PM?3VNef1&$3 z&7)FR)Bx_1MHIMn$_&CR#CSRyeB#4qnAJ^80T$y&GXD+gy!J8{2wB6Yo)YvepUagfLG0*&}r$kX;MRwT>SD8_V1xnQlS$W}p!-JEjKCGrnb zj?M>+-k)hQjUT0P0z_H4$4-V&eHn7BuavXC**FA71WR`w5yu7lXUY0+EH3&QBN5a{ zi&w(j%}dcmyTbslS6|LlQVVb35_)@{`EUW3z*3gZbk*vElYL+(bt6HoWjr zy01xYpysY9#hhVikv@g2L%+O`VhLktp?QgHId3FFJ|n`~?nS-6y%FPd3`%;|Yk9VA z!*+bplJv5J?+MyUyg&yK%M{Ku#EzGg9=AT*uA4!hEHVUj+!r#}O4 z?Zc&jon$Oc$wh$(E#cUx2F9v-QMD;fQK7N?S4pUy4v5g-ffs^ko0`xs!gvwF6}zbE zlka9o`mr}S!Nm76gVqL1sXzKcl^mR#(7LRN*(TSsamC*s*CVF65{X2PydHqR5a2T2 zb@fBRhwMoxl{=O?(S6HVvW_8jofMKzkWG_Y5%OmvfOsS4SpGxUSHa^<@Pmx z`hBf9(!Nm`1)VtE9O0^VVudL=ALR**%=*k%{k)ZEiyTSyGVG}%QC16S9ko4e{fUO2 zaA1eux+)jNXYr*6C04y*S2cPSh&7RGTsxDlpb02^d4EK)zj(?x3 zl-qg7H1;S?4|}?dqs8&~0K=NnR#!s3&Jp)m%0~a|*Oc|q?bOBjj0yLTjxV1yPxz_T z1S2j-GV46cwp=!tNkG$BjC&^rb#G@dlO_xO&J%}*48JhiTF>o#PER*>AL*x_vx;W_Hrf4jP@HcTd=nMq2vI`@nG$$X&hnM(R}>WG7! z0XDC+R(@Xf7Hg>EzCBKACNsXgw6>7=TP0dT$Q0O@sN5vQH)owpqO^2Hf~Nhz_O4dL z^|SqK?0^T|3wwTVE8vz)spcjUBzb{A96OQR3cjw__}g`NK0 z(fEhLPj_!0sb35>#o$=4MJ#Hb=Y2IfH+mg_d0l*Pep>fYZ|-@)bO3_*PYYdYnfe8W z5ZCmhKE!9RLMT@BzKkJ9vg>9=V@b6go^E=LeQ$EXo7!zaf>433373wz3 z9D<0KTB7km(-}RGKBf8GL<)AVgl=L`uBwoe1&~>g<3o$p4Vew2)IZP~&VJ|7u)iIS zj#Vu!J!IxAzq18Yj+a88+T7o%`aH!p<+bsz$2VIo1~oYV?heRQBqB`zvLP$WcyDS%^$xM0Un|fABFDr4J5@nGwp!us{XWnyJP3duJufl~Sil)K(B7W>?{)JPZ zE|MW5g0`|RYRgTpgw}T_kYJ!BRZFjZCPd+GK?q9^HNPV3#D2y=iq9 zQA*lS8JUn||2k;}ap!y?IR|jJO}sMvy@F%=AXic3sPe{&CGrvyn$Ce0)}vm{U4*YH z?pj^|e(l?5>eBo5qUidEPpUnW=$)VG{Mg_Dg{uWdy?HDr^ej1fy!sOr5LFQ`*40RA z>3xs+jURy|?0dYsM_8MD$@SKGfbWc2Pj)x>8?yW!HoQrE8-+>`RVDgq5v7_K--(fX zFsB*waGiuwoAAKE$FHdOo17GQby*>`$3RBWpvh!hfaWDZaFlQJc!qa^dx5lQ#W8UA zP=a}q{H&)wR;$bfW9KO_Cnl!L1-K7*_Ox7EpB)#kfN;v|r?P#kqh(zmWp{g>6rK=h zzL{Llk4QgaA-1>rWGG|I3*vTN>7_Ltt)<7VypHJ&Snhg#ff+puLbziYi~e4eADA;3 zf`&qV{eESrW*1If5>(6{L1|}gIPPp-$@@T}n?ol$cOdX!jqiKN?5+ZA*m_}-a`*Gj zwUl4Tf5JinABxQCdCoKArqU6Da{JEJg3p$!OXFO11bfbfJ-$+rj`31T0JvuX3;6(4A_4pp;WRJ=CoS;5B<1Nu5JDpKHmDuB(XC0cgp-rCxrZ6W3?g+>!fx^fMj-ehwg_x|rQtVR()=+D9IM3-y%kK85>m=Q@Q@4>699>R1YSkp z#kdxH`#e=_xVAs4eslOMMxR&(H8paxCRu*{natYpD3@$diQ8Bdx8?Fy--9gxAlCqf z4?{+!*|5p<i1sDz&@p0){(SWF$t}9J2ac zTtb&3+TW;wV}lU2p$K}wBM>exV`_$_Mb4AqX(uFBsL$+3aNur4ea5z>#ECJSG(sfm zgDH&Z$n<49E5O~WR@v!H0Sh5qPe}Glca|Dh?*Br}7Ph3OA99FNE@+>; zTuaqWWY>_{v28@_n$H^qggr)DC?oT-KE7Ix)ww^>`6vFQQir`7fpmlrxFVknTk`Y= zJ=QEOE*4oEGWmo&8XUDA>Wm?!r(>bgZK^kg}f*` zE`2EYYzRE|_|T@fQ0-t9*N@0IAR)v}mW{u>tcN2fG+Eg#!9H0z0I1i|eR9ILJJXkg zC$f>fZkjO<3~Q=wlf8m`qAh?~LqSD%atD~3B`X;M>`VuQ5^MFj4?@@TbbvakLn)ir zeBQi}l`JefC5MSads^}Lgv0hi-_{}G$dFU=q2eKZ?jD@%(ac|57-E4J3t>S<_t+%M zU0}xZHgV+YTrX7TME4DNUufdvz>FMYxERDj$*+jFvrm7A8(CY_xhK=Hj)A`LV3qP# zd}69U3(a0*EClOT?70b$iG3iPmsTl}DFSO)dv0j;zkiFs(0fFKsZ@y^O4RXd_MMOa zc5PT73!4moC+4KRflzyF#ATgqy0-t>y}O;wz=ZevF2s61^;fEy@&9ch{GX1(|19_Aa<6YY=?j2*FcUg1@RzG!6P6n|hXN literal 0 HcmV?d00001 diff --git a/assets/img/sub_menu.svg b/assets/img/sub_menu.svg new file mode 100644 index 0000000..1a23749 --- /dev/null +++ b/assets/img/sub_menu.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/img/suunto.png b/assets/img/suunto.png new file mode 100644 index 0000000000000000000000000000000000000000..42c129344b489fba67be0b18940f57589cd3ebbf GIT binary patch literal 30802 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 literal 0 HcmV?d00001 diff --git a/assets/img/u1.png b/assets/img/u1.png new file mode 100644 index 0000000000000000000000000000000000000000..6c320c973ca49f1f7cda0b9ee1b99e7374df6a7e GIT binary patch literal 44476 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


p>c$*z;s> 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 literal 0 HcmV?d00001 diff --git a/assets/img/user_text.svg b/assets/img/user_text.svg new file mode 100644 index 0000000..513a01c --- /dev/null +++ b/assets/img/user_text.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/assets/img/workout1.svg b/assets/img/workout1.svg new file mode 100644 index 0000000..19998e4 --- /dev/null +++ b/assets/img/workout1.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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/ios/Podfile b/ios/Podfile new file mode 100644 index 0000000..fdcc671 --- /dev/null +++ b/ios/Podfile @@ -0,0 +1,44 @@ +# Uncomment this line to define a global platform for your project +# platform :ios, '11.0' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + +target 'Runner' do + use_frameworks! + use_modular_headers! + + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_ios_build_settings(target) + end +end diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 7c925b2..75c36c7 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -7,13 +7,15 @@ objects = { /* Begin PBXBuildFile section */ + 090A4C6C8906E11919410FA6 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F76E532CB27CF8D8887ECB6E /* Pods_RunnerTests.framework */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; + 36896C85B5E41F2885C5D932 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C735E611E261E1BF013228AF /* Pods_Runner.framework */; }; 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 */; }; - 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -40,9 +42,14 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 09348B77084D874324AEC997 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 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 = ""; }; + 32B6F252772E4C3A1E8B239E /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 6740291438833939DFD9003B /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; 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 = ""; }; @@ -53,8 +60,11 @@ 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 = ""; }; - 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; - 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + A8F045B4CEA19433140475EB /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + C735E611E261E1BF013228AF /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E76986DA08EDD70E087193D6 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + E91D209A9470765F2FEBB894 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + F76E532CB27CF8D8887ECB6E /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -62,21 +72,28 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 36896C85B5E41F2885C5D932 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C20D5A983965DE7EB2050FCA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 090A4C6C8906E11919410FA6 /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 9740EEB11CF90186004384FC /* Flutter */ = { + 0A4AC663BEDD83585E36DE85 /* Frameworks */ = { isa = PBXGroup; children = ( - 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, - 9740EEB21CF90195004384FC /* Debug.xcconfig */, - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, - 9740EEB31CF90195004384FC /* Generated.xcconfig */, + C735E611E261E1BF013228AF /* Pods_Runner.framework */, + F76E532CB27CF8D8887ECB6E /* Pods_RunnerTests.framework */, ); - name = Flutter; + name = Frameworks; sourceTree = ""; }; 331C8082294A63A400263BE5 /* RunnerTests */ = { @@ -87,6 +104,17 @@ path = RunnerTests; sourceTree = ""; }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; 97C146E51CF9000F007C117D = { isa = PBXGroup; children = ( @@ -94,6 +122,8 @@ 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, + BAB296CAADE49C59AA4EDFA3 /* Pods */, + 0A4AC663BEDD83585E36DE85 /* Frameworks */, ); sourceTree = ""; }; @@ -121,6 +151,19 @@ path = Runner; sourceTree = ""; }; + BAB296CAADE49C59AA4EDFA3 /* Pods */ = { + isa = PBXGroup; + children = ( + 09348B77084D874324AEC997 /* Pods-Runner.debug.xcconfig */, + E76986DA08EDD70E087193D6 /* Pods-Runner.release.xcconfig */, + A8F045B4CEA19433140475EB /* Pods-Runner.profile.xcconfig */, + E91D209A9470765F2FEBB894 /* Pods-RunnerTests.debug.xcconfig */, + 6740291438833939DFD9003B /* Pods-RunnerTests.release.xcconfig */, + 32B6F252772E4C3A1E8B239E /* Pods-RunnerTests.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -128,9 +171,10 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( + 22EFA3186238D5A133183F0E /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, - 331C807E294A63A400263BE5 /* Frameworks */, 331C807F294A63A400263BE5 /* Resources */, + C20D5A983965DE7EB2050FCA /* Frameworks */, ); buildRules = ( ); @@ -146,12 +190,15 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( + 249602BB0C79B391B98FDF9B /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + 89C3C3975243E680DCEA2427 /* [CP] Embed Pods Frameworks */, + FC691EB0E8FFD75241B9C7A8 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -223,6 +270,50 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 22EFA3186238D5A133183F0E /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 249602BB0C79B391B98FDF9B /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -239,6 +330,23 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; + 89C3C3975243E680DCEA2427 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -254,6 +362,23 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; + FC691EB0E8FFD75241B9C7A8 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -361,6 +486,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = C9862MYS3A; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -377,7 +503,7 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = AE0B7B92F70575B8D7E0D07E /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = E91D209A9470765F2FEBB894 /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -395,7 +521,7 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 89B67EB44CE7B6631473024E /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 6740291438833939DFD9003B /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -411,7 +537,7 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 640959BDD8F10B91D80A66BE /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 32B6F252772E4C3A1E8B239E /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -539,6 +665,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = C9862MYS3A; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -561,6 +688,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = C9862MYS3A; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata index 1d526a1..21a3cc1 100644 --- a/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,4 +4,7 @@ + + diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift index 70693e4..68e99d6 100644 --- a/ios/Runner/AppDelegate.swift +++ b/ios/Runner/AppDelegate.swift @@ -1,5 +1,6 @@ import UIKit import Flutter +import GoogleMaps @UIApplicationMain @objc class AppDelegate: FlutterAppDelegate { @@ -7,7 +8,8 @@ import Flutter _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { + GMSServices.provideAPIKey("AIzaSyD2Jgh9NXhtKaH8qRyGfkCeMDusBJ4xcRY") GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } -} +} \ No newline at end of file diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard index f3c2851..1aec8f3 100644 --- a/ios/Runner/Base.lproj/Main.storyboard +++ b/ios/Runner/Base.lproj/Main.storyboard @@ -1,8 +1,10 @@ - - + + + - + + @@ -14,13 +16,14 @@ - + - + + diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 303dbea..dd50948 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -2,6 +2,10 @@ + NSLocationAlwaysAndWhenInUseUsageDescription + Utilisé pour afficher votre emplacement actuel sur la carte. + NSLocationWhenInUseUsageDescription + Utilisé pour afficher votre emplacement actuel sur la carte. CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName diff --git a/lib/Modele/Mds/DeviceConnectionStatus.dart b/lib/Modele/Mds/DeviceConnectionStatus.dart index 2d506ac..dc07596 100644 --- a/lib/Modele/Mds/DeviceConnectionStatus.dart +++ b/lib/Modele/Mds/DeviceConnectionStatus.dart @@ -1,4 +1,4 @@ -enum DeviceConnectionStatus { NOT_CONNECTED, CONNECTING, CONNECTED } +/*enum DeviceConnectionStatus { NOT_CONNECTED, CONNECTING, CONNECTED } extension DeviceConnectionStatusExtenstion on DeviceConnectionStatus { String get statusName { @@ -12,3 +12,4 @@ extension DeviceConnectionStatusExtenstion on DeviceConnectionStatus { } } } +*/ \ No newline at end of file diff --git a/lib/Modele/Mds/DeviceModel.dart b/lib/Modele/Mds/DeviceModel.dart index a69cc05..4341c77 100644 --- a/lib/Modele/Mds/DeviceModel.dart +++ b/lib/Modele/Mds/DeviceModel.dart @@ -1,4 +1,4 @@ -import 'package:flutter/material.dart'; +/*import 'package:flutter/material.dart'; import 'package:mdsflutter/Mds.dart'; class DeviceModel extends ChangeNotifier { @@ -17,3 +17,4 @@ class DeviceModel extends ChangeNotifier { notifyListeners(); } } +*/ \ No newline at end of file diff --git a/lib/Modele/Mds/device.dart b/lib/Modele/Mds/device.dart index 15ab66e..1d456bf 100644 --- a/lib/Modele/Mds/device.dart +++ b/lib/Modele/Mds/device.dart @@ -1,4 +1,4 @@ -import 'package:smartfit_app_mobile/Modele/Mds/DeviceConnectionStatus.dart'; +/*import 'package:smartfit_app_mobile/Modele/Mds/DeviceConnectionStatus.dart'; class Device { String? _address; @@ -51,3 +51,4 @@ class Device { o is Device && o._address == _address && o._name == _name; int get hashCode => _address.hashCode * _name.hashCode; } +*/ \ No newline at end of file diff --git a/lib/Modele/Mds/manager_state_watch.dart b/lib/Modele/Mds/manager_state_watch.dart index 45489d9..90feb42 100644 --- a/lib/Modele/Mds/manager_state_watch.dart +++ b/lib/Modele/Mds/manager_state_watch.dart @@ -1,4 +1,4 @@ -import 'dart:collection'; +/*import 'dart:collection'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -98,3 +98,4 @@ class ManagerStateWatch extends ChangeNotifier { disconnectOnModele(address); } } +*/ \ No newline at end of file diff --git a/lib/View/activity/activity.dart b/lib/View/activity/activity.dart new file mode 100644 index 0000000..8f46e03 --- /dev/null +++ b/lib/View/activity/activity.dart @@ -0,0 +1,28 @@ +import 'package:smartfit_app_mobile/common_widget/steps.dart'; +import 'package:smartfit_app_mobile/common_widget/dates.dart'; +import 'package:smartfit_app_mobile/common_widget/graph.dart'; +import 'package:smartfit_app_mobile/common_widget/info.dart' hide Stats; +import 'package:smartfit_app_mobile/common_widget/stats.dart'; +import 'package:flutter/material.dart'; + +class Activity extends StatelessWidget { + const Activity({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + body: Column( + children: const [ + Divider(height: 80), + Steps(), + Graph(), + Info(), + Divider(height: 30), + Stats(), + SizedBox(height: 30), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/View/home/activity_tracker.dart b/lib/View/home/activity_tracker.dart new file mode 100644 index 0000000..d87d351 --- /dev/null +++ b/lib/View/home/activity_tracker.dart @@ -0,0 +1,431 @@ +import 'package:fl_chart/fl_chart.dart'; +import 'package:flutter/material.dart'; + +import '../../common/colo_extension.dart'; +import '../../common_widget/latest_activity_row.dart'; +import '../../common_widget/today_target_cell.dart'; + +class ActivityTrackerView extends StatefulWidget { + const ActivityTrackerView({super.key}); + + @override + State createState() => _ActivityTrackerViewState(); +} + +class _ActivityTrackerViewState extends State { + int touchedIndex = -1; + + List latestArr = [ + { + "image": "assets/img/workout1.svg", + "title": "Drinking 300ml Water", + "time": "About 1 minutes ago" + }, + { + "image": "assets/img/workout1.svg", + "title": "Eat Snack (Fitbar)", + "time": "About 3 hours ago" + }, + ]; + + @override + Widget build(BuildContext context) { + var media = MediaQuery.of(context).size; + return Scaffold( + appBar: AppBar( + backgroundColor: TColor.white, + centerTitle: true, + elevation: 0, + leading: InkWell( + onTap: () { + Navigator.pop(context); + }, + child: Container( + margin: const EdgeInsets.all(8), + height: 40, + width: 40, + alignment: Alignment.center, + decoration: BoxDecoration( + color: TColor.lightGray, + borderRadius: BorderRadius.circular(10)), + child: Image.asset( + "assets/img/black_btn.png", + width: 15, + height: 15, + fit: BoxFit.contain, + ), + ), + ), + title: Text( + "Suivi d'activité", + style: TextStyle( + color: TColor.black, fontSize: 16, fontWeight: FontWeight.w700), + ), + actions: [ + InkWell( + onTap: () {}, + child: Container( + margin: const EdgeInsets.all(8), + height: 40, + width: 40, + alignment: Alignment.center, + decoration: BoxDecoration( + color: TColor.lightGray, + borderRadius: BorderRadius.circular(10)), + child: Image.asset( + "assets/img/more_btn.png", + width: 15, + height: 15, + fit: BoxFit.contain, + ), + ), + ) + ], + ), + backgroundColor: TColor.white, + body: SingleChildScrollView( + child: Container( + padding: const EdgeInsets.symmetric(vertical: 25, horizontal: 25), + child: Column( + children: [ + Container( + padding: + const EdgeInsets.symmetric(vertical: 15, horizontal: 15), + decoration: BoxDecoration( + gradient: LinearGradient(colors: [ + TColor.primaryColor2.withOpacity(0.3), + TColor.primaryColor1.withOpacity(0.3) + ]), + borderRadius: BorderRadius.circular(15), + ), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Objectif d'aujourd'hui", + style: TextStyle( + color: TColor.black, + fontSize: 14, + fontWeight: FontWeight.w700), + ), + SizedBox( + width: 30, + height: 30, + child: Container( + decoration: BoxDecoration( + gradient: LinearGradient( + colors: TColor.primaryG, + ), + borderRadius: BorderRadius.circular(10), + ), + child: MaterialButton( + onPressed: () {}, + padding: EdgeInsets.zero, + height: 30, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(25)), + textColor: TColor.primaryColor1, + minWidth: double.maxFinite, + elevation: 0, + color: Colors.transparent, + child: const Icon( + Icons.add, + color: Colors.white, + size: 15, + )), + ), + ) + ], + ), + const SizedBox( + height: 15, + ), + const Row( + children: [ + Expanded( + child: TodayTargetCell( + icon: "assets/img/workout1.svg", + value: "800", + title: "Calories", + ), + ), + SizedBox( + width: 15, + ), + Expanded( + child: TodayTargetCell( + icon: "assets/img/workout1.svg", + value: "2400", + title: "Nombre pas", + ), + ), + ], + ) + ], + ), + ), + SizedBox( + height: media.width * 0.1, + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Activité journalière", + style: TextStyle( + color: TColor.black, + fontSize: 16, + fontWeight: FontWeight.w700), + ), + Container( + height: 30, + padding: const EdgeInsets.symmetric(horizontal: 8), + decoration: BoxDecoration( + gradient: LinearGradient(colors: TColor.primaryG), + borderRadius: BorderRadius.circular(15), + ), + child: DropdownButtonHideUnderline( + child: DropdownButton( + items: ["Semaine", "Mois"] + .map((name) => DropdownMenuItem( + value: name, + child: Text( + name, + style: TextStyle( + color: TColor.gray, fontSize: 14), + ), + )) + .toList(), + onChanged: (value) {}, + icon: Icon(Icons.expand_more, color: TColor.white), + hint: Text( + "Semaine", + textAlign: TextAlign.center, + style: TextStyle(color: TColor.white, fontSize: 12), + ), + ), + )), + ], + ), + + SizedBox( + height: media.width * 0.05, + ), + + Container( + height: media.width * 0.5, + padding: const EdgeInsets.symmetric(vertical: 15 , horizontal: 0), + decoration: BoxDecoration( + color: TColor.white, + borderRadius: BorderRadius.circular(15), + boxShadow: const [ + BoxShadow(color: Colors.black12, blurRadius: 3) + ]), + child: BarChart( + + BarChartData( + barTouchData: BarTouchData( + touchTooltipData: BarTouchTooltipData( + tooltipBgColor: Colors.grey, + tooltipHorizontalAlignment: FLHorizontalAlignment.right, + tooltipMargin: 10, + getTooltipItem: (group, groupIndex, rod, rodIndex) { + String weekDay; + switch (group.x) { + case 0: + weekDay = 'Monday'; + break; + case 1: + weekDay = 'Tuesday'; + break; + case 2: + weekDay = 'Wednesday'; + break; + case 3: + weekDay = 'Thursday'; + break; + case 4: + weekDay = 'Friday'; + break; + case 5: + weekDay = 'Saturday'; + break; + case 6: + weekDay = 'Sunday'; + break; + default: + throw Error(); + } + return BarTooltipItem( + '$weekDay\n', + const TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + fontSize: 14, + ), + children: [ + TextSpan( + text: (rod.toY - 1).toString(), + style: TextStyle( + color: TColor.white, + fontSize: 16, + fontWeight: FontWeight.w500, + ), + ), + ], + ); + }, + ), + touchCallback: (FlTouchEvent event, barTouchResponse) { + setState(() { + if (!event.isInterestedForInteractions || + barTouchResponse == null || + barTouchResponse.spot == null) { + touchedIndex = -1; + return; + } + touchedIndex = + barTouchResponse.spot!.touchedBarGroupIndex; + }); + }, + ), + titlesData: FlTitlesData( + show: true, + rightTitles: AxisTitles( + sideTitles: SideTitles(showTitles: false), + ), + topTitles: AxisTitles( + sideTitles: SideTitles(showTitles: false), + ), + bottomTitles: AxisTitles( + sideTitles: SideTitles( + showTitles: true, + getTitlesWidget: getTitles, + reservedSize: 38, + ), + ), + leftTitles: AxisTitles( + sideTitles: SideTitles( + showTitles: false, + ), + ), + ), + borderData: FlBorderData( + show: false, + ), + barGroups: showingGroups(), + gridData: FlGridData(show: false), + ) + + ), + ), + + SizedBox( + height: media.width * 0.05, + ), + + SizedBox( + height: media.width * 0.1, + ), + ], + ), + ), + ), + ); + } + + Widget getTitles(double value, TitleMeta meta) { + var style = TextStyle( + color: TColor.gray, + fontWeight: FontWeight.w500, + fontSize: 12, + ); + Widget text; + switch (value.toInt()) { + case 0: + text = Text('Dim', style: style); + break; + case 1: + text = Text('Lun', style: style); + break; + case 2: + text = Text('Mar', style: style); + break; + case 3: + text = Text('Mer', style: style); + break; + case 4: + text = Text('Jeu', style: style); + break; + case 5: + text = Text('Ven', style: style); + break; + case 6: + text = Text('Sam', style: style); + break; + default: + text = Text('', style: style); + break; + } + return SideTitleWidget( + axisSide: meta.axisSide, + space: 16, + child: text, + ); + } + List showingGroups() => List.generate(7, (i) { + switch (i) { + case 0: + return makeGroupData(0, 5, TColor.primaryG , isTouched: i == touchedIndex); + case 1: + return makeGroupData(1, 10.5, TColor.secondaryG, isTouched: i == touchedIndex); + case 2: + return makeGroupData(2, 5, TColor.primaryG , isTouched: i == touchedIndex); + case 3: + return makeGroupData(3, 7.5, TColor.secondaryG, isTouched: i == touchedIndex); + case 4: + return makeGroupData(4, 15, TColor.primaryG , isTouched: i == touchedIndex); + case 5: + return makeGroupData(5, 5.5, TColor.secondaryG, isTouched: i == touchedIndex); + case 6: + return makeGroupData(6, 8.5, TColor.primaryG , isTouched: i == touchedIndex); + default: + return throw Error(); + } + }); + + BarChartGroupData makeGroupData( + int x, + double y, + List barColor, + { + bool isTouched = false, + + double width = 22, + List showTooltips = const [], + }) { + + return BarChartGroupData( + x: x, + barRods: [ + BarChartRodData( + toY: isTouched ? y + 1 : y, + gradient: LinearGradient(colors: barColor, begin: Alignment.topCenter, end: Alignment.bottomCenter ), + width: width, + borderSide: isTouched + ? const BorderSide(color: Colors.green) + : const BorderSide(color: Colors.white, width: 0), + backDrawRodData: BackgroundBarChartRodData( + show: true, + toY: 20, + color: TColor.lightGray, + ), + ), + ], + showingTooltipIndicators: showTooltips, + ); + } + +} \ No newline at end of file diff --git a/lib/View/home/blank_view.dart b/lib/View/home/blank_view.dart new file mode 100644 index 0000000..427d01a --- /dev/null +++ b/lib/View/home/blank_view.dart @@ -0,0 +1,19 @@ + +import 'package:smartfit_app_mobile/common/colo_extension.dart'; +import 'package:flutter/material.dart'; + +class BlankView extends StatefulWidget { + const BlankView({super.key}); + + @override + State createState() => _BlankViewState(); +} + +class _BlankViewState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: TColor.white, + ); + } +} \ No newline at end of file diff --git a/lib/View/home/home_view.dart b/lib/View/home/home_view.dart new file mode 100644 index 0000000..64d0df2 --- /dev/null +++ b/lib/View/home/home_view.dart @@ -0,0 +1,1072 @@ + import 'package:dotted_dashed_line/dotted_dashed_line.dart'; +import 'package:smartfit_app_mobile/common_widget/round_button.dart'; +import 'package:fl_chart/fl_chart.dart'; +import 'package:flutter/material.dart'; +import 'package:simple_animation_progress_bar/simple_animation_progress_bar.dart'; +import 'package:simple_circular_progress_bar/simple_circular_progress_bar.dart'; +import 'package:smartfit_app_mobile/view/home/activity_tracker.dart'; +import 'package:smartfit_app_mobile/view/home/blank_view.dart'; +import 'package:smartfit_app_mobile/view/home/notification_view.dart'; +import '../../common/colo_extension.dart'; +//import 'activity_tracker_view.dart'; +//import 'finished_workout_view.dart'; +//import 'notification_view.dart'; + +class HomeView extends StatefulWidget { + const HomeView({super.key}); + + @override + State createState() => _HomeViewState(); +} + +class _HomeViewState extends State { + List lastWorkoutArr = [ + { + "name": "Full Body Workout", + "image": "assets/img/Workout1.png", + "kcal": "180", + "time": "20", + "progress": 0.3 + }, + { + "name": "Lower Body Workout", + "image": "assets/img/Workout2.png", + "kcal": "200", + "time": "30", + "progress": 0.4 + }, + { + "name": "Ab Workout", + "image": "assets/img/Workout3.png", + "kcal": "300", + "time": "40", + "progress": 0.7 + }, + ]; + List showingTooltipOnSpots = [21]; + + List allSpots = [FlSpot(0, 20)]; + + List waterArr = [ + {"title": "6am - 8am", "subtitle": "600ml"}, + {"title": "9am - 11am", "subtitle": "500ml"}, + {"title": "11am - 2pm", "subtitle": "1000ml"}, + {"title": "2pm - 4pm", "subtitle": "700ml"}, + {"title": "4pm - now", "subtitle": "900ml"}, + ]; + + @override + Widget build(BuildContext context) { + var media = MediaQuery.of(context).size; + + final lineBarsData = [ + LineChartBarData( + showingIndicators: showingTooltipOnSpots, + spots: allSpots, + isCurved: false, + barWidth: 2, + belowBarData: BarAreaData( + show: true, + gradient: LinearGradient(colors: [ + TColor.secondaryColor1.withOpacity(0.4), + TColor.secondaryColor2.withOpacity(0.1), + ], begin: Alignment.topCenter, end: Alignment.bottomCenter), + ), + dotData: FlDotData(show: false), + gradient: LinearGradient( + colors: TColor.secondaryG , + ), + ), + ]; + + final tooltipsOnBar = lineBarsData[0]; + + return Scaffold( + backgroundColor: TColor.white, + body: SingleChildScrollView( + child: SafeArea( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 15), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Bienvenue,", + style: TextStyle(color: TColor.gray, fontSize: 12), + ), + Text( + "Benjelloun Othmane", + style: TextStyle( + color: TColor.black, + fontSize: 20, + fontWeight: FontWeight.w700), + ), + ], + ), + IconButton( + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const NotificationView(), + ), + ); + }, + icon: Image.asset( + "assets/img/notification_active.png", + width: 25, + height: 25, + fit: BoxFit.fitHeight, + )) + ], + ), + SizedBox( + height: media.width * 0.05, + ), + Container( + height: media.width * 0.4, + decoration: BoxDecoration( + gradient: LinearGradient(colors: TColor.primaryG), + borderRadius: BorderRadius.circular(media.width * 0.075)), + child: Stack(alignment: Alignment.center, children: [ + Image.asset( + "assets/img/bg_dots.png", + height: media.width * 0.4, + width: double.maxFinite, + fit: BoxFit.fitHeight, + ), + Padding( + padding: const EdgeInsets.symmetric( + vertical: 25, horizontal: 25), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Graph 1", + style: TextStyle( + color: TColor.white, + fontSize: 14, + fontWeight: FontWeight.w700), + ), + Text( + "Sous titre 1", + style: TextStyle( + color: TColor.white.withOpacity(0.7), + fontSize: 12), + ), + SizedBox( + height: media.width * 0.05, + ), + SizedBox( + width: 120, + height: 35, + child: RoundButton( + title: "Voir plus", + type: RoundButtonType.bgSGradient, + fontSize: 12, + fontWeight: FontWeight.w400, + onPressed: () {})) + ], + ), + AspectRatio( + aspectRatio: 1, + child: PieChart( + PieChartData( + pieTouchData: PieTouchData( + touchCallback: + (FlTouchEvent event, pieTouchResponse) {}, + ), + startDegreeOffset: 250, + borderData: FlBorderData( + show: false, + ), + sectionsSpace: 1, + centerSpaceRadius: 0, + sections: showingSections(), + ), + ), + ), + ], + ), + ) + ]), + ), + SizedBox( + height: media.width * 0.05, + ), + Container( + padding: + const EdgeInsets.symmetric(vertical: 15, horizontal: 15), + decoration: BoxDecoration( + color: TColor.primaryColor2.withOpacity(0.3), + borderRadius: BorderRadius.circular(15), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Suivi d'activité", + style: TextStyle( + color: TColor.black, + fontSize: 14, + fontWeight: FontWeight.w700), + ), + SizedBox( + width: 70, + height: 25, + child: RoundButton( + title: "Voir", + type: RoundButtonType.bgGradient, + fontSize: 12, + fontWeight: FontWeight.w400, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + const ActivityTrackerView(), + ), + ); + }, + ), + ) + ], + ), + ), + SizedBox( + height: media.width * 0.05, + ), + Text( + "Status d'activité", + style: TextStyle( + color: TColor.black, + fontSize: 16, + fontWeight: FontWeight.w700), + ), + SizedBox( + height: media.width * 0.02, + ), + ClipRRect( + borderRadius: BorderRadius.circular(25), + child: Container( + height: media.width * 0.4, + width: double.maxFinite, + decoration: BoxDecoration( + color: TColor.primaryColor2.withOpacity(0.3), + borderRadius: BorderRadius.circular(25), + ), + child: Stack( + alignment: Alignment.topLeft, + children: [ + Padding( + padding: const EdgeInsets.symmetric( + vertical: 20, horizontal: 20), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Graph 2 ( rhythme cardiaque )", + style: TextStyle( + color: TColor.black, + fontSize: 16, + fontWeight: FontWeight.w700), + ), + ShaderMask( + blendMode: BlendMode.srcIn, + shaderCallback: (bounds) { + return LinearGradient( + colors: TColor.primaryG, + begin: Alignment.centerLeft, + end: Alignment.centerRight) + .createShader(Rect.fromLTRB( + 0, 0, bounds.width, bounds.height)); + }, + child: Text( + "78 BPM", + style: TextStyle( + color: TColor.primaryColor1.withOpacity(0.7), + fontWeight: FontWeight.w700, + fontSize: 18), + ), + ), + ], + ), + ), + LineChart( + LineChartData( + showingTooltipIndicators: + showingTooltipOnSpots.map((index) { + return ShowingTooltipIndicators([ + LineBarSpot( + tooltipsOnBar, + lineBarsData.indexOf(tooltipsOnBar), + tooltipsOnBar.spots[index], + ), + ]); + }).toList(), + lineTouchData: LineTouchData( + enabled: true, + handleBuiltInTouches: false, + touchCallback: (FlTouchEvent event, + LineTouchResponse? response) { + if (response == null || + response.lineBarSpots == null) { + return; + } + if (event is FlTapUpEvent) { + final spotIndex = + response.lineBarSpots!.first.spotIndex; + showingTooltipOnSpots.clear(); + setState(() { + showingTooltipOnSpots.add(spotIndex); + }); + } + }, + mouseCursorResolver: (FlTouchEvent event, + LineTouchResponse? response) { + if (response == null || + response.lineBarSpots == null) { + return SystemMouseCursors.basic; + } + return SystemMouseCursors.click; + }, + getTouchedSpotIndicator: + (LineChartBarData barData, + List spotIndexes) { + return spotIndexes.map((index) { + return TouchedSpotIndicatorData( + FlLine( + color: TColor.secondaryColor1, + ), + FlDotData( + show: true, + getDotPainter: + (spot, percent, barData, index) => + FlDotCirclePainter( + radius: 3, + color: Colors.white, + strokeWidth: 3, + strokeColor: TColor.secondaryColor1, + ), + ), + ); + }).toList(); + }, + touchTooltipData: LineTouchTooltipData( + tooltipBgColor: TColor.secondaryColor1, + tooltipRoundedRadius: 20, + getTooltipItems: + (List lineBarsSpot) { + return lineBarsSpot.map((lineBarSpot) { + return LineTooltipItem( + "il y a ${lineBarSpot.x.toInt()} minutes", + const TextStyle( + color: Colors.white, + fontSize: 10, + fontWeight: FontWeight.bold, + ), + ); + }).toList(); + }, + ), + ), + lineBarsData: lineBarsData, + minY: 0, + maxY: 130, + titlesData: FlTitlesData( + show: false, + ), + gridData: FlGridData(show: false), + borderData: FlBorderData( + show: true, + border: Border.all( + color: Colors.transparent, + ), + ), + ), + ) + ], + ), + ), + ), + SizedBox( + height: media.width * 0.05, + ), + Row( + children: [ + Expanded( + child: Container( + height: media.width * 0.95, + padding: const EdgeInsets.symmetric( + vertical: 25, horizontal: 20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(25), + boxShadow: const [ + BoxShadow(color: Colors.black12, blurRadius: 2) + ]), + child: Row( + children: [ + SimpleAnimationProgressBar( + height: media.width * 0.85, + width: media.width * 0.07, + backgroundColor: Colors.grey.shade100, + foregrondColor: Colors.purple, + ratio: 0.5, + direction: Axis.vertical, + curve: Curves.fastLinearToSlowEaseIn, + duration: const Duration(seconds: 3), + borderRadius: BorderRadius.circular(15), + gradientColor: LinearGradient( + colors: TColor.primaryG, + begin: Alignment.bottomCenter, + end: Alignment.topCenter), + ), + const SizedBox( + width: 10, + ), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Graph 3", + style: TextStyle( + color: TColor.black, + fontSize: 12, + fontWeight: FontWeight.w700), + ), + ShaderMask( + blendMode: BlendMode.srcIn, + shaderCallback: (bounds) { + return LinearGradient( + colors: TColor.primaryG, + begin: Alignment.centerLeft, + end: Alignment.centerRight) + .createShader(Rect.fromLTRB( + 0, 0, bounds.width, bounds.height)); + }, + child: Text( + "ex : objectif", + style: TextStyle( + color: TColor.white.withOpacity(0.7), + fontWeight: FontWeight.w700, + fontSize: 14), + ), + ), + const SizedBox( + height: 10, + ), + Text( + "Mis à jour en temps réel", + style: TextStyle( + color: TColor.gray, + fontSize: 12, + ), + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: waterArr.map((wObj) { + var isLast = wObj == waterArr.last; + return Row( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Column( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Container( + margin: + const EdgeInsets.symmetric( + vertical: 4), + width: 10, + height: 10, + decoration: BoxDecoration( + color: TColor.secondaryColor1 + .withOpacity(0.5), + borderRadius: + BorderRadius.circular(5), + ), + ), + if (!isLast) + DottedDashedLine( + height: media.width * 0.078, + width: 0, + dashColor: TColor + .secondaryColor1 + .withOpacity(0.5), + axis: Axis.vertical) + ], + ), + const SizedBox( + width: 10, + ), + Column( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text( + wObj["title"].toString(), + style: TextStyle( + color: TColor.gray, + fontSize: 10, + ), + ), + ShaderMask( + blendMode: BlendMode.srcIn, + shaderCallback: (bounds) { + return LinearGradient( + colors: + TColor.secondaryG, + begin: Alignment + .centerLeft, + end: Alignment + .centerRight) + .createShader(Rect.fromLTRB( + 0, + 0, + bounds.width, + bounds.height)); + }, + child: Text( + wObj["subtitle"].toString(), + style: TextStyle( + color: TColor.white + .withOpacity(0.7), + fontSize: 12), + ), + ), + ], + ) + ], + ); + }).toList(), + ) + ], + )) + ], + ), + ), + ), + SizedBox( + width: media.width * 0.05, + ), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: double.maxFinite, + height: media.width * 0.45, + padding: const EdgeInsets.symmetric( + vertical: 25, horizontal: 20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(25), + boxShadow: const [ + BoxShadow(color: Colors.black12, blurRadius: 2) + ]), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Graph 4", + style: TextStyle( + color: TColor.black, + fontSize: 12, + fontWeight: FontWeight.w700), + ), + ShaderMask( + blendMode: BlendMode.srcIn, + shaderCallback: (bounds) { + return LinearGradient( + colors: TColor.primaryG, + begin: Alignment.centerLeft, + end: Alignment.centerRight) + .createShader(Rect.fromLTRB( + 0, 0, bounds.width, bounds.height)); + }, + child: Text( + "durée", + style: TextStyle( + color: TColor.white.withOpacity(0.7), + fontWeight: FontWeight.w700, + fontSize: 14), + ), + ), + const Spacer(), + Image.asset("assets/img/sleep_graph.png", + width: double.maxFinite, + height: 80, + fit: BoxFit.fitWidth) + ]), + ), + SizedBox( + height: media.width * 0.05, + ), + Container( + width: double.maxFinite, + height: media.width * 0.45, + padding: const EdgeInsets.symmetric( + vertical: 25, horizontal: 20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(25), + boxShadow: const [ + BoxShadow(color: Colors.black12, blurRadius: 2) + ]), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Calories", + style: TextStyle( + color: TColor.black, + fontSize: 12, + fontWeight: FontWeight.w700), + ), + ShaderMask( + blendMode: BlendMode.srcIn, + shaderCallback: (bounds) { + return LinearGradient( + colors: TColor.primaryG, + begin: Alignment.centerLeft, + end: Alignment.centerRight) + .createShader(Rect.fromLTRB( + 0, 0, bounds.width, bounds.height)); + }, + child: Text( + "760 kCal", + style: TextStyle( + color: TColor.white.withOpacity(0.7), + fontWeight: FontWeight.w700, + fontSize: 14), + ), + ), + const Spacer(), + Container( + alignment: Alignment.center, + child: SizedBox( + width: media.width * 0.2, + height: media.width * 0.2, + child: Stack( + alignment: Alignment.center, + children: [ + Container( + width: media.width * 0.15, + height: media.width * 0.15, + alignment: Alignment.center, + decoration: BoxDecoration( + gradient: LinearGradient( + colors: TColor.primaryG), + borderRadius: BorderRadius.circular( + media.width * 0.075), + ), + child: FittedBox( + child: Text( + "230kCal\nrestantes", + textAlign: TextAlign.center, + style: TextStyle( + color: TColor.white, + fontSize: 11), + ), + ), + ), + SimpleCircularProgressBar( + progressStrokeWidth: 10, + backStrokeWidth: 10, + progressColors: TColor.primaryG, + backColor: Colors.grey.shade100, + valueNotifier: ValueNotifier(50), + startAngle: -180, + ), + ], + ), + ), + ) + ]), + ), + ], + )) + ], + ), + SizedBox( + height: media.width * 0.1, + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "graph 5", + style: TextStyle( + color: TColor.black, + fontSize: 16, + fontWeight: FontWeight.w700), + ), + Container( + height: 30, + padding: const EdgeInsets.symmetric(horizontal: 8), + decoration: BoxDecoration( + gradient: LinearGradient(colors: TColor.primaryG), + borderRadius: BorderRadius.circular(15), + ), + child: DropdownButtonHideUnderline( + child: DropdownButton( + items: ["Semaine", "Mois"] + .map((name) => DropdownMenuItem( + value: name, + child: Text( + name, + style: TextStyle( + color: TColor.gray, fontSize: 14), + ), + )) + .toList(), + onChanged: (value) {}, + icon: Icon(Icons.expand_more, color: TColor.white), + hint: Text( + "Semaine", + textAlign: TextAlign.center, + style: + TextStyle(color: TColor.white, fontSize: 12), + ), + ), + )), + ], + ), + SizedBox( + height: media.width * 0.05, + ), + Container( + padding: const EdgeInsets.only(left: 15), + height: media.width * 0.5, + width: double.maxFinite, + child: LineChart( + LineChartData( + showingTooltipIndicators: + showingTooltipOnSpots.map((index) { + return ShowingTooltipIndicators([ + LineBarSpot( + tooltipsOnBar, + lineBarsData.indexOf(tooltipsOnBar), + tooltipsOnBar.spots[index], + ), + ]); + }).toList(), + lineTouchData: LineTouchData( + enabled: true, + handleBuiltInTouches: false, + touchCallback: (FlTouchEvent event, + LineTouchResponse? response) { + if (response == null || + response.lineBarSpots == null) { + return; + } + if (event is FlTapUpEvent) { + final spotIndex = + response.lineBarSpots!.first.spotIndex; + showingTooltipOnSpots.clear(); + setState(() { + showingTooltipOnSpots.add(spotIndex); + }); + } + }, + mouseCursorResolver: (FlTouchEvent event, + LineTouchResponse? response) { + if (response == null || + response.lineBarSpots == null) { + return SystemMouseCursors.basic; + } + return SystemMouseCursors.click; + }, + getTouchedSpotIndicator: (LineChartBarData barData, + List spotIndexes) { + return spotIndexes.map((index) { + return TouchedSpotIndicatorData( + FlLine( + color: Colors.transparent, + ), + FlDotData( + show: true, + getDotPainter: + (spot, percent, barData, index) => + FlDotCirclePainter( + radius: 3, + color: Colors.white, + strokeWidth: 3, + strokeColor: TColor.secondaryColor1, + ), + ), + ); + }).toList(); + }, + touchTooltipData: LineTouchTooltipData( + tooltipBgColor: TColor.secondaryColor1, + tooltipRoundedRadius: 20, + getTooltipItems: (List lineBarsSpot) { + return lineBarsSpot.map((lineBarSpot) { + return LineTooltipItem( + "il y a ${lineBarSpot.x.toInt()} minutes", + const TextStyle( + color: Colors.white, + fontSize: 10, + fontWeight: FontWeight.bold, + ), + ); + }).toList(); + }, + ), + ), + lineBarsData: lineBarsData1, + minY: -0.5, + maxY: 110, + titlesData: FlTitlesData( + show: true, + leftTitles: AxisTitles(), + topTitles: AxisTitles(), + bottomTitles: AxisTitles( + sideTitles: bottomTitles, + ), + rightTitles: AxisTitles( + sideTitles: rightTitles, + )), + gridData: FlGridData( + show: true, + drawHorizontalLine: true, + horizontalInterval: 25, + drawVerticalLine: false, + getDrawingHorizontalLine: (value) { + return FlLine( + color: TColor.gray.withOpacity(0.15), + strokeWidth: 2, + ); + }, + ), + borderData: FlBorderData( + show: true, + border: Border.all( + color: Colors.transparent, + ), + ), + ), + )), + SizedBox( + height: media.width * 0.05, + ), + + SizedBox( + height: media.width * 0.1, + ), + ], + ), + ), + ), + ), + ); + } + + void updateChartData(List newData) { + setState(() { + allSpots = newData; + }); + } + + + List showingSections() { + return List.generate( + 2, + (i) { + var color0 = TColor.secondaryColor1; + + switch (i) { + case 0: + return PieChartSectionData( + color: color0, + value: 33, + title: '', + radius: 55, + titlePositionPercentageOffset: 0.55, + badgeWidget: const Text( + "20,1", + style: TextStyle( + color: Colors.white, + fontSize: 12, + fontWeight: FontWeight.w700), + )); + case 1: + return PieChartSectionData( + color: Colors.white, + value: 75, + title: '', + radius: 45, + titlePositionPercentageOffset: 0.55, + ); + + default: + throw Error(); + } + }, + ); + } + + LineTouchData get lineTouchData1 => LineTouchData( + handleBuiltInTouches: true, + touchTooltipData: LineTouchTooltipData( + tooltipBgColor: Colors.blueGrey.withOpacity(0.8), + ), + ); + + List get lineBarsData1 => [ + lineChartBarData1_1, + lineChartBarData1_2, + ]; + + LineChartBarData get lineChartBarData1_1 => LineChartBarData( + isCurved: true, + gradient: LinearGradient(colors: [ + TColor.primaryColor2.withOpacity(0.5), + TColor.primaryColor1.withOpacity(0.5), + ]), + barWidth: 4, + isStrokeCapRound: true, + dotData: FlDotData(show: false), + belowBarData: BarAreaData(show: false), + spots: const [ + FlSpot(1, 35), + FlSpot(2, 70), + FlSpot(3, 40), + FlSpot(4, 80), + FlSpot(5, 25), + FlSpot(6, 70), + FlSpot(7, 35), + ], + ); + + LineChartBarData get lineChartBarData1_2 => LineChartBarData( + isCurved: true, + gradient: LinearGradient(colors: [ + TColor.secondaryColor2.withOpacity(0.5), + TColor.secondaryColor1.withOpacity(0.5), + ]), + barWidth: 2, + isStrokeCapRound: true, + dotData: FlDotData(show: false), + belowBarData: BarAreaData( + show: false, + ), + spots: const [ + FlSpot(1, 80), + FlSpot(2, 50), + FlSpot(3, 90), + FlSpot(4, 40), + FlSpot(5, 80), + FlSpot(6, 35), + FlSpot(7, 60), + ], + ); + + SideTitles get rightTitles => SideTitles( + getTitlesWidget: rightTitleWidgets, + showTitles: true, + interval: 20, + reservedSize: 40, + ); + + Widget rightTitleWidgets(double value, TitleMeta meta) { + String text; + switch (value.toInt()) { + case 0: + text = '0%'; + break; + case 20: + text = '20%'; + break; + case 40: + text = '40%'; + break; + case 60: + text = '60%'; + break; + case 80: + text = '80%'; + break; + case 100: + text = '100%'; + break; + default: + return Container(); + } + + return Text(text, + style: TextStyle( + color: TColor.gray, + fontSize: 12, + ), + textAlign: TextAlign.center); + } + + SideTitles get bottomTitles => SideTitles( + showTitles: true, + reservedSize: 32, + interval: 1, + getTitlesWidget: bottomTitleWidgets, + ); + + Widget bottomTitleWidgets(double value, TitleMeta meta) { + var style = TextStyle( + color: TColor.gray, + fontSize: 12, + ); + Widget text; + switch (value.toInt()) { + case 1: + text = Text('Dim', style: style); + break; + case 2: + text = Text('Lun', style: style); + break; + case 3: + text = Text('Mar', style: style); + break; + case 4: + text = Text('Mer', style: style); + break; + case 5: + text = Text('Jeu', style: style); + break; + case 6: + text = Text('Ven', style: style); + break; + case 7: + text = Text('Sam', style: style); + break; + default: + text = Text('', style: style); + break; + } + + return SideTitleWidget( + axisSide: meta.axisSide, + space: 10, + child: text, + ); + } +} \ No newline at end of file diff --git a/lib/View/home/notification_view.dart b/lib/View/home/notification_view.dart new file mode 100644 index 0000000..c8e46c5 --- /dev/null +++ b/lib/View/home/notification_view.dart @@ -0,0 +1,87 @@ +import 'package:flutter/material.dart'; + +import '../../common/colo_extension.dart'; +import '../../common_widget/notification_row.dart'; + +class NotificationView extends StatefulWidget { + const NotificationView({super.key}); + + @override + State createState() => _NotificationViewState(); +} + +class _NotificationViewState extends State { + List notificationArr = [ + {"image": "assets/img/workout1.svg", "title": "Hey, c'est l'heure du sport", "time": "Il y a 3 minutes"}, + {"image": "assets/img/workout1.svg", "title": "Ne manque pas ton entrainement", "time": "Il y a 7 minutes"}, + {"image": "assets/img/workout1.svg", "title": "Hey, c'est l'heure du sport", "time": "Il y a 5 jours"}, + {"image": "assets/img/workout1.svg", "title": "Ne manque pas ton entrainement", "time": "29 Mai"}, + {"image": "assets/img/workout1.svg", "title": "Hey, c'est l'heure du sport", "time": "8 Avril"}, + {"image": "assets/img/workout1.svg", "title": "Ne manque pas ton entrainement", "time": "8 Avril"}, + ]; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: TColor.white, + centerTitle: true, + elevation: 0, + leading: InkWell( + onTap: () { + Navigator.pop(context); + }, + child: Container( + margin: const EdgeInsets.all(8), + height: 40, + width: 40, + alignment: Alignment.center, + decoration: BoxDecoration( + color: TColor.lightGray, + borderRadius: BorderRadius.circular(10)), + child: Image.asset( + "assets/img/black_btn.png", + width: 15, + height: 15, + fit: BoxFit.contain, + ), + ), + ), + title: Text( + "Notification", + style: TextStyle( + color: TColor.black, fontSize: 16, fontWeight: FontWeight.w700), + ), + actions: [ + InkWell( + onTap: () {}, + child: Container( + margin: const EdgeInsets.all(8), + height: 40, + width: 40, + alignment: Alignment.center, + decoration: BoxDecoration( + color: TColor.lightGray, + borderRadius: BorderRadius.circular(10)), + child: Image.asset( + "assets/img/more_btn.png", + width: 12, + height: 12, + fit: BoxFit.contain, + ), + ), + ) + ], + ), + backgroundColor: TColor.white, + body: ListView.separated( + padding: const EdgeInsets.symmetric(vertical: 15, horizontal: 25), + itemBuilder: ((context, index) { + var nObj = notificationArr[index] as Map? ?? {}; + return NotificationRow(nObj: nObj); + }), separatorBuilder: (context, index){ + return Divider(color: TColor.gray.withOpacity(0.5), height: 1, ); + }, itemCount: notificationArr.length), + ); + } +} \ No newline at end of file diff --git a/lib/View/login/login_view.dart b/lib/View/login/login_view.dart new file mode 100644 index 0000000..17fa1ce --- /dev/null +++ b/lib/View/login/login_view.dart @@ -0,0 +1,201 @@ +import 'package:flutter_svg/svg.dart'; +import 'package:smartfit_app_mobile/common/colo_extension.dart'; +import 'package:smartfit_app_mobile/common_widget/round_button.dart'; +import 'package:smartfit_app_mobile/common_widget/round_text_field.dart'; +import 'package:flutter/material.dart'; + +class LoginView extends StatefulWidget { + const LoginView({super.key}); + + @override + State createState() => _LoginViewState(); +} + +class _LoginViewState extends State { + bool isCheck = false; + @override + Widget build(BuildContext context) { + var media = MediaQuery.of(context).size; + return Scaffold( + backgroundColor: TColor.white, + body: SingleChildScrollView( + child: SafeArea( + child: Container( + height: media.height * 0.9, + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + "Bienvenue,", + style: TextStyle(color: TColor.gray, fontSize: 16), + ), + Text( + "Se connecter", + style: TextStyle( + color: TColor.black, + fontSize: 20, + fontWeight: FontWeight.w700), + ), + SizedBox( + height: media.width * 0.05, + ), + SizedBox( + height: media.width * 0.04, + ), + const RoundTextField( + hitText: "Email", + icon: "assets/img/email.svg", + keyboardType: TextInputType.emailAddress, + ), + SizedBox( + height: media.width * 0.04, + ), + RoundTextField( + hitText: "Mot de passe", + icon: "assets/img/lock.svg", + obscureText: true, + rigtIcon: TextButton( + onPressed: () {}, + child: Container( + alignment: Alignment.center, + width: 20, + height: 20, + child: SvgPicture.asset( + "assets/img/show_password.svg", + width: 20, + height: 20, + fit: BoxFit.contain, + ))), + ), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "Mot de passe oublié ?", + style: TextStyle( + color: TColor.gray, + fontSize: 15, + decoration: TextDecoration.underline), + ), + ], + ), + const Spacer(), + RoundButton( + title: "Se connecter", + onPressed: () { + + }), + SizedBox( + height: media.width * 0.04, + ), + Row( + // crossAxisAlignment: CrossAxisAlignment., + children: [ + Expanded( + child: Container( + height: 1, + color: TColor.gray.withOpacity(0.5), + )), + Text( + " Or ", + style: TextStyle(color: TColor.black, fontSize: 12), + ), + Expanded( + child: Container( + height: 1, + color: TColor.gray.withOpacity(0.5), + )), + ], + ), + SizedBox( + height: media.width * 0.04, + ), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + GestureDetector( + onTap: () {}, + child: Container( + width: 50, + height: 50, + alignment: Alignment.center, + decoration: BoxDecoration( + color: TColor.white, + border: Border.all( + width: 1, + color: TColor.gray.withOpacity(0.4), + ), + borderRadius: BorderRadius.circular(15), + ), + child: Image.asset( + "assets/img/google.png", + width: 20, + height: 20, + ), + ), + ), + SizedBox( + width: media.width * 0.04, + ), + GestureDetector( + onTap: () {}, + child: Container( + width: 50, + height: 50, + alignment: Alignment.center, + decoration: BoxDecoration( + color: TColor.white, + border: Border.all( + width: 1, + color: TColor.gray.withOpacity(0.4), + ), + borderRadius: BorderRadius.circular(15), + ), + child: Image.asset( + "assets/img/suunto.png", + width: 35, + height: 35, + ), + ), + ) + ], + ), + SizedBox( + height: media.width * 0.04, + ), + TextButton( + onPressed: () { + Navigator.pop(context); + }, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + "Vous n'avez pas toujours pas de compte ? ", + style: TextStyle( + color: TColor.black, + fontSize: 14, + ), + ), + Text( + "Créer un compte", + style: TextStyle( + color: TColor.black, + fontSize: 14, + fontWeight: FontWeight.w700), + ) + ], + ), + ), + SizedBox( + height: media.width * 0.04, + ), + ], + ), + ), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/View/login/signup_view.dart b/lib/View/login/signup_view.dart new file mode 100644 index 0000000..0efce72 --- /dev/null +++ b/lib/View/login/signup_view.dart @@ -0,0 +1,233 @@ +import 'package:flutter_svg/svg.dart'; +import 'package:smartfit_app_mobile/common/colo_extension.dart'; +import 'package:smartfit_app_mobile/common_widget/round_button.dart'; +import 'package:smartfit_app_mobile/common_widget/round_text_field.dart'; +import 'package:smartfit_app_mobile/view/home/home_view.dart'; +//import 'package:smartfit_app_mobile/view/login/complete_profile_view.dart'; +import 'package:smartfit_app_mobile/view/login/login_view.dart'; +import 'package:flutter/material.dart'; +import 'package:smartfit_app_mobile/view/main_tab/main_tab_view.dart'; + +class SignUpView extends StatefulWidget { + const SignUpView({super.key}); + + @override + State createState() => _SignUpViewState(); +} + +class _SignUpViewState extends State { + bool isCheck = false; + @override + Widget build(BuildContext context) { + var media = MediaQuery.of(context).size; + return Scaffold( + backgroundColor: TColor.white, + body: SingleChildScrollView( + child: SafeArea( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + "Bienvenue,", + style: TextStyle(color: TColor.gray, fontSize: 16), + ), + Text( + "Créer un compte", + style: TextStyle( + color: TColor.black, + fontSize: 20, + fontWeight: FontWeight.w700), + ), + SizedBox( + height: media.width * 0.05, + ), + const RoundTextField( + hitText: "Prénom", + icon: "assets/img/user_text.svg", + ), + SizedBox( + height: media.width * 0.04, + ), + const RoundTextField( + hitText: "Nom", + icon: "assets/img/user_text.svg", + ), + SizedBox( + height: media.width * 0.04, + ), + const RoundTextField( + hitText: "Email", + icon: "assets/img/email.svg", + keyboardType: TextInputType.emailAddress, + ), + SizedBox( + height: media.width * 0.04, + ), + RoundTextField( + hitText: "Mot de passe", + icon: "assets/img/lock.svg", + obscureText: true, + rigtIcon: TextButton( + onPressed: () {}, + child: Container( + alignment: Alignment.center, + width: 20, + height: 20, + child: SvgPicture.asset( + "assets/img/show_password.svg", + width: 20, + height: 20, + fit: BoxFit.contain, + ))), + ), + Row( + // crossAxisAlignment: CrossAxisAlignment., + children: [ + IconButton( + onPressed: () { + setState(() { + isCheck = !isCheck; + }); + }, + icon: Icon( + isCheck + ? Icons.check_box_outlined + : Icons.check_box_outline_blank_outlined, + color: TColor.gray, + size: 20, + ), + ), + Padding( + padding: const EdgeInsets.only(top: 8), + child: Text( + "En continuant, vous acceptez notre Politique de\nconfidentialité et nos Conditions d'utilisation.", + style: TextStyle(color: TColor.gray, fontSize: 10), + ), + + ) + ], + ), + SizedBox( + height: media.width * 0.4, + ), + RoundButton(title: "Créer un compte", onPressed: () {}), + SizedBox( + height: media.width * 0.04, + ), + Row( + // crossAxisAlignment: CrossAxisAlignment., + children: [ + Expanded( + child: Container( + height: 1, + color: TColor.gray.withOpacity(0.5), + )), + Text( + " Ou ", + style: TextStyle(color: TColor.black, fontSize: 12), + ), + Expanded( + child: Container( + height: 1, + color: TColor.gray.withOpacity(0.5), + )), + ], + ), + SizedBox( + height: media.width * 0.04, + ), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + GestureDetector( + onTap: () {}, + child: Container( + width: 50, + height: 50, + alignment: Alignment.center, + decoration: BoxDecoration( + color: TColor.white, + border: Border.all( + width: 1, + color: TColor.gray.withOpacity(0.4), + ), + borderRadius: BorderRadius.circular(15), + ), + child: Image.asset( + "assets/img/google.png", + width: 20, + height: 20, + ), + ), + ), + + SizedBox( + width: media.width * 0.04, + ), + + GestureDetector( + onTap: () {}, + child: Container( + width: 50, + height: 50, + alignment: Alignment.center, + decoration: BoxDecoration( + color: TColor.white, + border: Border.all( + width: 1, + color: TColor.gray.withOpacity(0.4), + ), + borderRadius: BorderRadius.circular(15), + ), + child: Image.asset( + "assets/img/suunto.png", + width: 35, + height: 35, + ), + ), + ) + ], + ), + SizedBox( + height: media.width * 0.04, + ), + TextButton( + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const MainTabView())); + }, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + "Vous avez déjà un compte ? ", + style: TextStyle( + color: TColor.black, + fontSize: 14, + ), + ), + Text( + "Se connecter", + style: TextStyle( + color: TColor.black, + fontSize: 14, + fontWeight: FontWeight.w700), + ) + ], + ), + ), + SizedBox( + height: media.width * 0.04, + ), + ], + ), + ), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/View/main_tab/main_tab_view.dart b/lib/View/main_tab/main_tab_view.dart new file mode 100644 index 0000000..41c2386 --- /dev/null +++ b/lib/View/main_tab/main_tab_view.dart @@ -0,0 +1,121 @@ +import 'package:smartfit_app_mobile/common/colo_extension.dart'; +import 'package:smartfit_app_mobile/common_widget/tab_button.dart'; +import 'package:smartfit_app_mobile/view/activity/activity.dart'; +import 'package:smartfit_app_mobile/view/home/blank_view.dart'; +import 'package:smartfit_app_mobile/view/home/home_view.dart'; +import 'package:smartfit_app_mobile/view/main_tab/select_view.dart'; +import 'package:flutter/material.dart'; +import 'package:smartfit_app_mobile/view/map/my_map.dart'; +import 'package:smartfit_app_mobile/view/page_test.dart'; +import 'package:smartfit_app_mobile/view/profile/profile_view.dart'; + + + +class MainTabView extends StatefulWidget { + const MainTabView({super.key}); + + @override + State createState() => _MainTabViewState(); +} + +class _MainTabViewState extends State { + int selectTab = 0; + final PageStorageBucket pageBucket = PageStorageBucket(); + Widget currentTab = const HomeView(); + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: TColor.white, + body: PageStorage(bucket: pageBucket, child: currentTab), + floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked, + floatingActionButton: SizedBox( + width: 70, + height: 70, + child: InkWell( + onTap: () { + selectTab = 0; + currentTab = const TestPage(); + if (mounted) { + setState(() {}); + } + }, + child: Container( + width: 65, + height: 65, + decoration: BoxDecoration( + gradient: LinearGradient( + colors: TColor.primaryG, + ), + borderRadius: BorderRadius.circular(35), + boxShadow: const [ + BoxShadow( + color: Colors.black12, + blurRadius: 2,) + ]), + child: Icon(Icons.search,color: TColor.white, size: 35, ), + ), + ), + ), + bottomNavigationBar: BottomAppBar( + child: Container( + decoration: BoxDecoration(color: TColor.white, boxShadow: const [ + BoxShadow(color: Colors.black12, blurRadius: 2, offset: Offset(0, -2)) + ]), + height: kToolbarHeight, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + TabButton( + icon: "assets/img/Home_tab.svg", + selectIcon: "assets/img/Home_tab_select.svg", + isActive: selectTab == 0, + onTap: () { + selectTab = 0; + currentTab = const HomeView(); + if (mounted) { + setState(() {}); + } + }), + TabButton( + icon: "assets/img/Activity_tab.svg", + selectIcon: "assets/img/Activity_tab_select.svg", + isActive: selectTab == 1, + onTap: () { + selectTab = 1; + currentTab = const Activity(); + if (mounted) { + setState(() {}); + } + }), + + const SizedBox(width: 40,), + TabButton( + icon: "assets/img/Camera_tab.svg", + selectIcon: "assets/img/Camera_tab_select.svg", + isActive: selectTab == 2, + onTap: () { + selectTab = 2; + currentTab = const MyMap(); + if (mounted) { + setState(() {}); + } + }), + TabButton( + icon: "assets/img/Profile_tab.svg", + selectIcon: "assets/img/Profile_tab_select.svg", + isActive: selectTab == 3, + onTap: () { + selectTab = 3; + currentTab = const ProfileView(); + if (mounted) { + setState(() {}); + } + }) + + + ], + ), + )), + ); + } +} \ No newline at end of file diff --git a/lib/View/main_tab/select_view.dart b/lib/View/main_tab/select_view.dart new file mode 100644 index 0000000..fcd5bbc --- /dev/null +++ b/lib/View/main_tab/select_view.dart @@ -0,0 +1,63 @@ +import 'package:smartfit_app_mobile/common_widget/round_button.dart'; +//import 'package:smartfit_app_mobile/view/meal_planner/meal_planner_view.dart'; +//import 'package:smartfit_app_mobile/view/workout_tracker/workout_tracker_view.dart'; +import 'package:flutter/material.dart'; +import 'package:smartfit_app_mobile/view/home/blank_view.dart'; + +//import '../sleep_tracker/sleep_tracker_view.dart'; + +class SelectView extends StatelessWidget { + const SelectView({super.key}); + + @override + Widget build(BuildContext context) { + // var media = MediaQuery.of(context).size; + + return Scaffold( + body: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + RoundButton( + title: "Workout Tracker", + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const BlankView(), + ), + ); + }), + + const SizedBox(height: 15,), + + RoundButton( + title: "Meal Planner", + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const BlankView(), + ), + ); + }), + + const SizedBox(height: 15,), + + RoundButton( + title: "Sleep Tracker", + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const BlankView(), + ), + ); + }) + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/View/map/my_map.dart b/lib/View/map/my_map.dart new file mode 100644 index 0000000..272fe38 --- /dev/null +++ b/lib/View/map/my_map.dart @@ -0,0 +1,154 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:google_maps_flutter/google_maps_flutter.dart'; +import 'package:location/location.dart'; +import 'package:smartfit_app_mobile/common/colo_extension.dart'; + +class MyMap extends StatefulWidget { + const MyMap({ Key? key }) : super(key: key); + + @override + State createState() => _MyMapState(); +} + +class _MyMapState extends State { + + Completer _googleMapController = Completer(); + CameraPosition? _cameraPosition; + Location? _location; + LocationData? _currentLocation; + List _polylineCoordinates = []; + Set _polylines = {}; + Set _markers = {}; // Add a set to store markers + + @override + void initState() { + _init(); + super.initState(); + } + + _init() async { + _location = Location(); + _cameraPosition = CameraPosition( + target: LatLng(0, 0), // this is just the example lat and lng for initializing + zoom: 20 + ); + _initLocation(); + } + + //function to listen when we move position + _initLocation() { + + _location?.getLocation().then((location) { + _currentLocation = location; + }); + + _location?.onLocationChanged.listen((newLocation) { + setState(() { + _currentLocation = newLocation; + _polylineCoordinates.add(LatLng( + _currentLocation?.latitude ?? 0, + _currentLocation?.longitude ?? 0, + )); + _updatePolyline(); + + }); + + moveToPosition(LatLng(_currentLocation?.latitude ?? 0, + _currentLocation?.longitude ?? 0)); + }); + } + + _updatePolyline() { + setState(() { + _polylines.clear(); + _polylines.add(Polyline( + polylineId: PolylineId("polyline"), + color: TColor.primaryColor1, + points: _polylineCoordinates, + width: 10, + )); + }); + } + + // Updated _updateMarker to use the custom marker + _updateMarker(LatLng position) async { + final markerId = MarkerId('marker'); + final marker = Marker( + markerId: markerId, + position: position + ); + _markers.clear(); + _markers.add(marker); +} + + + moveToPosition(LatLng latLng) async { + GoogleMapController mapController = await _googleMapController.future; + mapController.animateCamera( + CameraUpdate.newCameraPosition( + CameraPosition( + target: latLng, + zoom: 15 + ) + ) + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: _buildBody(), + ); + } + + Widget _buildBody() { + return _getMap(); + } + + Widget _getMarker() { + return Container( + width: 25, + height: 25, + padding: EdgeInsets.all(2), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(100), + boxShadow: [ + BoxShadow( + color: Colors.grey, + offset: Offset(0,3), + spreadRadius: 4, + blurRadius: 6 + ) + ] + ), + child: ClipOval(child: Image.asset("assets/img/u1.png")), + ); + } + + Widget _getMap() { + return Stack( + children: [ + GoogleMap( + initialCameraPosition: _cameraPosition!, + mapType: MapType.normal, + onMapCreated: (GoogleMapController controller) { + if (!_googleMapController.isCompleted) { + _googleMapController.complete(controller); + } + }, + polylines: _polylines, + markers: _markers, + ), + Positioned.fill( + child: Align( + alignment: Alignment.center, + child: _getMarker() + ) + ) + ], + ); + } +} diff --git a/lib/View/map/test.dart b/lib/View/map/test.dart new file mode 100644 index 0000000..717dfbb --- /dev/null +++ b/lib/View/map/test.dart @@ -0,0 +1,117 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:google_maps_flutter/google_maps_flutter.dart'; +import 'package:location/location.dart'; + +class MyMap extends StatefulWidget { + const MyMap({ Key? key }) : super(key: key); + + @override + State createState() => _MyMapState(); +} + +class _MyMapState extends State { + + Completer _googleMapController = Completer(); + CameraPosition? _cameraPosition; + Location? _location; + LocationData? _currentLocation; + + + + @override + void initState() { + _init(); + super.initState(); + } + + _init() async { + _location = Location(); + _cameraPosition = CameraPosition( + target: LatLng(0, 0), // this is just the example lat and lng for initializing + zoom: 15 + ); + _initLocation(); + } + + //function to listen when we move position + _initLocation() { + //use this to go to current location instead + _location?.getLocation().then((location) { + _currentLocation = location; + }); + _location?.onLocationChanged.listen((newLocation) { + _currentLocation = newLocation; + moveToPosition(LatLng(_currentLocation?.latitude ?? 0, _currentLocation?.longitude ?? 0)); + }); + } + + moveToPosition(LatLng latLng) async { + GoogleMapController mapController = await _googleMapController.future; + mapController.animateCamera( + CameraUpdate.newCameraPosition( + CameraPosition( + target: latLng, + zoom: 15 + ) + ) + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: _buildBody(), + ); + } + + Widget _buildBody() { + return _getMap(); + } + + Widget _getMarker() { + return Container( + width: 40, + height: 40, + padding: EdgeInsets.all(2), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(100), + boxShadow: [ + BoxShadow( + color: Colors.grey, + offset: Offset(0,3), + spreadRadius: 4, + blurRadius: 6 + ) + ] + ), + child: ClipOval(child: Image.asset("assets/img/u1.png")), + ); + } + + Widget _getMap() { + return Stack( + children: [ + GoogleMap( + initialCameraPosition: _cameraPosition!, + mapType: MapType.normal, + onMapCreated: (GoogleMapController controller) { + // now we need a variable to get the controller of google map + if (!_googleMapController.isCompleted) { + _googleMapController.complete(controller); + } + }, + ), + + Positioned.fill( + child: Align( + alignment: Alignment.center, + child: _getMarker() + ) + ) + ], + ); + } +} \ No newline at end of file diff --git a/lib/View/on_boarding/on_boarding_view.dart b/lib/View/on_boarding/on_boarding_view.dart new file mode 100644 index 0000000..02e6008 --- /dev/null +++ b/lib/View/on_boarding/on_boarding_view.dart @@ -0,0 +1,118 @@ +import 'package:flutter/material.dart'; +import 'package:smartfit_app_mobile/common/colo_extension.dart'; +import 'package:smartfit_app_mobile/common_widget/on_boarding_page.dart'; +import 'package:smartfit_app_mobile/view/login/signup_view.dart'; + +class OnBoardingView extends StatefulWidget { + const OnBoardingView({super.key}); + + @override + State createState() => _OnBoardingViewState(); +} + +class _OnBoardingViewState extends State { + int selectPage = 0; + PageController controller = PageController(); + + @override + void initState() { + + super.initState(); + + controller.addListener(() { + selectPage = controller.page?.round() ?? 0; + + setState(() { + + }); + }); + } + + List pageArr = [ + { + "title": "Atteignez vos objectifs", + "subtitle": + "Ne vous inquiétez pas si vous avez du mal à déterminer vos objectifs. Grâce à l'analyse concrète de vos performances, nous vous aiderons à les atteindre.", + "image": "assets/img/on_1.svg" + }, + { + "title": "Persévérez", + "subtitle": + "Continuez à persévérer pour atteindre vos objectifs. La douleur n'est que temporaire. Si vous abandonnez maintenant, vous souffrirez éternellement.", + "image": "assets/img/on_2.svg" + }, + { + "title": "Laissez-nous piloter, mettez simplement votre Suunto", + "subtitle": + "Détendez-vous, nous prenons les commandes en analysant performances et statistiques pour vous aider à atteindre vos objectifs.", + "image": "assets/img/on_3.svg" + }, + ]; + + @override + Widget build(BuildContext context) { + + return Scaffold( + backgroundColor: TColor.white, + body: Stack( + alignment: Alignment.bottomRight, + children: [ + PageView.builder( + controller: controller, + itemCount: pageArr.length, + itemBuilder: (context, index) { + var pObj = pageArr[index] as Map? ?? {}; + return OnBoardingPage(pObj: pObj) ; + }), + + SizedBox( + width: 120, + height: 120, + child: Stack( + alignment: Alignment.center, + children: [ + + SizedBox( + width: 70, + height: 70, + child: CircularProgressIndicator( + color: TColor.primaryColor1, + value: (selectPage + 1) / 3 , + strokeWidth: 2, + ), + ), + + Container( + margin: const EdgeInsets.symmetric(horizontal: 30, vertical: 30), + width: 60, + height: 60, + decoration: BoxDecoration(color: TColor.primaryColor1, borderRadius: BorderRadius.circular(35)), + child: IconButton(icon: Icon( Icons.navigate_next, color: TColor.white, ), onPressed: (){ + + if(selectPage < 2) { + selectPage = selectPage + 1; + controller.animateToPage(selectPage, duration: const Duration(milliseconds: 200), curve: Curves.bounceInOut); + setState(() { + + }); + + }else{ + Navigator.push(context, + MaterialPageRoute( + builder: (context) => const SignUpView() + ) + ); + } + + },), + ), + + + ], + ), + ) + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/View/on_boarding/started_view.dart b/lib/View/on_boarding/started_view.dart new file mode 100644 index 0000000..d091d59 --- /dev/null +++ b/lib/View/on_boarding/started_view.dart @@ -0,0 +1,68 @@ +import 'package:smartfit_app_mobile/common/colo_extension.dart'; +import 'package:smartfit_app_mobile/view/on_boarding/on_boarding_view.dart'; +import 'package:flutter/material.dart'; +import '../../common_widget/round_button.dart'; +import 'package:flutter_svg/flutter_svg.dart'; + +class StartedView extends StatefulWidget { + const StartedView({super.key}); + + @override + State createState() => _StartedViewState(); +} + +class _StartedViewState extends State { + bool isChangeColor = true; + + @override + Widget build(BuildContext context) { + var media = MediaQuery.of(context).size; + return Scaffold( + backgroundColor: TColor.white, + body: Container( + width: media.width, + decoration: BoxDecoration( + gradient: isChangeColor + ? LinearGradient( + colors: TColor.primaryG, + begin: Alignment.centerLeft, + end: Alignment.centerRight) + : null, + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SizedBox( + height: media.width * 0.90, + ), + SvgPicture.asset("assets/img/logoSM.svg"), + const Spacer(), + SafeArea( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 15), + child: RoundButton( + title: "Commencer", + type: isChangeColor + ? RoundButtonType.textGradient + : RoundButtonType.bgGradient, + onPressed: () { + if (isChangeColor) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const OnBoardingView())); + } else { + //Change Color + setState(() { + isChangeColor = true; + }); + } + }, + ), + ), + ) + ], + )), + ); + } +} \ No newline at end of file diff --git a/lib/View/profile/profile_view.dart b/lib/View/profile/profile_view.dart new file mode 100644 index 0000000..ddc0f43 --- /dev/null +++ b/lib/View/profile/profile_view.dart @@ -0,0 +1,354 @@ +import 'package:flutter/material.dart'; + +import '../../common/colo_extension.dart'; +import '../../common_widget/round_button.dart'; +import '../../common_widget/setting_row.dart'; +import '../../common_widget/title_subtitle_cell.dart'; +import 'package:animated_toggle_switch/animated_toggle_switch.dart'; + +class ProfileView extends StatefulWidget { + const ProfileView({super.key}); + + @override + State createState() => _ProfileViewState(); +} + +class _ProfileViewState extends State { + bool positive = false; + + List accountArr = [ + {"image": "assets/img/p_personal.png", "name": "Données personnelles", "tag": "1"}, + + ]; + + List otherArr = [ + {"image": "assets/img/p_contact.png", "name": "Nous contacter", "tag": "5"}, + {"image": "assets/img/p_privacy.png", "name": "Politique de confidentialité", "tag": "6"}, + ]; + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: TColor.white, + centerTitle: true, + elevation: 0, + leadingWidth: 0, + title: Text( + "Profile", + style: TextStyle( + color: TColor.black, fontSize: 16, fontWeight: FontWeight.w700), + ), + actions: [ + InkWell( + onTap: () {}, + child: Container( + margin: const EdgeInsets.all(8), + height: 20, + width: 20, + alignment: Alignment.center, + decoration: BoxDecoration( + color: TColor.lightGray, + borderRadius: BorderRadius.circular(10)), + child: Image.asset( + "assets/img/more_btn.png", + width: 15, + height: 15, + fit: BoxFit.contain, + ), + ), + ) + ], + ), + backgroundColor: TColor.white, + body: SingleChildScrollView( + child: Container( + padding: const EdgeInsets.symmetric(vertical: 15, horizontal: 25), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Row( + children: [ + ClipRRect( + borderRadius: BorderRadius.circular(30), + child: Image.asset( + "assets/img/u1.png", + width: 50, + height: 50, + fit: BoxFit.cover, + ), + ), + const SizedBox( + width: 15, + ), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Benjelloun Othmane", + style: TextStyle( + color: TColor.black, + fontSize: 14, + fontWeight: FontWeight.w500, + ), + ), + Text( + "Course à pied", + style: TextStyle( + color: TColor.gray, + fontSize: 12, + ), + ) + ], + ), + ), + SizedBox( + width: 70, + height: 25, + child: RoundButton( + title: "Editer", + type: RoundButtonType.bgGradient, + fontSize: 12, + fontWeight: FontWeight.w400, + onPressed: () { + // Navigator.push( + // context, + // MaterialPageRoute( + // builder: (context) => const ActivityTrackerView(), + // ), + // ); + }, + ), + ) + ], + ), + const SizedBox( + height: 15, + ), + const Row( + children: [ + Expanded( + child: TitleSubtitleCell( + title: "??? cm", + subtitle: "Taille", + ), + ), + SizedBox( + width: 15, + ), + Expanded( + child: TitleSubtitleCell( + title: "?? kg", + subtitle: "Poids", + ), + ), + SizedBox( + width: 15, + ), + Expanded( + child: TitleSubtitleCell( + title: "?? ans", + subtitle: "Age", + ), + ), + ], + ), + const SizedBox( + height: 25, + ), + Container( + padding: + const EdgeInsets.symmetric(vertical: 10, horizontal: 15), + decoration: BoxDecoration( + color: TColor.white, + borderRadius: BorderRadius.circular(15), + boxShadow: const [ + BoxShadow(color: Colors.black12, blurRadius: 2) + ]), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Compte", + style: TextStyle( + color: TColor.black, + fontSize: 16, + fontWeight: FontWeight.w700, + ), + ), + const SizedBox( + height: 8, + ), + ListView.builder( + physics: const NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: accountArr.length, + itemBuilder: (context, index) { + var iObj = accountArr[index] as Map? ?? {}; + return SettingRow( + icon: iObj["image"].toString(), + title: iObj["name"].toString(), + onPressed: () {}, + ); + }, + ) + ], + ), + ), + const SizedBox( + height: 25, + ), + Container( + padding: + const EdgeInsets.symmetric(vertical: 10, horizontal: 15), + decoration: BoxDecoration( + color: TColor.white, + borderRadius: BorderRadius.circular(15), + boxShadow: const [ + BoxShadow(color: Colors.black12, blurRadius: 2) + ]), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Notification", + style: TextStyle( + color: TColor.black, + fontSize: 16, + fontWeight: FontWeight.w700, + ), + ), + const SizedBox( + height: 8, + ), + SizedBox( + height: 30, + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Image.asset("assets/img/p_notification.png", + height: 15, width: 15, fit: BoxFit.contain), + const SizedBox( + width: 15, + ), + Expanded( + child: Text( + "Pop-up Notification", + style: TextStyle( + color: TColor.black, + fontSize: 12, + ), + ), + ), + CustomAnimatedToggleSwitch( + current: positive, + values: [false, true], + spacing : 0.0, + indicatorSize: Size.square(25.0), + animationDuration: + const Duration(milliseconds: 200), + animationCurve: Curves.linear, + onChanged: (b) => setState(() => positive = b), + iconBuilder: (context, local, global) { + return const SizedBox(); + }, + cursors: ToggleCursors(defaultCursor: SystemMouseCursors.click), + onTap: (_) => setState(() => positive = !positive), + iconsTappable: false, + wrapperBuilder: (context, global, child) { + return Stack( + alignment: Alignment.center, + children: [ + Positioned( + left: 10.0, + right: 10.0, + + height: 20.0, + child: DecoratedBox( + decoration: BoxDecoration( + gradient: LinearGradient( + colors: TColor.secondaryG), + borderRadius: + const BorderRadius.all( + Radius.circular(50.0)), + ), + )), + child, + ], + ); + }, + foregroundIndicatorBuilder: (context, global) { + return SizedBox.fromSize( + size: const Size(5, 5), + child: DecoratedBox( + decoration: BoxDecoration( + color: TColor.white, + borderRadius: const BorderRadius.all( + Radius.circular(50.0)), + boxShadow: const [ + BoxShadow( + color: Colors.black38, + spreadRadius: 0.05, + blurRadius: 1.1, + offset: Offset(0.0, 0.8)) + ], + ), + ), + ); + }, + ), + ]), + ) + ], + ), + ), + const SizedBox( + height: 25, + ), + Container( + padding: + const EdgeInsets.symmetric(vertical: 10, horizontal: 15), + decoration: BoxDecoration( + color: TColor.white, + borderRadius: BorderRadius.circular(15), + boxShadow: const [ + BoxShadow(color: Colors.black12, blurRadius: 2) + ]), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Autre", + style: TextStyle( + color: TColor.black, + fontSize: 16, + fontWeight: FontWeight.w700, + ), + ), + const SizedBox( + height: 8, + ), + ListView.builder( + physics: const NeverScrollableScrollPhysics(), + padding: EdgeInsets.zero, + shrinkWrap: true, + itemCount: otherArr.length, + itemBuilder: (context, index) { + var iObj = otherArr[index] as Map? ?? {}; + return SettingRow( + icon: iObj["image"].toString(), + title: iObj["name"].toString(), + onPressed: () {}, + ); + }, + ) + ], + ), + ) + ], + ), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/common/colo_extension.dart b/lib/common/colo_extension.dart new file mode 100644 index 0000000..c1f31bf --- /dev/null +++ b/lib/common/colo_extension.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; + +class TColor { + static Color get primaryColor1 => Color(0xffF09932); + static Color get primaryColor2 => Color(0xffFFDCB2); + + static Color get secondaryColor1 => Color(0xff6131AD); + static Color get secondaryColor2 => Color(0xffD4B9FF); + + static List get primaryG => [ primaryColor2, primaryColor1 ]; + static List get secondaryG => [secondaryColor2, secondaryColor1]; + + static Color get black => const Color(0xff1D1617); + static Color get gray => const Color(0xff786F72); + static Color get white => Colors.white; + static Color get lightGray => const Color(0xffF7F8F8); + +} \ No newline at end of file diff --git a/lib/common_widget/dates.dart b/lib/common_widget/dates.dart new file mode 100644 index 0000000..126f864 --- /dev/null +++ b/lib/common_widget/dates.dart @@ -0,0 +1,80 @@ +import 'package:smartfit_app_mobile/common/colo_extension.dart'; +import 'package:smartfit_app_mobile/common_widget/helpers.dart'; +import 'package:flutter/material.dart'; + +class Dates extends StatelessWidget { + const Dates({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + List dateBoxes = []; + + // DateTime date = DateTime.parse('2021-11-08'); + DateTime date = DateTime.now().subtract(const Duration(days: 3)); + + for (int i = 0; i < 6; i++) { + dateBoxes.add(DateBox(date: date, active: i == 3)); + date = date.add(const Duration(days: 1)); + } + + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: dateBoxes, + ), + ); + } +} + +class DateBox extends StatelessWidget { + final bool active; + final DateTime date; + + const DateBox({ + Key? key, + this.active = false, + required this.date, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container( + width: 50, + height: 70, + padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 5), + decoration: BoxDecoration( + gradient: active + ? LinearGradient(colors: [ + TColor.primaryColor2, + TColor.primaryColor1, + ], begin: Alignment.topCenter) + : null, + borderRadius: BorderRadius.circular(10), + border: Border.all( + color: const Color(0xffe1e1e1), + ), + ), + child: DefaultTextStyle.merge( + style: active ? const TextStyle(color: Colors.white) : null, + child: Column( + children: [ + Text( + daysOfWeek[date.weekday]!, + style: const TextStyle( + fontSize: 10, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 8), + Text(date.day.toString().padLeft(2, '0'), + style: const TextStyle( + fontSize: 19, + fontWeight: FontWeight.w500, + )), + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/common_widget/graph.dart b/lib/common_widget/graph.dart new file mode 100644 index 0000000..15a10e3 --- /dev/null +++ b/lib/common_widget/graph.dart @@ -0,0 +1,187 @@ +import 'dart:math'; +import 'dart:ui' as ui; +import 'package:flutter/material.dart'; +import 'package:smartfit_app_mobile/common/colo_extension.dart'; + +class Graph extends StatelessWidget { + const Graph({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return const Expanded( + child: SizedBox( + width: double.infinity, + child: GraphArea(), + ), + ); + } +} + +class GraphArea extends StatefulWidget { + const GraphArea({Key? key}) : super(key: key); + + @override + _GraphAreaState createState() => _GraphAreaState(); +} + +class _GraphAreaState extends State + with SingleTickerProviderStateMixin { + late AnimationController _animationController; + + List data = [ + DataPoint(day: 1, steps: Random().nextInt(70)), + DataPoint(day: 2, steps: Random().nextInt(70)), + DataPoint(day: 3, steps: Random().nextInt(70)), + DataPoint(day: 4, steps: Random().nextInt(70)), + DataPoint(day: 5, steps: Random().nextInt(70)), + DataPoint(day: 6, steps: Random().nextInt(70)), + DataPoint(day: 7, steps: Random().nextInt(70)), + DataPoint(day: 8, steps: Random().nextInt(70)), + ]; + + @override + void initState() { + super.initState(); + _animationController = AnimationController( + vsync: this, duration: const Duration(milliseconds: 2500)); + _animationController.forward(); + } + + @override + void dispose() { + _animationController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: () { + _animationController.forward(from: 0.0); + }, + child: CustomPaint( + painter: GraphPainter(_animationController.view, data: data), + ), + ); + } +} + +class GraphPainter extends CustomPainter { + final List data; + final Animation _size; + final Animation _dotSize; + + GraphPainter(Animation animation, {required this.data}) + : _size = Tween(begin: 0, end: 1).animate( + CurvedAnimation( + parent: animation, + curve: const Interval(0.0, 0.75, + curve: Curves.easeInOutCubicEmphasized), + ), + ), + _dotSize = Tween(begin: 0, end: 1).animate( + CurvedAnimation( + parent: animation, + curve: + const Interval(0.75, 1, curve: Curves.easeInOutCubicEmphasized), + ), + ), + super(repaint: animation); + + @override + void paint(Canvas canvas, Size size) { + var xSpacing = size.width / (data.length - 1); + + var maxSteps = data + .fold(data[0], (p, c) => p.steps > c.steps ? p : c) + .steps; + + var yRatio = size.height / maxSteps; + var curveOffset = xSpacing * 0.3; + + List offsets = []; + + var cx = 0.0; + for (int i = 0; i < data.length; i++) { + var y = size.height - (data[i].steps * yRatio * _size.value); + + offsets.add(Offset(cx, y)); + cx += xSpacing; + } + + Paint linePaint = Paint() + ..color = TColor.primaryColor1 + ..style = PaintingStyle.stroke + ..strokeWidth = 2; + + Paint shadowPaint = Paint() + ..color = TColor.primaryColor1 + ..style = PaintingStyle.stroke + ..maskFilter = const ui.MaskFilter.blur(ui.BlurStyle.solid, 0) + ..strokeWidth = 0.0; + + Paint fillPaint = Paint() + ..shader = ui.Gradient.linear( + Offset(size.width / 2, 0), + Offset(size.width / 2, size.height), + [ + TColor.primaryColor1, + Colors.white, + ], + ) + ..color = TColor.primaryColor1 + ..style = PaintingStyle.fill; + + Paint dotOutlinePaint = Paint() + ..color = Colors.white.withAlpha(200) + ..strokeWidth = 8; + + Paint dotCenter = Paint() + ..color = TColor.primaryColor1 + ..strokeWidth = 8; + + Path linePath = Path(); + + Offset cOffset = offsets[0]; + + linePath.moveTo(cOffset.dx, cOffset.dy); + + for (int i = 1; i < offsets.length; i++) { + var x = offsets[i].dx; + var y = offsets[i].dy; + var c1x = cOffset.dx + curveOffset; + var c1y = cOffset.dy; + var c2x = x - curveOffset; + var c2y = y; + + linePath.cubicTo(c1x, c1y, c2x, c2y, x, y); + cOffset = offsets[i]; + } + + Path fillPath = Path.from(linePath); + fillPath.lineTo(size.width, size.height); + fillPath.lineTo(0, size.height); + + canvas.drawPath(fillPath, fillPaint); + canvas.drawPath(linePath, shadowPaint); + canvas.drawPath(linePath, linePaint); + + canvas.drawCircle(offsets[4], 15 * _dotSize.value, dotOutlinePaint); + canvas.drawCircle(offsets[4], 6 * _dotSize.value, dotCenter); + } + + @override + bool shouldRepaint(covariant GraphPainter oldDelegate) { + return data != oldDelegate.data; + } +} + +class DataPoint { + final int day; + final int steps; + + DataPoint({ + required this.day, + required this.steps, + }); +} \ No newline at end of file diff --git a/lib/common_widget/helpers.dart b/lib/common_widget/helpers.dart new file mode 100644 index 0000000..7a40e1f --- /dev/null +++ b/lib/common_widget/helpers.dart @@ -0,0 +1,22 @@ +import 'dart:math'; + +final Map daysOfWeek = { + 1: 'Mon', + 2: 'Tue', + 3: 'Wed', + 4: 'Thu', + 5: 'Fri', + 6: 'Sat', + 7: 'Sun', +}; + +int randBetween(int min, int max) { + return Random().nextInt(max - min) + min; +} + +String formatNumber(int number) { + return number.toString().replaceAllMapped( + RegExp(r'(\d{1,3})(?=(\d{3})+(?!\d))'), + (Match m) => '${m[1]},', + ); +} \ No newline at end of file diff --git a/lib/common_widget/info.dart b/lib/common_widget/info.dart new file mode 100644 index 0000000..e7f6a19 --- /dev/null +++ b/lib/common_widget/info.dart @@ -0,0 +1,66 @@ +import 'package:flutter/material.dart'; + +class Info extends StatelessWidget { + const Info({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: const [ + Stats(value: '345', unit: 'kcal', label: 'Calories'), + Stats(value: '3.6', unit: 'km', label: 'Distance'), + Stats(value: '1.5', unit: 'hr', label: 'Hours'), + ], + ); + } +} + +class Stats extends StatelessWidget { + final String value; + final String unit; + final String label; + + const Stats({ + Key? key, + required this.value, + required this.unit, + required this.label, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Text.rich( + TextSpan( + text: value, + style: const TextStyle( + fontSize: 20, + fontWeight: FontWeight.w900, + ), + children: [ + const TextSpan(text: ' '), + TextSpan( + text: unit, + style: const TextStyle( + fontSize: 10, + fontWeight: FontWeight.w500, + ), + ), + ]), + ), + const SizedBox(height: 6), + Text( + label, + style: const TextStyle( + fontSize: 10, + fontWeight: FontWeight.w500, + ), + ), + ], + ); + } +} \ No newline at end of file diff --git a/lib/common_widget/latest_activity_row.dart b/lib/common_widget/latest_activity_row.dart new file mode 100644 index 0000000..ce31ec4 --- /dev/null +++ b/lib/common_widget/latest_activity_row.dart @@ -0,0 +1,61 @@ +import 'package:flutter_svg/svg.dart'; +import 'package:smartfit_app_mobile/common/colo_extension.dart'; +import 'package:flutter/material.dart'; + +class LatestActivityRow extends StatelessWidget { + final Map wObj; + const LatestActivityRow({super.key, required this.wObj}); + + @override + Widget build(BuildContext context) { + + return Container( + margin: const EdgeInsets.symmetric(vertical: 8), + + child: Row( + children: [ + ClipRRect( + borderRadius: BorderRadius.circular(30), + child: SvgPicture.asset( + wObj["image"].toString(), + width: 50, + height: 50, + fit: BoxFit.cover, + ), + ), + + const SizedBox(width: 15,), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + wObj["title"].toString(), + style: TextStyle( + color: TColor.black, + fontSize: 12, fontWeight: FontWeight.w500), + ), + + Text( + wObj["time"].toString(), + style: TextStyle( + color: TColor.gray, + fontSize: 10,), + ), + + + + ], + )), + IconButton( + onPressed: () {}, + icon: Image.asset( + "assets/img/sub_menu.png", + width: 12, + height: 12, + fit: BoxFit.contain, + )) + ], + )); + } +} \ No newline at end of file diff --git a/lib/common_widget/notification_row.dart b/lib/common_widget/notification_row.dart new file mode 100644 index 0000000..6446572 --- /dev/null +++ b/lib/common_widget/notification_row.dart @@ -0,0 +1,59 @@ + +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:smartfit_app_mobile/common/colo_extension.dart'; +import 'package:flutter/material.dart'; + +class NotificationRow extends StatelessWidget { + final Map nObj; + const NotificationRow({super.key, required this.nObj}); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 8), + child: Row( + children: [ + ClipRRect( + borderRadius: BorderRadius.circular(30), + child: SvgPicture.asset( + nObj["image"].toString(), + width: 40, + height: 40 + ), + ), + const SizedBox( + width: 15, + ), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + nObj["title"].toString(), + style: TextStyle( + color: TColor.black, + fontWeight: FontWeight.w500, + fontSize: 12), + ), + Text( + nObj["time"].toString(), + style: TextStyle( + color: TColor.gray, + fontSize: 10, + ), + ), + ], + )), + IconButton( + onPressed: () {}, + icon: SvgPicture.asset( + "assets/img/sub_menu.svg", + width: 15, + height: 15, + fit: BoxFit.contain, + )) + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/common_widget/on_boarding_page.dart b/lib/common_widget/on_boarding_page.dart new file mode 100644 index 0000000..ff21b3e --- /dev/null +++ b/lib/common_widget/on_boarding_page.dart @@ -0,0 +1,54 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_svg/svg.dart'; + +import '../common/colo_extension.dart'; + +class OnBoardingPage extends StatelessWidget { + final Map pObj; + const OnBoardingPage({super.key, required this.pObj}); + + @override + Widget build(BuildContext context) { + var media = MediaQuery.of(context).size; + return + + SizedBox( + width: media.width, + height: media.height, + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SvgPicture.asset( + pObj["image"].toString(), + width: media.width, + ), + SizedBox( + height: media.width * 0.15, + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 30), + child: Text( + pObj["title"].toString(), + style: TextStyle( + color: TColor.black, + fontSize: 24, + fontWeight: FontWeight.w700), + ), + ), + SizedBox( + height: media.width * 0.03, + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 30), + child: Text( + pObj["subtitle"].toString(), + style: TextStyle(color: TColor.gray, fontSize: 14), + ), + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/common_widget/round_button.dart b/lib/common_widget/round_button.dart new file mode 100644 index 0000000..5eae22a --- /dev/null +++ b/lib/common_widget/round_button.dart @@ -0,0 +1,75 @@ +import 'package:flutter/material.dart'; + +import '../common/colo_extension.dart'; + +enum RoundButtonType { bgGradient, bgSGradient , textGradient } + +class RoundButton extends StatelessWidget { + final String title; + final RoundButtonType type; + final VoidCallback onPressed; + final double fontSize; + final double elevation; + final FontWeight fontWeight; + + const RoundButton( + {super.key, + required this.title, + this.type = RoundButtonType.bgGradient, + this.fontSize = 16, + this.elevation = 1, + this.fontWeight=FontWeight.w700, + required this.onPressed}); + + @override + Widget build(BuildContext context) { + return Container( + decoration: BoxDecoration( + gradient: LinearGradient( + colors: type == RoundButtonType.bgSGradient ? TColor.secondaryG : TColor.primaryG, + ), + borderRadius: BorderRadius.circular(25), + boxShadow: type == RoundButtonType.bgGradient || type == RoundButtonType.bgSGradient + ? const [ + BoxShadow( + color: Colors.black26, + blurRadius: 0.5, + offset: Offset(0, 0.5)) + ] + : null), + child: MaterialButton( + onPressed: onPressed, + height: 50, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(25)), + textColor: TColor.primaryColor1, + minWidth: double.maxFinite, + elevation: type == RoundButtonType.bgGradient || type == RoundButtonType.bgSGradient ? 0 : elevation, + color: type == RoundButtonType.bgGradient || type == RoundButtonType.bgSGradient + ? Colors.transparent + : TColor.white, + child: type == RoundButtonType.bgGradient || type == RoundButtonType.bgSGradient + ? Text(title, + style: TextStyle( + color: TColor.white, + fontSize: fontSize, + fontWeight: fontWeight)) + : ShaderMask( + blendMode: BlendMode.srcIn, + shaderCallback: (bounds) { + return LinearGradient( + colors: TColor.primaryG, + begin: Alignment.centerLeft, + end: Alignment.centerRight) + .createShader( + Rect.fromLTRB(0, 0, bounds.width, bounds.height)); + }, + child: Text(title, + style: TextStyle( + color: TColor.primaryColor1, + fontSize: fontSize, + fontWeight: fontWeight)), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/common_widget/round_text_field.dart b/lib/common_widget/round_text_field.dart new file mode 100644 index 0000000..894e20d --- /dev/null +++ b/lib/common_widget/round_text_field.dart @@ -0,0 +1,48 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_svg/svg.dart'; + +import '../common/colo_extension.dart'; + +class RoundTextField extends StatelessWidget { + final TextEditingController? controller; + final TextInputType? keyboardType; + final String hitText; + final String icon; + final Widget? rigtIcon; + final bool obscureText; + final EdgeInsets? margin; + const RoundTextField({super.key, required this.hitText, required this.icon, this.controller, this.margin, this.keyboardType, this.obscureText = false , this.rigtIcon }); + + @override + Widget build(BuildContext context) { + return Container( + margin: margin, + decoration: BoxDecoration( + color: TColor.lightGray, borderRadius: BorderRadius.circular(15)), + child: TextField( + controller: controller, + keyboardType: keyboardType, + obscureText: obscureText, + decoration: InputDecoration( + contentPadding: + const EdgeInsets.symmetric(vertical: 15, horizontal: 15), + enabledBorder: InputBorder.none, + focusedBorder: InputBorder.none, + hintText: hitText, + suffixIcon: rigtIcon, + prefixIcon: Container( + alignment: Alignment.center, + width: 20, + height: 20, + child: SvgPicture.asset( + icon, + width: 20, + height: 20, + fit: BoxFit.contain, + )), + hintStyle: TextStyle(color: TColor.gray, fontSize: 12)), + ), + ); + } +} \ No newline at end of file diff --git a/lib/common_widget/setting_row.dart b/lib/common_widget/setting_row.dart new file mode 100644 index 0000000..6a44a6f --- /dev/null +++ b/lib/common_widget/setting_row.dart @@ -0,0 +1,41 @@ +import 'package:flutter/material.dart'; + +import '../common/colo_extension.dart'; + +class SettingRow extends StatelessWidget { + final String icon; + final String title; + final VoidCallback onPressed; + const SettingRow({super.key, required this.icon, required this.title, required this.onPressed }); + + @override + Widget build(BuildContext context) { + return InkWell( + onTap: onPressed, + child: SizedBox( + height: 30, + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Image.asset(icon, + height: 15, width: 15, fit: BoxFit.contain), + const SizedBox( + width: 15, + ), + Expanded( + child: Text( + title, + style: TextStyle( + color: TColor.black, + fontSize: 12, + ), + ), + ), + Image.asset("assets/img/p_next.png", + height: 12, width: 12, fit: BoxFit.contain) + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/common_widget/stats.dart b/lib/common_widget/stats.dart new file mode 100644 index 0000000..f90abb5 --- /dev/null +++ b/lib/common_widget/stats.dart @@ -0,0 +1,197 @@ +import 'package:flutter/material.dart'; +import 'package:smartfit_app_mobile/common/colo_extension.dart'; + +class Stats extends StatelessWidget { + const Stats({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Column( + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 30), + child: Row( + children: [ + Text( + 'Statistiques', + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w800, + ), + ), + SizedBox(width: 8), + Icon( + Icons.pie_chart_rounded, + size: 15, + color: TColor.secondaryColor1, + ), + ], + ), + ), + const SizedBox(height: 15), + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: const [ + SizedBox(width: 30), + InfoStat( + icon: Icons.timer, + iconColor: Color.fromARGB(255, 255, 255, 255), + iconBackground: Color(0xff6131AD), + time: '+5s', + label: 'Time', + value: '30:34', + ), + SizedBox(width: 15), + InfoStat( + icon: Icons.favorite_outline, + iconColor: Color.fromARGB(255, 255, 255, 255), + iconBackground: Color(0xff6131AD), + time: '+5s', + label: 'Heart Rate', + value: '151bpm', + ), + SizedBox(width: 15), + InfoStat( + icon: Icons.bolt, + iconColor: Color.fromARGB(255, 255, 255, 255), + iconBackground: Color(0xff6131AD), + time: '+5s', + label: 'Energy', + value: '169kcal', + ), + SizedBox(width: 30), + ], + ), + ) + ], + ); + } +} + +class InfoStat extends StatelessWidget { + final IconData icon; + final Color iconColor; + final Color iconBackground; + final String time; + final String label; + final String value; + + const InfoStat({ + Key? key, + required this.icon, + required this.iconColor, + required this.iconBackground, + required this.time, + required this.label, + required this.value, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container( + height: 110, + width: 110, + padding: const EdgeInsets.all(8), + margin: const EdgeInsets.symmetric(vertical: 5), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(15), + border: Border.all( + color: const Color(0xffe1e1e1), + ), + boxShadow: const [ + BoxShadow( + color: Colors.black12, + offset: Offset(3, 3), + blurRadius: 3, + ), + ]), + child: Stack( + children: [ + StatIcon( + icon: icon, + iconColor: iconColor, + iconBackground: iconBackground, + ), + Change(time: time), + Align( + alignment: Alignment.bottomLeft, + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + label, + style: const TextStyle(fontSize: 10), + ), + Text( + value, + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.w800, + ), + ), + ], + ), + ) + ], + ), + ); + } +} + +class Change extends StatelessWidget { + const Change({ + Key? key, + required this.time, + }) : super(key: key); + + final String time; + + @override + Widget build(BuildContext context) { + return Align( + alignment: Alignment.topRight, + child: Container( + padding: const EdgeInsets.symmetric( + vertical: 1, + horizontal: 4, + ), + decoration: BoxDecoration( + color: Colors.green, + borderRadius: BorderRadius.circular(500), + ), + child: Text( + time, + style: const TextStyle(fontSize: 10, color: Colors.white), + ), + ), + ); + } +} + +class StatIcon extends StatelessWidget { + const StatIcon({ + Key? key, + required this.icon, + required this.iconColor, + required this.iconBackground, + }) : super(key: key); + + final IconData icon; + final Color iconColor; + final Color iconBackground; + + @override + Widget build(BuildContext context) { + return Container( + padding: const EdgeInsets.all(5), + decoration: BoxDecoration( + color: iconBackground, + borderRadius: BorderRadius.circular(9), + ), + child: Icon(icon, size: 15, color: iconColor), + ); + } +} \ No newline at end of file diff --git a/lib/common_widget/steps.dart b/lib/common_widget/steps.dart new file mode 100644 index 0000000..3fe1e93 --- /dev/null +++ b/lib/common_widget/steps.dart @@ -0,0 +1,33 @@ +import 'package:smartfit_app_mobile/common_widget/helpers.dart'; +import 'package:flutter/material.dart'; + +class Steps extends StatelessWidget { + const Steps({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + String steps = formatNumber(randBetween(3000, 6000)); + return Padding( + padding: const EdgeInsets.symmetric(vertical: 20), + child: Column( + children: [ + Text( + steps, + style: const TextStyle( + fontSize: 33, + fontWeight: FontWeight.w900, + ), + ), + const Text( + 'Total Steps', + style: TextStyle( + fontSize: 11, + fontWeight: FontWeight.w500, + height: 2, + ), + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/common_widget/tab_button.dart b/lib/common_widget/tab_button.dart new file mode 100644 index 0000000..de8939d --- /dev/null +++ b/lib/common_widget/tab_button.dart @@ -0,0 +1,40 @@ +import 'package:flutter_svg/svg.dart'; +import 'package:smartfit_app_mobile/common/colo_extension.dart'; +import 'package:flutter/material.dart'; + +class TabButton extends StatelessWidget { + final String icon; + final String selectIcon; + final VoidCallback onTap; + final bool isActive; + const TabButton( + {super.key, + required this.icon, + required this.selectIcon, + required this.isActive, + required this.onTap}); + + @override + Widget build(BuildContext context) { + return InkWell( + onTap: onTap, + child: Column(mainAxisSize: MainAxisSize.min, children: [ + SvgPicture.asset(isActive ? selectIcon : icon, + width: 28, height: 28, fit: BoxFit.fitWidth), + SizedBox( + height: isActive ? 12: 8, + ), + if(isActive) + Container( + width: 4, + height: 4, + decoration: BoxDecoration( + gradient: LinearGradient( + colors: TColor.secondaryG, + ), + borderRadius: BorderRadius.circular(2)), + ) + ]), + ); + } +} \ No newline at end of file diff --git a/lib/common_widget/title_subtitle_cell.dart b/lib/common_widget/title_subtitle_cell.dart new file mode 100644 index 0000000..cc0e0e8 --- /dev/null +++ b/lib/common_widget/title_subtitle_cell.dart @@ -0,0 +1,50 @@ + +import 'package:flutter/material.dart'; + +import '../common/colo_extension.dart'; + +class TitleSubtitleCell extends StatelessWidget { + final String title; + final String subtitle; + const TitleSubtitleCell({super.key, required this.title, required this.subtitle}); + + @override + Widget build(BuildContext context) { + return Container( + padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 8), + decoration: BoxDecoration( + color: TColor.white, + borderRadius: BorderRadius.circular(15), + boxShadow: const [BoxShadow(color: Colors.black12, blurRadius: 2)]), + child: Column( + children: [ + ShaderMask( + blendMode: BlendMode.srcIn, + shaderCallback: (bounds) { + return LinearGradient( + colors: TColor.primaryG, + begin: Alignment.centerLeft, + end: Alignment.centerRight) + .createShader( + Rect.fromLTRB(0, 0, bounds.width, bounds.height)); + }, + child: Text( + title, + style: TextStyle( + color: TColor.white.withOpacity(0.7), + fontWeight: FontWeight.w500, + fontSize: 14), + ), + ), + Text( + subtitle, + style: TextStyle( + color: TColor.gray, + fontSize: 12, + ), + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/common_widget/today_target_cell.dart b/lib/common_widget/today_target_cell.dart new file mode 100644 index 0000000..4cd8e86 --- /dev/null +++ b/lib/common_widget/today_target_cell.dart @@ -0,0 +1,67 @@ + +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:smartfit_app_mobile/common/colo_extension.dart'; +import 'package:flutter/material.dart'; + +class TodayTargetCell extends StatelessWidget { + final String icon; + final String value; + final String title; + const TodayTargetCell({super.key, required this.icon, required this.value, required this.title}); + + @override + Widget build(BuildContext context) { + return Container( + height: 70, + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: TColor.white, + borderRadius: BorderRadius.circular(15), + ), + child: Row( + children: [ + SvgPicture.asset( + icon, + width: 40, + height: 40, + ), + const SizedBox( + width: 8, + ), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + ShaderMask( + blendMode: BlendMode.srcIn, + shaderCallback: (bounds) { + return LinearGradient( + colors: TColor.primaryG, + begin: Alignment.centerLeft, + end: Alignment.centerRight) + .createShader( + Rect.fromLTRB(0, 0, bounds.width, bounds.height)); + }, + child: Text( + value, + style: TextStyle( + color: TColor.white.withOpacity(0.7), + fontWeight: FontWeight.w700, + fontSize: 14), + ), + ), + Text( + title, + style: TextStyle( + color: TColor.black, + fontSize: 12, + ), + ), + ], + )) + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 17837dd..8e731f2 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,7 +1,9 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:smartfit_app_mobile/Modele/user.dart'; +import 'package:smartfit_app_mobile/View/on_boarding/started_view.dart'; import 'package:smartfit_app_mobile/View/page_test.dart'; +import 'package:smartfit_app_mobile/common/colo_extension.dart'; void main() { runApp(ChangeNotifierProvider( @@ -15,12 +17,28 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( - title: 'Flutter Demo', + title: 'SmartFit 3 in 1', + debugShowCheckedModeBanner: false, theme: ThemeData( - colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), - useMaterial3: true, + // This is the theme of your application. + // + // TRY THIS: Try running your application with "flutter run". You'll see + // the application has a blue toolbar. Then, without quitting the app, + // try changing the seedColor in the colorScheme below to Colors.green + // and then invoke "hot reload" (save your changes or press the "hot + // reload" button in a Flutter-supported IDE, or press "r" if you used + // the command line to start the app). + // + // Notice that the counter didn't reset back to zero; the application + // state is not lost during the reload. To reset the state, use hot + // restart instead. + // + // This works for code too, not just values: Most code changes can be + // tested with just a hot reload. + primaryColor: TColor.primaryColor1, + fontFamily: "Poppins" ), - home: const TestPage(), + home: const StartedView(), ); } } diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index e71a16d..8fe711c 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -6,6 +6,10 @@ #include "generated_plugin_registrant.h" +#include void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) simple_animation_progress_bar_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "SimpleAnimationProgressBarPlugin"); + simple_animation_progress_bar_plugin_register_with_registrar(simple_animation_progress_bar_registrar); } diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 2e1de87..d00be37 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + simple_animation_progress_bar ) list(APPEND FLUTTER_FFI_PLUGIN_LIST diff --git a/macos/Flutter/Flutter-Debug.xcconfig b/macos/Flutter/Flutter-Debug.xcconfig index c2efd0b..4b81f9b 100644 --- a/macos/Flutter/Flutter-Debug.xcconfig +++ b/macos/Flutter/Flutter-Debug.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/Flutter-Release.xcconfig b/macos/Flutter/Flutter-Release.xcconfig index c2efd0b..5caa9d1 100644 --- a/macos/Flutter/Flutter-Release.xcconfig +++ b/macos/Flutter/Flutter-Release.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Podfile b/macos/Podfile new file mode 100644 index 0000000..c795730 --- /dev/null +++ b/macos/Podfile @@ -0,0 +1,43 @@ +platform :osx, '10.14' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_macos_podfile_setup + +target 'Runner' do + use_frameworks! + use_modular_headers! + + flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_macos_build_settings(target) + end +end diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index 2396703..0c554e7 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -27,6 +27,8 @@ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; + 4D637422A8A48A3DD3870FF2 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAAF6B72880031AF91AF1D78 /* Pods_Runner.framework */; }; + 7D1B58A988C2D813F0AD2648 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 224D4A3F225F68632ECDCB3C /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -60,11 +62,14 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 06F9583AED9802D69AFAD397 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 1447CF3F22E5C6E2DD864A7D /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 224D4A3F225F68632ECDCB3C /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; - 33CC10ED2044A3C60003C045 /* smartfit_app_mobile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "smartfit_app_mobile.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10ED2044A3C60003C045 /* smartfit_app_mobile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = smartfit_app_mobile.app; sourceTree = BUILT_PRODUCTS_DIR; }; 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; @@ -78,6 +83,11 @@ 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; + AAAF6B72880031AF91AF1D78 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BB183F8B5EC5D582001EBA19 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + BB8EEC31748594A92EEC1868 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + E5AEE884F74A0E9EED0AD62E /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + FE192D1015B74FEF6DB87A25 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -85,6 +95,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 7D1B58A988C2D813F0AD2648 /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -92,6 +103,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 4D637422A8A48A3DD3870FF2 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -125,6 +137,7 @@ 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, + 9F6FEA9E182E3B341478D3C6 /* Pods */, ); sourceTree = ""; }; @@ -172,9 +185,25 @@ path = Runner; sourceTree = ""; }; + 9F6FEA9E182E3B341478D3C6 /* Pods */ = { + isa = PBXGroup; + children = ( + 06F9583AED9802D69AFAD397 /* Pods-Runner.debug.xcconfig */, + BB183F8B5EC5D582001EBA19 /* Pods-Runner.release.xcconfig */, + FE192D1015B74FEF6DB87A25 /* Pods-Runner.profile.xcconfig */, + E5AEE884F74A0E9EED0AD62E /* Pods-RunnerTests.debug.xcconfig */, + BB8EEC31748594A92EEC1868 /* Pods-RunnerTests.release.xcconfig */, + 1447CF3F22E5C6E2DD864A7D /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; D73912EC22F37F3D000D13A0 /* Frameworks */ = { isa = PBXGroup; children = ( + AAAF6B72880031AF91AF1D78 /* Pods_Runner.framework */, + 224D4A3F225F68632ECDCB3C /* Pods_RunnerTests.framework */, ); name = Frameworks; sourceTree = ""; @@ -186,6 +215,7 @@ isa = PBXNativeTarget; buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( + 6B6EE52CAA76343BE300E884 /* [CP] Check Pods Manifest.lock */, 331C80D1294CF70F00263BE5 /* Sources */, 331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D3294CF70F00263BE5 /* Resources */, @@ -204,11 +234,13 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( + 3AC4D89FFF1B08682057CD0D /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, + 320422BBE48D36334808249B /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -290,6 +322,23 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 320422BBE48D36334808249B /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; 3399D490228B24CF009A79C7 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -328,6 +377,50 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; + 3AC4D89FFF1B08682057CD0D /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 6B6EE52CAA76343BE300E884 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -379,6 +472,7 @@ /* Begin XCBuildConfiguration section */ 331C80DB294CF71000263BE5 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = E5AEE884F74A0E9EED0AD62E /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -393,6 +487,7 @@ }; 331C80DC294CF71000263BE5 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = BB8EEC31748594A92EEC1868 /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -407,6 +502,7 @@ }; 331C80DD294CF71000263BE5 /* Profile */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 1447CF3F22E5C6E2DD864A7D /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; diff --git a/macos/Runner.xcworkspace/contents.xcworkspacedata b/macos/Runner.xcworkspace/contents.xcworkspacedata index 1d526a1..21a3cc1 100644 --- a/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,4 +4,7 @@ + + diff --git a/pubspec.yaml b/pubspec.yaml index c501090..4cb6e21 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -39,9 +39,19 @@ 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 + flutter_svg: ^2.0.8 + fl_chart: ^0.64.0 + dotted_dashed_line: ^0.0.3 + simple_animation_progress_bar: ^1.6.0 + simple_circular_progress_bar: ^1.0.2 + animated_toggle_switch: ^0.8.0 + flutter_polyline_points: ^2.0.0 + location: ^5.0.3 + google_maps_flutter: ^2.5.0 + flutter_bloc: ^8.1.3 + flutter_form_builder: ^9.1.1 http: ^1.1.0 provider: ^6.0.5 - mdsflutter: ^2.0.0 dev_dependencies: flutter_test: @@ -66,9 +76,8 @@ flutter: uses-material-design: true # To add assets to your application, add an assets section, like this: - # assets: - # - images/a_dot_burr.jpeg - # - images/a_dot_ham.jpeg + assets: + - assets/img/ # An image asset can refer to one or more resolution-specific "variants", see # https://flutter.dev/assets-and-images/#resolution-aware @@ -82,16 +91,12 @@ flutter: # 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 + fonts: + - family: Poppins + fonts: + - asset: assets/font/Poppins-Regular.ttf + - asset: assets/font/Poppins-Bold.ttf + weight: 700 # # For details regarding fonts from package dependencies, # see https://flutter.dev/custom-fonts/#from-packages diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 8b6d468..dddde2c 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -6,6 +6,9 @@ #include "generated_plugin_registrant.h" +#include void RegisterPlugins(flutter::PluginRegistry* registry) { + SimpleAnimationProgressBarPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("SimpleAnimationProgressBarPluginCApi")); } diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index b93c4c3..36dd032 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + simple_animation_progress_bar ) list(APPEND FLUTTER_FFI_PLUGIN_LIST From 3717c679a075d6e3ccc7f33142b319991c83a548 Mon Sep 17 00:00:00 2001 From: Enzo Date: Thu, 9 Nov 2023 11:03:52 +0100 Subject: [PATCH 2/2] correctif du merge --- lib/Modele/Mds/DeviceConnectionStatus.dart | 2 +- pubspec.yaml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/Modele/Mds/DeviceConnectionStatus.dart b/lib/Modele/Mds/DeviceConnectionStatus.dart index abb9b96..8443751 100644 --- a/lib/Modele/Mds/DeviceConnectionStatus.dart +++ b/lib/Modele/Mds/DeviceConnectionStatus.dart @@ -1,6 +1,6 @@ /* enum DeviceConnectionStatus { NOT_CONNECTED, CONNECTING, CONNECTED } -/*enum DeviceConnectionStatus { NOT_CONNECTED, CONNECTING, CONNECTED } +enum DeviceConnectionStatus { NOT_CONNECTED, CONNECTING, CONNECTED } extension DeviceConnectionStatusExtenstion on DeviceConnectionStatus { String get statusName { diff --git a/pubspec.yaml b/pubspec.yaml index 0d158f2..4cb6e21 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -35,7 +35,6 @@ dependencies: file_picker: ^6.1.1 csv: ^5.1.1 fit_tool: ^1.0.5 - fl_chart: ^0.64.0 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons.