From 75b17fb39acecdc43a956e549151630c59c4d62a Mon Sep 17 00:00:00 2001 From: Hyojung Jo Date: Wed, 14 Oct 2015 15:28:45 +0900 Subject: [PATCH] Network layout: Connect new AP when item is selected Change-Id: I753f617ca8a44cd8163802a4394e4fcf06129898 Signed-off-by: Hyojung Jo --- include/datamgr.h | 1 + include/layout/network.h | 14 +++++ res/images/network_loading_01.png | Bin 0 -> 3594 bytes res/images/network_loading_02.png | Bin 0 -> 3586 bytes res/images/network_loading_03.png | Bin 0 -> 3575 bytes res/images/network_loading_04.png | Bin 0 -> 3585 bytes res/images/network_loading_05.png | Bin 0 -> 3578 bytes res/images/network_loading_06.png | Bin 0 -> 3602 bytes res/images/network_loading_07.png | Bin 0 -> 3589 bytes res/images/network_loading_08.png | Bin 0 -> 3580 bytes res/images/network_loading_09.png | Bin 0 -> 3583 bytes res/images/network_loading_10.png | Bin 0 -> 3583 bytes res/images/network_loading_11.png | Bin 0 -> 3568 bytes res/images/network_loading_12.png | Bin 0 -> 3611 bytes res/widget/gengrid.edc | 80 ++++++++++++++++++++++++++++- src/common/datamgr.c | 4 +- src/common/listmgr.c | 96 +++++++++++++++++------------------ src/data/data_wireless.c | 104 +++++++++++++++++++++++--------------- src/layout/layout_network.c | 66 +++++++++++++++++++++--- 19 files changed, 265 insertions(+), 100 deletions(-) create mode 100644 res/images/network_loading_01.png create mode 100644 res/images/network_loading_02.png create mode 100644 res/images/network_loading_03.png create mode 100644 res/images/network_loading_04.png create mode 100644 res/images/network_loading_05.png create mode 100644 res/images/network_loading_06.png create mode 100644 res/images/network_loading_07.png create mode 100644 res/images/network_loading_08.png create mode 100644 res/images/network_loading_09.png create mode 100644 res/images/network_loading_10.png create mode 100644 res/images/network_loading_11.png create mode 100644 res/images/network_loading_12.png diff --git a/include/datamgr.h b/include/datamgr.h index 6f246b2..a955056 100644 --- a/include/datamgr.h +++ b/include/datamgr.h @@ -24,6 +24,7 @@ struct datamgr; enum event_type { EVENT_DATA_UPDATE_DONE, EVENT_DATA_SELECT_DONE, + EVENT_DATA_SELECT_FAIL, }; struct data_class { diff --git a/include/layout/network.h b/include/layout/network.h index 801b4e8..523f198 100644 --- a/include/layout/network.h +++ b/include/layout/network.h @@ -41,6 +41,8 @@ /* Signal for network layout */ #define SIG_NO_WIRELESS "sig.no.wireless" #define SIG_WIRELESS_EXISTS "sig.wireless.exists" +#define SIG_LOADING_START "sig.loading.start" +#define SIG_LOADING_STOP "sig.loading.stop" /* String for network layout */ #define STR_WIRELESS "Wireless" @@ -66,5 +68,17 @@ #define IC_LOCK_NETWORK_FOC_04_PNG "ic_lock_network_foc_04.png" #define IC_CHECK_NOR_PNG "ic_thumb_check_sel.png" #define IC_CHECK_FOC_PNG "ic_thumb_check_foc.png" +#define IC_NETWORK_LOADING_01_PNG "network_loading_01.png" +#define IC_NETWORK_LOADING_02_PNG "network_loading_02.png" +#define IC_NETWORK_LOADING_03_PNG "network_loading_03.png" +#define IC_NETWORK_LOADING_04_PNG "network_loading_04.png" +#define IC_NETWORK_LOADING_05_PNG "network_loading_05.png" +#define IC_NETWORK_LOADING_06_PNG "network_loading_06.png" +#define IC_NETWORK_LOADING_07_PNG "network_loading_07.png" +#define IC_NETWORK_LOADING_08_PNG "network_loading_08.png" +#define IC_NETWORK_LOADING_09_PNG "network_loading_09.png" +#define IC_NETWORK_LOADING_10_PNG "network_loading_10.png" +#define IC_NETWORK_LOADING_11_PNG "network_loading_11.png" +#define IC_NETWORK_LOADING_12_PNG "network_loading_12.png" #endif /* __AIR_SETTINGS_LAYOUT_NETWORK_H__ */ diff --git a/res/images/network_loading_01.png b/res/images/network_loading_01.png new file mode 100644 index 0000000000000000000000000000000000000000..5dcaba7700e98df2f644ffccfb7ade4c514ef5a7 GIT binary patch literal 3594 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 Qa{vGU07*qoM6N<$f@5Bp(EtDd literal 0 HcmV?d00001 diff --git a/res/images/network_loading_02.png b/res/images/network_loading_02.png new file mode 100644 index 0000000000000000000000000000000000000000..2e8562d970d4d20a62d27afaf30b4ce1afdc5a33 GIT binary patch literal 3586 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 IM6N<$g7EddSpWb4 literal 0 HcmV?d00001 diff --git a/res/images/network_loading_03.png b/res/images/network_loading_03.png new file mode 100644 index 0000000000000000000000000000000000000000..84b608da2e3bd1648d56c9c853f1356e31c98d2e GIT binary patch literal 3575 zcmVKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0009bNkld=J1$&I zDL0f$FBeK|Tu@d^Nh`@qnuyw{S!4F1ZO?4`y4df@T4vA7`9JfY=U1oy>C}1ooZs)9 z^Evbz|)z;Z#pc)tq0>m?$o?(Okk%|dSBFlmMw&UFb z4kg-0GUrHqs~)t)9E98a9@qtR0{eiIt~KHtNRHWV(7yi`pw6sdBkLWJnghVrrNwp?b{J{jjXZBd=++(3Ill&W{?Q5!`!6CFoW#2z(h0f#uZ4Wp*`T3 z<*&FHoM&EWrF}Ccdl-#>wFB2C-&>_b(s4;$k{(L(60DO>DwfnDsZY{@MCv5kaG9iU z8kO?_L*z<&AZb8SeWLY}>0qa%A%m$22qGfsrlgppkCIA*0EwHJB#lTq?byr;CDlp# zDXBx!>SXGt(qYXQ&D=|7*8Y+4>BT8~m`Oelyibs^f9-(6bph1yqeIZvomY z{F!U+_!0|J$7R3**R{asv`$Zle?F`L_5$1New{zTm7tB$hn+h>J?TA31OhVNV_0TU x!YD9gSJqESzD}002ovPDHLkV1nqcqxS#+ literal 0 HcmV?d00001 diff --git a/res/images/network_loading_04.png b/res/images/network_loading_04.png new file mode 100644 index 0000000000000000000000000000000000000000..3f1d36d2d3dd3dfe2f42176ea1cbdfb854311cfa GIT binary patch literal 3585 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 literal 0 HcmV?d00001 diff --git a/res/images/network_loading_05.png b/res/images/network_loading_05.png new file mode 100644 index 0000000000000000000000000000000000000000..776e4604813b2e5f65e4dd728521f17307d3745a GIT binary patch literal 3578 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 AX#fBK literal 0 HcmV?d00001 diff --git a/res/images/network_loading_06.png b/res/images/network_loading_06.png new file mode 100644 index 0000000000000000000000000000000000000000..72b02990e3b1034369e6400c101f85ce5a85bfdb GIT binary patch literal 3602 zcmV+t4(;)YP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0009$Nklb0H7=WKUotDy4icp{hV*;(3NL&~Q8%km#(O5qcl|5mFF~%4Z zUAZ%E{11|_k`E;WN>~uwxezcmQRB*JsyOzA%mK1;+m4ch?Md z?dMWVX1P^Or3KjpoB_T9o=q^r$ z++?ox4DdCu9hd^%1b)rPpSpnFs8@iy?E)DFt^tn&mw`8$?W{qV4WXF|u#~lrB)}H| z@h$Lr8z2ZxEJc4CqGSs4PB`@}@EWk(#*n=N+yT0Q%|K69rnM#fU;vl^F6Fd%4n=hQ z8<@^QBku>qWR4I33*r1jjhI+HjjRLaVrKRM-{qXr>;QI0nE$C2jl2{P*9w3Dn2!iH zQqNcFfgFzdbU{h&ec&F@7vVoO$avIO3e3cX zdCNgyTbTJTt$^H!ZEYX$K>;AgB9%W||6E4vm2q`dy`}DK;Qv{bSJY|sd$qsb{~K-e zOLaxPpe8v$Jf{Aj{;3{m3I2^RucAi#GL_5psb#*k&m|B^|?dqu*#N7Zo9*`UB1dgNXr7+W#xc?Ki zH|=syUTkjYGAW*bel>Ms2iarlL0eCht z)}$tbD8=<6@D2YwTR9(RRxL}?rdK#haj;fB_Do_+@O!H>pEpSE(s?}H0qKDJPe2|H Y0QL%BKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0009pNklCS!dO!~=NXV#7Qcy-lCRT=-DQcSiTX-%Fm+*RL=FXVi10Ta&xZj-LoO8bO zU>r%z1ewJQkqk%%Bm?rFfMf-{UkOkSYys8-MZk05H1Kk|gJc0!z+nSOlvlvWbhpS} zpaCeg`$6C?@DO+bbOJrVP}+SU!2Y@$0I7Y&~^OxTy6(@zFu?T1dRshYweqbOC-tJ5S=sVbB zz(s?2VnLp+0G7cxslZG%A=UyrfzQCcP)?x<-C_wA^5t5KEe;BSO5jFF$vS2*0)7Tz zkvfC86(R({xJyUJuSIf!ZeSj;8F(5&36*V7qkb$>X%NpMfQVZq2IM5ON-~fNyIzW@ zsFkg(WG8GgkZrcny$CDxUj~umHAeD*e&7dC;0nI5B?nkwdh~foh$ZHi?;?bV$4Pdw z7?})YzFm7GZvNsi67ve;xPmQekU17Bo;jI3&`i|<#Xy%0I|3U%bOSY3CY%DQ)0oBUfsJN`^HVO7Qk>}3NE(zhAn8O9 zqfXb#lhh!oMbdRitJ6I)J!Bw5lCDWw8URF@q??l3BsELg5XS5mNqZ!9Ng9^aBk8!L zxgPdeX;$cv^wwTXNmxVd_$rpvBxyv_sH9#=7bNYLRFLF<2PIv$m+(bWr@f5XUiEPT z_+Vf=a1z*&(A9mggc`4r@|YNcFLd=e!$2c&7I^PR2`9iWAJ*F0Uk+??4GUyo@dxz* zEx>Ky%4B_bR3M4DV3n(K9kWKQ1NfMZ2RfN=Q8FMIkPOH_CBFv%+=VwzcvxS`00000 LNkvXXu0mjfGU1Z+ literal 0 HcmV?d00001 diff --git a/res/images/network_loading_08.png b/res/images/network_loading_08.png new file mode 100644 index 0000000000000000000000000000000000000000..969cc7a3bc6b201fcf8a2b36c25757646824dfb5 GIT binary patch literal 3580 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 FV1h5oqb&dc literal 0 HcmV?d00001 diff --git a/res/images/network_loading_10.png b/res/images/network_loading_10.png new file mode 100644 index 0000000000000000000000000000000000000000..de91e8693ba65f85f32e7c89d0395a5cd9628859 GIT binary patch literal 3583 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 z99iQtwRT`dclass->update) - dmgr->dclass->update(dmgr->dclass_data); + return dmgr->dclass->update(dmgr->dclass_data); return true; } @@ -85,7 +85,7 @@ bool datamgr_select(struct datamgr *dmgr, Elm_Object_Item *it, void *data) } if (dmgr->dclass->select) - dmgr->dclass->select(dmgr->dclass_data, it, data); + return dmgr->dclass->select(dmgr->dclass_data, it, data); return true; } diff --git a/src/common/listmgr.c b/src/common/listmgr.c index 00cf905..efb12f9 100644 --- a/src/common/listmgr.c +++ b/src/common/listmgr.c @@ -27,7 +27,7 @@ struct listmgr { Eina_List *list; }; -struct list_item { +struct list_info { char *list_id; struct gridmgr *gmgr; Evas_Object *grid; @@ -57,17 +57,17 @@ struct listmgr *listmgr_create(Evas_Object *parent) bool listmgr_destroy(struct listmgr *listmgr) { - struct list_item *litem; + struct list_info *linfo; if (!listmgr) { _ERR("Invalid argument."); return false; } - EINA_LIST_FREE(listmgr->list, litem) { - gridmgr_destroy(litem->gmgr); - free(litem->list_id); - free(litem); + EINA_LIST_FREE(listmgr->list, linfo) { + gridmgr_destroy(linfo->gmgr); + free(linfo->list_id); + free(linfo); } free(listmgr); @@ -76,18 +76,18 @@ bool listmgr_destroy(struct listmgr *listmgr) return true; } -static struct list_item *_get_list_item(struct listmgr *listmgr, +static struct list_info *_get_list_info(struct listmgr *listmgr, const char *list_id) { Eina_List *l; - struct list_item *litem; + struct list_info *linfo; - EINA_LIST_FOREACH(listmgr->list, l, litem) { - if (!litem) + EINA_LIST_FOREACH(listmgr->list, l, linfo) { + if (!linfo) continue; - if (!strcmp(litem->list_id, list_id)) - return litem; + if (!strcmp(linfo->list_id, list_id)) + return linfo; } return NULL; @@ -116,17 +116,17 @@ static void _grid_mouse_move_cb(int id, void *data, Evas *e, Evas_Object *obj, static void _grid_item_selected_cb(void *data, Elm_Object_Item *it, const char *emission, const char *source) { - struct list_item *litem; + struct list_info *linfo; if (!data || !it) { _ERR("Invalid argument."); return; } - litem = data; + linfo = data; - if (litem->selected_cb) - litem->selected_cb(it, litem->cb_data); + if (linfo->selected_cb) + linfo->selected_cb(it, linfo->cb_data); elm_gengrid_item_selected_set(it, EINA_FALSE); } @@ -161,7 +161,7 @@ static input_handler _grid_input_handler = { .unrealized = _grid_unrealized_cb }; -static bool _add_grid(struct list_item *litem, Evas_Object *parent, +static bool _add_grid(struct list_info *linfo, Evas_Object *parent, struct grid_class *gclass) { struct gridmgr *gmgr; @@ -181,17 +181,17 @@ static bool _add_grid(struct list_item *litem, Evas_Object *parent, return false; } - if (!gridmgr_add_grid(gmgr, litem->list_id, grid, gclass)) { + if (!gridmgr_add_grid(gmgr, linfo->list_id, grid, gclass)) { _ERR("Gridmgr add grid failed."); evas_object_del(grid); gridmgr_destroy(gmgr); return false; } - inputmgr_add_callback(grid, 0, &_grid_input_handler, litem); + inputmgr_add_callback(grid, 0, &_grid_input_handler, linfo); - litem->gmgr = gmgr; - litem->grid = grid; + linfo->gmgr = gmgr; + linfo->grid = grid; return true; } @@ -201,64 +201,64 @@ bool listmgr_add_list(struct listmgr *listmgr, const char *list_id, void (*selected_cb)(Elm_Object_Item *it, void *data), void *cb_data) { - struct list_item *litem; + struct list_info *linfo; if (!listmgr || !list_id || !gclass) { _ERR("Invalid argument."); return false; } - litem = _get_list_item(listmgr, list_id); - if (litem) { + linfo = _get_list_info(listmgr, list_id); + if (linfo) { _ERR("LIST ID [%s] already exists.", list_id); return false; } - litem = calloc(1, sizeof(*litem)); - if (!litem) { + linfo = calloc(1, sizeof(*linfo)); + if (!linfo) { _ERR("Calloc failed."); return false; } - litem->list_id = strdup(list_id); + linfo->list_id = strdup(list_id); if (selected_cb) - litem->selected_cb = selected_cb; + linfo->selected_cb = selected_cb; if (cb_data) - litem->cb_data = cb_data; + linfo->cb_data = cb_data; - if (!_add_grid(litem, listmgr->parent, gclass)) { + if (!_add_grid(linfo, listmgr->parent, gclass)) { _ERR("Add grid failed."); - free(litem); + free(linfo); return false; } - listmgr->list = eina_list_append(listmgr->list, litem); + listmgr->list = eina_list_append(listmgr->list, linfo); return true; } bool listmgr_remove_list(struct listmgr *listmgr, const char *list_id) { - struct list_item *litem; + struct list_info *linfo; if (!listmgr || !list_id) { _ERR("Invalid argument."); return false; } - litem = _get_list_item(listmgr, list_id); - if (!litem) { + linfo = _get_list_info(listmgr, list_id); + if (!linfo) { _ERR("List %s does not exist.", list_id); return false; } - gridmgr_destroy(litem->gmgr); + gridmgr_destroy(linfo->gmgr); - free(litem->list_id); + free(linfo->list_id); - listmgr->list = eina_list_remove(listmgr->list, litem); + listmgr->list = eina_list_remove(listmgr->list, linfo); return true; } @@ -266,26 +266,26 @@ bool listmgr_remove_list(struct listmgr *listmgr, const char *list_id) bool listmgr_show_list(struct listmgr *listmgr, const char *list_id, const char *part, Eina_List *list) { - struct list_item *litem; + struct list_info *linfo; if (!listmgr || !list_id || !part || !list) { _ERR("Invalid argument."); return false; } - litem = _get_list_item(listmgr, list_id); - if (!litem) { + linfo = _get_list_info(listmgr, list_id); + if (!linfo) { _ERR("List %s does not exist.", list_id); return false; } - if (!gridmgr_append_list(litem->gmgr, list_id, list)) { + if (!gridmgr_append_list(linfo->gmgr, list_id, list)) { _ERR("Gridmgr append list failed."); return false; } - elm_object_part_content_set(listmgr->parent, part, litem->grid); - evas_object_show(litem->grid); + elm_object_part_content_set(listmgr->parent, part, linfo->grid); + evas_object_show(linfo->grid); return true; } @@ -293,21 +293,21 @@ bool listmgr_show_list(struct listmgr *listmgr, const char *list_id, bool listmgr_hide_list(struct listmgr *listmgr, const char *list_id, const char *part) { - struct list_item *litem; + struct list_info *linfo; if (!listmgr || !list_id || !part) { _ERR("Invalid argument."); return false; } - litem = _get_list_item(listmgr, list_id); - if (!litem) { + linfo = _get_list_info(listmgr, list_id); + if (!linfo) { _ERR("List %s does not exist.", list_id); return false; } elm_object_part_content_unset(listmgr->parent, part); - evas_object_hide(litem->grid); + evas_object_hide(linfo->grid); return true; } diff --git a/src/data/data_wireless.c b/src/data/data_wireless.c index 1fc974c..bcb994e 100644 --- a/src/data/data_wireless.c +++ b/src/data/data_wireless.c @@ -24,6 +24,8 @@ struct _priv { Eina_List *list; void (*event_cb)(enum event_type type, void *data); void *cb_data; + char *new_passcode; + Elm_Object_Item *new_ap; }; static void *_create(void (*event_cb)(enum event_type type, void *data), @@ -239,29 +241,6 @@ static bool _update(void *dclass_data) return true; } -bool _wifi_forget_last_ap(void) -{ - wifi_ap_h ap; - int r; - - r = wifi_get_connected_ap(&ap); - if (r == WIFI_ERROR_NO_CONNECTION) { - return true; - } else if (r != WIFI_ERROR_NONE) { - _ERR("Get connected ap failed."); - return false; - } - - r = wifi_forget_ap(ap); - if (r != WIFI_ERROR_NONE) { - _ERR("Forget ap failed."); - wifi_ap_destroy(ap); - return false; - } - - return true; -} - bool _wifi_set_passcode(wifi_ap_h ap, char *passcode) { int r; @@ -278,19 +257,22 @@ bool _wifi_set_passcode(wifi_ap_h ap, char *passcode) return true; } -static void _wifi_connected_cb(wifi_error_e err, void *user_data) +static void _wifi_connected_cb(wifi_error_e err, void *data) { struct _priv *priv; - if (!user_data) { + if (!data) { _ERR("Invalid argument."); return; } - priv = user_data; + priv = data; if (err != WIFI_ERROR_NONE) { _ERR("Connect ap failed."); + if (priv->event_cb) + priv->event_cb(EVENT_DATA_SELECT_FAIL, priv->cb_data); + return; } @@ -298,10 +280,45 @@ static void _wifi_connected_cb(wifi_error_e err, void *user_data) priv->event_cb(EVENT_DATA_SELECT_DONE, priv->cb_data); } +static void _wifi_connect_new_ap(struct _priv *priv) +{ + struct wifi_ap_info *ap_info; + int r; + + ap_info = elm_object_item_data_get(priv->new_ap); + if (!ap_info || !ap_info->ap) + return; + + if (priv->new_passcode) { + if (!_wifi_set_passcode(ap_info->ap, priv->new_passcode)) { + _ERR("Set passcode failed."); + return; + } + } + + r = wifi_connect(ap_info->ap, _wifi_connected_cb, priv); + if (r != WIFI_ERROR_NONE) + _ERR("Wifi connect failed."); +} + +static void _wifi_prev_ap_disconnected(wifi_error_e err, void *data) +{ + struct _priv *priv; + + if (!data) { + _ERR("Invalid argument."); + return; + } + + priv = data; + + _wifi_connect_new_ap(priv); +} + static bool _select(void *dclass_data, Elm_Object_Item *it, void *data) { struct _priv *priv; - struct wifi_ap_info *ap_info; + wifi_ap_h prev_ap; int r; if (!dclass_data || !it) { @@ -310,29 +327,34 @@ static bool _select(void *dclass_data, Elm_Object_Item *it, void *data) } priv = dclass_data; + priv->new_ap = it; - ap_info = elm_object_item_data_get(it); - if (!ap_info || !ap_info->ap) - return false; - - if (!_wifi_forget_last_ap()) { - _ERR("Forget last ap failed."); - return false; + if (priv->new_passcode) { + free(priv->new_passcode); + priv->new_passcode = NULL; } - if (data) { - if (!_wifi_set_passcode(ap_info->ap, (char *)data)) { - _ERR("Set passcode failed."); - return false; - } + if (data) + priv->new_passcode = (char *)data; + + r = wifi_get_connected_ap(&prev_ap); + if (r == WIFI_ERROR_NO_CONNECTION) { + _wifi_connect_new_ap(priv); + return true; + } else if (r != WIFI_ERROR_NONE) { + _ERR("Get connected ap failed."); + return false; } - r = wifi_connect(ap_info->ap, _wifi_connected_cb, priv); + r = wifi_disconnect(prev_ap, _wifi_prev_ap_disconnected, priv); if (r != WIFI_ERROR_NONE) { - _ERR("Wifi connect failed."); + _ERR("Forget ap failed."); + wifi_ap_destroy(prev_ap); return false; } + wifi_ap_destroy(prev_ap); + return true; } diff --git a/src/layout/layout_network.c b/src/layout/layout_network.c index 3880056..78fddba 100644 --- a/src/layout/layout_network.c +++ b/src/layout/layout_network.c @@ -95,7 +95,10 @@ static void _network_type_option_selected(struct _priv *priv, int id, case TYPE_WIRELESS: elm_object_text_set(priv->action_btn, STR_REFRESH); - datamgr_update(priv->wirelessmgr); + if (!datamgr_update(priv->wirelessmgr)) { + _ERR("Unavailable status for updating list."); + return; + } break; @@ -217,7 +220,9 @@ static void _action_key_down_cb(int id, void *data, Evas *e, Evas_Object *obj, } else if (!strcmp(ev->keyname, KEY_ENTER)) { switch (priv->cur_type) { case TYPE_WIRELESS: - datamgr_update(priv->wirelessmgr); + if (!datamgr_update(priv->wirelessmgr)) + _ERR("Unavailable status for updating list."); + break; case TYPE_WIRED: @@ -285,7 +290,18 @@ static void _data_event_cb(enum event_type type, void *data) break; case EVENT_DATA_SELECT_DONE: - /* It should be implemented later. */ + /* FIXME: Currently, layout is refreshed when AP connected. */ + if (!datamgr_update(priv->wirelessmgr)) { + _ERR("Unavailable status for updating list."); + return; + } + + elm_object_item_signal_emit(priv->selected_wireless_item, + SIG_LOADING_STOP, SRC_ELM); + break; + + case EVENT_DATA_SELECT_FAIL: + /* FIXME: It will be implemeted later as follinw GUI guide. */ break; default: @@ -294,6 +310,29 @@ static void _data_event_cb(enum event_type type, void *data) } } +static void _connect_wifi_with_passcode(struct _priv *priv) +{ + char *passcode; + + passcode = elm_entry_markup_to_utf8 + (elm_entry_entry_get(priv->passcode_entry)); + if (!passcode) { + _ERR("Passcode is NULL."); + return; + } + + if (!datamgr_select(priv->wirelessmgr, priv->selected_wireless_item, + passcode)) { + _ERR("Unavailable status for selecting wifi."); + return; + } + + elm_object_item_signal_emit(priv->selected_wireless_item, + SIG_LOADING_START, SRC_ELM); + + evas_object_del(priv->passcode_popup); +} + static void _popup_clicked_cb(int id, void *data, Evas_Object *obj) { struct _priv *priv; @@ -311,7 +350,7 @@ static void _popup_clicked_cb(int id, void *data, Evas_Object *obj) break; case EO_BTN_OK: - /* It will be implemented later. */ + _connect_wifi_with_passcode(priv); break; default: @@ -332,8 +371,12 @@ static void _popup_key_down_cb(int id, void *data, Evas *e, Evas_Object *obj, priv = data; - if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_ESC)) + if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_ESC)) { evas_object_del(priv->passcode_popup); + } else if (!strcmp(ev->keyname, KEY_ENTER)) { + if (id == EO_ENTRY_PASSCODE) + _connect_wifi_with_passcode(priv); + } } static input_handler _popup_input_handler = { @@ -428,7 +471,13 @@ static void _wireless_selected_cb(Elm_Object_Item *it, void *data) return; } } else { - datamgr_select(priv->wirelessmgr, it, NULL); + if (!datamgr_select(priv->wirelessmgr, it, NULL)) { + _ERR("Unavailable status for selecting wifi."); + return; + } + + elm_object_item_signal_emit(priv->selected_wireless_item, + SIG_LOADING_START, SRC_ELM); } } @@ -552,7 +601,10 @@ static void _show(void *layout_data) priv = layout_data; if (priv->ly) { - datamgr_update(priv->wirelessmgr); + if (!datamgr_update(priv->wirelessmgr)) { + _ERR("Unavailable status for updating list."); + return; + } evas_object_show(priv->ly); elm_object_part_content_set(priv->base, PART_CONTENT, priv->ly); -- 2.7.4