From a28284f1d78cd01b01c7baf3391e95cecab12020 Mon Sep 17 00:00:00 2001 From: Velimir Majstorov Date: Mon, 16 Mar 2026 13:38:03 +0100 Subject: [PATCH 1/2] Add Flutter IRC app foundation and branding Build the first working Flutter IRC client slices with network management, chat sessions, persistence, reconnect UX, and updated app branding/assets. --- android/app/build.gradle.kts | 4 +- android/app/src/main/AndroidManifest.xml | 2 +- .../flutter}/MainActivity.kt | 2 +- .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 544 -> 4641 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 442 -> 2692 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 721 -> 7054 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 1031 -> 12710 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 1443 -> 19539 bytes android/app/src/main/res/values/strings.xml | 3 + ios/Runner.xcodeproj/project.pbxproj | 12 +- .../AppIcon.appiconset/Contents.json | 246 ++++---- .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 295 -> 866 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 406 -> 2381 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 450 -> 4203 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 282 -> 1484 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 462 -> 3978 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 704 -> 7581 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 406 -> 2381 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 586 -> 6649 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 862 -> 11779 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 862 -> 11779 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 1674 -> 21782 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 762 -> 6073 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 1226 -> 16960 bytes .../Icon-App-83.5x83.5@2x.png | Bin 1418 -> 19437 bytes .../AppIcon.appiconset/ItunesArtwork@2x.png | Bin 0 -> 264894 bytes ios/Runner/Info.plist | 4 +- lib/app/app.dart | 17 + lib/app/theme/app_theme.dart | 52 ++ lib/core/models/app_settings.dart | 27 + lib/core/models/chat_tab.dart | 41 ++ lib/core/models/connection_state.dart | 32 ++ lib/core/models/irc_message.dart | 47 ++ lib/core/models/network_config.dart | 81 +++ .../storage/in_memory_network_repository.dart | 42 ++ lib/core/storage/network_repository.dart | 7 + lib/core/storage/settings_repository.dart | 6 + .../shared_prefs_network_repository.dart | 61 ++ .../shared_prefs_settings_repository.dart | 26 + .../presentation/bootstrap_screen.dart | 34 ++ .../application/chat_session_controller.dart | 525 ++++++++++++++++++ .../chat/data/chat_session_persistence.dart | 80 +++ .../chat/presentation/chat_screen.dart | 407 ++++++++++++++ .../presentation/join_channel_dialog.dart | 7 + .../application/network_list_controller.dart | 58 ++ .../presentation/network_form_screen.dart | 155 ++++++ .../presentation/network_list_screen.dart | 218 ++++++++ .../presentation/settings_screen.dart | 66 +++ lib/irc/models/irc_message_frame.dart | 25 + lib/irc/parser/irc_message_parser.dart | 38 ++ lib/irc/services/irc_service.dart | 206 +++++++ lib/irc/services/irc_transport.dart | 43 ++ lib/main.dart | 122 +--- linux/CMakeLists.txt | 2 +- macos/Flutter/GeneratedPluginRegistrant.swift | 2 + macos/Runner.xcodeproj/project.pbxproj | 6 +- macos/Runner/Configs/AppInfo.xcconfig | 6 +- pubspec.lock | 135 ++++- pubspec.yaml | 1 + test/irc_message_parser_test.dart | 22 + test/storage_repositories_test.dart | 87 +++ test/widget_test.dart | 31 +- web/index.html | 4 +- web/manifest.json | 6 +- 64 files changed, 2712 insertions(+), 286 deletions(-) rename android/app/src/main/kotlin/com/{example/androidircx => androidircx/flutter}/MainActivity.kt (74%) create mode 100644 android/app/src/main/res/values/strings.xml create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png create mode 100644 lib/app/app.dart create mode 100644 lib/app/theme/app_theme.dart create mode 100644 lib/core/models/app_settings.dart create mode 100644 lib/core/models/chat_tab.dart create mode 100644 lib/core/models/connection_state.dart create mode 100644 lib/core/models/irc_message.dart create mode 100644 lib/core/models/network_config.dart create mode 100644 lib/core/storage/in_memory_network_repository.dart create mode 100644 lib/core/storage/network_repository.dart create mode 100644 lib/core/storage/settings_repository.dart create mode 100644 lib/core/storage/shared_prefs_network_repository.dart create mode 100644 lib/core/storage/shared_prefs_settings_repository.dart create mode 100644 lib/features/bootstrap/presentation/bootstrap_screen.dart create mode 100644 lib/features/chat/application/chat_session_controller.dart create mode 100644 lib/features/chat/data/chat_session_persistence.dart create mode 100644 lib/features/chat/presentation/chat_screen.dart create mode 100644 lib/features/chat/presentation/join_channel_dialog.dart create mode 100644 lib/features/connections/application/network_list_controller.dart create mode 100644 lib/features/connections/presentation/network_form_screen.dart create mode 100644 lib/features/connections/presentation/network_list_screen.dart create mode 100644 lib/features/settings/presentation/settings_screen.dart create mode 100644 lib/irc/models/irc_message_frame.dart create mode 100644 lib/irc/parser/irc_message_parser.dart create mode 100644 lib/irc/services/irc_service.dart create mode 100644 lib/irc/services/irc_transport.dart create mode 100644 test/irc_message_parser_test.dart create mode 100644 test/storage_repositories_test.dart diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index de573af..4fd95d2 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -6,7 +6,7 @@ plugins { } android { - namespace = "com.example.androidircx" + namespace = "com.androidircx.flutter" compileSdk = flutter.compileSdkVersion ndkVersion = flutter.ndkVersion @@ -21,7 +21,7 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId = "com.example.androidircx" + applicationId = "com.androidircx.flutter" // You can update the following values to match your application needs. // For more information, see: https://flutter.dev/to/review-gradle-config. minSdk = flutter.minSdkVersion diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index a6a850e..4bff20e 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ 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 XKRHZAZ|dlf00000NkvXXu0mjf6dSvw literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index 17987b79bb8a35cc66c3c1fd44f5a5526c1b78be..d99cf78da826558c48b71086b60b3b9a72b235f6 100644 GIT binary patch literal 2692 zcmV-~3VZd5P)45875?5bZ#K_(X1v8qLTrNTb?mh2W#CQDf2LjhRfZyu~2n`Jl^15~FoFrY>3d@%-cTkl1K?@|O74Dd( zY-(x>A3b{XqnBQKDf#^K&#NTk*9xz__FAH)rRC#o+qPAZqtpDIrr<$dulFCaEZ;%( z8CjG5+bn{jC~Ncc^Z!Ycx(HKzx|o1aR8-`2I2>zf;B{5}et*5kMJyzQ`MS<@cwGy?X>@6hE30@pfNX+^*^frMt^ z)S!X=ojRJX64*A+!E^DP={%gY2y{nPyt6xsN8TF6<_{D2<40EqY@6rcxp>YwBQP+U z#K#ARU>O#Ewb6IR@Kg+mq)?r=HetV6q{XLqvJLf^eRKML7-|WmLCyx#x7b4lJ3c zpqvnr@<{w#D$}i8vCvg(NAzIG)n&IvEG8PB>%%4hbN$>G(Wl%&ZBh znu%}vk~lr6Awo{}oz>Afq@%4*L)Wl@2(=?;4V;W>_PE|r9ep&em-NT`leR8Gbz4V$ zZDgx8qS^Pe?J3@+(U=8+lr@=t$n!%E)EB$4vBr-Fmicje*o%^E2kxox+U@&me5hUE z#*H}&ep2nTb@!1B=Q(NVIk91BN_Q{mO0yNr56U*!c50UNud^pWarP<#GTkDAo)r9U zfp({hbgq;xaBf_H#`;OeIDa4Oe5A{83htb_fX5iOZ*Nm`-4pWpv8&iObRk>BD&r zaDPg2{qk5$He7Vdr|)`dgL#;joq=%;Xp6*g zyf2Q^Lk6}Uj^SOxwiXrdA5n3rN5|3bINEySIM$=$D50e%fyp@BO>GA2&q+>4IMtwM z1;!Qpp6I?L0r~=f=58IYAB;hgWn}skbdMU?^4Ty#UIi6-G7JjQF3NGdlv)Q|Y}3LU z{~LvBNGQ*hP&H3R%{&RUxq^)vYA-ERP{YWVu`G}Dgk?0Qni4t+G90{2B@42l!_oGn5J`o%ja8tH_a^opRPHl*W0 z^=lOF{upv+CrnkPgwL`;6HY5L65vrb30jUEPJx_FBR6mDp`8-BgaITe0xGTJ zLlNM}fQ;okHJ%${!KwjO}%nLoiuBp~*5 z!u6NOA@)Zgs&PED{TWnuG(j1TV(hWUAhoo>px+e##@MfmaY+J`2kMqU+b3`~VbcC@ zAV#ulSjW(~ficy@z77pvo;FBQ$mzx&T57HIJK2%Q#@?T9LhFiq5UX1ab95Au6I~cP z-2roKoR)}&{<;PndT28a3JMH< zMx+CvHEmit4i;6zSlbBq2k#*3$=@RU%F_r9bVBOuftXNH-n;|z-g^rIjdz4XFo}Rg z%lU#w7iw3G0PTzr9S-D#G7v8CQ9iHJo0g1)eiI>&V84XiK06#*_6qO0%3 z;D(J5)~8AUf^pusC|Ap+gUxjb~ zZdl$7j4ZejeFY0)-E<55ue=EV>#st6;RTq{C?JZowF;Q&Pn=1~IwrAtp@?VKd+~6c z0}oWn`29)+8^anB<1q}5XmIIqJXmJo_96|p7HC*^gNBEz41~0PoEb=B`wgqm_P}p& zIxmd9^&8Ok>nG45g|JV^#lc@}M*I9KbQUf_>#rWi$(#~I4F#<~dldZ-{t{+o733$L zK%%k|{3j9#mKS420)miYoA1?8n@2lOrV49x0KFZ(IMx5>B0_ouWSqZ72$3 zcmVpyAcp&g&>xMXCz`0?kQ3_Lw>NYEZ<r1T>&JUna>ONzE&-^9!V9vMsMt3e69{uKsf z+^8?O}Y3{We9akf~Z*(Ky|4fl_iW!R2HXD!IJK;F3m*k;s9=@ zu`8>x&`_I=#+!4oe&syeyE-5D+>%GS9I}y#43EQp^5i%ekw~PO2*k*9e!wJBMNEl_ zD|c#Jw{G1;HyjWIVImS7M#Uk)?Udmo;~~Ejg*k4N6nGI{;3KCqvGhiAFdRf3Ik=)c zhi*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@UJlv)^KvA6#m$ zgv#63ty_0%b#?Wc&6_tz7B61xPvf!29`g+d^nsn}K9hq`RaMpM6)RSJmo&Kvb%yek zkrPyqbuzk*Wy_Y0Bk}9pZucEFo9%>*Y8?kccDsFQVPWBSH*Vax`u_XxpUN(~2%QZF zbwZ{NP&vo2VZ&Y^@sp^0@a};Dhr==9{PWL$hDEuAE=|hY0iB=%ls(|B3T&%aum1KR z`3L05Ds;JA<6e2?mH%NPo6vnh`D3)_J5vYPv$L}=?^(rQ?*0svmzRHvc{#*EXTiZ7 zpx#p%E^~HW+o*H!J{SWWtm7%;A<_vQ$e5<7>;FMdLKzWDWx5m{H{|tEN0nRUP0_1L73#GxT`=f?G!usu zD)EW~R?5f$2h=cFcti~JqXUk}&W~*6K?fXT*A6;h&;iGofn(hK;0zdaz%gdv7&m{^ zWV;a|@#J>={)6k@&2yJfPmVnHur}o`o#gUgo)bL7-|Lx)K<0mBjbQc;!smA2O&^byYQV*Hg`UO&y&Mpj?ALfsOV1 z%57kJQ$rNVy*{U8|KI)M042&7PQn{XqMc!Y?~Fn*6I~IEnn=s2TnC*I>_M)BdF|Ar zG8(GWy6Vw*kf$y`+ff;BFbRzZ_iIn()DBCgQ(ro+cBsw$;f{WBfOhsRE;(;(2|}lS zm}KZE-XCl0B2XE{PH!Aa!u~Q!`a4{%RAxDsnh=+v{beF?-~-Mwm3foxZf%ZQvu1xe zb--KOf_vIjdBt0-qc(qJ9N^?DiAiNnOs;TYTBQr~CVOz!HeUZ<}8 z+EZPsKP}TWR9n^NkBkHK*Ga-Z0}B1YKHKP*J%H^D-n}r;FAmVNc9ff?p4$fk)K;~* z7tZ=LyI&j-;t_KdAHG)b!D=8tZB?85l<8iS^@{^~X?rl64D^cw+)lBMg{O{kV<13} zuxc~;IqG-6IKbfXN6*!Iv>OOeTh->H&ORIH7YDGN!Mhg*`o#hI>P%lc4k+|OSYK!N zp#yq1O^=@XQ4QzlyJx2Lh`3B2R7ZJDPjfbQBz5 zTL0e`zIkAnin|?xGx$03tZ{Di4YH}{=s|5&n|r6N?@IdI0X*=)0yS%>raEjuUKT$| z>SxIeP)M0H3K;JWL4jM5xz6r7datXtI&3qjri0BOUlcRna)6<3`8c!n17k07EP~%~KS`0)I z{G=F%KSYG%mX3DD+xgKwg{1YV)5|#!W4qut;- z<2Q4#Gn9?GpxX)^`NbGBVHi$7WjN-ZQh}*MvysIOIGQl=-iJY~stsagO%N*>uHO|# zN6bJ=NYETq7z_O!nbu3r#&iQpv!L}!{p6MX~YP}L~; zTE}Ly;r`bHxO{0N7A#5O%P;uw!#5&W{I57(-j>9>HBtO?OB}h`Sr}Dh$EZRBBMWQ{ zZJ59>R)1dS$B+KjgdhC15qA*ZC+_%blNJBrOU-!TpKbW<>Hx&@7+qw;Na`3> zXrm75W7^WIA-}lkm#onYyJ8H#!YMQ_C2OZ1qD#J(DaNp_%BmixZekGrhZF=bbSe1L{E+yOfG5lArx8R%4HDdb60!%D( zU{bjq6HDzFQ*47SF>PE9^j8ad>hQP>c$@~@T*_P|Kz|jXIv!lsgcUntIAN$8lT=5U z9h0eNa=8OjDjb+v;k0lyQlcFM>en4R)*%KK2J@{tx)rsZRlmn3Z? zEN3t@O}I#WS&j{3bCQ@@Vq&yC0*BuZTPy|DBF~Iqdfi$KzwHL(eeM#tuDTGOYv-f<#?N5#i%T)e2*QDcMXEuk z6Gxn&bZ-1c9{|J=pMy85C$@{?X%f{_wH+QC9QY;?$|+$5IFN#eUJ@5AgLe-VXW zx*CCNu7UHJXOJBZgX}|RgQ6=x+NVr#NDfFV?71P5!zsI02H@cbPBRP#N0H|5_Q#Op zcG2dfWi%t2&A5q3LJ&7?h{1+9>`00Op1eXlyQTwriqhZg49!g-5{o0jW34k8$Edge zhPE57M|kxr#5w|qCV^NejA+evc<=uyoZnl75}V2=;4tHuw0Sw2KYJCz@2x>J5<@H} zAJ!3g=T5Xga35^fe+CuyDD>E@gyu*bKXxof{*6~4wsJXQ!4UMA9BXPq)7^K&``OPT zmoovpl#{MtRz~+>IY30ZDHjnWO@TLLA{aACzR6A2#BP5Al?4tMtfHH3oaF9oPoUnH zpnOV={zC2BFSg-3|A^y%UrpkBuf}o9OEFxwxSmJX5GItnaP!;()VBtqzZu=(C86;+ z0x!G((`JWz{>2D9{W7*Zz6>2tzl7{dE`!PP*oF;o`n=fQ5`(|N3*Wu>AQ=e2v+!E% zc=A=O{l$ye^w{4~{OD4kxCHTN9OeEd9)07`&408ljL;9iha{cqI)5H^{rnGTd;EC} zeg1jaD=QJ9{_ukj!eO^_ETxvBv=flwb;u475v#GD^oR99DgkhSf`=eP7!UG;yqn91 zh(Ld8C}Kb#vNWDFQ(E+)M}G}n(;PtxQPg>((BFOP*QpUj4!Agt608s-^j|7g`vlv* z`!J%vdl|cL`aYJ2JbWH8Q5A6^cIufB8>d|~0;9FXnlVN+3^No0gm&zxMWr)_q_+*; zKosv3PeJQ5%dqz0=ke!Y3Bq(llFN(Zsb3@B(gL{MsQv6B9<4+8up^GfygU@&d^5~M z0^Z;K4sOl@oiU1|>HrbhL%ueI{Vs#$h9M-&pq#)LHnDzZ7(uQLDzEEyQ%4Nz>Vnv~ zD@aGBJfIG`eSQTVxN<1&yP^_5xx5m$&o9Tdrxn1%6Vl5Y{P@qO>d}E*Y~`!sHMJdB zR_(*%YlHaddlCF$O*4vO9XQ7mz&Y=~0(tybY@fQhG5P!049l;uF3q0a<5y2*t_ zW~(m(Jyv!#G>e}%Ix+8sBb=%&x1 zM4xBYM3m+frz{w*#&`p%% z4`sP_NFsCKqu*8}>63BHsFmt#Q z3n#OUN5754k8VS3>sEL!zY_WX_aw~cUPA5>lj+@nRJG z_F3fL@I@FSM?ne-0m{Z|YY_kW{kUZL(>R;9kEabV45$-rMMWrD^bO>HbrA}`wg|LyR4!v|xDKwrb*g~eF2bbf3qEEO6lLQ6wGg6NLRD7}q<=jn(dSp|G$3#YKfEB1+l$;guD5 zyWVB}(^hRxm!fS6V?@I*yNA1 zZq&jq9zh#?F@!mDvbdBD$+zQJh;1K+fmB zfGwxbMIapGKmoSU2IJwya7>g@v!8)Vk#o^SaD3}q2=LjWE8!y2 zHF?0ealq0pg-Wo1z63RQ`~q)QOap%WFl_h!9Emf|h12Fh zn?H)xK_@nU>nCtN@drBTCn)&p*HQS5n^E#034QX9*s$Pw>}Zc6!2yyaB1yr!AtxFi zc^bKoJ&n@azt0W$>lkw9ov7d}u-$z(+BnM$?g1ilbZ3Bwba4j|;~HCJHe-UP6%#!z z7@yUQym%u=`fdc;4EnYlPBlt~w5gy-?z#H%FVw-+!+|q_+?=|AlEe0M;PQucW z^YGY+xmcVSjX%`^Yd5!GcXJpmoPmD6Cg<}Q!f{R_=Ka$(49iZOhs~EPMALcap`pAS z9o!p4WDoHod*l0%b$~?1GhlxmB6}MXNyY7kARI}ep*e(_x(-xt^r}A4cIAXfeun9S?J7jXdd?h8$$-xag|Yq)Gc6V0M%iEb!-sWH0*@xveHP& z2}7Yw8tHnf(ak>4FBOW_o(+^0SbYcvV`%1}s{7E31V@SX)!?#| zhKN8U1tmtyvTv#Y$FAp_lpQU z_iJ8>M^KV2d=@Y)6f<7zHc&(qcA_B5Kw*{;8g_zZMSNH*q`Zb!J+`6oBIfCXoYpVs ztXIHOQz7*fSZUQouzr!&QBa@CYda~KbUQ*@BxO70)ZQ}MKawAYPMeU6AthPXfK#G- zazvUSzn`ZHQkG8l7G~rCRyM=o@Fo#q6c+L5yhOxGiwLq@HcT6vkNF>~z(unwaOU)4 zOlNvjMK+4_oNzg9tR)tb^rcB8x!LKg=47!p=Xe4;y_3M-v7t+H4`c#;BCJ_XZ? zr(}fn%uYFz^@+}Uac-uGE=X!z+fJ%3L4xrFjiI>p%urmAh0&EBoHRZk=bloEOV1jD z%g!ER_08?FTMkh2Ma1g6Izwb{oaEQClhn@X1`AB~d}rbSRg|c&um9`*Dn!J}5)sR& zv>_Vi@d^NlXS|$xkGW?1;cR_!%NwrPn=eUb5Ab88Pkd|b5a4OQFh{p zT#Om&!3fr^EODc($c5tkEEMKCQIO+6UXGI=`5nl~cEICKA(!#oY&&v2PUN$^DBp$B z!Yq^*WkGd}D0f>rCyvOm+Bjum0ZyM0@zd~$X< z&N{J}gD20jBbR*Y^VNummRk^!J%(5r{3FsmkJ;Vsv?E1Q@+u(GJuV_z)FVV>Px~TA9`C7<{p}P< zwd3`Acf9e&8^4`7bLM}){PN4ytlLHe2tB+U(F~vtYYkH+5hi>@^TLG-ADS^^#&zSz zkN?DpC!TmQaVc@x;o_u|PCD$mhuh}i)a${{OUc3fS+i!{@P#jYVKKScO*9hffFMI% zIdlLs+Vh>s4A7eD09B?+RXM+SU>6JOxG(HDov^JBp z6WW>4L}-Kc4AmKGfQH8ly7pIjNRRxC$tQ2tL!XA3LT7>=t#mok*`ST7GrUxg4mEx} zAl+XLb!k>E^yH(1R5?1}$R}Uco#_%}33vWc#c47?r5 z!QnU{tyLY7hBkUUBh5pan~cLFaX`k63<~znz@P(q=cZpu1|85ZH22=fpaXj6#wt15 sfBqi;0RR6ojXd4}000I_L_t&o02GyO?Y9I8Q2+n{07*qoM6N<$f-|{!i~s-t literal 721 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wSy!iOI#yLg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+5i=O3-AeX1=1l$e`s#|#^}+&7(N@w0CIr{$Oe+Uk^K-ZP~83C zcc@hG6rikF&NPT(23>y!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index d5f1c8d34e7a88e3f88bea192c3a370d44689c3c..f2c57993ef23964443ce8a4afefb9f1fd4d5fc63 100644 GIT binary patch literal 12710 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 R&-YCMkrtO1s}V5_`ak~RyJG+V literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 4d6372eebdb28e45604e46eeda8dd24651419bc0..2ef766a81080170f3ee85a1764e70290363c5e37 100644 GIT binary patch literal 19539 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 diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..f9646a3 --- /dev/null +++ b/android/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + AndroidIRCx Flutter + diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 5fc1dd0..d65be23 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -372,7 +372,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.androidircx; + PRODUCT_BUNDLE_IDENTIFIER = com.androidircx.flutter; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; @@ -388,7 +388,7 @@ CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.androidircx.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.androidircx.flutter.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -405,7 +405,7 @@ CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.androidircx.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.androidircx.flutter.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; @@ -420,7 +420,7 @@ CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.androidircx.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.androidircx.flutter.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; @@ -551,7 +551,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.androidircx; + PRODUCT_BUNDLE_IDENTIFIER = com.androidircx.flutter; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -573,7 +573,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.androidircx; + PRODUCT_BUNDLE_IDENTIFIER = com.androidircx.flutter; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json index d36b1fa..1815c38 100644 --- a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,122 +1,128 @@ { - "images" : [ - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" - }, - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@3x.png", - "scale" : "3x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@3x.png", - "scale" : "3x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@3x.png", - "scale" : "3x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@2x.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@3x.png", - "scale" : "3x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon-App-20x20@1x.png", - "scale" : "1x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@1x.png", - "scale" : "1x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@1x.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@2x.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", - "idiom" : "ipad", - "filename" : "Icon-App-83.5x83.5@2x.png", - "scale" : "2x" - }, - { - "size" : "1024x1024", - "idiom" : "ios-marketing", - "filename" : "Icon-App-1024x1024@1x.png", - "scale" : "1x" + "images": [ + { + "idiom": "iphone", + "size": "20x20", + "scale": "2x", + "filename": "Icon-App-20x20@2x.png" + }, + { + "idiom": "iphone", + "size": "20x20", + "scale": "3x", + "filename": "Icon-App-20x20@3x.png" + }, + { + "idiom": "iphone", + "size": "29x29", + "scale": "1x", + "filename": "Icon-App-29x29@1x.png" + }, + { + "idiom": "iphone", + "size": "29x29", + "scale": "2x", + "filename": "Icon-App-29x29@2x.png" + }, + { + "idiom": "iphone", + "size": "29x29", + "scale": "3x", + "filename": "Icon-App-29x29@3x.png" + }, + { + "idiom": "iphone", + "size": "40x40", + "scale": "2x", + "filename": "Icon-App-40x40@2x.png" + }, + { + "idiom": "iphone", + "size": "40x40", + "scale": "3x", + "filename": "Icon-App-40x40@3x.png" + }, + { + "idiom": "iphone", + "size": "60x60", + "scale": "2x", + "filename": "Icon-App-60x60@2x.png" + }, + { + "idiom": "iphone", + "size": "60x60", + "scale": "3x", + "filename": "Icon-App-60x60@3x.png" + }, + { + "idiom": "iphone", + "size": "76x76", + "scale": "2x", + "filename": "Icon-App-76x76@2x.png" + }, + { + "idiom": "ipad", + "size": "20x20", + "scale": "1x", + "filename": "Icon-App-20x20@1x.png" + }, + { + "idiom": "ipad", + "size": "20x20", + "scale": "2x", + "filename": "Icon-App-20x20@2x.png" + }, + { + "idiom": "ipad", + "size": "29x29", + "scale": "1x", + "filename": "Icon-App-29x29@1x.png" + }, + { + "idiom": "ipad", + "size": "29x29", + "scale": "2x", + "filename": "Icon-App-29x29@2x.png" + }, + { + "idiom": "ipad", + "size": "40x40", + "scale": "1x", + "filename": "Icon-App-40x40@1x.png" + }, + { + "idiom": "ipad", + "size": "40x40", + "scale": "2x", + "filename": "Icon-App-40x40@2x.png" + }, + { + "idiom": "ipad", + "size": "76x76", + "scale": "1x", + "filename": "Icon-App-76x76@1x.png" + }, + { + "idiom": "ipad", + "size": "76x76", + "scale": "2x", + "filename": "Icon-App-76x76@2x.png" + }, + { + "idiom": "ipad", + "size": "83.5x83.5", + "scale": "2x", + "filename": "Icon-App-83.5x83.5@2x.png" + }, + { + "size": "1024x1024", + "idiom": "ios-marketing", + "scale": "1x", + "filename": "ItunesArtwork@2x.png" + } + ], + "info": { + "version": 1, + "author": "easyappicon" } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} +} \ No newline at end of file diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png index 7353c41ecf9ca08017312dc233d9830079b50717..4829c801e041de39c08fd00394f60e5ccd012eb5 100644 GIT binary patch delta 854 zcmV-c1F8I{0^$ac8Gi-<0051N9Sr~g0~bj|K~#7Fw3AzJ8$}p~pPjY6?mDq+CwAhb zBod0Lf)f=bawI@O5uz0mT)+?DpYbE$f`brM%b}DDsGzEPz#<6|;F$XCIJ@56*=1&x zE%Yvk*7CdG%;$NZo$niuXf~VCvy|W&f1V#OjKG&L4Wj=f?SIkUq|kVWp~|!eKG&Nb zpFEO$dQR!J+M~Uip`kHQD&UQ~13r5gFp?JIFnccPwc4Y-n(+jvcsSFLeAc9J!DPk~ z%wz?#N_w0>i+Zk=S6>hPC+&n@bie#dI7mS1fAf3>zx9T1r!%F)<7y1|^TDfJyTI#D9S5MRCa!$+0T& zJnE>m+Vk%X#6aDAp@3-<7H0*^1(QokIwo2wq*zkzh<|l9uFRUMWQ9{+^^Cv5Rj2uR zGvYTdha&}ljXaudkFT2!-|suz|I=l3>NA>n3{@PQ1`H-XL#2@#3nRirU9+>(5uUnk zcUu9qi$1m)@OxjitE$%^c;esqWWFW;~lbg0P=^`jpV z2m6Gchkwvuz2l6b$f3`#9gng4yWDH}+&=V~vkh9UA@1pv+;?9R{(OhoTVKGik8^Oy z-i;3_U4Zc8kC2lIx^+bA=r0y+Dg}$`jDZnJYI6~dYQRy~qdfeB{HTpcn`BfK&XsNK z<3ld}aGmsINZyJN+uMXefH2ju)E81b?4^(qtbgTQmU1B{PQ-o}HjAov!ou(N8NBck zUao-KALEjy)7a(l`yXH)w+L+;vROnn1#ho~>{eYWL631~gzWXG%5FT*PDdO}ZEn`y zRJqou@Zw65OwPtkrT7~F0RR63QUJOD g000I_L_t&o018PMgw9&xB>(^b07*qoM6N<$g7}rCa{vGU delta 279 zcmV+y0qFkX2B!j$8Gi!+006pI?LPnj0Blf9R7L;)|5U~J`u_j-{Qm)0oAmqtj@kOz z^8J|I`-|B6ht~R5kG+%I`zf~eztraM`u^bc{`dO)zUlmg)%x%C`E}6wSI77~z4s`y z^XT{f(eM4n?EUff`e@AgO~UxV*5*r_%Uhbj5N)LaQj!wdIe!-b004GLL_t&-)18pX z4udcZ1u-#g(~z+5JN*AY5?>Gw7hsN~k)CYt4dQDFxbs5*_&e@Hj)wtt(&JE<3Eq*D z;_gQLvqXoKv=I*gWqM9C(Tvu0>=?hTbOp9!6k6AF;>f6|S5%jGEE}TA9h)e`Yuiu8 d7)l?o1NFcJg%EAfM$P~L002ovPDHLkV1i%wn#2GA 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 797d452e458972bab9d994556c8305db4c827017..fcfe6725168d4bba621d8e4645c2e2607af4d41a 100644 GIT binary patch literal 2381 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 delta 390 zcmV;10eSw-5|#sy8Gi!+006rnNM8T|0E$pdR7L;)|5U~J0au$Tw)XJ){%+3s=lA~6 z@BMVp`S<<*VaoaP`~U3u{%g(ou*=|m)B4`@{`33)?ezIj#Q6OF|6IuUF}e2O>+>eB z?J{?+FLkYu+4_Uk`r_>LHF~flZm0oBf#vr8%vJ>#p~!KNvqGG3)|f1T_)ydeh8$vDceZ>oNbH^|*hJ*t?Yc*1`WB&W>VYVEzu) zq#7;;VjO)t*nbgf(!`OXJBr45rP>>AQr$6c7slJWvbpNW@KTwna6d?PP>hvXCcp=4 zF;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$g2DpVj{pDw 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 6ed2d933e1120817fe9182483a228007b18ab6ae..3be43d80fbe8ed91028fae791046d9104f62c548 100644 GIT binary patch literal 4203 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 delta 266 zcmV+l0rmdO3z`Cu8Gi!+003c4mpuRg09{Z_R7L;)|5U~JDYo_jSDX9(|7FYh`2GLd z^Zv2r{H^2sT*&w!Y^SB+`<>qVZqE6)=lqo0`vF#&*75!I`TIh@_d&k*HoEtQyV-iD z%Xz2D9EQRbeYh5Nr~y=#0ZD;^+vz0$004MNL_t(2&&|%+4u6C&2tZM$Wf&dzefR%A z(^3-?6X>hnCz2Ba@RH&`m!pgy?n@#@AuLYB&}Q)FGY`?vcft0!vht0Z@M&ZeNCWXh75gzRTXR8EE3oN&6 Q00000NkvXXt^-0~f-=*E$p8QV 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 fe730945a01f64a61e2235dbe3f45b08f7729182..74092cb89f49bf022e59f154d904ffef81e32902 100644 GIT binary patch literal 3978 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 delta 447 zcmV;w0YLtWAI<}i8Gi!+007oyx*7lg0G3cpR7L;)|5U~J0au$Tw)URh`@-w}Xw3Np zS)Ix4{k7)&ujKrh-TO(x_}20L&+q+}+xr1ilg8}*yXgGl_5RcF{f*iBEV%Z~-t4>5 ziGV;=={^- z?sLQGb)?A{hr$_!z8HbH7kH=vM0x-*R~t>;jsO4v^GQTOR7l6|(&r9>FcgO2dg?%> z;=sK?5%;?Pn^T7LL?Y$@5u?06NuIR*0?Yf$Hf5Afk+lM<^ch*jvO$sU*m9J?JI7eI zGFV6+q|w~e;JI~C4Vf^@d>Wvj=fl`^u9x9wd9R%3*Q+)t%S!MU_`id^@& zY{y7-r98lZX0?YrHlfmwb?#}^1b{8g&KzmkE(L>Z&p6kME1_Z%?`+u)^el0!1<0sd p?Eyu!OMLDifi)An*I;?S-wj=m4RYIt!kPd8002ovPDHLkV1oLl^cnyF diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png index 321773cd857a8a0f0c9c7d3dc3f5ff4fb298dc10..17c0d575b7c1d58183183dbe79df677f98fb18b8 100644 GIT binary patch literal 7581 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 Zxpx7IC@PekH?;r&002ovPDHLkV1gyKYiIxf 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 797d452e458972bab9d994556c8305db4c827017..fcfe6725168d4bba621d8e4645c2e2607af4d41a 100644 GIT binary patch literal 2381 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 delta 390 zcmV;10eSw-5|#sy8Gi!+006rnNM8T|0E$pdR7L;)|5U~J0au$Tw)XJ){%+3s=lA~6 z@BMVp`S<<*VaoaP`~U3u{%g(ou*=|m)B4`@{`33)?ezIj#Q6OF|6IuUF}e2O>+>eB z?J{?+FLkYu+4_Uk`r_>LHF~flZm0oBf#vr8%vJ>#p~!KNvqGG3)|f1T_)ydeh8$vDceZ>oNbH^|*hJ*t?Yc*1`WB&W>VYVEzu) zq#7;;VjO)t*nbgf(!`OXJBr45rP>>AQr$6c7slJWvbpNW@KTwna6d?PP>hvXCcp=4 zF;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$g2DpVj{pDw 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 502f463a9bc882b461c96aadf492d1729e49e725..d75525a2e972e578337c1449c866989279307fd9 100644 GIT binary patch literal 6649 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 KMNUMnLSTXc7&WN? 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 0ec303439225b78712f49115768196d8d76f6790..e1f7bc484e80d676b223d7d62ed4cee503651e38 100644 GIT binary patch literal 11779 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 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png index 0ec303439225b78712f49115768196d8d76f6790..e1f7bc484e80d676b223d7d62ed4cee503651e38 100644 GIT binary patch literal 11779 zcmZvCbx_?;3@26|?pmxow79#wOL6z24|jK$Qrz9Wz{6dNySo>6*W-6LH+MI4f9!X^ zlg}i($tF9qNg|XKB#{xmB0xYuAWKV${rH^S{~K_ypI>fMju{9DGze)iVO4j?Qy)Mk z;Xu;E$6ew2a%NBi0`)g6Gz>WM0P+NJv_G|9Uazk)z zvkFE>P{Jbt@yLI7OTj5ARMgJEf)wg`d1p62)D$NtD%ByskTK5Qc5POaKj^D*i zQ}dadKN&i~-S~Q`wPUS|Ij%3b7JHFzHGq@zF82>}WO*{y{Q%&Y_Ac%Dd?7_Aud_1h zNzJFSb7M32!p(nG6rJzxC;R)YRZ_FcoJHlR0W^($_kSL{%X$9cb6kuX zOq>X@s+){$E6SJL-KP~jSEoqK^qxPdYjjuCD^CKq?&Oc!?dv)op(zs0r7}TB&E7 zf+SL2HoRu%-*l7CDrz_$%11q4jvYC1Uh*qgXjYpxCTZVVV44#Ge4O+E*;*T5$@ca? zAl$CtrnY4D!W*&#Hf5toP?L4izLjE{( zXuf&P&N|M|b5I_GL-JpAYep!K@Bdc#+>PfEJAazcNC1ugfd7nQqf3`gdo!Z^fcVrV z?i4*ncTkTgrE}uNjy+|$TmhQpXyuW)>(m{kU;Lj)`9yZEfb!;R zAE3Dl<&m#@OP3^;dW|&{_t8yx@nQ$t!)rmMji%s_5Aq=+RfD(U6xfmg(}h11LG!dbfzHCqjh4e`EpK+Iz|SUjTQ%uSql9?!;1G9=D#ZYa0>~ zE{*V$gBD9w{ZX?SQDtSzAV`vpxZPuTKK*TzXx={P+g(QG-ezIhr!N5*6W??`fdfgr z!;850c)vIo>XqtGMQ=%xgHk?i?|qq`{-;5Z_|v04nU5~wesm4XyvwJ5`f9zP@CzN! zr+JBO7eAT*4{)Ou*eLkt6L^^|O`Pbt`3w!fWJ*|3(dUjvYYE#WilDqNy*)IwWxhPt zB8~P~&jrA^=V<43@y=|L+vGCF4eCtp#44CLKGj6>5w7?ZwMIxU0<`IzjA}GHd<=#Xdm?F zEnpeG#Dw$;!9>{~5Bmq;@WKA%u;~&pez^9uCCAoKoLuV{tELl{cJ9De(R`$qN-v8X=UH`z+9nLgBS+ww+C?^Hv+@OGT`q$R8E8S zBJrx*Oc=T@ynMNFKkYrlWy3 zn+uI+Z69aBAoFHhzIxp#fja(dVBJUBRQ|gU@#}~CiJjx+k zpAs;?^_+T-VJmd|F}=RL5OjoIr3-66Oi&Ad##GBq%8Zk^$W#lVwjcS#qQP7^p zFCj78NT*_D_(;5h%9~5y*i_I0kf})TRkHBpy#Z%*>Fn>R4UD|&tG*;YX3*WWwszvC zL!(F$PW7Oj>2LnKA?4(B!`<88&#NqiC?OO?GM6KWtydt7t;yj*!kzdU%@{M$pQ}qU z#xlOI%v)zA2}c4tA(v`$HO8-VwjP?orW=)eDBz+ZqG&myR>u>tc>Jv!hGQ-8B$8}q zUMRe}uz*}ycGT;*qOXvlKot9C*3jjw1E)P1ro(g9L{FNJN%G6DizWDh6LZYV&xy(- z|C&|E1vBqnAWFbY(D-GJv-P^a2Rr;`PFwte#+#qZaDuGg*Q^fjCYyHSUG(|thU3heU~9p&i1BMcLQX#1#Y_%7s@U%m zTKZ_ds9b#@cXTr|+!tr@R9=Mt2Y>mB=-4Ml~F*$wb+q=kwASW zBsAJrx7V)iV2)t5MrBh|7>A>11YNF1tbGsP!(*dq=2#zs5o^GBRj|u(dA_9&6Pqk= z7C8`&l$yLP$e-nqzf`h@6%7o%5Rr-`FDy1yLk~F$(ToKTkf$izp%W(sdIb;4qHD+) zHgr)QA&~#r7c4vOSCP%Q52q5e=_kA3+{)%Wx$G0v*dF6u*sg5j*m}a&qaL0dj38rW zE(7{Y2fe1UrGCreTM8R4lte|y?d$+d`mDA8-LSFKD=Ngka`@f^!tdpfo&9cm&-L9xOfaA6xf}{th-uh zmt~RH zjwR8Ko^K}W=qqTQHM!~p4gO*h(sgJavB=&dP-5aN4I!?jAKPpypD`QMN6wzbEsC7n9_^3s5gkEfFjneKj0AEFw zyujy@f5drXLlj>aE@cdIRFJ7DuU68BHWCt# ziiT(NP!9E(2H%Gqw@m#J(+}=2d}I3(K84XOu-twwBmeW1tsQi)(`f-dPJD+{rq6%8B16%lfmE~*>HP@B%FU@c-k1bBR2hgj8!#&T25to-b z<1Pv5=n!z&tVDmYtL&bw@s5-<(2UJl>w;PQxX{tm(u&HMq#ZoHT9%f*2;3hpJ-Y{1zpiF|%RD;LrDtirA|apg#vz&OhXL4-r~(YNg>~lU0iwvi z1{_1STN=vg_0(8q+lS!Xe+?#0SX*MMGRhEeOj}FdX^!w^^dIz5acK(Ypl1^HIFlee z9VjJ|1aJNe3IBFA^+*n^lk=cgu{ttyLzCt>9>F(r{YA?_hr*7l%wsx#uioD3&0Eb+ zK|;}v+rsl4Hel;l1luR$n2JrY#LP2xM$P(Lp^95yq7BC^rf(Qg!{1&J6}-q{eBQrC z-m#zrqt7En&6o&H8rlR2UY`6z`bC&fW$eYpnTqmMH^^aCaNzMcDRoLaLOQ^eP%k@R z=M-Xz{n$bW{`eTe2v#T~SDpkQB`*AxGU?F)2^6#0g0ovL;9%1T>M4w7kSiUM5H8LE zH~6mP>Dzgw7VA|>0)jffM1M_;u$~|apf$(Z&Ixtf?G2<%TsRXlA`gV>%zl3JT|jjm zh!tgJql~b>;eyj*R?(Ki5M-|kH@`JnVqh(oGr>m&6^hJ)@|gJI6}(NXe19)kS7>h| z!enaY2LP93My4QY+Ool{t4CN#Dyt6oAc&hY_t3s*26<7bk2lKXigtJe5BhNwPluT; zwnRR6sue{+^ceG;&}YPhy!V}_(yqe_3$71cwrm0DZ4dLUA+wt8B~mQ~9j!Q~QUp*K zFh@9}htq!sa3Qp6Ics^M%BFj1Hs|NlX=1&>ZNX>8lW)L}Xre(k7(C-_fu@FA=Nq-M ze+mG-@OLNGM_!GIdvN`W&-nEoQ;*(p3UoGbfOqvaBj%XQjA(tjiSID}f`EV!eZelk z(BKy_fK+TDGt+lp7?q{m)TbJu$8%g`=0hovztJhT*F=PpTOv-;t0J(ejbL9K3U` z)q(Te+pGEEO0By+WXu1~1wiuO-G#GplFiKQObtrh&dujJ9sRIr+dB#0aHlUu8s58> z*0EKRx(OtXw%!aa$5)A|vRzDG**+UxQqgH_Jk-3-uG{ZA>td=Kva>nLo#lXsMndUy zu7(lhse)KkeaCkp#3Dk>7FCo-2FlATtV%WNf$TaXtZ7I?JZ;2!&F?(=*G^Zwca%9NB?aHzu7LFYWr6 zr{~$!o}M+!lYm%`mR!36B6L0<2B zy3yZZj&(!_eYptP{eCO;_e%M3mUlYT!B;99e!OC152dpsE}LftjN!9xk#Hax3K&bi ziK6!S9xDz_B2C4vM2f6((5*xcUKoT`%V$IvQt=X`QDp_MMKMTBm}z`_nDG-?7^dnQ z8DZIX<%-Vg`rwC(`+yAc@S5^<3jsOTeQZl%72NP~9oz}#-wWCXj+Fn#Mgscmh?RgE z&gdCJ!SbUgAD4iJx9gN4S;dmcBS935%c*Y4KrJbRS{$olIA}=<&MFU|yzL7kI~`FD zEF%eS86p&N4#K5rE7l>S#DmA*s+{Mi5*l;8vB_``QDmi-QT{%1zso?#yCsYZ+XouF z_9rJjz#f{QLt<;*?_vYlCFV4k`Dy-rnQ){7ZQmH?tc~zgfXaZknjE^Is{}( zGk6kuI#@kPBzZygnHwRO$q7DBNfw=FZkq3mf`4aZ?fNA(USaN<-f@bWHX*m=R7^N7 z^6pRt!j158UTjR9Oi*bEJS`?AJm$68UJo?FU0utm+e1QzKBnWQFJ}!*=H~^4SF*Z# zw*bUK&&>|SYv;#-C<2oJ68kvPm~knTKj@Kqzo9BUfC~0{`j&pV(hW?_q!ZotFqBf$ z)Zc@~0wQb=TrPhnOk~Ig26%RkxbqX2Mx!7U!4HIjE+W&%qi~zslEQHXEeA(wwQExe z2wLOwy;>-i_4%%|wwpZ^nAJh$5;~=T%;w;6EkgFQnZ@G3gyMp|P=a4h=PhvA_E3SG zuXv1_qF4GsAw_q}?Td#!H+ev;w^I&_DLGO12vs#wJmgsgtk$yM+jZ!A^$61_9mo(k z(9!rMTLmbB3#v^1&+_$c+RUJyz3JKliS}9$_<93#HUzxHloAg2 zp(HP4y{k>EBxvU!=03YW=!iK9Q2kZ{78lq|06xo1j^v?y_jt}fgCrB10*^E7LO0@G z7$$j`^-eJij~yw{p!eMX3i|dl>BbovgA0WP;M6UbwC>d@Ds7yrEiwe*7)gwGkd4yjmmz&NYR}+ol6JqjjuxDq)spx^{7bss zDvV@HH1&)h)?ipiH2}BZlZ}%GSb>UHk2fQb3Uy=6RB<-;`5XEcS z)8#YN6r*O&%=_O}p3CWES32$4;J+!VyVWVQ4t)g`ms2}5^@$JNL78lfgMhx&v#J2| zZ77SWXe0eO)T%Q*&BhL*99!$ZUP++vSS}2l3qQJ0qKMq1VJaoBgJJ5feV)vYYl_Up zMq<_(9p$YEr4noskZsR3J!o(B>I%%^-QJi5vSRg_1eJ+DfI(IxLKd95Jb2vrzN%Q} z`Rz>5N0yL>C(5`f2V*LV?2hL}K3B#!X7a0LQ{E{wIar3{O3hFV^X;8mnubNhk3PgO zkH$Hew@}G{`GRl72Iw{+lPzoG?GG_6R3!1LybV6XC%1!lL^$c25SVN9?~A3tK`eSE z|HvSB@C>))N-C$qWz4X^>(-pjn$MM?9DcSi^1n5u#gLPnQV}g>;+e;d>4SwHPwf_G zYoC1&OD;c0=4!%=zh;(6k1LUayJM2JJ>fcCQRlQD@T)alD9@&6n$Fcc7NYC?-fzdk zK00^=urZ>SOC~*LCKis#pXE!;FD_cz9vTTmB!7%x{nv=%!duK$DaP9TnGuV;9Oey93{hR#2GO-1_qEVY<;a3*Cv4 zC+f{t(C1K&JSMG|{(`gHc00Rt(%h*3k}#S$EsnV#%hm95%3Hnv{)ch}?eJAWI>~xk zbdD&Zx5W%<3n3{V>D6!jLF1oPM6EWWMDO5g96ud{C{$@dO`WiZ#krl1dEVN?gsMji z*tW`Lr=Fs6 z^7j?}#8&gg4>#JE`JNDnaO{u?zO!u=(GLQqrBJhLp!fv45RW8Dh;XA=kz9joq)0n! zIJz#OwEdnCmr}<13OConbFwqzrp<(>Twr;YydG(=7b!5StAx+6HzoevX%yVFR!sYz zsg<@|JDxVbI@)xdvdq0c_^FgXAUWN8J<9DKH20{L8`iJqPs)TmXdvp}>!NQ(r*W*s z9rbxr!y(Aj`*@2)Uq@(*#ym2|lTdwa*>jj7+rp+!a<^m@?dtu9-aKK*eyPn7^s_Gz zIpg7c5X?YlvNf6Z3sYl`>Uw@&Z)j4E^P$(7fsVpvv{A)L`Tfl<|K~fObNhXy$7Z7k z>aC+2waEb;)}}XND7`O%iGUuYfu-eIHh6p#0?@%BXb+*wtvtIH@xlS$KG_*5{Bc1F zqsRyExygYl)c$24Y534uzAz86N|8Sxl=bKK^LH)k$vd)HRC~#!w{YMU+J@r%gl&A% z7drDJNSFk_jEZ?gAvTHy7jLHE_g#rpS=v&6}x(GeGmV5FAh zBU4b&b}*?v<{`N-!Wlv7nD-%Jr9dp{0 z0~TM{Oy;#P6^Up2qe3~XwFlXT&OcK_rI@TGijv#>U6O;NcHeH>!s?!*Yj*CczkPi~ zsS4l>tdsQ(1;{F_RL=sDPYX2_9z&EZ*aI|C|1?0_#xoJ!Aw z8PxwMB@K|Y8{k^pHX@X$O`X}hBc|kJ8D9|Di^nSw>r&_bxZIX{5o|Jknku+bP$NjLsuEEHv99p8<+>bt6_2!_Ez~@%=+|7^G~F{Z zvc{aD+mzY$c@YtNv-t9Wb)TRcHa!7>4+8$zFC;>+2E)3%GOM_ZBBUD7UARbcxHGrw z>bw;pVu~Q5uUmayyen4>4|gf27NTZ4ykHmS+}1XNyY?^CRXZw;2Wk!vm1SiS>BA-A zH{Eh66u1^LV&8UzX1zj@(^-H(sI$lZ_#$^3EnbeZQWnQRVR2Xg!v|B!~erN@)FJdaNB5^%R@W02Rg*L7Ee zvE|n_F%OdlV!7mLSEQ8KA3^ngFM|v1{ zgB)fSB0W7)u|^>MxB1TR6>t}85$zVZx8Du)fWS)+dO2eK=uqB^a68=cN|8syFK|S} z!miDj^QPxxUVIN33!`x0E7h za~)anl$5qEj%~o|Y!AZvV57FBli=oJGt^FSA>7Ze8eh=86MxeSjIO~C#&o(^kF*pt zh%rxQr}*M#ERMFBmL1cmV`Xv>(&GZT3r$YQetL_nxVZIfZu!!Jxix*Njcmn0$URv0<{@AJG`AfkoNx2D_ z(3AsXRb|*>GbVS`^(dZm{J;H3)ASOT#Q(ObvC%85ttBVgZ%A8%#NpTVZCYG1-5awtr4h({oB;N^Yt5Mm*-L zh4A4K1T#HuCU0eNb(0`zQLRbdO7r1jO+7-3uY3h)ZAgqrTlY`6ym${NK-|N<_cV-spJfUKJoJt-x@8l@I2z~@LC>P{ryfP{wS}0WgAEAR;^QCqNrSrrCYTT*0 z5Gb`Yj~#(daT7gG8mOW=yC`!5$1}&b$v>7?f*MHPsb&UaL%a^htPTFa#KZ~49+>Bd zTkOl2=6Fyx;CKXl_6y|x*B21l`G|4N*aBl)U^Air>_s5BWJwJ0Uu zm$RuwvQN{=cBwaZ+~KTj`rsOEc#Xpq)Uy;Th;wVC6X`QHY4_3CPPvIhN?jwVL&ooQ z$I{C7twnIZ8KY#CbH(l7#ElQ^vm#zb-HcuyyO3RuxP=)yE70QjG(e7fU+l|R5}Jx4 z#e7BR!@XqRqq7w*uQD|?nV3dtKsHFr3_>i~+xcDQ(QG3j@cwoSe7)ZhcK`Q6W`Clk zr3p6XFLwhAb6$;yA=&O92i12nGH&1tPu$exZWWXC2^t4`@K3vG*h$0Bl*mgyk;OrM zc#*vSse|YLD=&J#$RKi%d4tCHhUEUJq?)-8qp1<|^PJ+tMV6N5se$jb%I(+7xLuE5 zKl()5_bwRxHt)A9Wa4NWl)%V;*^-A{wtW>DU#Euk=yfK!!@#P>m<vEsoYrdA1PP2*;t5_fi;{>#<5wO ziH=!Ae76@z_N_Ohz>&|2154@$zC9Xz^YbL0rozoXxEI{QpS0(bBdFkD+iFa9u55i3 ztUY*MtxeYCIUCiK%wTu%Rx3Lblh>mHUq?+lMJ;S!eI-%%d694yxT3k76VYrq^00yQ zUW2K_=?qFIu zvLUqK#F%$ml)`*?)}(wn#%i(eb}+7+EUK$D*8+q>S6)y;k5CzJxSb&pYbIpwj#+b6 zVYBBP6!-Drx3c=Yv(1PE)NIQ8M#g#TI?Ex|ys2#V;TGdJ`sCLX&O5;NAK<(?L|!Z2 zS{JX+gs@fy7;KCQUF&LssqgKDneF8Soo&zniHKv@k7x(#H`v$+PuW}#)<{v^xkKgH z9Y<~2sxs5Ly1xdwKP1q+g7#6oN2phCO->0Hw|(g(qd1Q3drQ0$b)c@##VMr zTXSdGfgs6h4snyYm zUa`QL=V(oE%w<1^YsK5ERh^@IcVm^9)Jj_sj)};b3N(hI-cgeOtRRam??FUKwRb08 z1A*HH8z-x9#FEeyIrX&XJni4w^a8FX^3Ah9{^K#s89^Ehj>RM`T8~QYR+^A(|z;(!Z=Py&3wb zUHqhO^MsAQ>ld&0-8d|K#StSJBYp#klOBkME>Ee9&TI)v_2v6~kzzd^L4{m*)XHfY zg@%ZX;G4ol8dJwA%j23`bq=tM9%9v2emfNQor+u?S9Ei)`Ws+on#7p<1~tOtX?%^y zKK?4QLSsyT6;il@BDuhFMljmy7We#waQy{gWu|p5bVUOz)w6+~7^{{q z=b9#C(z}lpbV|eSf%8)6qNBiDR&bA?c@D0b+S7UsmGjeqd8-yy50~N_YK@}UNsQvc z;u8zj=!VhccEgDZr`$zD$5cXR_5d13dv)N%^0VNU5bFe^?+e2~6Km3`e2>D7YX1wx z2X#Q(f0?eXv_7U)=I*uYasn&u-HT{!_{$sT?{Ze_Op@GNVzUkceS%ZF4fDf0k5@qpp z+`lZ<&?l-CCj&u}klQLnK_g}epfP1~_%T%<%lp|lG%7k3D1LJvD_-w<4GG-{dVpNK z{}R}%Y(vU98#axdmMS1X;#8cHo;xX!2ScUE(9d>2#1AAWpkZOEWFy)ax1=6H{Kh#N zC+EtPdLZ6yF3igSR0q zb2&;CJIpAd{OW1YQb!YF21q;DenoJ69U8qC%_@hc&!ClZornUqJHq7E4@UWyFr@|wwvewk%IhkMs;R*5~CP?gWJu-W6Ify|1l&A3r zYXJU;ytpB}9yi8XS+5=7X0l){6H_*ic7l6uesxTX3QH7}tZmg+=hCOgZ{m*|&xTI$`pdg55YcWZBOb*N8 zHE@X(7^>1m!$!KZcel@8^?8f9rzjROFak%6Qy{FXht7lOfP>B9qMzDQ(eEgYYlMgY z?l>;}B~?>dJU&FZTSr&_dW3Pf>tpa)eyoOjvL@=Z~w=G9A< z0lUA!Sg71URr9Ybv|{8f8-BY_#-#4Ae;W;E1i-w-HG%jNu}(3oxfSYCdcCt@;OrUCbaZYjJo^$ z{nGILmD~Da$@upC{`C6(Ey4dPw)Pyc^>5DkHoEo!QcuK-Jwl-l}t(fQKv z{dds$V#@dygS`PvhX6is7Z+@*x-d;$ zb=6f@U3Jw}_s+W3%*+b9H_vS)-R#9?zrXogeLVI2We2RFTTAL}&3C8PS~<5D&v@UI z+`s*$wqQ=yd$laNUY-|ovcS9~n_90tFUdl#qq0tEUXle|k{Op|DHpSrbxEeZ5~$>o%>OSe z^=41qvh3LlC2xXzu+-2eQoqs1^L>7ylB$bCP);(%(xYZL1 cY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f&|3L`Tzg` diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png index e9f5fea27c705180eb716271f41b582e76dcbd90..663891bf9fe78163568bc227cda66553dd3a74a1 100644 GIT binary patch literal 21782 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 delta 1669 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 delta 749 zcmVg;Ps8|O$@u8^{Z_{KM!@$5TAfS6_e#O{MZfpz`2O`0$7~@NRr(1{THzH08y3x{{PYM{eL;T_A9^tcF_4Sxb`8l z_9V3RD6;a(-0A^Pjsi!1?)d#Ap4Tk3^CP0(07;VpJ7@tgQ}z4)*zx@&yZwC9`DV-b z0ZobH_5IB4{KxD3;p_6%|f=bdFhu+F!zMZ2UFj;GUKX7tI;hv3{q~!*pMj75WP_c}> z6)IWvg5_yyg<9Op()eD1hWC19M@?_9_MHec{Z8n3FMs~w_u?Av_yNBmRxVYrpi(M% zFMP21g+hmocQp3ay*Su=qM6He)*HaaTg$E^sym`(t%s3A)x!M+vfjXUBEpK6X9%iU zU!u9jj3(-$dM~sJ%Liy#?|+!6IY#MTau#O6vVj`yh_7%Ni!?!VS+MPTO(_fG+1<#p zqu;A#i+_(N%CmVnYvb>#nA{>Q%3E`Ds7<~jZMywn@h2t>G-LrYy7?Dj{aZqhQd6tzX%(Trn+ z)HNF}%-F{rr=m*0{=a;s#YDL00000NkvXXu0mjfUhbI- diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png index 8953cba09064923c5daf2d37e7c3c836ccdd794b..ba07ce78aef9fd393034e9e63298ed3b71117d81 100644 GIT binary patch literal 16960 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 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 0467bf12aa4d28f374bb26596605a46dcbb3e7c8..02b0d8017e245e142b5b791c556ecdf9dc485116 100644 GIT binary patch literal 19437 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 wt$>$I|33f#0RR6fOQt<8 delta 1411 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

|6y?(~dVjF}Nz&c_0Z;V3F#rGn literal 0 HcmV?d00001 diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index db07867..2695c64 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -7,7 +7,7 @@ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName - Androidircx + AndroidIRCx Flutter CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -15,7 +15,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - androidircx + AndroidIRCx Flutter CFBundlePackageType APPL CFBundleShortVersionString diff --git a/lib/app/app.dart b/lib/app/app.dart new file mode 100644 index 0000000..e0348c2 --- /dev/null +++ b/lib/app/app.dart @@ -0,0 +1,17 @@ +import 'package:androidircx/app/theme/app_theme.dart'; +import 'package:androidircx/features/bootstrap/presentation/bootstrap_screen.dart'; +import 'package:flutter/material.dart'; + +class AndroidIrcxApp extends StatelessWidget { + const AndroidIrcxApp({super.key}); + + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'AndroidIRCx Flutter', + debugShowCheckedModeBanner: false, + theme: buildAppTheme(), + home: const BootstrapScreen(), + ); + } +} diff --git a/lib/app/theme/app_theme.dart b/lib/app/theme/app_theme.dart new file mode 100644 index 0000000..23a03f2 --- /dev/null +++ b/lib/app/theme/app_theme.dart @@ -0,0 +1,52 @@ +import 'package:flutter/material.dart'; + +ThemeData buildAppTheme() { + const accent = Color(0xFF3AA675); + const surface = Color(0xFFF3F5F7); + const ink = Color(0xFF15202B); + + final colorScheme = ColorScheme.fromSeed( + seedColor: accent, + brightness: Brightness.light, + ).copyWith( + primary: accent, + surface: surface, + onSurface: ink, + ); + + return ThemeData( + colorScheme: colorScheme, + scaffoldBackgroundColor: surface, + useMaterial3: true, + appBarTheme: const AppBarTheme( + centerTitle: false, + scrolledUnderElevation: 0, + backgroundColor: Colors.transparent, + foregroundColor: ink, + ), + cardTheme: CardThemeData( + color: Colors.white, + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(18), + side: BorderSide(color: Colors.black.withValues(alpha: 0.06)), + ), + ), + inputDecorationTheme: InputDecorationTheme( + filled: true, + fillColor: Colors.white, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(14), + borderSide: BorderSide(color: Colors.black.withValues(alpha: 0.08)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(14), + borderSide: BorderSide(color: Colors.black.withValues(alpha: 0.08)), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(14), + borderSide: const BorderSide(color: accent, width: 1.4), + ), + ), + ); +} diff --git a/lib/core/models/app_settings.dart b/lib/core/models/app_settings.dart new file mode 100644 index 0000000..cef70c1 --- /dev/null +++ b/lib/core/models/app_settings.dart @@ -0,0 +1,27 @@ +class AppSettings { + const AppSettings({ + this.showRawEvents = true, + }); + + final bool showRawEvents; + + AppSettings copyWith({ + bool? showRawEvents, + }) { + return AppSettings( + showRawEvents: showRawEvents ?? this.showRawEvents, + ); + } + + Map toJson() { + return { + 'showRawEvents': showRawEvents, + }; + } + + factory AppSettings.fromJson(Map json) { + return AppSettings( + showRawEvents: (json['showRawEvents'] as bool?) ?? true, + ); + } +} diff --git a/lib/core/models/chat_tab.dart b/lib/core/models/chat_tab.dart new file mode 100644 index 0000000..4cf316f --- /dev/null +++ b/lib/core/models/chat_tab.dart @@ -0,0 +1,41 @@ +enum ChatTabType { server, channel, query, notice } + +class ChatTab { + const ChatTab({ + required this.id, + required this.name, + required this.type, + required this.networkId, + this.hasActivity = false, + this.isEncrypted = false, + }); + + final String id; + final String name; + final ChatTabType type; + final String networkId; + final bool hasActivity; + final bool isEncrypted; + + Map toJson() { + return { + 'id': id, + 'name': name, + 'type': type.name, + 'networkId': networkId, + 'hasActivity': hasActivity, + 'isEncrypted': isEncrypted, + }; + } + + factory ChatTab.fromJson(Map json) { + return ChatTab( + id: json['id']! as String, + name: json['name']! as String, + type: ChatTabType.values.byName(json['type']! as String), + networkId: json['networkId']! as String, + hasActivity: (json['hasActivity'] as bool?) ?? false, + isEncrypted: (json['isEncrypted'] as bool?) ?? false, + ); + } +} diff --git a/lib/core/models/connection_state.dart b/lib/core/models/connection_state.dart new file mode 100644 index 0000000..48baea4 --- /dev/null +++ b/lib/core/models/connection_state.dart @@ -0,0 +1,32 @@ +enum ConnectionPhase { + idle, + connecting, + connected, + disconnecting, + disconnected, + error, +} + +class ConnectionSnapshot { + const ConnectionSnapshot({ + required this.networkId, + required this.phase, + this.message, + }); + + final String networkId; + final ConnectionPhase phase; + final String? message; + + ConnectionSnapshot copyWith({ + String? networkId, + ConnectionPhase? phase, + String? message, + }) { + return ConnectionSnapshot( + networkId: networkId ?? this.networkId, + phase: phase ?? this.phase, + message: message ?? this.message, + ); + } +} diff --git a/lib/core/models/irc_message.dart b/lib/core/models/irc_message.dart new file mode 100644 index 0000000..268d54c --- /dev/null +++ b/lib/core/models/irc_message.dart @@ -0,0 +1,47 @@ +enum IrcMessageKind { chat, system, raw } + +class IrcMessage { + const IrcMessage({ + required this.id, + required this.tabId, + required this.sender, + required this.content, + required this.timestamp, + this.isOwn = false, + this.kind = IrcMessageKind.chat, + }); + + final String id; + final String tabId; + final String sender; + final String content; + final DateTime timestamp; + final bool isOwn; + final IrcMessageKind kind; + + Map toJson() { + return { + 'id': id, + 'tabId': tabId, + 'sender': sender, + 'content': content, + 'timestamp': timestamp.toIso8601String(), + 'isOwn': isOwn, + 'kind': kind.name, + }; + } + + factory IrcMessage.fromJson(Map json) { + return IrcMessage( + id: json['id']! as String, + tabId: json['tabId']! as String, + sender: json['sender']! as String, + content: json['content']! as String, + timestamp: DateTime.parse(json['timestamp']! as String), + isOwn: (json['isOwn'] as bool?) ?? false, + kind: IrcMessageKind.values.byName( + (json['kind'] as String?) ?? IrcMessageKind.chat.name, + ), + ); + } +} diff --git a/lib/core/models/network_config.dart b/lib/core/models/network_config.dart new file mode 100644 index 0000000..626b5c5 --- /dev/null +++ b/lib/core/models/network_config.dart @@ -0,0 +1,81 @@ +class NetworkConfig { + const NetworkConfig({ + required this.id, + required this.name, + required this.host, + required this.port, + required this.nickname, + this.username = 'androidircx', + this.realName = 'AndroidIRCX', + this.useTls = true, + this.password, + this.autoConnect = false, + }); + + final String id; + final String name; + final String host; + final int port; + final String nickname; + final String username; + final String realName; + final bool useTls; + final String? password; + final bool autoConnect; + + NetworkConfig copyWith({ + String? id, + String? name, + String? host, + int? port, + String? nickname, + String? username, + String? realName, + bool? useTls, + String? password, + bool? autoConnect, + }) { + return NetworkConfig( + id: id ?? this.id, + name: name ?? this.name, + host: host ?? this.host, + port: port ?? this.port, + nickname: nickname ?? this.nickname, + username: username ?? this.username, + realName: realName ?? this.realName, + useTls: useTls ?? this.useTls, + password: password ?? this.password, + autoConnect: autoConnect ?? this.autoConnect, + ); + } + + Map toJson() { + return { + 'id': id, + 'name': name, + 'host': host, + 'port': port, + 'nickname': nickname, + 'username': username, + 'realName': realName, + 'useTls': useTls, + 'password': password, + 'autoConnect': autoConnect, + }; + } + + factory NetworkConfig.fromJson(Map json) { + return NetworkConfig( + id: json['id']! as String, + name: json['name']! as String, + host: json['host']! as String, + port: (json['port']! as num).toInt(), + nickname: json['nickname']! as String, + username: (json['username'] as String?) ?? 'androidircx', + realName: (json['realName'] as String?) ?? 'AndroidIRCX', + useTls: (json['useTls'] as bool?) ?? true, + password: json['password'] as String?, + autoConnect: (json['autoConnect'] as bool?) ?? false, + ); + } +} diff --git a/lib/core/storage/in_memory_network_repository.dart b/lib/core/storage/in_memory_network_repository.dart new file mode 100644 index 0000000..9899181 --- /dev/null +++ b/lib/core/storage/in_memory_network_repository.dart @@ -0,0 +1,42 @@ +import 'package:androidircx/core/models/network_config.dart'; +import 'package:androidircx/core/storage/network_repository.dart'; + +class InMemoryNetworkRepository implements NetworkRepository { + InMemoryNetworkRepository([ + List? seed, + ]) : _networks = List.from(seed ?? _defaultSeed); + + final List _networks; + + static const List _defaultSeed = [ + NetworkConfig( + id: 'dbase', + name: 'DBase', + host: 'irc.dbase.in.rs', + port: 6697, + nickname: 'AndroidIRCX', + useTls: true, + ), + ]; + + @override + Future deleteNetwork(String networkId) async { + _networks.removeWhere((network) => network.id == networkId); + } + + @override + Future> loadNetworks() async { + return List.unmodifiable(_networks); + } + + @override + Future saveNetwork(NetworkConfig network) async { + final index = _networks.indexWhere((item) => item.id == network.id); + if (index == -1) { + _networks.add(network); + return; + } + + _networks[index] = network; + } +} diff --git a/lib/core/storage/network_repository.dart b/lib/core/storage/network_repository.dart new file mode 100644 index 0000000..740ceca --- /dev/null +++ b/lib/core/storage/network_repository.dart @@ -0,0 +1,7 @@ +import 'package:androidircx/core/models/network_config.dart'; + +abstract class NetworkRepository { + Future> loadNetworks(); + Future saveNetwork(NetworkConfig network); + Future deleteNetwork(String networkId); +} diff --git a/lib/core/storage/settings_repository.dart b/lib/core/storage/settings_repository.dart new file mode 100644 index 0000000..fe11711 --- /dev/null +++ b/lib/core/storage/settings_repository.dart @@ -0,0 +1,6 @@ +import 'package:androidircx/core/models/app_settings.dart'; + +abstract class SettingsRepository { + Future loadSettings(); + Future saveSettings(AppSettings settings); +} diff --git a/lib/core/storage/shared_prefs_network_repository.dart b/lib/core/storage/shared_prefs_network_repository.dart new file mode 100644 index 0000000..c7b9f7d --- /dev/null +++ b/lib/core/storage/shared_prefs_network_repository.dart @@ -0,0 +1,61 @@ +import 'dart:convert'; + +import 'package:androidircx/core/models/network_config.dart'; +import 'package:androidircx/core/storage/network_repository.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class SharedPrefsNetworkRepository implements NetworkRepository { + static const _storageKey = 'androidircx.networks'; + + @override + Future deleteNetwork(String networkId) async { + final prefs = await SharedPreferences.getInstance(); + final networks = await loadNetworks(); + final next = networks.where((network) => network.id != networkId).toList(); + await prefs.setString(_storageKey, _encode(next)); + } + + @override + Future> loadNetworks() async { + final prefs = await SharedPreferences.getInstance(); + final raw = prefs.getString(_storageKey); + if (raw == null || raw.isEmpty) { + return List.unmodifiable(_defaultSeed); + } + + final decoded = jsonDecode(raw) as List; + return decoded + .map((item) => NetworkConfig.fromJson(item as Map)) + .toList(growable: false); + } + + @override + Future saveNetwork(NetworkConfig network) async { + final prefs = await SharedPreferences.getInstance(); + final networks = (await loadNetworks()).toList(); + final index = networks.indexWhere((item) => item.id == network.id); + if (index == -1) { + networks.add(network); + } else { + networks[index] = network; + } + await prefs.setString(_storageKey, _encode(networks)); + } + + String _encode(List networks) { + return jsonEncode( + networks.map((network) => network.toJson()).toList(growable: false), + ); + } + + static const List _defaultSeed = [ + NetworkConfig( + id: 'dbase', + name: 'DBase', + host: 'irc.dbase.in.rs', + port: 6697, + nickname: 'AndroidIRCX', + useTls: true, + ), + ]; +} diff --git a/lib/core/storage/shared_prefs_settings_repository.dart b/lib/core/storage/shared_prefs_settings_repository.dart new file mode 100644 index 0000000..eccc35c --- /dev/null +++ b/lib/core/storage/shared_prefs_settings_repository.dart @@ -0,0 +1,26 @@ +import 'dart:convert'; + +import 'package:androidircx/core/models/app_settings.dart'; +import 'package:androidircx/core/storage/settings_repository.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class SharedPrefsSettingsRepository implements SettingsRepository { + static const _storageKey = 'androidircx.settings'; + + @override + Future loadSettings() async { + final prefs = await SharedPreferences.getInstance(); + final raw = prefs.getString(_storageKey); + if (raw == null || raw.isEmpty) { + return const AppSettings(); + } + + return AppSettings.fromJson(jsonDecode(raw) as Map); + } + + @override + Future saveSettings(AppSettings settings) async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setString(_storageKey, jsonEncode(settings.toJson())); + } +} diff --git a/lib/features/bootstrap/presentation/bootstrap_screen.dart b/lib/features/bootstrap/presentation/bootstrap_screen.dart new file mode 100644 index 0000000..79c898f --- /dev/null +++ b/lib/features/bootstrap/presentation/bootstrap_screen.dart @@ -0,0 +1,34 @@ +import 'package:androidircx/core/storage/shared_prefs_network_repository.dart'; +import 'package:androidircx/features/connections/application/network_list_controller.dart'; +import 'package:androidircx/features/connections/presentation/network_list_screen.dart'; +import 'package:flutter/material.dart'; + +class BootstrapScreen extends StatefulWidget { + const BootstrapScreen({super.key}); + + @override + State createState() => _BootstrapScreenState(); +} + +class _BootstrapScreenState extends State { + late final NetworkListController _controller; + + @override + void initState() { + super.initState(); + _controller = NetworkListController( + repository: SharedPrefsNetworkRepository(), + )..load(); + } + + @override + void dispose() { + _controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return NetworkListScreen(controller: _controller); + } +} diff --git a/lib/features/chat/application/chat_session_controller.dart b/lib/features/chat/application/chat_session_controller.dart new file mode 100644 index 0000000..1c279ee --- /dev/null +++ b/lib/features/chat/application/chat_session_controller.dart @@ -0,0 +1,525 @@ +import 'dart:async'; + +import 'package:androidircx/core/models/chat_tab.dart'; +import 'package:androidircx/core/models/connection_state.dart'; +import 'package:androidircx/core/models/irc_message.dart'; +import 'package:androidircx/core/models/network_config.dart'; +import 'package:androidircx/core/models/app_settings.dart'; +import 'package:androidircx/core/storage/settings_repository.dart'; +import 'package:androidircx/core/storage/shared_prefs_settings_repository.dart'; +import 'package:androidircx/features/chat/data/chat_session_persistence.dart'; +import 'package:androidircx/features/chat/presentation/join_channel_dialog.dart'; +import 'package:androidircx/irc/models/irc_message_frame.dart'; +import 'package:androidircx/irc/services/irc_service.dart'; +import 'package:flutter/foundation.dart'; + +class ChatSessionController extends ChangeNotifier { + ChatSessionController({ + required this.network, + IrcService? ircService, + ChatSessionPersistence? persistence, + SettingsRepository? settingsRepository, + }) : _ircService = ircService ?? IrcService(), + _persistence = persistence ?? ChatSessionPersistence(), + _settingsRepository = + settingsRepository ?? SharedPrefsSettingsRepository() { + final serverTab = ChatTab( + id: _serverTabId(network.id), + name: network.name, + type: ChatTabType.server, + networkId: network.id, + ); + _tabs = [serverTab]; + _activeTabId = serverTab.id; + _messages[serverTab.id] = []; + } + + final NetworkConfig network; + final IrcService _ircService; + final ChatSessionPersistence _persistence; + final SettingsRepository _settingsRepository; + final Map> _messages = {}; + final List> _subscriptions = []; + Timer? _reconnectTimer; + + late List _tabs; + late String _activeTabId; + AppSettings _settings = const AppSettings(); + bool _isBootstrapped = false; + bool _manualDisconnectRequested = false; + int _reconnectAttempt = 0; + Duration? _pendingReconnectDelay; + ConnectionSnapshot _connection = const ConnectionSnapshot( + networkId: '', + phase: ConnectionPhase.idle, + ); + + List get tabs => List.unmodifiable(_tabs); + String get activeTabId => _activeTabId; + ConnectionSnapshot get connection => _connection; + AppSettings get settings => _settings; + bool get isReconnectScheduled => _reconnectTimer?.isActive ?? false; + Duration? get pendingReconnectDelay => _pendingReconnectDelay; + ChatTab get activeTab => _tabs.firstWhere((tab) => tab.id == _activeTabId); + List get activeMessages { + final source = _messages[_activeTabId] ?? const []; + if (_settings.showRawEvents) { + return List.unmodifiable(source); + } + + return List.unmodifiable( + source.where((message) => message.kind != IrcMessageKind.raw), + ); + } + + Future start() async { + if (!_isBootstrapped) { + await _loadPersistedState(); + _isBootstrapped = true; + notifyListeners(); + } + + if (_subscriptions.isEmpty) { + _subscriptions.add(_ircService.frames.listen(_handleFrame)); + _subscriptions.add(_ircService.stateStream.listen((snapshot) { + _connection = snapshot; + _handleConnectionLifecycle(snapshot); + notifyListeners(); + })); + _subscriptions.add(_ircService.rawEvents.listen((line) { + _appendMessage( + tabId: _serverTabId(network.id), + sender: '*', + content: line, + kind: IrcMessageKind.raw, + ); + unawaited(_persistState()); + notifyListeners(); + })); + } + + _manualDisconnectRequested = false; + _cancelReconnect(); + await _ircService.connect(network); + } + + void selectTab(String tabId) { + _activeTabId = tabId; + unawaited(_persistState()); + notifyListeners(); + } + + Future handleComposerSubmit(String input) async { + final text = input.trim(); + if (text.isEmpty) { + return; + } + + if (text.startsWith('/')) { + await _handleSlashCommand(text.substring(1)); + return; + } + + if (activeTab.type == ChatTabType.server) { + await _ircService.sendRaw(text); + return; + } + + await _ircService.sendPrivmsg(target: activeTab.name, text: text); + _appendMessage( + tabId: activeTab.id, + sender: _ircService.currentNick ?? network.nickname, + content: text, + isOwn: true, + ); + unawaited(_persistState()); + notifyListeners(); + } + + Future joinChannel(JoinChannelRequest request) async { + final name = request.channel.trim(); + if (name.isEmpty) { + return; + } + + final normalized = name.startsWith('#') ? name : '#$name'; + final tab = _ensureChannelTab(normalized); + _activeTabId = tab.id; + unawaited(_persistState()); + notifyListeners(); + await _ircService.joinChannel(normalized); + } + + Future disconnect() async { + _manualDisconnectRequested = true; + _cancelReconnect(); + await _ircService.disconnect(); + } + + Future reconnectNow() async { + _cancelReconnect(); + await start(); + } + + Future reloadSettings() async { + _settings = await _settingsRepository.loadSettings(); + notifyListeners(); + } + + void _handleConnectionLifecycle(ConnectionSnapshot snapshot) { + if (snapshot.phase == ConnectionPhase.connected) { + _reconnectAttempt = 0; + _pendingReconnectDelay = null; + _manualDisconnectRequested = false; + _cancelReconnect(); + return; + } + + if (_manualDisconnectRequested) { + return; + } + + if (snapshot.phase == ConnectionPhase.error || + snapshot.phase == ConnectionPhase.disconnected) { + _scheduleReconnect(); + } + } + + void _scheduleReconnect() { + if (_reconnectTimer?.isActive ?? false) { + return; + } + + _reconnectAttempt += 1; + final seconds = (_reconnectAttempt * 2).clamp(2, 12); + _pendingReconnectDelay = Duration(seconds: seconds); + _reconnectTimer = Timer(_pendingReconnectDelay!, () { + _reconnectTimer = null; + _pendingReconnectDelay = null; + unawaited(start()); + notifyListeners(); + }); + } + + void _cancelReconnect() { + _reconnectTimer?.cancel(); + _reconnectTimer = null; + _pendingReconnectDelay = null; + } + + Future _handleSlashCommand(String commandLine) async { + final parts = commandLine.split(' '); + final command = parts.first.toLowerCase(); + final rest = parts.skip(1).join(' ').trim(); + + switch (command) { + case 'join': + if (rest.isNotEmpty) { + await joinChannel(JoinChannelRequest(channel: rest)); + return; + } + case 'part': + if (activeTab.type == ChatTabType.channel) { + await _ircService.sendRaw('PART ${activeTab.name}'); + return; + } + case 'msg': + final space = rest.indexOf(' '); + if (space != -1) { + final target = rest.substring(0, space); + final text = rest.substring(space + 1).trim(); + if (text.isNotEmpty) { + final tab = _ensureQueryTab(target); + await _ircService.sendPrivmsg(target: target, text: text); + _appendMessage( + tabId: tab.id, + sender: _ircService.currentNick ?? network.nickname, + content: text, + isOwn: true, + ); + unawaited(_persistState()); + notifyListeners(); + return; + } + } + case 'me': + if (rest.isNotEmpty && activeTab.type != ChatTabType.server) { + await _ircService.sendAction(target: activeTab.name, text: rest); + _appendMessage( + tabId: activeTab.id, + sender: _ircService.currentNick ?? network.nickname, + content: '• $rest', + isOwn: true, + ); + unawaited(_persistState()); + notifyListeners(); + return; + } + case 'nick': + if (rest.isNotEmpty) { + await _ircService.sendRaw('NICK $rest'); + return; + } + case 'quit': + await _ircService.disconnect(rest.isEmpty ? null : rest); + return; + default: + await _ircService.sendRaw(commandLine); + return; + } + } + + void _handleFrame(IrcMessageFrame frame) { + switch (frame.command) { + case '001': + case '002': + case '003': + case '004': + case '372': + case '375': + case '376': + _appendMessage( + tabId: _serverTabId(network.id), + sender: '*', + content: frame.trailing ?? frame.params.join(' '), + kind: IrcMessageKind.system, + ); + case '332': + if (frame.params.length >= 2 && frame.trailing != null) { + final channel = frame.params[1]; + final tab = _ensureChannelTab(channel); + _appendMessage( + tabId: tab.id, + sender: '*', + content: 'Topic: ${frame.trailing!}', + kind: IrcMessageKind.system, + ); + } + case 'JOIN': + final channel = frame.trailing ?? _firstOrNull(frame.params); + if (channel != null) { + final tab = _ensureChannelTab(channel); + final nick = frame.senderNick ?? '*'; + _appendMessage( + tabId: tab.id, + sender: '*', + content: '$nick joined $channel', + kind: IrcMessageKind.system, + ); + if (nick == (_ircService.currentNick ?? network.nickname)) { + _activeTabId = tab.id; + } + } + case 'PART': + final channel = _firstOrNull(frame.params); + if (channel != null) { + final tab = _ensureChannelTab(channel); + _appendMessage( + tabId: tab.id, + sender: '*', + content: + '${frame.senderNick ?? '*'} left $channel${frame.trailing == null ? '' : ' (${frame.trailing})'}', + kind: IrcMessageKind.system, + ); + } + case 'QUIT': + _appendMessage( + tabId: _serverTabId(network.id), + sender: '*', + content: + '${frame.senderNick ?? '*'} quit${frame.trailing == null ? '' : ' (${frame.trailing})'}', + kind: IrcMessageKind.system, + ); + case 'NICK': + _appendMessage( + tabId: _serverTabId(network.id), + sender: '*', + content: + '${frame.senderNick ?? '*'} is now known as ${frame.trailing ?? _firstOrNull(frame.params) ?? '?'}', + kind: IrcMessageKind.system, + ); + case 'NOTICE': + _handleNotice(frame); + case 'PRIVMSG': + _handlePrivmsg(frame); + case 'ERROR': + _appendMessage( + tabId: _serverTabId(network.id), + sender: 'error', + content: frame.trailing ?? frame.raw, + kind: IrcMessageKind.system, + ); + default: + break; + } + + unawaited(_persistState()); + notifyListeners(); + } + + void _handleNotice(IrcMessageFrame frame) { + final target = _firstOrNull(frame.params); + final content = frame.trailing; + if (target == null || content == null) { + return; + } + + final tabId = target.startsWith('#') + ? _ensureChannelTab(target).id + : _serverTabId(network.id); + + _appendMessage( + tabId: tabId, + sender: frame.senderNick ?? 'notice', + content: content, + ); + } + + void _handlePrivmsg(IrcMessageFrame frame) { + final target = _firstOrNull(frame.params); + final content = frame.trailing; + if (target == null || content == null) { + return; + } + + final isChannel = target.startsWith('#'); + final tab = isChannel + ? _ensureChannelTab(target) + : _ensureQueryTab(frame.senderNick ?? target); + + _appendMessage( + tabId: tab.id, + sender: frame.senderNick ?? target, + content: _normalizeContent(content), + ); + } + + String _normalizeContent(String content) { + const actionPrefix = '\u0001ACTION '; + if (content.startsWith(actionPrefix) && content.endsWith('\u0001')) { + return '• ${content.substring(actionPrefix.length, content.length - 1)}'; + } + + return content; + } + + ChatTab _ensureChannelTab(String channel) { + final existing = _findTab(_channelTabId(network.id, channel)); + if (existing != null) { + return existing; + } + + final tab = ChatTab( + id: _channelTabId(network.id, channel), + name: channel, + type: ChatTabType.channel, + networkId: network.id, + ); + _tabs = [..._tabs, tab]; + _messages.putIfAbsent(tab.id, () => []); + return tab; + } + + ChatTab _ensureQueryTab(String nick) { + final existing = _findTab(_queryTabId(network.id, nick)); + if (existing != null) { + return existing; + } + + final tab = ChatTab( + id: _queryTabId(network.id, nick), + name: nick, + type: ChatTabType.query, + networkId: network.id, + ); + _tabs = [..._tabs, tab]; + _messages.putIfAbsent(tab.id, () => []); + return tab; + } + + ChatTab? _findTab(String id) { + for (final tab in _tabs) { + if (tab.id == id) { + return tab; + } + } + + return null; + } + + void _appendMessage({ + required String tabId, + required String sender, + required String content, + bool isOwn = false, + IrcMessageKind kind = IrcMessageKind.chat, + }) { + final list = _messages.putIfAbsent(tabId, () => []); + list.add( + IrcMessage( + id: '${DateTime.now().microsecondsSinceEpoch}-${list.length}', + tabId: tabId, + sender: sender, + content: content, + timestamp: DateTime.now(), + isOwn: isOwn, + kind: kind, + ), + ); + } + + Future _loadPersistedState() async { + _settings = await _settingsRepository.loadSettings(); + final snapshot = await _persistence.load(network.id); + if (snapshot == null) { + return; + } + + if (snapshot.tabs.isNotEmpty) { + _tabs = snapshot.tabs; + } + + _messages + ..clear() + ..addAll(snapshot.messagesByTab); + + for (final tab in _tabs) { + _messages.putIfAbsent(tab.id, () => []); + } + + if (snapshot.activeTabId.isNotEmpty && _findTab(snapshot.activeTabId) != null) { + _activeTabId = snapshot.activeTabId; + } + } + + Future _persistState() { + return _persistence.save( + networkId: network.id, + tabs: _tabs, + messagesByTab: _messages, + activeTabId: _activeTabId, + ); + } + + String? _firstOrNull(List values) { + if (values.isEmpty) { + return null; + } + + return values.first; + } + + @override + void dispose() { + _cancelReconnect(); + for (final subscription in _subscriptions) { + subscription.cancel(); + } + _ircService.dispose(); + super.dispose(); + } +} + +String _serverTabId(String networkId) => 'server::$networkId'; +String _channelTabId(String networkId, String name) => 'channel::$networkId::$name'; +String _queryTabId(String networkId, String nick) => 'query::$networkId::$nick'; diff --git a/lib/features/chat/data/chat_session_persistence.dart b/lib/features/chat/data/chat_session_persistence.dart new file mode 100644 index 0000000..731f511 --- /dev/null +++ b/lib/features/chat/data/chat_session_persistence.dart @@ -0,0 +1,80 @@ +import 'dart:convert'; + +import 'package:androidircx/core/models/chat_tab.dart'; +import 'package:androidircx/core/models/irc_message.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class ChatSessionSnapshot { + const ChatSessionSnapshot({ + required this.tabs, + required this.messagesByTab, + required this.activeTabId, + }); + + final List tabs; + final Map> messagesByTab; + final String activeTabId; +} + +class ChatSessionPersistence { + Future load(String networkId) async { + final prefs = await SharedPreferences.getInstance(); + final raw = prefs.getString(_key(networkId)); + if (raw == null || raw.isEmpty) { + return null; + } + + final decoded = jsonDecode(raw) as Map; + final tabs = ((decoded['tabs'] as List?) ?? const []) + .map((item) => ChatTab.fromJson(item as Map)) + .toList(growable: false); + final messagesMap = >{}; + final rawMessages = (decoded['messagesByTab'] as Map?) ?? const {}; + for (final entry in rawMessages.entries) { + messagesMap[entry.key] = (entry.value as List) + .map((item) => IrcMessage.fromJson(item as Map)) + .toList(growable: false); + } + + return ChatSessionSnapshot( + tabs: tabs, + messagesByTab: messagesMap, + activeTabId: (decoded['activeTabId'] as String?) ?? '', + ); + } + + Future save({ + required String networkId, + required List tabs, + required Map> messagesByTab, + required String activeTabId, + }) async { + final prefs = await SharedPreferences.getInstance(); + final encoded = jsonEncode({ + 'tabs': tabs.map((tab) => tab.toJson()).toList(growable: false), + 'messagesByTab': messagesByTab.map( + (key, value) => MapEntry( + key, + value + .takeLast(200) + .map((message) => message.toJson()) + .toList(growable: false), + ), + ), + 'activeTabId': activeTabId, + }); + await prefs.setString(_key(networkId), encoded); + } + + String _key(String networkId) => 'androidircx.chat.$networkId'; +} + +extension on List { + Iterable takeLast(int maxItems) { + if (length <= maxItems) { + return this; + } + + return sublist(length - maxItems); + } +} diff --git a/lib/features/chat/presentation/chat_screen.dart b/lib/features/chat/presentation/chat_screen.dart new file mode 100644 index 0000000..06652fe --- /dev/null +++ b/lib/features/chat/presentation/chat_screen.dart @@ -0,0 +1,407 @@ +import 'package:androidircx/core/models/chat_tab.dart'; +import 'package:androidircx/core/models/connection_state.dart'; +import 'package:androidircx/core/models/irc_message.dart'; +import 'package:androidircx/core/models/network_config.dart'; +import 'package:androidircx/features/chat/application/chat_session_controller.dart'; +import 'package:androidircx/features/chat/presentation/join_channel_dialog.dart'; +import 'package:androidircx/features/settings/presentation/settings_screen.dart'; +import 'package:flutter/material.dart'; + +class ChatScreen extends StatefulWidget { + const ChatScreen({ + super.key, + required this.network, + }); + + final NetworkConfig network; + + @override + State createState() => _ChatScreenState(); +} + +class _ChatScreenState extends State { + late final ChatSessionController _controller; + final TextEditingController _composerController = TextEditingController(); + + @override + void initState() { + super.initState(); + _controller = ChatSessionController(network: widget.network); + _controller.start(); + } + + @override + void dispose() { + _composerController.dispose(); + _controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return AnimatedBuilder( + animation: _controller, + builder: (context, _) { + return Scaffold( + appBar: AppBar( + title: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(_controller.activeTab.name), + Text( + _statusText(_controller.connection), + style: Theme.of(context).textTheme.bodySmall, + ), + ], + ), + actions: [ + IconButton( + onPressed: _showJoinDialog, + icon: const Icon(Icons.tag), + tooltip: 'Join channel', + ), + IconButton( + onPressed: _openSettings, + icon: const Icon(Icons.tune), + tooltip: 'Settings', + ), + IconButton( + onPressed: _controller.connection.phase == ConnectionPhase.connected + ? _controller.disconnect + : _controller.start, + icon: Icon( + _controller.connection.phase == ConnectionPhase.connected + ? Icons.link_off + : Icons.wifi_tethering, + ), + tooltip: _controller.connection.phase == ConnectionPhase.connected + ? 'Disconnect' + : 'Connect', + ), + ], + ), + drawer: Drawer( + child: SafeArea( + child: Column( + children: [ + ListTile( + title: Text(widget.network.name), + subtitle: Text('${widget.network.host}:${widget.network.port}'), + ), + const Divider(height: 1), + Expanded( + child: ListView.builder( + itemCount: _controller.tabs.length, + itemBuilder: (context, index) { + final tab = _controller.tabs[index]; + final selected = tab.id == _controller.activeTabId; + return ListTile( + selected: selected, + leading: Icon(_iconForTab(tab.type)), + title: Text(tab.name), + onTap: () { + _controller.selectTab(tab.id); + Navigator.of(context).pop(); + }, + ); + }, + ), + ), + ], + ), + ), + ), + body: SafeArea( + child: Column( + children: [ + _ConnectionBanner(controller: _controller, network: widget.network), + Expanded( + child: _MessageList(messages: _controller.activeMessages), + ), + const Divider(height: 1), + Padding( + padding: const EdgeInsets.fromLTRB(12, 12, 12, 16), + child: Row( + children: [ + Expanded( + child: TextField( + controller: _composerController, + minLines: 1, + maxLines: 4, + textInputAction: TextInputAction.send, + onSubmitted: (_) => _submit(), + decoration: InputDecoration( + hintText: _controller.activeTab.type == ChatTabType.server + ? 'Type raw IRC or /join #channel' + : 'Message ${_controller.activeTab.name}', + ), + ), + ), + const SizedBox(width: 12), + FilledButton( + onPressed: _submit, + child: const Text('Send'), + ), + ], + ), + ), + ], + ), + ), + ); + }, + ); + } + + Future _showJoinDialog() async { + final controller = TextEditingController(text: '#'); + final result = await showDialog( + context: context, + builder: (context) { + return AlertDialog( + title: const Text('Join channel'), + content: TextField( + controller: controller, + autofocus: true, + decoration: const InputDecoration(labelText: 'Channel'), + ), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: const Text('Cancel'), + ), + FilledButton( + onPressed: () { + Navigator.of(context).pop( + JoinChannelRequest(channel: controller.text.trim()), + ); + }, + child: const Text('Join'), + ), + ], + ); + }, + ); + controller.dispose(); + + if (result != null) { + await _controller.joinChannel(result); + } + } + + void _submit() { + final text = _composerController.text; + _composerController.clear(); + _controller.handleComposerSubmit(text); + } + + Future _openSettings() async { + await Navigator.of(context).push( + MaterialPageRoute( + builder: (_) => const SettingsScreen(), + ), + ); + await _controller.reloadSettings(); + } + + String _statusText(ConnectionSnapshot snapshot) { + switch (snapshot.phase) { + case ConnectionPhase.idle: + return 'Idle'; + case ConnectionPhase.connecting: + return snapshot.message ?? 'Connecting'; + case ConnectionPhase.connected: + return 'Connected'; + case ConnectionPhase.disconnecting: + return 'Disconnecting'; + case ConnectionPhase.disconnected: + return snapshot.message ?? 'Disconnected'; + case ConnectionPhase.error: + return snapshot.message ?? 'Connection error'; + } + } + + IconData _iconForTab(ChatTabType type) { + switch (type) { + case ChatTabType.server: + return Icons.dns_outlined; + case ChatTabType.channel: + return Icons.tag; + case ChatTabType.query: + return Icons.alternate_email; + case ChatTabType.notice: + return Icons.info_outline; + } + } +} + +class _MessageList extends StatelessWidget { + const _MessageList({ + required this.messages, + }); + + final List messages; + + @override + Widget build(BuildContext context) { + if (messages.isEmpty) { + return const Center( + child: Text('No messages yet.'), + ); + } + + return ListView.builder( + reverse: true, + padding: const EdgeInsets.all(12), + itemCount: messages.length, + itemBuilder: (context, index) { + final message = messages[messages.length - 1 - index]; + final align = message.isOwn ? CrossAxisAlignment.end : CrossAxisAlignment.start; + final bubbleColor = message.isOwn + ? Theme.of(context).colorScheme.primaryContainer + : Colors.white; + return Padding( + padding: const EdgeInsets.only(bottom: 10), + child: Column( + crossAxisAlignment: align, + children: [ + Text( + message.sender, + style: Theme.of(context).textTheme.labelMedium, + ), + const SizedBox(height: 3), + DecoratedBox( + decoration: BoxDecoration( + color: bubbleColor, + borderRadius: BorderRadius.circular(14), + border: Border.all(color: Colors.black.withValues(alpha: 0.06)), + ), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 10), + child: Text(message.content), + ), + ), + ], + ), + ); + }, + ); + } +} + +class _ConnectionBanner extends StatelessWidget { + const _ConnectionBanner({ + required this.controller, + required this.network, + }); + + final ChatSessionController controller; + final NetworkConfig network; + + @override + Widget build(BuildContext context) { + final snapshot = controller.connection; + final reconnectDelay = controller.pendingReconnectDelay; + final theme = Theme.of(context); + + if (snapshot.phase == ConnectionPhase.connected && + reconnectDelay == null && + snapshot.message == null) { + return const SizedBox.shrink(); + } + + return Container( + width: double.infinity, + margin: const EdgeInsets.fromLTRB(12, 8, 12, 8), + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + border: Border.all(color: Colors.black.withValues(alpha: 0.08)), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon( + _iconForPhase(snapshot.phase), + size: 18, + color: theme.colorScheme.primary, + ), + const SizedBox(width: 8), + Expanded( + child: Text( + _titleForPhase(snapshot, reconnectDelay), + style: theme.textTheme.titleSmall, + ), + ), + ], + ), + const SizedBox(height: 6), + Text( + '${network.host}:${network.port} • ${network.useTls ? 'TLS' : 'Plain TCP'}', + style: theme.textTheme.bodySmall, + ), + if ((snapshot.message ?? '').isNotEmpty) ...[ + const SizedBox(height: 4), + Text(snapshot.message!, style: theme.textTheme.bodySmall), + ], + if (snapshot.phase == ConnectionPhase.error || + snapshot.phase == ConnectionPhase.disconnected) ...[ + const SizedBox(height: 10), + Row( + children: [ + FilledButton.tonal( + onPressed: controller.reconnectNow, + child: const Text('Reconnect now'), + ), + if (reconnectDelay != null) ...[ + const SizedBox(width: 8), + Text( + 'Auto retry in ${reconnectDelay.inSeconds}s', + style: theme.textTheme.bodySmall, + ), + ], + ], + ), + ], + ], + ), + ); + } + + String _titleForPhase(ConnectionSnapshot snapshot, Duration? reconnectDelay) { + switch (snapshot.phase) { + case ConnectionPhase.idle: + return 'Session idle'; + case ConnectionPhase.connecting: + return 'Connecting'; + case ConnectionPhase.connected: + return 'Connected'; + case ConnectionPhase.disconnecting: + return 'Disconnecting'; + case ConnectionPhase.disconnected: + return reconnectDelay == null ? 'Disconnected' : 'Disconnected, retry scheduled'; + case ConnectionPhase.error: + return reconnectDelay == null ? 'Connection error' : 'Connection error, retry scheduled'; + } + } + + IconData _iconForPhase(ConnectionPhase phase) { + switch (phase) { + case ConnectionPhase.idle: + return Icons.pause_circle_outline; + case ConnectionPhase.connecting: + return Icons.sync; + case ConnectionPhase.connected: + return Icons.check_circle_outline; + case ConnectionPhase.disconnecting: + return Icons.link_off; + case ConnectionPhase.disconnected: + return Icons.portable_wifi_off; + case ConnectionPhase.error: + return Icons.error_outline; + } + } +} diff --git a/lib/features/chat/presentation/join_channel_dialog.dart b/lib/features/chat/presentation/join_channel_dialog.dart new file mode 100644 index 0000000..a05fbd1 --- /dev/null +++ b/lib/features/chat/presentation/join_channel_dialog.dart @@ -0,0 +1,7 @@ +class JoinChannelRequest { + const JoinChannelRequest({ + required this.channel, + }); + + final String channel; +} diff --git a/lib/features/connections/application/network_list_controller.dart b/lib/features/connections/application/network_list_controller.dart new file mode 100644 index 0000000..f5122db --- /dev/null +++ b/lib/features/connections/application/network_list_controller.dart @@ -0,0 +1,58 @@ +import 'dart:math'; + +import 'package:androidircx/core/models/network_config.dart'; +import 'package:androidircx/core/storage/network_repository.dart'; +import 'package:flutter/foundation.dart'; + +class NetworkListController extends ChangeNotifier { + NetworkListController({ + required NetworkRepository repository, + }) : _repository = repository; + + final NetworkRepository _repository; + + List _networks = const []; + bool _isLoading = true; + + List get networks => _networks; + bool get isLoading => _isLoading; + + Future load() async { + _isLoading = true; + notifyListeners(); + _networks = await _repository.loadNetworks(); + _isLoading = false; + notifyListeners(); + } + + Future saveNetwork({ + required String name, + required String host, + required int port, + required String nickname, + required bool useTls, + String? networkId, + }) async { + final network = NetworkConfig( + id: networkId ?? _createId(name), + name: name, + host: host, + port: port, + nickname: nickname, + useTls: useTls, + ); + + await _repository.saveNetwork(network); + await load(); + } + + Future deleteNetwork(String networkId) async { + await _repository.deleteNetwork(networkId); + await load(); + } + + String _createId(String seed) { + final normalized = seed.toLowerCase().replaceAll(RegExp(r'[^a-z0-9]+'), '-'); + return '$normalized-${Random().nextInt(9999).toString().padLeft(4, '0')}'; + } +} diff --git a/lib/features/connections/presentation/network_form_screen.dart b/lib/features/connections/presentation/network_form_screen.dart new file mode 100644 index 0000000..468209e --- /dev/null +++ b/lib/features/connections/presentation/network_form_screen.dart @@ -0,0 +1,155 @@ +import 'package:androidircx/core/models/network_config.dart'; +import 'package:flutter/material.dart'; + +class NetworkFormResult { + const NetworkFormResult({ + required this.name, + required this.host, + required this.port, + required this.nickname, + required this.useTls, + }); + + final String name; + final String host; + final int port; + final String nickname; + final bool useTls; +} + +class NetworkFormScreen extends StatefulWidget { + const NetworkFormScreen({ + super.key, + this.initialValue, + }); + + final NetworkConfig? initialValue; + + @override + State createState() => _NetworkFormScreenState(); +} + +class _NetworkFormScreenState extends State { + final _formKey = GlobalKey(); + late final TextEditingController _nameController; + late final TextEditingController _hostController; + late final TextEditingController _portController; + late final TextEditingController _nicknameController; + late bool _useTls; + + @override + void initState() { + super.initState(); + final initial = widget.initialValue; + _nameController = TextEditingController(text: initial?.name ?? ''); + _hostController = TextEditingController(text: initial?.host ?? ''); + _portController = TextEditingController( + text: (initial?.port ?? 6697).toString(), + ); + _nicknameController = TextEditingController( + text: initial?.nickname ?? 'AndroidIRCX', + ); + _useTls = initial?.useTls ?? true; + } + + @override + void dispose() { + _nameController.dispose(); + _hostController.dispose(); + _portController.dispose(); + _nicknameController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text(widget.initialValue == null ? 'Add network' : 'Edit network'), + ), + body: SafeArea( + child: Padding( + padding: const EdgeInsets.all(20), + child: Form( + key: _formKey, + child: ListView( + children: [ + TextFormField( + controller: _nameController, + decoration: const InputDecoration(labelText: 'Display name'), + validator: _requiredValidator, + ), + const SizedBox(height: 16), + TextFormField( + controller: _hostController, + decoration: const InputDecoration(labelText: 'Host'), + validator: _requiredValidator, + ), + const SizedBox(height: 16), + TextFormField( + controller: _portController, + keyboardType: TextInputType.number, + decoration: const InputDecoration(labelText: 'Port'), + validator: (value) { + if ((value ?? '').trim().isEmpty) { + return 'Port is required.'; + } + + if (int.tryParse(value!.trim()) == null) { + return 'Enter a valid port.'; + } + + return null; + }, + ), + const SizedBox(height: 16), + TextFormField( + controller: _nicknameController, + decoration: const InputDecoration(labelText: 'Nickname'), + validator: _requiredValidator, + ), + const SizedBox(height: 12), + SwitchListTile( + contentPadding: EdgeInsets.zero, + title: const Text('Use TLS'), + subtitle: const Text('Enabled by default for modern IRC servers.'), + value: _useTls, + onChanged: (value) => setState(() => _useTls = value), + ), + const SizedBox(height: 24), + FilledButton( + onPressed: _submit, + child: const Text('Save network'), + ), + ], + ), + ), + ), + ), + ); + } + + String? _requiredValidator(String? value) { + if ((value ?? '').trim().isEmpty) { + return 'This field is required.'; + } + + return null; + } + + void _submit() { + if (!_formKey.currentState!.validate()) { + return; + } + + Navigator.of(context).pop( + NetworkFormResult( + name: _nameController.text.trim(), + host: _hostController.text.trim(), + port: int.parse(_portController.text.trim()), + nickname: _nicknameController.text.trim(), + useTls: _useTls, + ), + ); + } +} diff --git a/lib/features/connections/presentation/network_list_screen.dart b/lib/features/connections/presentation/network_list_screen.dart new file mode 100644 index 0000000..48596da --- /dev/null +++ b/lib/features/connections/presentation/network_list_screen.dart @@ -0,0 +1,218 @@ +import 'package:androidircx/core/models/network_config.dart'; +import 'package:androidircx/features/chat/presentation/chat_screen.dart'; +import 'package:androidircx/features/connections/application/network_list_controller.dart'; +import 'package:androidircx/features/connections/presentation/network_form_screen.dart'; +import 'package:androidircx/features/settings/presentation/settings_screen.dart'; +import 'package:flutter/material.dart'; + +class NetworkListScreen extends StatelessWidget { + const NetworkListScreen({ + super.key, + required this.controller, + }); + + final NetworkListController controller; + + @override + Widget build(BuildContext context) { + return AnimatedBuilder( + animation: controller, + builder: (context, _) { + return Scaffold( + appBar: AppBar( + title: const Text('AndroidIRCX'), + actions: [ + IconButton( + onPressed: () => _openSettings(context), + icon: const Icon(Icons.tune), + tooltip: 'Settings', + ), + IconButton( + onPressed: () => _openForm(context), + icon: const Icon(Icons.add), + tooltip: 'Add network', + ), + ], + ), + body: SafeArea( + child: controller.isLoading + ? const Center(child: CircularProgressIndicator()) + : controller.networks.isEmpty + ? _EmptyState(onAddNetwork: () => _openForm(context)) + : ListView.separated( + padding: const EdgeInsets.fromLTRB(16, 8, 16, 24), + itemCount: controller.networks.length, + separatorBuilder: (_, _) => const SizedBox(height: 12), + itemBuilder: (context, index) { + final network = controller.networks[index]; + return _NetworkCard( + network: network, + onEdit: () => _openForm(context, initialValue: network), + onDelete: () => controller.deleteNetwork(network.id), + onConnect: () => _openChat(context, network), + ); + }, + ), + ), + ); + }, + ); + } + + Future _openForm( + BuildContext context, { + NetworkConfig? initialValue, + }) async { + final result = await Navigator.of(context).push( + MaterialPageRoute( + builder: (_) => NetworkFormScreen(initialValue: initialValue), + ), + ); + + if (result == null || !context.mounted) { + return; + } + + await controller.saveNetwork( + name: result.name, + host: result.host, + port: result.port, + nickname: result.nickname, + useTls: result.useTls, + networkId: initialValue?.id, + ); + } + + Future _openChat(BuildContext context, NetworkConfig network) async { + await Navigator.of(context).push( + MaterialPageRoute( + builder: (_) => ChatScreen(network: network), + ), + ); + } + + Future _openSettings(BuildContext context) async { + await Navigator.of(context).push( + MaterialPageRoute( + builder: (_) => const SettingsScreen(), + ), + ); + } +} + +class _NetworkCard extends StatelessWidget { + const _NetworkCard({ + required this.network, + required this.onEdit, + required this.onDelete, + required this.onConnect, + }); + + final NetworkConfig network; + final VoidCallback onEdit; + final VoidCallback onDelete; + final VoidCallback onConnect; + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return Card( + child: Padding( + padding: const EdgeInsets.all(18), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Expanded( + child: Text( + network.name, + style: theme.textTheme.titleMedium, + ), + ), + PopupMenuButton( + onSelected: (value) { + switch (value) { + case 'edit': + onEdit(); + case 'delete': + onDelete(); + } + }, + itemBuilder: (_) => const [ + PopupMenuItem( + value: 'edit', + child: Text('Edit'), + ), + PopupMenuItem( + value: 'delete', + child: Text('Delete'), + ), + ], + ), + ], + ), + const SizedBox(height: 6), + Text('${network.host}:${network.port}'), + const SizedBox(height: 4), + Text( + 'Nick: ${network.nickname} • ${network.useTls ? 'TLS' : 'Plain TCP'}', + style: theme.textTheme.bodySmall, + ), + const SizedBox(height: 16), + FilledButton.icon( + onPressed: onConnect, + icon: const Icon(Icons.wifi_tethering), + label: const Text('Connect'), + ), + ], + ), + ), + ); + } +} + +class _EmptyState extends StatelessWidget { + const _EmptyState({ + required this.onAddNetwork, + }); + + final VoidCallback onAddNetwork; + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return Center( + child: Padding( + padding: const EdgeInsets.all(24), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + Icons.hub_outlined, + size: 52, + color: theme.colorScheme.primary, + ), + const SizedBox(height: 16), + Text( + 'No networks configured', + style: theme.textTheme.titleLarge, + ), + const SizedBox(height: 8), + const Text( + 'Sprint 1 starts with network management and IRC foundation.', + textAlign: TextAlign.center, + ), + const SizedBox(height: 18), + FilledButton( + onPressed: onAddNetwork, + child: const Text('Add your first network'), + ), + ], + ), + ), + ); + } +} diff --git a/lib/features/settings/presentation/settings_screen.dart b/lib/features/settings/presentation/settings_screen.dart new file mode 100644 index 0000000..19fba7b --- /dev/null +++ b/lib/features/settings/presentation/settings_screen.dart @@ -0,0 +1,66 @@ +import 'package:androidircx/core/models/app_settings.dart'; +import 'package:androidircx/core/storage/shared_prefs_settings_repository.dart'; +import 'package:flutter/material.dart'; + +class SettingsScreen extends StatefulWidget { + const SettingsScreen({super.key}); + + @override + State createState() => _SettingsScreenState(); +} + +class _SettingsScreenState extends State { + final _repository = SharedPrefsSettingsRepository(); + AppSettings _settings = const AppSettings(); + bool _isLoading = true; + + @override + void initState() { + super.initState(); + _load(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Settings'), + ), + body: SafeArea( + child: _isLoading + ? const Center(child: CircularProgressIndicator()) + : ListView( + padding: const EdgeInsets.all(16), + children: [ + Card( + child: SwitchListTile( + title: const Text('Show raw IRC events'), + subtitle: const Text( + 'Keep low-level IRC send/receive lines visible in the server tab.', + ), + value: _settings.showRawEvents, + onChanged: (value) async { + final next = _settings.copyWith(showRawEvents: value); + setState(() => _settings = next); + await _repository.saveSettings(next); + }, + ), + ), + ], + ), + ), + ); + } + + Future _load() async { + final settings = await _repository.loadSettings(); + if (!mounted) { + return; + } + + setState(() { + _settings = settings; + _isLoading = false; + }); + } +} diff --git a/lib/irc/models/irc_message_frame.dart b/lib/irc/models/irc_message_frame.dart new file mode 100644 index 0000000..14eb5cc --- /dev/null +++ b/lib/irc/models/irc_message_frame.dart @@ -0,0 +1,25 @@ +class IrcMessageFrame { + const IrcMessageFrame({ + required this.raw, + required this.command, + required this.params, + this.prefix, + this.trailing, + }); + + final String raw; + final String? prefix; + final String command; + final List params; + final String? trailing; + + String? get senderNick { + final value = prefix; + if (value == null || value.isEmpty) { + return null; + } + + final bangIndex = value.indexOf('!'); + return bangIndex == -1 ? value : value.substring(0, bangIndex); + } +} diff --git a/lib/irc/parser/irc_message_parser.dart b/lib/irc/parser/irc_message_parser.dart new file mode 100644 index 0000000..94166f2 --- /dev/null +++ b/lib/irc/parser/irc_message_parser.dart @@ -0,0 +1,38 @@ +import 'package:androidircx/irc/models/irc_message_frame.dart'; + +IrcMessageFrame parseIrcMessage(String raw) { + var rest = raw.trim(); + String? prefix; + String? trailing; + + if (rest.startsWith(':')) { + final prefixEnd = rest.indexOf(' '); + if (prefixEnd != -1) { + prefix = rest.substring(1, prefixEnd); + rest = rest.substring(prefixEnd + 1); + } + } + + final trailingIndex = rest.indexOf(' :'); + if (trailingIndex != -1) { + trailing = rest.substring(trailingIndex + 2); + rest = rest.substring(0, trailingIndex); + } + + final parts = rest + .split(' ') + .where((part) => part.isNotEmpty) + .toList(growable: false); + + if (parts.isEmpty) { + return IrcMessageFrame(raw: raw, command: '', params: const []); + } + + return IrcMessageFrame( + raw: raw, + prefix: prefix, + command: parts.first.toUpperCase(), + params: parts.skip(1).toList(growable: false), + trailing: trailing, + ); +} diff --git a/lib/irc/services/irc_service.dart b/lib/irc/services/irc_service.dart new file mode 100644 index 0000000..f7123b7 --- /dev/null +++ b/lib/irc/services/irc_service.dart @@ -0,0 +1,206 @@ +import 'dart:async'; + +import 'package:androidircx/core/models/connection_state.dart'; +import 'package:androidircx/core/models/network_config.dart'; +import 'package:androidircx/irc/models/irc_message_frame.dart'; +import 'package:androidircx/irc/parser/irc_message_parser.dart'; +import 'package:androidircx/irc/services/irc_transport.dart'; + +typedef IrcTransportConnector = Future Function(NetworkConfig network); + +class IrcService { + IrcService({ + IrcTransportConnector? transportConnector, + }) : _transportConnector = transportConnector ?? SocketIrcTransport.connect, + _state = const ConnectionSnapshot( + networkId: '', + phase: ConnectionPhase.idle, + ); + + final IrcTransportConnector _transportConnector; + final StreamController _rawEventsController = + StreamController.broadcast(); + final StreamController _framesController = + StreamController.broadcast(); + final StreamController _stateController = + StreamController.broadcast(); + + IrcTransport? _transport; + StreamSubscription? _linesSubscription; + ConnectionSnapshot _state; + String? _currentNick; + + ConnectionSnapshot get state => _state; + String? get currentNick => _currentNick; + Stream get rawEvents => _rawEventsController.stream; + Stream get frames => _framesController.stream; + Stream get stateStream => _stateController.stream; + + Future connect(NetworkConfig network) async { + if (_state.phase == ConnectionPhase.connecting || + _state.phase == ConnectionPhase.connected) { + return; + } + + _currentNick = network.nickname; + _updateState( + ConnectionSnapshot( + networkId: network.id, + phase: ConnectionPhase.connecting, + message: 'Opening socket to ${network.host}:${network.port}', + ), + ); + + try { + _transport = await _transportConnector(network); + _linesSubscription = _transport!.lines.listen( + _handleIncomingLine, + onError: _handleTransportError, + onDone: _handleTransportDone, + ); + + if ((network.password ?? '').isNotEmpty) { + await sendRaw('PASS ${network.password}'); + } + await sendRaw('NICK ${network.nickname}'); + await sendRaw('USER ${network.username} 0 * :${network.realName}'); + } catch (error) { + _updateState( + ConnectionSnapshot( + networkId: network.id, + phase: ConnectionPhase.error, + message: error.toString(), + ), + ); + } + } + + Future disconnect([String? reason]) async { + if (_state.networkId.isEmpty) { + return; + } + + _updateState(_state.copyWith(phase: ConnectionPhase.disconnecting)); + try { + if (_transport != null) { + await sendRaw('QUIT :${reason ?? 'Client disconnected'}'); + } + } catch (_) { + // Best effort quit. + } + + await _linesSubscription?.cancel(); + _linesSubscription = null; + await _transport?.close(); + _transport = null; + + _updateState( + const ConnectionSnapshot( + networkId: '', + phase: ConnectionPhase.disconnected, + message: 'Disconnected.', + ), + ); + } + + Future sendRaw(String line) async { + final transport = _transport; + if (transport == null) { + return; + } + + _rawEventsController.add('>> $line'); + await transport.sendLine(line); + } + + Future joinChannel(String channel) async { + await sendRaw('JOIN $channel'); + } + + Future sendPrivmsg({ + required String target, + required String text, + }) async { + await sendRaw('PRIVMSG $target :$text'); + } + + Future sendAction({ + required String target, + required String text, + }) async { + await sendRaw('PRIVMSG $target :\u0001ACTION $text\u0001'); + } + + void _handleIncomingLine(String line) { + _rawEventsController.add('<< $line'); + final frame = parseIrcMessage(line); + _framesController.add(frame); + + if (frame.command == 'PING') { + final payload = frame.trailing ?? (frame.params.isNotEmpty ? frame.params.last : ''); + unawaited(sendRaw('PONG :$payload')); + return; + } + + if (frame.command == '001') { + _updateState( + ConnectionSnapshot( + networkId: _state.networkId, + phase: ConnectionPhase.connected, + message: frame.trailing ?? 'Connected.', + ), + ); + return; + } + + if (frame.command == 'NICK') { + final senderNick = frame.senderNick; + final nextNick = frame.trailing ?? _firstOrNull(frame.params); + if (senderNick != null && senderNick == _currentNick && nextNick != null) { + _currentNick = nextNick; + } + } + } + + void _handleTransportDone() { + _transport = null; + _updateState( + ConnectionSnapshot( + networkId: _state.networkId, + phase: ConnectionPhase.disconnected, + message: 'Server closed the connection.', + ), + ); + } + + void _handleTransportError(Object error, StackTrace stackTrace) { + _updateState( + ConnectionSnapshot( + networkId: _state.networkId, + phase: ConnectionPhase.error, + message: error.toString(), + ), + ); + } + + void _updateState(ConnectionSnapshot snapshot) { + _state = snapshot; + _stateController.add(snapshot); + } + + void dispose() { + _linesSubscription?.cancel(); + _transport?.close(); + _rawEventsController.close(); + _framesController.close(); + _stateController.close(); + } + + String? _firstOrNull(List items) { + if (items.isEmpty) { + return null; + } + + return items.first; + } +} diff --git a/lib/irc/services/irc_transport.dart b/lib/irc/services/irc_transport.dart new file mode 100644 index 0000000..3409e07 --- /dev/null +++ b/lib/irc/services/irc_transport.dart @@ -0,0 +1,43 @@ +import 'dart:convert'; +import 'dart:io'; + +import 'package:androidircx/core/models/network_config.dart'; + +abstract class IrcTransport { + Stream get lines; + Future sendLine(String line); + Future close(); +} + +class SocketIrcTransport implements IrcTransport { + SocketIrcTransport._(this._socket) + : lines = _socket + .cast>() + .transform(utf8.decoder) + .transform(const LineSplitter()) + .where((line) => line.isNotEmpty) + .asBroadcastStream(); + + final Socket _socket; + + @override + final Stream lines; + + static Future connect(NetworkConfig network) async { + final socket = network.useTls + ? await SecureSocket.connect(network.host, network.port) + : await Socket.connect(network.host, network.port); + return SocketIrcTransport._(socket); + } + + @override + Future close() async { + _socket.destroy(); + } + + @override + Future sendLine(String line) async { + _socket.write('$line\r\n'); + await _socket.flush(); + } +} diff --git a/lib/main.dart b/lib/main.dart index 244a702..c030f14 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,122 +1,6 @@ -import 'package:flutter/material.dart'; +import 'package:androidircx/app/app.dart'; +import 'package:flutter/widgets.dart'; void main() { - runApp(const MyApp()); -} - -class MyApp extends StatelessWidget { - const MyApp({super.key}); - - // This widget is the root of your application. - @override - Widget build(BuildContext context) { - return MaterialApp( - title: 'Flutter Demo', - theme: ThemeData( - // This is the theme of your application. - // - // TRY THIS: Try running your application with "flutter run". You'll see - // the application has a purple 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. - colorScheme: .fromSeed(seedColor: Colors.deepPurple), - ), - home: const MyHomePage(title: 'Flutter Demo Home Page'), - ); - } -} - -class MyHomePage extends StatefulWidget { - const MyHomePage({super.key, required this.title}); - - // This widget is the home page of your application. It is stateful, meaning - // that it has a State object (defined below) that contains fields that affect - // how it looks. - - // This class is the configuration for the state. It holds the values (in this - // case the title) provided by the parent (in this case the App widget) and - // used by the build method of the State. Fields in a Widget subclass are - // always marked "final". - - final String title; - - @override - State createState() => _MyHomePageState(); -} - -class _MyHomePageState extends State { - int _counter = 0; - - void _incrementCounter() { - setState(() { - // This call to setState tells the Flutter framework that something has - // changed in this State, which causes it to rerun the build method below - // so that the display can reflect the updated values. If we changed - // _counter without calling setState(), then the build method would not be - // called again, and so nothing would appear to happen. - _counter++; - }); - } - - @override - Widget build(BuildContext context) { - // This method is rerun every time setState is called, for instance as done - // by the _incrementCounter method above. - // - // The Flutter framework has been optimized to make rerunning build methods - // fast, so that you can just rebuild anything that needs updating rather - // than having to individually change instances of widgets. - return Scaffold( - appBar: AppBar( - // TRY THIS: Try changing the color here to a specific color (to - // Colors.amber, perhaps?) and trigger a hot reload to see the AppBar - // change color while the other colors stay the same. - backgroundColor: Theme.of(context).colorScheme.inversePrimary, - // Here we take the value from the MyHomePage object that was created by - // the App.build method, and use it to set our appbar title. - title: Text(widget.title), - ), - body: Center( - // Center is a layout widget. It takes a single child and positions it - // in the middle of the parent. - child: Column( - // Column is also a layout widget. It takes a list of children and - // arranges them vertically. By default, it sizes itself to fit its - // children horizontally, and tries to be as tall as its parent. - // - // Column has various properties to control how it sizes itself and - // how it positions its children. Here we use mainAxisAlignment to - // center the children vertically; the main axis here is the vertical - // axis because Columns are vertical (the cross axis would be - // horizontal). - // - // TRY THIS: Invoke "debug painting" (choose the "Toggle Debug Paint" - // action in the IDE, or press "p" in the console), to see the - // wireframe for each widget. - mainAxisAlignment: .center, - children: [ - const Text('You have pushed the button this many times:'), - Text( - '$_counter', - style: Theme.of(context).textTheme.headlineMedium, - ), - ], - ), - ), - floatingActionButton: FloatingActionButton( - onPressed: _incrementCounter, - tooltip: 'Increment', - child: const Icon(Icons.add), - ), - ); - } + runApp(const AndroidIrcxApp()); } diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt index 89657b5..bd9b947 100644 --- a/linux/CMakeLists.txt +++ b/linux/CMakeLists.txt @@ -7,7 +7,7 @@ project(runner LANGUAGES CXX) set(BINARY_NAME "androidircx") # The unique GTK application identifier for this application. See: # https://wiki.gnome.org/HowDoI/ChooseApplicationID -set(APPLICATION_ID "com.example.androidircx") +set(APPLICATION_ID "com.androidircx.flutter") # Explicitly opt in to modern CMake behaviors to avoid warnings with recent # versions of CMake. diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index cccf817..724bb2a 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,6 +5,8 @@ import FlutterMacOS import Foundation +import shared_preferences_foundation func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) } diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index 3f99b33..4fc55c2 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -385,7 +385,7 @@ CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.androidircx.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.androidircx.flutter.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/androidircx.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/androidircx"; @@ -399,7 +399,7 @@ CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.androidircx.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.androidircx.flutter.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/androidircx.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/androidircx"; @@ -413,7 +413,7 @@ CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.androidircx.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.androidircx.flutter.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/androidircx.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/androidircx"; diff --git a/macos/Runner/Configs/AppInfo.xcconfig b/macos/Runner/Configs/AppInfo.xcconfig index 6d683f5..cbcd133 100644 --- a/macos/Runner/Configs/AppInfo.xcconfig +++ b/macos/Runner/Configs/AppInfo.xcconfig @@ -5,10 +5,10 @@ // 'flutter create' template. // The application's name. By default this is also the title of the Flutter window. -PRODUCT_NAME = androidircx +PRODUCT_NAME = AndroidIRCx Flutter // The application's bundle identifier -PRODUCT_BUNDLE_IDENTIFIER = com.example.androidircx +PRODUCT_BUNDLE_IDENTIFIER = com.androidircx.flutter // The copyright displayed in application information -PRODUCT_COPYRIGHT = Copyright © 2026 com.example. All rights reserved. +PRODUCT_COPYRIGHT = Copyright © 2026 com.androidircx.flutter All rights reserved. diff --git a/pubspec.lock b/pubspec.lock index 3cf1fef..7692e33 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -57,6 +57,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.3" + ffi: + dependency: transitive + description: + name: ffi + sha256: "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + file: + dependency: transitive + description: + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + url: "https://pub.dev" + source: hosted + version: "7.0.1" flutter: dependency: "direct main" description: flutter @@ -75,6 +91,11 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" leak_tracker: dependency: transitive description: @@ -139,6 +160,102 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.1" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + platform: + dependency: transitive + description: + name: platform + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" + url: "https://pub.dev" + source: hosted + version: "3.1.6" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: "2939ae520c9024cb197fc20dee269cd8cdbf564c8b5746374ec6cacdc5169e64" + url: "https://pub.dev" + source: hosted + version: "2.5.4" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: "8374d6200ab33ac99031a852eba4c8eb2170c4bf20778b3e2c9eccb45384fb41" + url: "https://pub.dev" + source: hosted + version: "2.4.21" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: "4e7eaffc2b17ba398759f1151415869a34771ba11ebbccd1b0145472a619a64f" + url: "https://pub.dev" + source: hosted + version: "2.5.6" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019 + url: "https://pub.dev" + source: hosted + version: "2.4.3" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" + url: "https://pub.dev" + source: hosted + version: "2.4.1" sky_engine: dependency: transitive description: flutter @@ -208,6 +325,22 @@ packages: url: "https://pub.dev" source: hosted version: "15.0.2" + web: + dependency: transitive + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" + url: "https://pub.dev" + source: hosted + version: "1.1.0" sdks: dart: ">=3.11.1 <4.0.0" - flutter: ">=3.18.0-18.0.pre.54" + flutter: ">=3.35.0" diff --git a/pubspec.yaml b/pubspec.yaml index 2028ff6..cf237a8 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -34,6 +34,7 @@ dependencies: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.8 + shared_preferences: ^2.5.3 dev_dependencies: flutter_test: diff --git a/test/irc_message_parser_test.dart b/test/irc_message_parser_test.dart new file mode 100644 index 0000000..a6a642f --- /dev/null +++ b/test/irc_message_parser_test.dart @@ -0,0 +1,22 @@ +import 'package:androidircx/irc/parser/irc_message_parser.dart'; +import 'package:flutter_test/flutter_test.dart'; + +void main() { + test('parses prefixed privmsg with trailing body', () { + final frame = parseIrcMessage(':nick!user@host PRIVMSG #flutter :hello world'); + + expect(frame.prefix, 'nick!user@host'); + expect(frame.command, 'PRIVMSG'); + expect(frame.params, ['#flutter']); + expect(frame.trailing, 'hello world'); + expect(frame.senderNick, 'nick'); + }); + + test('parses ping payload', () { + final frame = parseIrcMessage('PING :server.example'); + + expect(frame.command, 'PING'); + expect(frame.params, isEmpty); + expect(frame.trailing, 'server.example'); + }); +} diff --git a/test/storage_repositories_test.dart b/test/storage_repositories_test.dart new file mode 100644 index 0000000..e6f9a09 --- /dev/null +++ b/test/storage_repositories_test.dart @@ -0,0 +1,87 @@ +import 'package:androidircx/core/models/app_settings.dart'; +import 'package:androidircx/core/models/chat_tab.dart'; +import 'package:androidircx/core/models/irc_message.dart'; +import 'package:androidircx/core/models/network_config.dart'; +import 'package:androidircx/core/storage/shared_prefs_network_repository.dart'; +import 'package:androidircx/core/storage/shared_prefs_settings_repository.dart'; +import 'package:androidircx/features/chat/data/chat_session_persistence.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +void main() { + group('shared prefs repositories', () { + setUp(() { + SharedPreferences.setMockInitialValues({}); + }); + + test('network repository seeds default network', () async { + final repository = SharedPrefsNetworkRepository(); + + final networks = await repository.loadNetworks(); + + expect(networks, hasLength(1)); + expect(networks.first.name, 'DBase'); + }); + + test('network repository saves and loads network', () async { + final repository = SharedPrefsNetworkRepository(); + + await repository.saveNetwork( + const NetworkConfig( + id: 'testnet', + name: 'TestNet', + host: 'irc.test.net', + port: 6667, + nickname: 'tester', + useTls: false, + ), + ); + + final networks = await repository.loadNetworks(); + + expect(networks.any((item) => item.id == 'testnet'), isTrue); + }); + + test('settings repository saves and loads showRawEvents', () async { + final repository = SharedPrefsSettingsRepository(); + + await repository.saveSettings(const AppSettings(showRawEvents: false)); + final settings = await repository.loadSettings(); + + expect(settings.showRawEvents, isFalse); + }); + + test('chat session persistence saves tabs and history', () async { + final persistence = ChatSessionPersistence(); + const tab = ChatTab( + id: 'channel::dbase::#flutter', + name: '#flutter', + type: ChatTabType.channel, + networkId: 'dbase', + ); + final message = IrcMessage( + id: '1', + tabId: tab.id, + sender: 'nick', + content: 'hello', + timestamp: DateTime(2026, 3, 16, 12, 0), + ); + + await persistence.save( + networkId: 'dbase', + tabs: const [tab], + messagesByTab: { + tab.id: [message], + }, + activeTabId: tab.id, + ); + + final snapshot = await persistence.load('dbase'); + + expect(snapshot, isNotNull); + expect(snapshot!.tabs.single.name, '#flutter'); + expect(snapshot.activeTabId, tab.id); + expect(snapshot.messagesByTab[tab.id]!.single.content, 'hello'); + }); + }); +} diff --git a/test/widget_test.dart b/test/widget_test.dart index 8763e7d..324b9ce 100644 --- a/test/widget_test.dart +++ b/test/widget_test.dart @@ -1,30 +1,17 @@ -// This is a basic Flutter widget test. -// -// To perform an interaction with a widget in your test, use the WidgetTester -// utility in the flutter_test package. For example, you can send tap and scroll -// gestures. You can also use WidgetTester to find child widgets in the widget -// tree, read text, and verify that the values of widget properties are correct. - -import 'package:flutter/material.dart'; +import 'package:androidircx/app/app.dart'; import 'package:flutter_test/flutter_test.dart'; - -import 'package:androidircx/main.dart'; +import 'package:shared_preferences/shared_preferences.dart'; void main() { - testWidgets('Counter increments smoke test', (WidgetTester tester) async { - // Build our app and trigger a frame. - await tester.pumpWidget(const MyApp()); - - // Verify that our counter starts at 0. - expect(find.text('0'), findsOneWidget); - expect(find.text('1'), findsNothing); + testWidgets('shows seeded network on bootstrap', (tester) async { + SharedPreferences.setMockInitialValues({}); - // Tap the '+' icon and trigger a frame. - await tester.tap(find.byIcon(Icons.add)); + await tester.pumpWidget(const AndroidIrcxApp()); await tester.pump(); + await tester.pump(const Duration(milliseconds: 100)); - // Verify that our counter has incremented. - expect(find.text('0'), findsNothing); - expect(find.text('1'), findsOneWidget); + expect(find.text('AndroidIRCX'), findsOneWidget); + expect(find.text('DBase'), findsOneWidget); + expect(find.text('Connect'), findsOneWidget); }); } diff --git a/web/index.html b/web/index.html index d158cfd..c682016 100644 --- a/web/index.html +++ b/web/index.html @@ -23,13 +23,13 @@ - + - androidircx + AndroidIRCx Flutter diff --git a/web/manifest.json b/web/manifest.json index 24a6899..42f0bc4 100644 --- a/web/manifest.json +++ b/web/manifest.json @@ -1,11 +1,11 @@ { - "name": "androidircx", - "short_name": "androidircx", + "name": "AndroidIRCx Flutter", + "short_name": "AndroidIRCx", "start_url": ".", "display": "standalone", "background_color": "#0175C2", "theme_color": "#0175C2", - "description": "A new Flutter project.", + "description": "Flutter rewrite of AndroidIRCx.", "orientation": "portrait-primary", "prefer_related_applications": false, "icons": [ From 935d9127aef878d88c40e941b2c70212b487aaf7 Mon Sep 17 00:00:00 2001 From: Velimir Majstorov Date: Mon, 16 Mar 2026 13:40:40 +0100 Subject: [PATCH 2/2] Update README and remove stray query file Clarify the current Flutter rewrite status in the README and remove the accidental query file from the repository. --- README.md | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++---- query | 1 - 2 files changed, 160 insertions(+), 12 deletions(-) delete mode 100644 query diff --git a/README.md b/README.md index 0746a97..6c1a40c 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,166 @@ -# androidircx +# AndroidIRCx Flutter -A new Flutter project. +Flutter rewrite of AndroidIRCx, focused on preserving behavior, features, and UX parity with the +existing React Native application. -## Getting Started +## Current Status -This project is a starting point for a Flutter application. +This repository is an active rewrite in progress. -A few resources to get you started if this is your first Flutter project: +Implemented in the current Flutter app: -- [Learn Flutter](https://docs.flutter.dev/get-started/learn-flutter) -- [Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) -- [Flutter learning resources](https://docs.flutter.dev/reference/learning-resources) +- network list and add/edit flow +- basic IRC socket connection lifecycle +- server, channel, and query tabs +- basic message sending and receiving +- local persistence for networks, tabs, message history, and a small settings set +- reconnect banner and basic connection status UX -For help getting started with Flutter development, view the -[online documentation](https://docs.flutter.dev/), which offers tutorials, -samples, guidance on mobile development, and a full API reference. +Not implemented yet in full parity: + +- CAP/SASL full flow +- multi-network orchestration parity +- advanced numerics and command coverage +- notifications/background behavior +- encryption +- DCC/media +- monetization and security platform features + +The feature list below describes the target AndroidIRCx parity scope, not the current Flutter +implementation status. + +## 🔐 Security + +- **TLS/SSL** -- full encrypted connection support +- **SASL** -- PLAIN, SCRAM-SHA-256, EXTERNAL (client certificates) +- **E2E Encryption** -- libsodium XChaCha20-Poly1305 with context-bound AAD +- **Secure Storage** -- device Keychain for secrets (AsyncStorage fallback with warning) +- **App Lock** -- PIN and biometric with auto-lock on background/launch +- **Kill Switch** -- emergency disconnect and optional data wipe +- **Play Integrity** -- Google Play Integrity verification + + +## 🤝 Contributing + +AndroidIRCX is open source and contributions are welcome. + +**Areas where you can help:** + +- IRC protocol -- new IRCv3 capabilities, IRCd-specific features +- Testing -- more edge cases, integration tests +- Translations -- add or improve translations via Transifex +- UI/UX -- accessibility, new themes, layout improvements +- Documentation -- guides, tutorials, examples +- Security -- audit, improvements, new encryption features + +- **Before submitting a PR:** + +```bash +flutter analyze +flutter test # Must pass all +``` + +## 📝 IRC Protocol Compliance + +| Standard | Coverage | +|----------|------------------------------------------------| +| RFC 1459 | Full compliance | +| RFC 2812 | Extended numeric support (390+ handlers) | +| IRCv3 | 27 capabilities requested, full implementation | +| SASL | PLAIN + SCRAM-SHA-256 (RFC 7677) + EXTERNAL | +| DCC | SEND, CHAT | +| CTCP | Full (VERSION, TIME, PING, ACTION, etc.) | + +--- + +## 🎨 Credits & Inspiration + +**IRCap** (c) Carlos Esteve Cremades, 1997-2026 - the legendary mIRC script that inspired +AndroidIRCX's away system, protection features, writing styles, and the IRcap theme. If you used +mIRC in the 2000s, you probably know IRCap. Its futuristic design and complete feature set set the +bar for what an IRC experience should be. + +**IRcap theme for AndroidIRCX** by ARGENTIN07, based on the original IRCap theme. + +**Translations:** ARGENTIN07 and Cubanita83 (Spanish), Yusbastian Lemon (Indonesian). See the full +credits in the app's Credits screen. + +As an open-source creator, I deeply respect the work of **Linus Torvalds** and **Richard Stallman** +for the free/open-source software movement. Their vision and persistence were a direct inspiration +for building this app as open source. + +[![Linux](https://img.shields.io/badge/Linux-Tux-FCC624?logo=linux&logoColor=black)](https://www.kernel.org/) +[![GNU](https://img.shields.io/badge/GNU-Project-A42E2B?logo=gnu&logoColor=white)](https://www.gnu.org/) + +--- + +## 📄 License + +**GNU General Public License v3.0 or later (GPL-3.0-or-later)** + +Copyright (C) 2025-2026 Velimir Majstorov + +This program is free software: you can redistribute it and/or modify it under the terms of the GNU +General Public License as published by the Free Software Foundation, either version 3 of the +License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without +even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See +the [GNU General Public License](LICENSE.md) for more details. + +You should have received a copy of the GNU General Public License along with this program. If not, +see . + +--- + +## 🤖 AI Usage Disclaimer + +This project was built with modern tools, including AI-assisted development. + +Like robotics in manufacturing, autopilot systems in agriculture, and autocomplete in software, +AI is a tool -- no more, no less. + +**AI did not build this project on its own.** +Every decision, architectural choice, security consideration, and final line of code was reviewed, +validated, and maintained by a human engineer with more than 25 years of professional experience. + +AI did not replace engineering judgment; it accelerated routine work so more time could be spent on +architecture, quality, and usability. + +If you prefer software created without automation or AI assistance, that choice is fully respected. +At the same time, refusing tools has never stopped progress -- it has only determined who +participates in shaping it. + +This project exists to contribute something real to open source, with practical value and +long-term maintenance. You are welcome to: + +- use it or study it +- fork it or improve it +- or simply ignore it + +All are valid choices. + +Builders shape the future in silence. Spectators explain it when the work is already done. + +In the end, technology moves forward with or without permission. The only question is who chose to +be part of it. + +Some build loudly. Others build correctly. + +Those who recognize the work will understand. Time will explain the rest. + +🜂🜃🜂 + +--- + + + +

+ AndroidIRCx.com +

+ +--- diff --git a/query b/query deleted file mode 100644 index e200a25..0000000 --- a/query +++ /dev/null @@ -1 +0,0 @@ -gvm

+ + AndroidIRCx + +

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%0D=9tiLRH_4;kRd;2b2pO!*W;-*olWJ!Uc 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