From d0023e5718107b01a55defc23948aad8246d3429 Mon Sep 17 00:00:00 2001 From: Kherel Date: Wed, 15 Sep 2021 15:15:54 +0200 Subject: [PATCH 1/2] update --- assets/translations/en.json | 10 ++ assets/translations/ru.json | 10 ++ ios/Podfile.lock | 6 + ios/Runner.xcodeproj/project.pbxproj | 3 + .../Icon-App-1024x1024@1x.png | Bin 30242 -> 42150 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 354 -> 829 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 608 -> 1058 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 906 -> 1378 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 525 -> 1007 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 907 -> 1382 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 1336 -> 1721 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 608 -> 1058 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 1201 -> 1611 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 1703 -> 2268 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 2371 -> 3047 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 1188 -> 1611 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 2018 -> 2591 bytes .../Icon-App-83.5x83.5@2x.png | Bin 2266 -> 2840 bytes .../local_auth.build/dgph | Bin 0 -> 96 bytes lib/config/hive_config.dart | 1 + lib/logic/api_maps/server.dart | 6 +- lib/logic/get_it/ssh_helper.dart | 10 +- .../pages/more/app_settings/app_setting.dart | 2 +- lib/ui/pages/more/more.dart | 156 ++++++++++++++++-- pubspec.lock | 14 ++ pubspec.yaml | 1 + 26 files changed, 200 insertions(+), 19 deletions(-) create mode 100644 ios/build/Pods.build/Release-iphonesimulator/local_auth.build/dgph diff --git a/assets/translations/en.json b/assets/translations/en.json index 42178a89..8cb0235a 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -39,6 +39,16 @@ "generate_key": "Generate key", "generate_key_text": "You can generate ssh key", "console": "Console", + "remove": "Remove", + "enable": "Enable", + "ok": "ok", + "continue": "Continue", + "ssh_key_exist_text": "You have generated ssh key", + "yes_delete": "Yes, delete my SSH key", + "share": "Share", + "copy_buffer": "Copy to buffer", + "copied_ssh": "SSH copied to clipboard", + "delete_ssh_text": "Delete SSH key?", "about_app_page": { "text": "Application version v.{}" }, diff --git a/assets/translations/ru.json b/assets/translations/ru.json index ac731421..855adf60 100644 --- a/assets/translations/ru.json +++ b/assets/translations/ru.json @@ -39,6 +39,16 @@ "create_ssh_key": "Создать ssh ключ", "generate_key": "Сгенерировать ключ", "generate_key_text": "Вы сможете сгенерировать ключ", + "remove": "Отключить", + "enable": "Включить", + "ok": "ok", + "continue": "Продолжить", + "ssh_key_exist_text": "У вас уже есть сгенерированный ssk ключ", + "yes_delete": "Да, удалить", + "share": "Поделиться", + "copy_buffer": "Копировать в буфер", + "copied_ssh": "SSH копировано в буфер", + "delete_ssh_text": "Удалить SSH ключ?", "about_app_page": { "text": "Версия приложения: v.{}" }, diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 373cec68..7eefa660 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -2,6 +2,8 @@ PODS: - Flutter (1.0.0) - flutter_secure_storage (3.3.1): - Flutter + - local_auth (0.0.1): + - Flutter - package_info (0.0.1): - Flutter - path_provider (0.0.1): @@ -18,6 +20,7 @@ PODS: DEPENDENCIES: - Flutter (from `Flutter`) - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) + - local_auth (from `.symlinks/plugins/local_auth/ios`) - package_info (from `.symlinks/plugins/package_info/ios`) - path_provider (from `.symlinks/plugins/path_provider/ios`) - share_plus (from `.symlinks/plugins/share_plus/ios`) @@ -30,6 +33,8 @@ EXTERNAL SOURCES: :path: Flutter flutter_secure_storage: :path: ".symlinks/plugins/flutter_secure_storage/ios" + local_auth: + :path: ".symlinks/plugins/local_auth/ios" package_info: :path: ".symlinks/plugins/package_info/ios" path_provider: @@ -46,6 +51,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a flutter_secure_storage: 7953c38a04c3fdbb00571bcd87d8e3b5ceb9daec + local_auth: 25938960984c3a7f6e3253e3f8d962fdd16852bd package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62 path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 9140ef0c..106017ec 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -361,6 +361,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = UVNTKR53DD; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -499,6 +500,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = UVNTKR53DD; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -529,6 +531,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = UVNTKR53DD; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png index 1e296c4fedd0481f63a1384e5347895ee9a7427e..fb07346cc0e1d3359ff8ee08cb26300dac4d937f 100644 GIT binary patch literal 42150 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 DW__w5 literal 30242 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 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png index af5f0604e01f00e18deaa2c55263dff7fbf5dd8a..93c986fb357038ae3401497794a08e25ddcd17a5 100644 GIT binary patch literal 1058 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6P#^NA%Cx&(BWL^R}0jUw5X}-P; zT0k}j0~4bV12aeo5Hhr9GO&Qz3=C>O8mNB(BSLlo6I@nf0W*RPQkY@wu?c8MWM)W2 zNrbPDRdRl=USdjqQmS4>ZUIOEgH44MkeQoWlBiITo0C^;Rbi_HR$&EXgM{^!6u?SK zvTcXi&UrkbyCHd^BQM2>aO_zzsWmz;>Z8zy;Cl4i0skvH~zNbs0nve zNi)07ioi{m@9(d7XfeiOecM2LIaiZ`~pj;roY z`6ZDfpZs0vu62K-W;2V!vZG?V*3Y_hzVykQLc?mdEpMOaKkL#wrhmUkAm7+)m0Hm3 zzE8imttsw#Ad|lCGuw>-i$F2MW~g+3oNWQGT%Khve=4(=~q%aRoA$9N9GY%PGI}am7owNB?D> z9-hnnMgN}Ak@o>>Ha+62YRKun z@1z^1b~&l&li`I^&+~tl&41K**k@!%h9CRs=oAKqZ$FJ0xHQk8h~akN|6jCr52lrWUSfz1;V2#?VAO$>f}!WYzkmNi z82>;VMv@I=Wc<&-#6+pH5CFr0E}lM67B3LHlWd@>>_>*lrGFiXeDFzv_uMF`%cPTcDW|?Hc78M2=@vjWdrY|TmhlaVB zk)eB$E`z+pR|XZ?&t#iIH3wSgzGCpQdcwfQ`VSn%ApG+;GegA`V}_|^Cm6(qe+--h zb(G&Tv}K)xXMYNFoi_}icKY7aQVefDaxgT`(q))dd3xX+Xlw8iBggvMJ_b7w1nxcM zB-?DNIPlkR%#s-tz0?3yap3mjG7P?Uj~V!ReuMcS2QS;HObw%{02mHrW@ct+Yi(ipd2b7lHwYaF z0z!hoT1!Ae0$8CwqPKf6z|hMigAL$x;LpE041d2prl(sN{xQm6h~ab~yWCuwI)+#< gbfb8%fI;s-0Q#eh7Na!_ssI2007*qoM6N<$f&_mNasU7T diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png index 7da4d77fbb4f99fbfac40a66959dbbf1bef573df..6cffb8718cd8242e46dade5cd2886da2fec7bba7 100644 GIT binary patch literal 1378 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HT*rfw8>Db1({U%DA(5FO z5hW46K32*3xq68y`AMmI6}bf<1q?P7RzPNMYDuC(MQ%=Bu~mhw5?F;5kPQ;nS5g2g zDap1~itr6kaLzAERWQ>t&@)i7<5EyiuqjGOvkG!?gK7uzY?U%fN(!v>^~=l4^~#O) z@{7{-4J|D#^$m>ljf`}GDs+o0^GXscbn}XpA%?)raY-#sF3Kz@$;{7F0GXSZlwVq6 ztE2?72o50bEXhnm*pycc^%l^B`XCv7Lp=k1xY}U;mQ=N5!>sP@MDv}d?u;WfB&BT_BLK){VySt>JMuD|L0!}xjggqi68IZ zUoW09?NO=8vQGyUjb3F`9X*`k(cfk=Pe8&~u7at3RgkmMl8qsc_t*b#YvZ2q@32Ri zgrT94f$`-f?Ttq-=H09F;45`cntV*;(QnJWk9N$sz<+6r;KEsLCm-Kc|Mu#o+x>bY z;fFkzrd+si(V_iL<(cdI9Hzh88*s}?>czXm&sCr01gPq&aIRdob8#bI#J1qf>ztZS zdWw$o^oijdpZTdQcSS`1a9;WM(D?Nm-mKewr<{6r zeV?+vbY5KXu}Za5hq{dJO58KLSQR|Eg!56-f+Y;^-(R}1`kk2nL$3Zuvw!54x){YUMD!W$gKWCoF97U}U!7dC_qE@i3c=O`@ zjZcyr-2OOTJvHZ4pIwzFld*;VUBRE9=86W-$r04Dt~!|Z^!NFS39+9a8b{v`(oGRO zbu*;w%k%s-JMW66=W{s6e0w75A2s{yV)2+M)*?4qw5+8vzFdE=bH?Ywrl$7K&tHGf zIq@y9)wkAtv%&w%AwL)jWj4&2HvNy6XuFcMQ?2`I?V6Ny=PUQBwBAp6yO?YCufA)+ zmHlswVng&ciQLSIvXD~E_!=7c$6=fEMAM-C2URqGeLw3Sw?o$F49}rI`|s5)Nh@2j zZ?Uk{nTLAI1e<@IY3SMoOTrXSf_^638m|MKf@a}~;{-p)8>`tSGgPcJ90YPe`>vbbQH zoKH`WlT%a1Dt1os<%`)ne{Zl#zH%|5xs|QyhtseB^);JJ3V3!+{Qp0>XJNzC1pQA6 zyXuX8{rgcMT{(yKZpf|AGk5kH=pKxGlBgwXqr^Oi;RJU_p!;O;yd|%tcrz~@?y-?& Yc-eJgnw#67Tc8rl)78&qol`;+0PUeU(f|Me delta 894 zcmV-^1A+YF3W^7i8Gi-<0027t*>V5?15rstK~#7F?VDRjQ*j)}zvpbzdCl8Q4b$>g zq6?jpuSM8H8YP8KfplG0B9bmzG(>tR3JNkR!a#cr!3ca!tbEBBL{xTB%gCl~ZqBXU zIvc1hcXZg!Z+bi*IB?GIe>lJ2XWRMx&xOf799TJc8h=Sx>`205Cph7eI>7Qs z*h)f#%M}5udoSV&+5(OTC+snYvL-=c7&ly#uX)F%pS0MKgvE{|EOsPeu_Fmj<8V0s z+Ta!^6Vk*icQ~1h{@DYsaOIAj|3tQjG;vbA9WCcyA~net(&H{f*nZMu6Om|WDaEa` zy@-l*k>w5RIe*+g6pyQ|#n2so!(H^#h4R!gN{5L+WnCvU)Y7cJnmYLtn^7# zRtyWCYe@)mcd@wMR)h?d6-7BlK{G88VQ%Jgvbc1&#Mimgl7;Ks%abCU{hEgy!q<~>x2c7NZt(X7Dzj(j}p$(-5e^Y?f( zKUAYh+Xt5AJJRAI6D}(>pmD$6Z~94ybD)0TTi>_b^=i#b{Dpos?mfwYcF(7f*Fh#+ zyX_0_Tzg>G2TnKx-sUyU)90$?Eu5bBj{jpJYPBwzF1X^La%#DrNv)9Vr zdDwf?Fz_Rmt_HG990l1XL`Jy%V(Q#6@d~SR$A9O0b|UZlcxS2k0o3&@gr06>K#JWX_z5=N7WvKIgRa^fc* zy336?aq2XjPA87n4nm!8;oDUZ6ms{%J1qiU;WCW|4HwQq*VK%hOe-{n{P(lViFwcA z>UXLt3=9r&YZr;i5uOE`*0G~n7~i#XYdr+z2+xATEW;ovDG{(zlp{RSv?O*U;Xrsi zEQns;{x=@a{FMeJY-g%rGkV|OE|33%$YM%)$AS`8rXBPxVn8~F#f~H_c2=D5AEy!7 Uc!82InE(I)07*qoM6N<$f^Vm@Y5)KL diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png index 856c5156eba2f7d8451f47030371b13f6f9dd0ee..9e785db5d723352262d164648ae0232f56ac01da 100644 GIT binary patch literal 1007 zcmeAS@N?(olHy`uVBq!ia0vp^vLMXC1SD^M{15@87>k44ofy`glX(f`1f)iIruq6Z zXaU(A3`~qd49p-UK*-RZ$-n|;Gcc$DX$A)71&j#U1x#>R*#*o9Hb~)_WfuNGLn1Rn zB1$5BeXNr6bM+Ea@{>~aDsl@z3K(oEtboki)RIJnirk#MVyg;UC9n!BAR8pCucQE0 zQj%?}6yY17;GAESs$iyPpl6_D$EBd4U{jQmW)z9|8>y;bp zKhp88yV>WRp=I1=9MH?=;jqGLkxkLMfuL^+7WFhI$72aI=A0Z9t+{{zaLoK$}74+Zoz`RicPN z?Xl4ZS&rlwh)=)ZG7HD|b<&$OJkHQ;R!7rM&A$lKJ1T=Xx#PhPohmx zpp2)rpIYFveZP;~GmGcXIQB<(Rrq_Z2PQn8O&Z0Gucj`wZ$9boQT5TV)AYK-U)c*1 zwWbQ5Av4>f{yi!?c+8p0+W!RO)5sbB|Nr#1&=<~rx3SyeH1C?e##yJ&A78$5-Kh_` z^P4qK>}O%rzb^kLOXA_zkIT=`|GxG+=LXA`cxJhq@dv6r-ia7bw+i4@y7!}^^6%e2 zA2O6Zxf1mPq#wRexRo=d;`i_V$M^H|7JXf${pa`e=9z-80$hGDh5r5j{qg<&_7|r* xpBoz)7OpU8$`%nR?lf;);5Frg>WWzvtPB#ZEq?o=#O8vskEg4j%Q~loCIBB*fe-)y delta 510 zcmV6&-{Q4uXsLSY5?Y6hRQBn-;~Xi%^jEPf)?d#X&^tU>}O0pg1}BD%w^N(GO(c_;nsL89wdd4% zWbgz-J?HtO`DA&u0X3Bma5=BkLj{4ttlt6e#2##xxU#6VI*!ifYaE=KaClk{x33kx z>0Ou%&&r@x=6^>lO$DLT^597wne?_JbX));8rU}1D0f%SSEos}t%im9zmytTQn*n&|f zsYGHN4PqtU>$0O1P2NgxlNJ4(Upbh)05-mVEuE1^n*aa+07*qoM6N<$f?xOS A4gdfE diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png index ce53aa9f67480438a94fb7a9fc1a5107595763b7..17a096ee3214955ab23626dbd91e0e70ada67cb2 100644 GIT binary patch literal 1382 zcmeAS@N?(olHy`uVBq!ia0vp^Rv^s51SIor-mM2xjKx9jP7LeL$-D$|0#YM9(|mmy zw18|51|~)!24;{FAY^FIWMBca85q=nGy?Db!S?epHA(5FO z5hW46K32*3xq68y`AMmI6}bf<1q?P7RzPNMYDuC(MQ%=Bu~mhw5?F;5kPQ;nS5g2g zDap1~itr6kaLzAERWQ>t&@)i7<5EyiuqjGOvkG!?gK7uzY?U%fN(!v>^~=l4^~#O) z@{7{-4J|D#^$m>ljf`}GDs+o0^GXscbn}XpA%?)raY-#sF3Kz@$;{7F0GXSZlwVq6 ztE2?72o50bEXhnm*pycc^%l^B`XCv7Lp=k1xYit zR@0|_G(F-poi#qXT%Nq0U=*Op6 zid^6DVV2_U4tv8tu3=u~-~QLv-&+{jb$@3@7yCTxS20n?4raXQYtyq~aT8{?(a1O; zk+iV;URuTfe}`}JN-uc$DR9a|dFjeTl@s5!PkdBVR<7Jt_{ypL-En{U>3Z>;!Fq=d zFu0^N@z1|G>2Lnzm6GjdQfh6gx2JxaGwDd8{>(!rC3?)v$={XcW`F;2vP8-(*Q8YM z@Ot|*rk8u;_B}n2W@?$VrBv^N>wEjn;l9SdK2Ek03p_6Jhq3g%X8d^}*;PCO7Y^@q zIRD00cWXhnQC+;Ca(CPW!Nu(TQi=cM4;(su?SZQG?fa+8S)S*F?5>MvSXB2gOtkXk z`aU)N4;ktju4gYiefGz8=a(hRuLjGlvtOh0zt`lRua4cy{KF6@@{q_7+H=RtI8{S!$1ckC8g7(*4QiXZ+vi4d)^ka*Y5f|CcIrd!PoaW)7($r zTG=V&e^!2!&2PVu%ok!i}Qnh-6xh8x{@2^&z!k( zM#I6l@oo7Q2IbD~RIR56o7+1zSI)Puzi0P$&58&4lX?~}dIU^$H&W6!b5<$L?o>6@ z&^S?Ex@F^rgiKzg*D?ZTV$YfGCT1lCg$5cb@Eyw6EPKxM^~cX&9UPPG9op`PZAvY) z63gTe~DWM4fRth%) delta 895 zcmV-_1AzSI3X2Dj8Gi-<007~;N+ms{!n5M5k$RO(o>WEK+6)>AB&uG z^Urp--R_o6Wz!A1=S;8n0|&O>xx2sL2hKhB+r`akScPc_Qxmst(KD=<*zCNNVqoR&V#D(A>^qw5&dxvT|d875raj*HyO1@ zyheqFC@M5WQK2D<3XP2|>Tpcq(cs`>z-i#tx(eQsrfa-ttQ&(w!rLih5>?bW?L`0G z`%5DFg~lIKE`J4@_I%{^oU4(rq1*Sg2>ID=?5g=rC0_!sQ3)>fmLf+#i;^NI@oWj5 zjJ!S>&UBg4)%p@y8S_MQC4AO(xRhwSWyZ}@ub@%}h~-JRXpqsb8g%xR;`AXav6*;H zhz5D_ItRwg860T%MCAO`L^IOnL${M16%$Y@{1~yNqkre|7QFwg4IgvoiHVzuXHZx5 zgZKPYL^mZfxN&kA+4{L~%v?N)>!x9xxK<6TO}7x0puM+@J8l-m1^m8@qas>w8DA#( zk0d#Z=Kb%`blwtE;2oTz2na@pX*{z`udjS}dHvaAH> zx+`#W-v{ii9Sg1YpCR=CYqMw#b!=yDM4|;iI$lh5q}HzVC=#3LMr*GiI$rp7Y*f{=--`9 z@-L65iTVO642>8g;yMk(t%}G`O4LMe56~H+E3sytM@h4>MKcWs=(K4Vx7$PCjhXY1 z$>{yTEclSlH&I2^YBer*wBz96BXGG~=ss(OA)VnpIZaj^x&;OK=(u5EVp6aWB=+}&ut zpbb#pnow~6c9!V?8i>%BP6g`jt{4RaZ#K(4%F`2A4f>h@6ru~j)DUn12e<%y-Uk44 z&;kHV4*6Y`Lw{8R(cz z*un?_H$lYZ#bedH;X8S|MNT-JTIkpHqfZex>bFw7@aI_IfFyN=WJ9zj{o)3XI;yi| zF9DYgDy#XOZ5-#3|I7WA$ z>Ihwlb)OUUavZI5dsPmOYiXXm=M7OSMMr45y5uWwPbHdIs?ZYhy6HeyD6 za<*+ioYH!IID}7*)<@i03`6nPQy}=~me3%8kYQjA>4lm@#?_h`NH9dQ3@K<9I>#$; zf#dhaW8AjxrCXLpw+?;_?dIIR{9v%L=IDtUhAS$QB5$fE**vaN#I(m;b8)@gK2m9% zy6)l2=tNq8DSd zqVO*zWzB<3Wx?kuB)ec>Bo~@9Ht@*MqRtNu)hg`tNz(Iv*z@_kMSWe4F1(VC(p1bP zc1Y<=968&e&k~{c_?1KG?q<9RjCwqPOjgmQhwL}%CBs9h|yhsfQ~Bf zxe|PoERoZ|xiqglc5vYFUjmOP1 z$Kx>K>UW_UvT_6W={>LF15=OeKN^eDn~6_dl^gbu(=@d_<{1N%)jEML*xzNwMcH=I zYwhvwzP{(rmKL!Z>kd^Ho|_q7=s9~Z@ z(!CR%R|E1S`%Jf0yHxh-2_89{Sue_6yo^6?(>A2nMqzY4L5VB zxB4@3a!B4UEdTrc_}EyRr&Q!(_S~u1AZlPwQ>-euUTK$BPFdf${bXNj97|()`kBCs z<=e91U(Z&x@So;S_G{8yy2Ptd_>CoOuGp=mJ_rS;R*pdNiWl=Ons8nS8?l*gVsQZr7}hNW*7By<7gkfZqjx5C)Yawhk@H8Z_$v5^kVU{|MY&nY21; H*xr8tT{pUL delta 1328 zcmZXUdpOez7{})njgwQZIgv!JD@o>l$w(Y)Cn8}emBu2YD}IO)evAr3*Vc=Z|xHp3n3C@qNDU^Ss~Zd7m#`xm~H?dq4pM0%7{b zFM>duWnS*Ceo1nRH=|L({#s0#*KnP6s<&_H#a`>^ChsxM5Y3K!;Ip1(jrNHz7Cz+N z?w8fd(36&!3SuC6!gq{Pspoc1aM8(uVBMPse@4(cB!yl(tHBr zpoOhgm2rh0;);TYgg_88JD6M4?EwAymA2(^+T$)rl8OTjVY186sDTJ!r?Jvks+0Y0 zJcH~qG;1KuOVF6rBxS(9%&Dccn0Q@Hg~QUIKd5A`-$-c{%jB|*^4XZ~<5VPJU^o!v z?2|QW~~JZdF7m()GgaJ$_0egEDEnB| z6c#E_6qf_uQ&rwtj z=f~$4*b0S;MR6j{cdI{*;92a(!nx=9C3v-dAj6BU&vZ_x6xJT<8)2^Ze+X->rZww% z{i>P~NY6N%9NRWloxGIq+O>{{uI9hIf$c}0te1J zxewu6y|E_7R!q3hYlFf_PhX0&-EJG!caq8Z(^Bp4UH?-WV8f?9A*QuZkAW6L*N7d;xu znH&EWw7}(q-~fzZTw4Hr#_^m~y3d*_0>j#oe{-&1WAiR9-_t!uFH`nGf9G#ApM0*N zX5$3V{abA=`3^%Np5&$y3vgwuOkR|3hXrQ4+>SXhX4Qo diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png index af5f0604e01f00e18deaa2c55263dff7fbf5dd8a..93c986fb357038ae3401497794a08e25ddcd17a5 100644 GIT binary patch literal 1058 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6P#^NA%Cx&(BWL^R}0jUw5X}-P; zT0k}j0~4bV12aeo5Hhr9GO&Qz3=C>O8mNB(BSLlo6I@nf0W*RPQkY@wu?c8MWM)W2 zNrbPDRdRl=USdjqQmS4>ZUIOEgH44MkeQoWlBiITo0C^;Rbi_HR$&EXgM{^!6u?SK zvTcXi&UrkbyCHd^BQM2>aO_zzsWmz;>Z8zy;Cl4i0skvH~zNbs0nve zNi)07ioi{m@9(d7XfeiOecM2LIaiZ`~pj;roY z`6ZDfpZs0vu62K-W;2V!vZG?V*3Y_hzVykQLc?mdEpMOaKkL#wrhmUkAm7+)m0Hm3 zzE8imttsw#Ad|lCGuw>-i$F2MW~g+3oNWQGT%Khve=4(=~q%aRoA$9N9GY%PGI}am7owNB?D> z9-hnnMgN}Ak@o>>Ha+62YRKun z@1z^1b~&l&li`I^&+~tl&41K**k@!%h9CRs=oAKqZ$FJ0xHQk8h~akN|6jCr52lrWUSfz1;V2#?VAO$>f}!WYzkmNi z82>;VMv@I=Wc<&-#6+pH5CFr0E}lM67B3LHlWd@>>_>*lrGFiXeDFzv_uMF`%cPTcDW|?Hc78M2=@vjWdrY|TmhlaVB zk)eB$E`z+pR|XZ?&t#iIH3wSgzGCpQdcwfQ`VSn%ApG+;GegA`V}_|^Cm6(qe+--h zb(G&Tv}K)xXMYNFoi_}icKY7aQVefDaxgT`(q))dd3xX+Xlw8iBggvMJ_b7w1nxcM zB-?DNIPlkR%#s-tz0?3yap3mjG7P?Uj~V!ReuMcS2QS;HObw%{02mHrW@ct+Yi(ipd2b7lHwYaF z0z!hoT1!Ae0$8CwqPKf6z|hMigAL$x;LpE041d2prl(sN{xQm6h~ab~yWCuwI)+#< gbfb8%fI;s-0Q#eh7Na!_ssI2007*qoM6N<$f&_mNasU7T diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png index bb04514bf0070fe219ec93cb8e2b78fdd6d92dc1..e5c3c043c010faf8fe19867a3a4a8649974d78e1 100644 GIT binary patch literal 1611 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 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png index abf56f6c5dd5a94522f8bdfbc8b02198bbcd0ac4..5f7802aa66b406208081bba0f13ae18b969680be 100644 GIT binary patch literal 2268 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 HCzcgc$m@mq@AjB4V zSkLl&lksq@e9kdeYwef0--^`@1{xMTU2m?F=GP2Zcf%+s}S zAM5T1@93}pfeQH)@mz1@`PKZ^c9I^L3aPJoz$UwD(-)`c_mY$Kain0@ffECyXH0s7bi;e?^mscjII9X#VWTcT;TYGObQ;5@ z>}N+IA$q(2D8E~w)_eRzR&UEV7!h`mYAJa&!iZXARN}N2z!EQK*bL1M9#2Q;rK(SX z2n}`X8jr(OC!GsUsm~DJI~yT_D*#?PI`};NUYp={ph-DHu~M`uy#4w^^2Wi5usm4 z2?@GxSW85@u-y&O2dyh2t%GNip|5i-QubCH92*~_$T4I{t&gwIX5EPH+!*$ zN^Cuf-FkKD{mxb%(o!Vdq#5(sNK0#;X#Mbw;JH~MB7n_%>l#HAQ^(24QHPppV+e@( z$X?3B?6gF#ce2dn;qZizs3*(r&Igjjkb)bg9L1Gr|EOCTyn{`K)-}8074@br@6YxN zzjuG%#f?m{c;@+2nfqg&ojWCs#x2NR*gS?>&q6^6k4JDmIne?aH?!ux9-A6Yd3~pSrgBp-T6Dg!bZYgeeyWDNAXA|p9N|_sPAooaN3YtF#Z_!Blt@ck{>9@;* z?sM`{e}y*vKX(-&p| z1(P))cD&r8w_R?hC(P%)bn=^v##k?^e3M*Xf1EB~Ry7zs|2|#gYx-l40}a+WzmW0Q zEEaD_MBwjC+ZT=%MlPkQ8|-}g7H{9__~x~B&Egn1fF}IGm2s#a{PBft(HoHkDr9rR zs5{)kb*g93LIzQXJy^NXxTm(yK~7u$G(JfOX)>Ht6@HQ}lY)AMo>OnUy|^cYZLz*#2)@Cr=gl^dHzm7#e7?hp%W$25mv)bUixIT z3FZAB>mi^-zIsF=z3GN-{eIY&cq8S52iS|o%0XC$kQjr#-d8$olN%*fL`^(hw1obSc|96)yeUgR`#T5=!c#ndYh>@f`<}%PhfhPb9_A?$w|%FTnpv@sMXSWLd)8y ziquS=N#pQzwy-4u@92~d?b0@@RaLt_zWV|aNhJHeGrezppJ!-eyhMGBvPShU&67QRyYRGuP{x%*O@msufs2 zgcC@F+tJhMt{E%$88#p+o8$>V@0^~?h@W33R{5N}=7@v42|)8&JH!>0nsCPXzoCZ6 za5o{S+T!!8CuNL-uT7{vicXZQ+=;+mXxlUJYHErRm~g~X#aj#c>#r4hci(UvraRx) z^$TYDz}-Zl-PiK-7Z(=d8)THdjgT_G#P4k4pA|A#E&!E!%LK{=1da;=P*)imfYAIW z;1M{I9EtoS(AVbyZA<$?$46BBC-S;5I{n5NJPM@dc5WS{Xv!)W?c$341D z;3yW`(nziVVGp{v;M|?t#H!p>s5qwsGB+OF&Q)Np#dB)J{L{dQz%fpg?{UVd5zZgb zlT@ww4;L?o9w}=H)=`BZb)u!pc2Z%TmWnXyvlaJJYZiK+Y#NGX!VbKt3QEoh)`+O5Tt2!9}N6Y3%>j?m@&NT6TO4EeQdU}ur)6?^^X4+QH3)R literal 2371 zcmb7`X*3iJ7sr)tB1^KRjID?)8I{K{X)KMUgfNeYWCj^a7^5+vMs^w7jAR=;ks6dW zd#OZ&#u5)>NK7-<5n~Up_q-q8Prc`PKiqrIz5jF1`F*+Pe-mtNU?M_tLOeV?B9<0r z_WQNw-vJQV&yXGg5D(8GAxkr;!@UCw4BTCZukvqyPMD-?i4ZQu$3A-SZb{oD+F$Uf zZy)#>Z>`VF-=7o@$B^mypV4hcRTWk7??}sKMLEC`_?3&$7f*Ovf_u5&-`} zDe-uvN2z`mbvR5a$yXQ0X&~${INqvyplTe)uB~AVvOZpI&?R{QZSjK-a`3GxK30QI z#1SC(Lj0VAlFxG!nr#fZPzY)&^;=;tI-p$2K-co*$n18-5z#Kh6>Znk87b2|Gj@%a zmbWI5{`6fz23J-W=Bi1`yw|KG71~-es6#@qunF#Al|=t-1+;fDr^#&N!|goyZo}#a zPv;ZomW}jU9JvW>S8n#!CHE(6q zVRAy9dL~qhV{?VWWqr-pZI7iAuMyH=Z7tC%wJ^Y_x8Uq{r;N;m2KBm~n8KJO_wJw) zo9CQ+H?g2JW$>l+pa4WN6aZEXjT1&pk)XlDe{GTDiiDtoK40}zrpIE8vVYE)_P5|b z?8)bsXa{E5^Qv7~3WKzs&N-J@20n3?Ct>7>6 zFg(!8NtrDUQjiENHzMZmT=D{dA4z02Qpb?>o&DG*@8}guHYFq$#x|{j4^nzGg zYzTJwEv4l@Lu!pk&g1am-z*|&|cXuFs|j+3~-muH^RJYwyo zo!yBZKQE3Z=?-9D<{wi>`R+<^ZA}u$)wFk0EzB+!m1&(JCJ4!-Dftk%^L^ULk1~HX zPd9Vt@+^$g`umP#3_K1pxJRi!VVGUes>~i7WyO{dhOV$~J|;tK&#z_vy49PHiuGEg zyma32FvtXtf`9g+-P*?eK|5>3HgPXRp)UO`E~Qtt%_6`R6|OHXRBnF7-xz7FY%|Ih z3fY@H2-`ky2Pfc?s8d--YWRO}Z}-i&Q6K4+>V+2=;B#b+!CT3c@w2Y^J1gIk*Zs8# zIWN;zBK7jtdkSp6-H}o98TN`=6G25W zbe?QB=0dX63}+KTk(CB&?kyfQW5%8Y;%meiJf?7d%PZSHbZqtlr{Fc*%h(|=|6S)` ztjv~0(8K|d=j@@Eo}X3u7Vrk^wGgBi3H0154<3lQJL}=cU}TXeyZ!ZXM{QRBzMc}D z0>)!HbMXv}Jq zW`>~}Fr(QOrw5cd8i9D9#9QvK;|mz&5BdDFG|$|rO#wMYlCaTtRrJXk@|RPRLLMrU zeKOLs!(rC)?wnvu6ZZBMoBSSP1GR%Xc4zPIs^r?yGWX=roPbyQui}+`tcQ#YT?L5K zR;yP9L6Mx0%EPC;tO27%&j?~9LUM1`Oua%@(EIT{Nd%4|QYQA`Srsa(RjfEk0AJTh zsrJy0&y=o3tFyB(OzK)h%Y9jAw0Mo+XX~7%wZ`;{7SWq98t`m=BxWWQ$$|hax#Bg* zANKd)rt*&C`$r?6?i1E}QnunUjf7l2nS=!)`+L-|ppVMAo(zcMF$A(!5Dqxc{dF9!;v>8q4DMe?zR@kg2gcSuBx{|e&Nkjm z>eWOC1o(m6wGOZVqxfsi;j?rCzUVRe zrd5p^(~ug+4>|05`G4C@Vl6pqZ^OgcVTGIvnfuix@>UB4B~(%}v-K8<1?7KwpfWCX zQ1XNCFD~9$?x*TdD;Q0C929VK==gGBp{B~5RJEI1rn3kbNT6Pe#@e65nR z`Lul>Pu;h=!R4FKoPvw>~m%boXk0PjL6%?mD6u&azbY;8?3a zT%U5L6<`>hTj%Kh)3@*Eansx8wKvXEfIJgU)#DRWFVp&ub zTS|!JoW#x~Pc*@veE43*J9f3dn9?z-8X*RjrltXTS*1}t^e4;*|CsK-PsW}=?$e8b VOS!Ah_MamjOLH5u3X@y-e*ve_f^Pr- diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png index 8b55ab5bf15c95454c240a78d9afcd6975c020d0..bae4d5c1353af10f8b52fe6e8584950494a2ccee 100644 GIT binary patch literal 1611 zcmeAS@N?(olHy`uVBq!ia0vp^J|N7&1SCDa9;*RTjKx9jP7LeL$-D$|0#YM9(|mmy zw18|51|~)!24;{FAY^FIWMBca85q=nGy?EmW<>f!1A(5FO z5hW46K32*3xq68y`AMmI6}bf<1q?P7RzPNMYDuC(MQ%=Bu~mhw5?F;5kPQ;nS5g2g zDap1~itr6kaLzAERWQ>t&@)i7<5EyiuqjGOvkG!?gK7uzY?U%fN(!v>^~=l4^~#O) z@{7{-4J|D#^$m>ljf`}GDs+o0^GXscbn}XpA%?)raY-#sF3Kz@$;{7F0GXSZlwVq6 ztE2?72o50bEXhnm*pycc^%l^B`XCv7Lp=k1xY0)W!rKiJQr=1j1QuJ_9QWDhvaPIWcJqNfIIYc{I9ot+5_IyZl@o;fb@#tXLd?HP; z+xNmx<4E`AvUj(Z%Q@eEeb=`3+V1Kq^XuXM_4V`afB*b@>-FciraY;fH{%U|)+XkE z&x{q-Pft1PIcu^>0Q(w`sCqlqAAw6w$gqC2IXQ8&PM_DwUn$SdpZp>4F>hDOrgc3F z1C}oS!xFqBXbsoHLx+za$+X%sLFK&beGe|@hAC%^r(A3?xw1nc>8z*ItYnSpmY&YN z+)CHxs4TH;E1EeOEcL(J)9Zd#p^SLP+Yt4wctb8gh_-AM=Cr9XdnxPCeQ!Y#Y)`V;2g z`0#i_@%@=?%F**KhE1&(KW6B8OUi!N*5t2`8d($>K3DFWd*`17j~OGUSnT?{>U!sW zx31W9jB#hyMTgR#9TDs1J}k?7vn`H$+nfx1 z1XljC7G_V$EOg-$x^dboAW*@HXY%j z;(RBvzn^}xrEIU>yZ;mZh)m=T&N$9^^W&x$mvlStH`ue!)fLYcWm>T0aRZB$-klX+ z=I6>JPc9Gb-<4*zRYyi<+rkwg63v`KD{3xIKYrol;xo?`Y!{tX^t&TiGvRA!eDLY( zpw;?4^47<=XGgi2QQEN(e@{J$u1j~cZarUYTOXL>|3m1^z>VD|AJ3H zCLdb4@!$g2obc;SoS#0;jePZL-i5pwaqEOHEveeTxw6W;c+0{s)kWXl1hw~avKhuc z3cgtx_hG94D(%->O_uE5@S))J!DY{$Wt8N!S>LK#Vf~sZQsq{zRtD3+h@;w zkN0g4QknSt(8tVauGRv<3F7m3UtiOW-o;X=Y}gTe~ HDWM4fp1-43 delta 1179 zcmV;M1Z4Zm45SH=8Gi-<0076AQ7Zrd1Zzn|K~#7F?VMX^990;{|FgTZmuxQUZf#?8 zYnv@?nvD$v8y|`YNq(~q1L8PG# z#-wSqbfaj}*pzIW#NF6rFXK$4X_K8y<}=L9xAgpAUgmso{(t4L>q(9Zi^$S!68UNRoowrWw3)&bGPCVkoTVd@o+y**fR!CJW=t zX2;e(JpSOHw#{b-*0c38$mXz*<-~=R(_ujX2hNMis~7EiY?f8p#P6 zyN@>EXln;bgK4MZ@E4{rcr}Q&4;s<_d?!3^XTNMH2!CN3T^A!bbfOL~Z|ie3N5Kfw z_~wUd)Rd>N`Jq1?%TQ3lG~WB-zs}hl8*ya*f)kcgB<%laJ&wH6ffe_pY@eT=8g)rHZ#oI5O!Nb5 znSUiq<4QtiBTIvouzOcu&pX!;%|GWPyoBksMd1H;e&ngz2qcH(66NHvI}H zopIZkNFO%B#!|)jwxf35@o-rN!wDg5hJTZ%E1ZsC3O2$D1tE-x5JtpMSXEUe0zNMi z2|jIoE{bCBM|Xz8BH=LF54?fxEiIUwoWiomBu>29V^=oQ_}~%d>dr z;32pqpd^^JBNtmttzlcYY(ZDo&-k_XwAFdoV@jAyeP-FeZy)yV(Y`nBvN#fNOn-Mt zzu$+py?cO>&#cVD9@4g=D3JeQ$eo7RhY=CNhzMasgfJo`VcHL1l0`u{p#7c9LePXs zA*7PpOTMZ9n~5!o;!+P8lIJeNI+8G#Cj{ThPmxV_E-D;XyzWwXBbyCt$ZMEf(mZ|K tsfb0Nh!93Z2qPkd5fQ?O2w_D21r%Az6Mn*DA=dx^002ovPDHLkV1h~R|F?j$-x!Bu)${uLFmJgg+p7cORN06Qz!$A-*8U$UT z$Zt>*8wC4;K_DG@1c9LW;D4(5knhzC`Otsx3UNUI+>?ti*lwO2Pe%vRq3}?GKQlal zMTiMKx+3o>?7)AV!lJ&lC2x?p zQXv`<42j>hzhvdDS|cop-?z;g zvHsw&g8Z9l(5V!+81TD1pCcG|%w29@ShZJA*uby&#r*5ehzt+SifzGy{FK#>8MDuo zG|`Sv6p~dO7nAQ7tDZ3Qur|rJ6PN%-stL`l3XYgtn)j2)s8X74)ittLExE3pQ(q%7 zn4I{tfg2P!e$gUcb22w>(qefiH*4p!EJm?GyRuBpm%sl-F>n1d7Z3$vp{$A%zzRVk zlL{;fr@D$K;jc{r_}f4@kqQRbezsT|fB?~<`e+JdKZvHut{p}74=3k#cjWkN zq`So8#BXOhqgne{-8X;hjAf1x@6JUQ@w?2^AyDY3IAa)peDLh@32e^nvAnYMJMkaN zDifW+#jeJQik|?m&8MQY1rk*{ObwDIz6s(=xLj3<*3=DV0h3DKEtT`FjHk}!z+&lxJ!{&FI$M%i=NRNz6W{nc6pme|Md76Lt_hR&2 zhm$+ffE0(glNwD63ognH1_LccfTD_VN~o1l>oq@5=pRIy-&xNE0WL|FT5$d6qS_@< z&gb{l`3=8Q(3`9>8}xT&ZAyceC%jk0`D!uI3rjPlBa4zAsG$DWQ|-6JW8p1Jk?Mka zAKImOtJgOx>mPf#8(-FL8+emWpD1-IzSQu1uU!Xb##Y2_-g@?_nOR4D_ob7?^jtjb zxVnDC)=Ky^K{T@2z7s~xZN|1OC*YRXMWEYfN|J24*M;fnYnJFuwRa%uyp0*vh?(PQ zxyrJrzP)P3Sp2}Ua^Fe%Slg_&uRx}+VtcE~+<4|*Lu^>oLc zI~N@Sa*jQAo_8o%uO<5B(!~4Nu=t+5rShV}sjRtilXp$?51K;53yK&aNFMLcdz#s& ze9e+FI`Ol2##4ij$$rDzKhlw|CX>;^Pg|dOw%m(@ML#06RKaVJFs7p|(TvA{i@kOZ z?mWNF`{fMdN1!#YFjhd;>(04l+L5w0aVl5q?JdLrnGA_}rE~8x7~Zy|x{M8|Fw>@^ zet)Jjd~?1aB*aEl{APub9&6V;Ie-4;t^AO z`zz64h`6oR|GfWy^g!lUZvUZXa^eFqHcr`4h;!uubdT5UVQQx$X51&b4b+qiQ)5QIXi=S}4n9^~ z6t?Jbv>im!a|hf?9y^Tqesqb*>Gv_DloFjv5ADONOm=|FIWe~9 z*SZ~CFpObUnduF8AJO?G^W4kwQjO#qC4lz%V+aPFn(Apz5llQ{g2Ef2NM>v{mB8-@ z)P^nv&q#~FCZdrS_8-@z4XOVy6~a(c^mThk?)H`O@_Y*Tk|uje^@u*|Y#bj#pHyZO zMEg@-AMR!1PTb)`7#^6yWnJ)e)0>f11nVaTPn9sVo~F z-W!GSgVF}4Xym(eqha2Mn7r*awI3Pk|fpLp71Hg@@-FJ-E5+IT`l4C zPm>Ytw#PL$zuI8biqytD&zfKc1(}(eXrPeuBOW{j-1;LACKNVhnVpGqn<%M+aqHUHqIKW6>N+ zN8spj&uYZchkI+h2@zX(D2tEp>`(On)mhp;V-R8f<|Wtv7d8UtmEJ|(dSIV1K0u4M z9~@8Ct8KO0zLqQsEDe3`3GXIHbZ}CE4!41um8uf{i|p5$l*;E;8%a|&)fY%47USJ+p+nsibScRYN=N3$4d%d-G=Ak8{p^Gv9pY%sDgP$#6l~i;2jI0000nxP#60 z<4XD&Ai?7-)1jmc00>pXZ7gp@^RZ{doJQ`+cW*&w+cU^Q1tq5BlJq19B6(=i2{ZiE zyM9u`K(7B)z3OUU`NWd7nbyZ!<;1}HTWfL1-rNb2o>#S+KvFg7x<+>94`z<3yuwFb zjeqBN@x!R2x!uFvHg1c4WqrGaX3m3=o09%oaVg@l_jm%B& zkj%?b=AdgDy3Qh_RMwa9*BsKj4ukAxem55vy)qE$%2CBL6HfzAxPwHI$}m*w{|Vd& zUVhfcQQQTuD21M6{UHQys^UPdSPq6K{B?MuZk=+KXSxQz2%T^E=4W_qpr7m-D-#ce z&H2WmrrL$CgueC3&;H$!UHU_hf9ay*F2IYodSUX-^ORG!r$!VW&sm{F>KJL)+llIR zozk*P0W@V;D$T&=gT|D}L}eGce0aV$xlkF#*8>$Td&w}Gcm{Q^zADw0%;Y!P{vIr+ zcc9}=L_kOuLp|5?HuoNY=0B$lzhfwh01?RUoar|Cl-K)6e1$D;z zU(_bYyZ5ksApD-gKu?5Qyr;`cEeR6%rmwEROwTF&9+LhOi^8|G2}RQmgVuc94)z4H25HG0q8T z%$R>Z^T0fd^_0S>T&~C}diIZ8@dJ_;*T_#%Zz!E?*i-0HwNlTM0AkbSCgGPArN5u- zFXWy%XH*p2w&pt&))}e=M^emgq4xkBFYn8LllAQ z==FBd$+{ne=NM#@b@gvY0hTI5X8dEl;mgm1!(HY2irG92>5Zu=zTY=HAzkf*GVGE` zo2+vHdvlEts7{-)KP6*V;d6Y7!nAj8ePWW@G5ZgxIecg39^Lp8n)}#;6bCcLSfYNF zDwMHnBlMN~P#$niU)NX8I@HjL?Ur<=&4y3&kEOv{8|Q{AC2!|r6sw2C67Ri{CA?Fj zn+3cd-_r0w6Z9)HG@y1|l+9!^b04O@!=QGfAGanmr!7#p%-9tNk-NKK|EKn4&LEc9 zYSVkdTWQZHxjH?gVk<;ksXgqtf55mI=SzHTQlyUO+Df3jLIfYaaenpb>7fOQ@ni_; z?9gJ6!qr*Mzv!2SBsHOamV17c;=nfDIwd4O4+3MtHj3tbH{Ja+vM z{_d*y)!FGCn9K1dXX8yd@$s(02;&Vrvw+}!aWEU)T5LZ$Cn{km$F@cxXrpj*!%8)g ze{XOVYV>iE%-Y5ZM2}c9ijj!rA`+gf(HpUWZXqG+=ME3k$y*kQt_Kp0pV`0{6iU^r zZ{LItp(+)r`d>UWaTz5LvVoYpJgFU3vTH!AYDuke!LZGDkNn8FpZ)ib-sysFS*h-2 zWo6x<-;rH}dTQLpLM&2Vp09Go5d!;2mgc9=Jea(|4=8O`AESBNK5}-}S@wq%qzJ0^ zb?Z~T!-}84B@+PiCSJ~}lDHQ1$;BmYI*;PHy=3W+Z-Jn**$sJPq+-tXn;^N{=fQstzcmN8YrrFNR@JvrAPo4L*vx{@N#w(?-_0S U=CyD0AOCIu+!kR&vqB~P3r!WU#Q*>R diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png index caf8cb4065d1b8c51bd50a9178307090e7ca1531..565fd300a03ac3d002008e1fba16023c5f22fb9d 100644 GIT binary patch literal 2840 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 literal 2266 zcmb7Gc{~#i8`nvWQm#2xNcp+KJ3oy%iaC~yH%CgFD``3B$}LwV%Zf;d`XzH@@xziO z*KAXom~(8{a^}b}v<V_AD^t16;U3%CbZ32#at@do*HW=ohOSq;m+w58BRk`Lc~^+reb z$5mcjZ0zksKdj2aVzk*u)?$LURAqGF5QmX_pwRdw}b7As)Q;H|atSp)=2BsNh-YssYT#*cz0F(?D}4Qp9D4~EOX2AWHUY2at0DFmyGGbvGoXQdwvzDCURD# z$h%RTBRx*_uxN`GR{0|8r6wz7Jn8 zfJb!d*Jjxw%yo6QBsWZr-1%@6Y270c#%DOXGlQatB5jP`pIyKykjv?8cetu9pw=XlcbwN3&#z$*``0f$ ziQ%pts185?y3NA(N|8$`8mGzS*~a=oa@!GmX;~N;ke`uCmY*ugUk19_YZ6mA zI5D97*b#u=vDa2KU|d=DPXm)*drwpA(@?^#*?@qGBfn5T20kQU{)RAReINN*s;KRO z3jE>_tSTm$m>2v#FQFZr?fCTY<&TaT3*4n)-j9@x9Rn7jM(_YV7gGACm@quGE-X88 znCToa;+D_>j^Oq4vjfsWhItPICF;S^xx}^W036(&V(mr2mp3dZ4iv!!q3zNi)(zYH zQqT(3lV3!YS^hB-Z$(%8-$k1ubjhf%xzAm|t5-xars6T3zPvMm1RFdF)Lcd?YFD}E zH?51Iry^oA>IN6Y@@t~DYj*goc6D{{$5h^UhrZ!7)&aB&U)kt?18z#WRo z?7hbm=NQ~Y=f60P@!SNZ7ZaKVh@qt6O*xK%*UIK$PH|6kdG>Y&TEW?Q$bW8+SjSvg z^gk`JFJQMZbmb;>mM+e<$H87{;%q$0iX5{$&|OO6TLq#8=s5~l;*zjosky((d^ia# z;n;2X_ln{`g(l{N?Q0Mjb?#ZmNJ@WtEZ(sfi&pSl_ncYLZxDf=AfsBgIZ`1@^vPWE zO-Qj9JwULFe;utrUi&a1`x`BAXNy17gxdKR04;m;*l2!HMWN>IpkQ|1j)IQW*#(gG`RhX(ookjYyY^rAvAD{tcbT6!_kvk ztIKDYJ|Vf zx5lI-lZBljIKD%^9Sl`iq;B^24WcDd9S_(OzRH#Oz#L^+=U{md!s> zCaLm)TQuQ8w)i)PR_biC)lSF3J4rlO>lcn1EAWB$L^u`3JOZ3$xg8U eOW=Qz-VxGe9aZY1)gRdXS%hF#a46owGx=Yx#(ru5 diff --git a/ios/build/Pods.build/Release-iphonesimulator/local_auth.build/dgph b/ios/build/Pods.build/Release-iphonesimulator/local_auth.build/dgph new file mode 100644 index 0000000000000000000000000000000000000000..0c4ca337c8210b369b6d77f3095ffbc2091ccb65 GIT binary patch literal 96 zcmZ>95AZP5Gce)yD$P?+uuw2EFf!yYG_f);ure}WXJBB|XJBLx%g-szO)X|%Vs=R_ nV_@bkPR&UxD9S8LOs-^LLE*77XXY0(u(1T>rxY^+wKD(!DHRsg literal 0 HcmV?d00001 diff --git a/lib/config/hive_config.dart b/lib/config/hive_config.dart index be47b879..a9659869 100644 --- a/lib/config/hive_config.dart +++ b/lib/config/hive_config.dart @@ -24,6 +24,7 @@ class HiveConfig { var cipher = HiveAesCipher(await getEncriptedKey(BNames.key)); await Hive.openBox(BNames.appConfig, encryptionCipher: cipher); + var sshCipher = HiveAesCipher(await getEncriptedKey(BNames.sshEnckey)); await Hive.openBox(BNames.sshConfig, encryptionCipher: sshCipher); } diff --git a/lib/logic/api_maps/server.dart b/lib/logic/api_maps/server.dart index 6e5686f6..18807b90 100644 --- a/lib/logic/api_maps/server.dart +++ b/lib/logic/api_maps/server.dart @@ -33,7 +33,7 @@ class ServerApi extends ApiMap { var client = await getClient(); try { - response = await client.get('/serviceStatus'); + response = await client.get('/services/status'); res = response.statusCode == HttpStatus.ok; } catch (e) { res = false; @@ -49,7 +49,7 @@ class ServerApi extends ApiMap { var client = await getClient(); try { response = await client.post( - '/createUser', + '/users/create', options: Options( headers: { "X-User": user.login, @@ -78,7 +78,7 @@ class ServerApi extends ApiMap { var client = await getClient(); try { response = await client.get( - '/apply', + '/system/configuration/apply', ); res = response.statusCode == HttpStatus.ok; diff --git a/lib/logic/get_it/ssh_helper.dart b/lib/logic/get_it/ssh_helper.dart index 46ded1a6..1d9ce416 100644 --- a/lib/logic/get_it/ssh_helper.dart +++ b/lib/logic/get_it/ssh_helper.dart @@ -1,5 +1,3 @@ -import 'dart:developer'; - import 'package:hive/hive.dart'; import 'package:pointycastle/pointycastle.dart'; import 'package:rsa_encrypt/rsa_encrypt.dart'; @@ -30,4 +28,12 @@ class SSHModel { savedPrivateKey = _box.get(BNames.sshPrivateKey); savedPubKey = _box.get(BNames.sshPublicKey); } + + bool get isSSHKeyGenerated => savedPrivateKey != null && savedPubKey != null; + + clear() async { + savedPrivateKey = null; + savedPubKey = null; + await _box.clear(); + } } diff --git a/lib/ui/pages/more/app_settings/app_setting.dart b/lib/ui/pages/more/app_settings/app_setting.dart index a9a15c99..a5c50108 100644 --- a/lib/ui/pages/more/app_settings/app_setting.dart +++ b/lib/ui/pages/more/app_settings/app_setting.dart @@ -119,7 +119,7 @@ class _AppSettingsPageState extends State { ], ), ), - // deleteServer(context) + deleteServer(context) ], ), ); diff --git a/lib/ui/pages/more/more.dart b/lib/ui/pages/more/more.dart index da9b116a..93473b7c 100644 --- a/lib/ui/pages/more/more.dart +++ b/lib/ui/pages/more/more.dart @@ -1,11 +1,16 @@ import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:ionicons/ionicons.dart'; import 'package:selfprivacy/config/brand_colors.dart'; import 'package:selfprivacy/config/brand_theme.dart'; +import 'package:selfprivacy/config/get_it_config.dart'; import 'package:selfprivacy/config/text_themes.dart'; import 'package:selfprivacy/logic/cubit/jobs/jobs_cubit.dart'; +import 'package:selfprivacy/logic/get_it/ssh_helper.dart'; import 'package:selfprivacy/logic/models/job.dart'; import 'package:selfprivacy/logic/models/state_types.dart'; +import 'package:selfprivacy/ui/components/action_button/action_button.dart'; +import 'package:selfprivacy/ui/components/brand_alert/brand_alert.dart'; import 'package:selfprivacy/ui/components/brand_button/brand_button.dart'; import 'package:selfprivacy/ui/components/brand_divider/brand_divider.dart'; import 'package:selfprivacy/ui/components/brand_header/brand_header.dart'; @@ -17,6 +22,7 @@ import 'package:selfprivacy/ui/pages/onboarding/onboarding.dart'; import 'package:selfprivacy/ui/pages/rootRoute.dart'; import 'package:selfprivacy/utils/route_transitions/basic.dart'; import 'package:easy_localization/easy_localization.dart'; +import 'package:share_plus/share_plus.dart'; import 'about/about.dart'; import 'app_settings/app_setting.dart'; @@ -79,19 +85,66 @@ class MorePage extends StatelessWidget { title: 'more.create_ssh_key'.tr(), iconData: Ionicons.key_outline, onTap: () { - showDialog( - context: context, - builder: (BuildContext context) { - return _MoreDetails( - title: 'more.create_ssh_key'.tr(), - icon: Ionicons.key_outline, - onTap: () { - jobsCubit.createShhJobIfNotExist(CreateSSHKeyJob()); - }, - text: 'more.generate_key_text'.tr(), - ); - }, - ); + if (getIt().isSSHKeyGenerated) { + showDialog( + context: context, + builder: (BuildContext context) { + return _SSHExitsDetails( + onShareTap: () { + Share.share(getIt().savedPrivateKey!); + }, + onDeleteTap: () { + showDialog( + context: context, + builder: (_) { + return BrandAlert( + title: 'modals.3'.tr(), + contentText: 'more.delete_ssh_text'.tr(), + acitons: [ + ActionButton( + text: 'more.yes_delete'.tr(), + isRed: true, + onPressed: () { + getIt().clear(); + Navigator.of(context).pop(); + }), + ActionButton( + text: 'basis.cancel'.tr(), + ), + ], + ); + }, + ); + }, + onCopyTap: () { + Clipboard.setData(ClipboardData( + text: getIt().savedPrivateKey!)); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('more.copied_ssh'.tr()), + duration: const Duration(seconds: 2), + ), + ); + }, + ); + }, + ); + } else { + showDialog( + context: context, + builder: (BuildContext context) { + return _MoreDetails( + title: 'more.create_ssh_key'.tr(), + icon: Ionicons.key_outline, + onTap: () { + jobsCubit + .createShhJobIfNotExist(CreateSSHKeyJob()); + }, + text: 'more.generate_key_text'.tr(), + ); + }, + ); + } }, ), ], @@ -103,6 +156,83 @@ class MorePage extends StatelessWidget { } } +class _SSHExitsDetails extends StatelessWidget { + const _SSHExitsDetails({ + Key? key, + required this.onDeleteTap, + required this.onShareTap, + required this.onCopyTap, + }) : super(key: key); + final Function onDeleteTap; + final Function onShareTap; + final Function onCopyTap; + + @override + Widget build(BuildContext context) { + var textStyle = body1Style.copyWith( + color: Theme.of(context).brightness == Brightness.dark + ? Colors.white + : BrandColors.black); + return Dialog( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20), + ), + child: SingleChildScrollView( + child: Container( + width: 350, + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Padding( + padding: paddingH15V30, + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + SizedBox(height: 10), + Text( + 'more.ssh_key_exist_text'.tr(), + style: textStyle, + ), + SizedBox(height: 10), + Container( + child: BrandButton.text( + onPressed: () { + Navigator.of(context).pop(); + onShareTap(); + }, + title: 'more.share'.tr(), + ), + ), + Container( + alignment: Alignment.centerLeft, + child: BrandButton.text( + onPressed: () { + Navigator.of(context).pop(); + onDeleteTap(); + }, + title: 'basis.delete'.tr(), + ), + ), + Container( + child: BrandButton.text( + onPressed: () { + Navigator.of(context).pop(); + onCopyTap(); + }, + title: 'more.copy_buffer'.tr(), + ), + ), + ], + ), + ) + ], + ), + ), + ), + ); + } +} + class _MoreDetails extends StatelessWidget { const _MoreDetails({ Key? key, diff --git a/pubspec.lock b/pubspec.lock index 944a7ea6..903ec020 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -333,6 +333,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.6.5" + flutter_plugin_android_lifecycle: + dependency: transitive + description: + name: flutter_plugin_android_lifecycle + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.3" flutter_secure_storage: dependency: "direct main" description: @@ -469,6 +476,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "4.1.4" + local_auth: + dependency: "direct main" + description: + name: local_auth + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.7" logging: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index e3ed9839..504d4387 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -38,6 +38,7 @@ dependencies: pointycastle: ^3.3.2 rsa_encrypt: ^2.0.0 ssh_key: ^0.7.0 + local_auth: ^1.1.7 dev_dependencies: flutter_test: From 4942f67f37d043aef155547344997965659a1b99 Mon Sep 17 00:00:00 2001 From: Kherel Date: Wed, 15 Sep 2021 16:37:22 +0200 Subject: [PATCH 2/2] update --- lib/config/get_it_config.dart | 2 +- .../cubit/app_config/app_config_cubit.dart | 3 + .../hetzner_metrics_repository.dart | 1 - lib/logic/cubit/jobs/jobs_cubit.dart | 19 +-- lib/logic/get_it/navigation.dart | 12 +- .../get_it/{ssh_helper.dart => ssh.dart} | 4 +- lib/ui/components/brand_text/brand_text.dart | 1 - .../pages/more/app_settings/app_setting.dart | 2 +- lib/ui/pages/more/more.dart | 147 ++++++++++-------- 9 files changed, 101 insertions(+), 90 deletions(-) rename lib/logic/get_it/{ssh_helper.dart => ssh.dart} (95%) diff --git a/lib/config/get_it_config.dart b/lib/config/get_it_config.dart index 99b61cc8..eb5c0902 100644 --- a/lib/config/get_it_config.dart +++ b/lib/config/get_it_config.dart @@ -2,7 +2,7 @@ import 'package:get_it/get_it.dart'; import 'package:selfprivacy/logic/get_it/api_config.dart'; import 'package:selfprivacy/logic/get_it/console.dart'; import 'package:selfprivacy/logic/get_it/navigation.dart'; -import 'package:selfprivacy/logic/get_it/ssh_helper.dart'; +import 'package:selfprivacy/logic/get_it/ssh.dart'; import 'package:selfprivacy/logic/get_it/timer.dart'; export 'package:selfprivacy/logic/get_it/api_config.dart'; diff --git a/lib/logic/cubit/app_config/app_config_cubit.dart b/lib/logic/cubit/app_config/app_config_cubit.dart index e86cead1..d73eb8b3 100644 --- a/lib/logic/cubit/app_config/app_config_cubit.dart +++ b/lib/logic/cubit/app_config/app_config_cubit.dart @@ -2,7 +2,9 @@ import 'dart:async'; import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; +import 'package:selfprivacy/config/get_it_config.dart'; import 'package:selfprivacy/logic/cubit/services/services_cubit.dart'; +import 'package:selfprivacy/logic/get_it/ssh.dart'; import 'package:selfprivacy/logic/models/backblaze_credential.dart'; import 'package:selfprivacy/logic/models/cloudflare_domain.dart'; @@ -274,6 +276,7 @@ class AppConfigCubit extends Cubit { if (state.hetznerServer != null) { await repository.deleteServer(state.cloudFlareDomain!); + await getIt().clear(); } await repository.deleteRecords(); emit(AppConfigState( diff --git a/lib/logic/cubit/hetzner_metrics/hetzner_metrics_repository.dart b/lib/logic/cubit/hetzner_metrics/hetzner_metrics_repository.dart index 5291e2c8..6e62b3f1 100644 --- a/lib/logic/cubit/hetzner_metrics/hetzner_metrics_repository.dart +++ b/lib/logic/cubit/hetzner_metrics/hetzner_metrics_repository.dart @@ -6,7 +6,6 @@ import 'hetzner_metrics_cubit.dart'; class HetznerMetricsRepository { Future getMetrics(Period period) async { - print(period); var end = DateTime.now(); DateTime start; diff --git a/lib/logic/cubit/jobs/jobs_cubit.dart b/lib/logic/cubit/jobs/jobs_cubit.dart index d9d902a9..09be466c 100644 --- a/lib/logic/cubit/jobs/jobs_cubit.dart +++ b/lib/logic/cubit/jobs/jobs_cubit.dart @@ -1,10 +1,12 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:selfprivacy/config/brand_colors.dart'; import 'package:selfprivacy/config/get_it_config.dart'; +import 'package:selfprivacy/config/text_themes.dart'; import 'package:selfprivacy/logic/api_maps/server.dart'; import 'package:selfprivacy/logic/cubit/services/services_cubit.dart'; import 'package:selfprivacy/logic/cubit/users/users_cubit.dart'; -import 'package:selfprivacy/logic/get_it/ssh_helper.dart'; +import 'package:selfprivacy/logic/get_it/ssh.dart'; import 'package:selfprivacy/logic/models/job.dart'; import 'package:equatable/equatable.dart'; import 'package:selfprivacy/logic/models/user.dart'; @@ -29,10 +31,7 @@ class JobsCubit extends Cubit { newJobsList.addAll((state as JobsStateWithJobs).jobList); } newJobsList.add(job); - getIt().showSnackBar(SnackBar( - content: Text('jobs.jobAdded'.tr()), - duration: const Duration(seconds: 2), - )); + getIt().showSnackBar('jobs.jobAdded'.tr()); emit(JobsStateWithJobs(newJobsList)); } @@ -54,10 +53,7 @@ class JobsCubit extends Cubit { removeJob(removingJob.id); } else { newJobsList.add(job); - getIt().showSnackBar(SnackBar( - content: Text('jobs.jobAdded'.tr()), - duration: const Duration(seconds: 2), - )); + getIt().showSnackBar('jobs.jobAdded'.tr()); emit(JobsStateWithJobs(newJobsList)); } } @@ -70,10 +66,7 @@ class JobsCubit extends Cubit { var isExistInJobList = newJobsList.any((el) => el is CreateSSHKeyJob); if (!isExistInJobList) { newJobsList.add(job); - getIt().showSnackBar(SnackBar( - content: Text('jobs.jobAdded'.tr()), - duration: const Duration(seconds: 2), - )); + getIt().showSnackBar('jobs.jobAdded'.tr()); emit(JobsStateWithJobs(newJobsList)); } } diff --git a/lib/logic/get_it/navigation.dart b/lib/logic/get_it/navigation.dart index 6d179fa7..4f06c843 100644 --- a/lib/logic/get_it/navigation.dart +++ b/lib/logic/get_it/navigation.dart @@ -1,5 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; +import 'package:selfprivacy/config/brand_colors.dart'; +import 'package:selfprivacy/config/text_themes.dart'; class NavigationService { final GlobalKey scaffoldMessengerKey = @@ -17,9 +19,13 @@ class NavigationService { ); } - void showSnackBar(SnackBar snackBar) { + void showSnackBar(String text) { final state = scaffoldMessengerKey.currentState!; - - state.showSnackBar(snackBar); + final snack = SnackBar( + backgroundColor: BrandColors.black.withOpacity(0.8), + content: Text(text, style: buttonTitleText), + duration: const Duration(seconds: 2), + ); + state.showSnackBar(snack); } } diff --git a/lib/logic/get_it/ssh_helper.dart b/lib/logic/get_it/ssh.dart similarity index 95% rename from lib/logic/get_it/ssh_helper.dart rename to lib/logic/get_it/ssh.dart index 1d9ce416..0e833c7e 100644 --- a/lib/logic/get_it/ssh_helper.dart +++ b/lib/logic/get_it/ssh.dart @@ -24,14 +24,14 @@ class SSHModel { await _box.put(BNames.sshPublicKey, savedPubKey); } - void init() { + void init() async { savedPrivateKey = _box.get(BNames.sshPrivateKey); savedPubKey = _box.get(BNames.sshPublicKey); } bool get isSSHKeyGenerated => savedPrivateKey != null && savedPubKey != null; - clear() async { + Future clear() async { savedPrivateKey = null; savedPubKey = null; await _box.clear(); diff --git a/lib/ui/components/brand_text/brand_text.dart b/lib/ui/components/brand_text/brand_text.dart index beaf2937..bd3119dc 100644 --- a/lib/ui/components/brand_text/brand_text.dart +++ b/lib/ui/components/brand_text/brand_text.dart @@ -127,7 +127,6 @@ class BrandText extends StatelessWidget { Text build(BuildContext context) { TextStyle style; var isDark = Theme.of(context).brightness == Brightness.dark; - switch (type) { case TextType.h1: style = isDark diff --git a/lib/ui/pages/more/app_settings/app_setting.dart b/lib/ui/pages/more/app_settings/app_setting.dart index a5c50108..a9a15c99 100644 --- a/lib/ui/pages/more/app_settings/app_setting.dart +++ b/lib/ui/pages/more/app_settings/app_setting.dart @@ -119,7 +119,7 @@ class _AppSettingsPageState extends State { ], ), ), - deleteServer(context) + // deleteServer(context) ], ), ); diff --git a/lib/ui/pages/more/more.dart b/lib/ui/pages/more/more.dart index 93473b7c..2c008b88 100644 --- a/lib/ui/pages/more/more.dart +++ b/lib/ui/pages/more/more.dart @@ -5,8 +5,9 @@ import 'package:selfprivacy/config/brand_colors.dart'; import 'package:selfprivacy/config/brand_theme.dart'; import 'package:selfprivacy/config/get_it_config.dart'; import 'package:selfprivacy/config/text_themes.dart'; +import 'package:selfprivacy/logic/cubit/app_config/app_config_cubit.dart'; import 'package:selfprivacy/logic/cubit/jobs/jobs_cubit.dart'; -import 'package:selfprivacy/logic/get_it/ssh_helper.dart'; +import 'package:selfprivacy/logic/get_it/ssh.dart'; import 'package:selfprivacy/logic/models/job.dart'; import 'package:selfprivacy/logic/models/state_types.dart'; import 'package:selfprivacy/ui/components/action_button/action_button.dart'; @@ -35,6 +36,7 @@ class MorePage extends StatelessWidget { @override Widget build(BuildContext context) { var jobsCubit = context.watch(); + var isReady = context.watch().state.isFullyInitilized; return Scaffold( appBar: PreferredSize( @@ -84,68 +86,69 @@ class MorePage extends StatelessWidget { _MoreMenuTapItem( title: 'more.create_ssh_key'.tr(), iconData: Ionicons.key_outline, - onTap: () { - if (getIt().isSSHKeyGenerated) { - showDialog( - context: context, - builder: (BuildContext context) { - return _SSHExitsDetails( - onShareTap: () { - Share.share(getIt().savedPrivateKey!); - }, - onDeleteTap: () { - showDialog( - context: context, - builder: (_) { - return BrandAlert( - title: 'modals.3'.tr(), - contentText: 'more.delete_ssh_text'.tr(), - acitons: [ - ActionButton( - text: 'more.yes_delete'.tr(), - isRed: true, - onPressed: () { - getIt().clear(); - Navigator.of(context).pop(); - }), - ActionButton( - text: 'basis.cancel'.tr(), - ), - ], - ); - }, - ); - }, - onCopyTap: () { - Clipboard.setData(ClipboardData( - text: getIt().savedPrivateKey!)); - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text('more.copied_ssh'.tr()), - duration: const Duration(seconds: 2), - ), - ); - }, - ); - }, - ); - } else { - showDialog( - context: context, - builder: (BuildContext context) { - return _MoreDetails( - title: 'more.create_ssh_key'.tr(), - icon: Ionicons.key_outline, - onTap: () { - jobsCubit - .createShhJobIfNotExist(CreateSSHKeyJob()); - }, - text: 'more.generate_key_text'.tr(), - ); - }, - ); - } - }, + onTap: isReady + ? () { + if (getIt().isSSHKeyGenerated) { + showDialog( + context: context, + builder: (BuildContext context) { + return _SSHExitsDetails( + onShareTap: () { + Share.share( + getIt().savedPrivateKey!); + }, + onDeleteTap: () { + showDialog( + context: context, + builder: (_) { + return BrandAlert( + title: 'modals.3'.tr(), + contentText: + 'more.delete_ssh_text'.tr(), + acitons: [ + ActionButton( + text: 'more.yes_delete'.tr(), + isRed: true, + onPressed: () { + getIt().clear(); + Navigator.of(context).pop(); + }), + ActionButton( + text: 'basis.cancel'.tr(), + ), + ], + ); + }, + ); + }, + onCopyTap: () { + Clipboard.setData(ClipboardData( + text: getIt() + .savedPrivateKey!)); + getIt() + .showSnackBar('more.copied_ssh'.tr()); + }, + ); + }, + ); + } else { + showDialog( + context: context, + builder: (BuildContext context) { + return _MoreDetails( + title: 'more.create_ssh_key'.tr(), + icon: Ionicons.key_outline, + onTap: () { + jobsCubit.createShhJobIfNotExist( + CreateSSHKeyJob()); + }, + text: 'more.generate_key_text'.tr(), + ); + }, + ); + } + } + : null, ), ], ), @@ -319,6 +322,7 @@ class _NavItem extends StatelessWidget { child: _MoreMenuItem( iconData: iconData, title: title, + isActive: true, ), ); } @@ -333,15 +337,14 @@ class _MoreMenuTapItem extends StatelessWidget { }) : super(key: key); final IconData iconData; - final Function onTap; + final VoidCallback? onTap; final String title; @override Widget build(BuildContext context) { return GestureDetector( - onTap: () { - onTap(); - }, + onTap: onTap, child: _MoreMenuItem( + isActive: onTap != null, iconData: iconData, title: title, ), @@ -354,10 +357,12 @@ class _MoreMenuItem extends StatelessWidget { Key? key, required this.iconData, required this.title, + required this.isActive, }) : super(key: key); final IconData iconData; final String title; + final bool isActive; @override Widget build(BuildContext context) { @@ -373,13 +378,19 @@ class _MoreMenuItem extends StatelessWidget { ), child: Row( children: [ - BrandText.body1(title), + BrandText.body1( + title, + style: TextStyle( + color: isActive ? null : Colors.grey, + ), + ), Spacer(), SizedBox( width: 56, child: Icon( iconData, size: 20, + color: isActive ? null : Colors.grey, ), ), ],