From 2a8bfcc967731a89d4f0c7c7b79e209d6a160b82 Mon Sep 17 00:00:00 2001 From: Jose Alberto Guerra Ugalde Date: Wed, 4 Dec 2024 09:53:10 -0600 Subject: [PATCH] - VERSION 4.12.04 - Se movio la variable "servidores" de Mainpage a Starter. --- B4A/B4XMainPage.bas | 8 +++- B4A/C_Subs.bas | 4 +- B4A/Files/logo_keymon.png | Bin 13113 -> 36867 bytes B4A/Files/logo_keymon_notransparencia.png | Bin 0 -> 13113 bytes B4A/Monitor-Keymon.b4a | 10 ++-- B4A/Monitor-Keymon.b4a.meta | 2 +- B4A/NotificationServiceXXX.bas | 54 ++++++++++++++++++++++ B4A/Starter.bas | 3 +- B4A/monitor.bas | 15 +++--- 9 files changed, 82 insertions(+), 14 deletions(-) create mode 100644 B4A/Files/logo_keymon_notransparencia.png create mode 100644 B4A/NotificationServiceXXX.bas diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index 4c8fdfb..5b79d23 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -72,7 +72,7 @@ Sub Class_Globals Private lv_servidoresActivos As ListView Dim jsn As JSONParser Dim jsnGnr As JSONGenerator - DIM rp AS RuntimePermissions + Dim rp As RuntimePermissions End Sub Public Sub Initialize @@ -140,6 +140,12 @@ Private Sub B4XPage_Created (Root1 As B4XView) s.borraArribaDeXXXErrores(3000) rp.CheckAndRequest(rp.PERMISSION_POST_NOTIFICATIONS) Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) 'change to Activity_PermissionResult if non-B4XPages. + +' Log(999) +' rp.CheckAndRequest(rp.PERMISSION_READ_PHONE_STATE) +' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) 'change to Activity_PermissionResult if non-B4XPages. +' Log(888) + End Sub Sub B4XPage_Appear diff --git a/B4A/C_Subs.bas b/B4A/C_Subs.bas index 5483a2f..cd763d3 100644 --- a/B4A/C_Subs.bas +++ b/B4A/C_Subs.bas @@ -468,7 +468,9 @@ Sub ping If Not(Starter.ping) Then If Starter.logger Then Log("Sin conexión a Google!!!") notiLowReturn("SIN INTERNET ❌", "NO hay conexion a Google.", Monitor.nid) - If B4XPages.IsInitialized Then B4XPages.MainPage.l_status.Text = "NO hay conexión a Google!!" + Dim cs As CSBuilder + cs.Initialize + If B4XPages.IsInitialized Then B4XPages.MainPage.l_status.Text = cs.Color(Colors.red).append("NO hay conexión a Google!!").PopAll End If Else Log("Error: " & LastException) diff --git a/B4A/Files/logo_keymon.png b/B4A/Files/logo_keymon.png index e7984161a07ba563e9562865ebde98d660fdc34f..ee4f419e8f3ea64ac2981e05e49ee98ef1dcd4c9 100644 GIT binary patch literal 36867 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 TBt3UV00000NkvXXu0mjfFr#y& literal 13113 zcmV-9Gset`P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>DGR{dvK~#8N?Og|8 z6xG(w%*-U0x15Xl{r;H$;obxu{Qv*q9>o91 zyNB^V^6p{W!!ghA^LcM)`SS98d3oNzPhWn4H!qJWG{ty4eypcfeoxE_AS5^)AmVj?CI1wZj#!@WeFpQ60CGF%tZ+!xZ&&$P>w-4+83`6xeC z{4<84;JxhI!q9(M3=S;f7)~%hV{ihO%gNLfvS9;BqXzI(Tq6l12>P$8KJEeXJU4FI z|K9I7cn}Dq%$69p#}9@T_y-&X-&Ag37#Jlc7Q??7v6#@P$p)#i4((+3cP4AqM3h%y zR8jK4$Xw?xIR4pZ|LY%5`c=y5@Vi`ow-9WV4#cGxlSnYBgiKDBckU?b(n->&Vbyf4 zRgOIO)oYebzu9;1^=4)H9ZtW~3DGO~TIB)=!=zGRQIwbs6#0rQ5RorjK6Rx9OnqF`1K=QA3un}0X| z{Hyo+P0D5i_ZWPkOu+GgnA8(`(37#4M2d8Wm_Tk8gpAJz77SX{mk*+}z*ksUzMcV` z;R=PQR!vpE$5f9!Lg-`fZcx0NcAt7?n5;O32Kl&fsW|1QGd%V7a0?08uSFgD)Ttvb(Jw3+d4!k)65J;mE z8jb470h*D+2(9*RQFwRA1FvY=xT)~l?|qqBU~Q4e5L~5_b!abX*<8{vl}xUO%VaSm zl8Bf{9LVI#sPDlRDGFHhd)$x|QVys4%2mifoF`5>4jiN`7U261z%WE%wM5OR;p&0? z;c@W!NcC@lrk4lb(l}euT?795+mbuTI z^_k42J4sxvRzBKG(WAShVM9zV!$I{yyWEK|FzCR5OFm_{BaKRb1wjDWxLiiWq9GMz zvZVuB#O;O{37_UVpJv~&%d%xFWipkz&rcEkMkya9Ul-q6kYL)5R z??5%6#sVS-f{gpi*!u2}vMJRU;2jIq?e$}0p=1#ll$;br4ym|S4@W9{?eH7%0 z0l!DzS|I*G7(@|~z!Y+kUXKRJlB!D@q{2UOa=jA2#pCfi9A0CgZTk+(hE48EmrHRK zknH0+o#v?#+R-B`$BR}5d7udL-hS70>NFZ3DG4HxylWQ-9@17VAiN>_;Mo~vcQ_6m zavnbk!O5L|1!){G5j2bmN(4CbMG`xUS%jY`YLZ}-;^bsW!}`)zEoB|rfu0P$lY!q) zIUEq1;j1khe}NnnOf&cr58y>5&6^r#Plwb#+9nuX@*s+sR()Ui)hb_JUMU6#DX?zB z7&0|A5Y@P01N6Q9pZySo?8lD#O=iCf2!ns#h^UGLKqn|wlEfq=G`+M><@a|4 z1Lbre;0!2qr(G&s@s(}w-z9l|m6z;a8wdFv3a#5Gf%s zsT3Mr(zLPi(ca1)4?)lkz8U~{Y;YltBgYCqU*SA?x+F&m9Z}l0P28&s#MP_uy$B8W zwd4Jr;dO2!H0mn!laVgJGVl@S`y7+5f$>Re{9S9&wIc@c*jBz z>S2R)V>8th2){nawDq-6@f%3_vmmHA;iBcw!zS<|KM+7KEIyO+7IUMu`!C1?T2BA`Wr&sHTMU#e1qtI$3( zhOAe&m_m><7K{DRk^IF=JXfxUxoc2JTCHZxQ`%>q#w8Nxu@gD7=Yzv!_w4E`Ka=0z zxlBG2AS8JZmhxVG)4Fv#xPstQY=FTH8mOBvPE;+C?I*oCxrJYSYu)^ZuOQ#=sEV|) z0ThCt2Sd@084V`I^gl2=i1Eh%erZ{^A*?h5DWvG#Q`P5@+}GanT))9~D$)+^s(m3iUmR+8@F)2tkZpjw%Fhx@|(W<0si@Nav%+ex)>1- zC>F*U)FX##MhpXE3O?)i`^*;mzWsTxz2(czG< z+YyF29M?Ymly>|Wk--py2VJG-=B>Q9-fMMP;@E!tff{@b9n<=hcD;N~Og%%i% zpRX`|^S!intN1q;p_drzbU00G*AoW4qFdLB45U?vJP2Aja~E2-{J}`xVi1I3?o8Ey zzG%9u2#&)?a~Hi1Sy4&J-@Oa)d!pJk;}$JIiFOf5kjvZt`bXNbxwu*)^CW<>TC-lB z0TL$utyk|FdHKsfHm&#?O~`Qo%*~sneqsPzU+|fj81woK1s{Cu&C0G4*;`nErjLt5 z^9dyn36%yMC*tGuFTbdIynk_waJf)CVm;>otua?fHvNilB+&UR|Jk>=Dk;V1y_qd5~#lO`786&sFl6gIJg|caeS9 zZq%KtDkO~>CVsq3RJ|HKHw4%0*ncqV#VO@mP=hNJx|d$ij2eNHAu~;s#hN{Pz8x`F z9A&`P6F*!cYtxGDS0hB3{{Y~*m60=lQ5fcMoXecufn3D)KdUlx0QJzpqNM7~tR5JR z{QgeTRxQfWpa5yRHjs?tVy-c{&Ygok!O;i4yu926uexvCD2J7o`Qifda-k@5g0s$L=t4riy`Vn2Lq+1aU}Qw+`pYNFeXl6+9t(@P&c2MRU!NC%F^9e!n~Y zO78sED6=*AOvEVj#T90c?EJsX_+&RtcXIRK<({P5w; z$n^WmrmYkYJ&5LjlB%R zA|XC;*?a7P_WZ?5t-t(suP_Jj<>Z0y64$IDii@M%Zrk=9xo^DVgRCZED0=lUyfT-= z97yq;ne(i_|3O)8vJUOg!V73Fr9#@gDaaO3p7h&jKiIJOy2bYtSCO4)~w5a=l$>#3so4HL;@-w*J#j0xyj@+7DjFair&3I zsi90fl)3B~^Bnv3gQEidsh=}LJ!l}E68L>S$n&zNO!tSHJG=_IA$IZ$m?WaiFH*PZ zIC#kNLzwwS&B$T0PWLg)+4mnnUZRwRMpYG%6@Y$*zVEqu&6i(L2Il(oHq7TSXEbI{ zpF=YTzfv|^!P4c91Bd82JTO5;mrm-zPjJKwJ^?j#0o-g-fM4pu3f)}nJXid z{rVW@&g5hTz5-+RwAm=1<0bf>8#nUbT+EE%6S1-S*)uTSN<;Vg3)anll(N{4!JWzT znal-WtmHdP?U<)zty?l3r|_Ha9EXmSv>NW;2W9`hhS}4(%;gtkPn!kqG5pXBMM3m2 ztzH`>2E%0S+Gs}%#P2a8NI73Ot5qawlsSGP zC+)+P${HJfM57<9uVbS$^75B1FZ}ciPR^n1+b90**O>Gm=atvYYu3f^hB~7JG9?+5 zg0e?fwW9C%wRBE+;3z+)=)uy92NTbC6bo_y&JihH*#&hvvYgGUx${9^F;_`-0(`Gx594j+(0l-~U|Nbj!(Kx5;!o`f?qtQk{ z7DUw&YiwFC(#HmW4@HS%o0i|USby8hi3h5Febi43V5WT`v2&e0UkMIV(!6Q>+pnu0 z?gbqm5|V-sJ_45jt_EDC-)@hA-dd(>fH!-+V6~7{eVY(N2%w>bkm7h5PSR15aN;JuU+LO>~;d?!yTL3A$olL0*S}g43RCvpS z@SZVbr1SX6kVe5U&_8I3GH?&}{RgrpPNpnno`otCz^kBz;=>0M@$nR7oXbA6?b_oj zGzqJZFsTGrsTJM3LP#TYIuIb{AJ&?_UIlHZ89g#~;snrsAea^{>9b6=BvXh0pVxN00G`RHW_NkPRC!_h9;VHD?+{ zaENLoRr~Bi-Gs5C>eX$#_hycJ4qPR&HldZR-|2#M$ok9X%(2hfcJ6`HTQ`18;-|}F zr@a*W{IfjfvMOkE4B$r0-~Y(ubJFHb!N<@LE|! zMN6I`XL9U65Y@y^RI^6H(#109l|CwG(HnWMyzV-GA?#Xup#ZTHgir1(ujVd#6NHbf zeOv9Q5u9Qx-rHFy&K*5oapq{)_Wtd@ag%OI$Q;y9K2GNk41ikm#$V88QXayPN7)_F z%{jz~l9CkN9%Kdr5WC@4whIMOt(pl--jOzM290(5xk=WIzkoU@Q$kiwP?Rq(-}>_} zw!MGB%|ho#+SpLO;vR3 ziiv|szURhGz7Q1(+NVc?Oz_+6IWy+C&z!4d=5)`G*Nq#^Va{{&7B~QJL4mAo8_lpG z9ET9Qzegm|nZO86{4?lzFA!#8SN2R(7#8LZS`xQ50d;h^TYQyXqVXEv10sF2!%n-4(MRPoK zvJhbZXFsPyhmc2Et)BEN9G8epxM)@aWHe~MXy{DsxG~a}&3y&N{P&lm%4C%W42zxo zyms_RwCFU1x$D_8W}~1R$e=;)=D)YpmzxI{sTn;o8qU*kbq54ZlYjon_+1u*y0i<+l~bFu;;DZm`qTxihs z`K-TgaU44ishFz&W89b|1e`~YF#{2x02rOYzV3>Z&Bz~P*=-S!SOBA}4-ELXG0rD;AZ5V6cs89goVcMUp zTL)LF*w+R?b2zM2J%l{x>9ZWmLsjXE7Sy77=c~f6>{ImaDT=PfNau;<2gN7uA){d;;8sF&y5=~ym%u8&s$W; z0i228W+!XchD@zbIbG(Tf8mea2@f2Po&K_V*dQ)*7cXVcnBzWwp>*bGSbq8${HL^8 zV`=kd9LuOE{QiJ#1=}Go$sVd%JRVO*W*G9kSvl}(@RuTp>(yay5*)7J8J@gbS4=|M zckc4Rw+r1fxB#1*IaM=+$6VUQ?3r^TWDelXybbv>G^_l<2L$(=uJacdJt?kRmp_5- z%g$j~V3CI={)3Mhh!TpYCp@=q(GLU!q)l*r_5+9bqpkvjAoMe*sRutnXw+=xTo=-^ zg3Lv1_h{ks;TXy%5!~{C1+>jG$PHSKUF7x{cv)*`i@%#+$sAX!&|a}3c(b#GH4aGZ z$olo+{+*||Dpz0tbF-$a2M;9Fq0F663)oy*8JG(Il6TNnlE$Fs1kTpcv}I8;hLmt< zNdf?S0W{0y^De>EEIey zi)`Eo?%b7j37t$4C5S|ZIWsg*JdPu88GH`lI(s&I<~&r}tz0SzWTE>~Iy`_|;D@D( z0K_C(qEOV8Mezns=kT)FEq;N&>X~3I>h_{}B7r>{U8m4><}A~d1cq2-m^%}d76~n7 z3Au3gtOcMjE0R_s`R1dfO}V?vD+(&a!-))WXwfhWU}KDfEdFB7a!&x-dsl>js|`LD z3S?>uT$$_Kg{TBP#M~_P<6Pz-zGlywS3%|guJh+XvyiM}jY0v)W9Z>5Tm!I==U|cN z=GIOR?BELirQad^vMtoC80IrZp{5luH*dCjKtIr2!Dj++o;;N^dpScvlfb=6{%=qjXb8b(ZoHKJSd#GM01oq5f(eU|!Ik;d`vm;y(tW{+!@_51~urVO` zmz)qH2a$<5L!zqbk7jQ zL2egp5dM%P5nH_Rg+*TICV2oFb73qG4VBRk1p`_#L-~atq^J~-O&eo4&RLfr0B{`F z>lsyo2Ao4XhbYc~6;WH0QP_xp-@z$4tZDv);m$+lw{5sXH_4#MlG&U0~*?O zu6WgnAi%X6c5!2V5fuVxDx#K6UOdON*lrVe#Y6Y?Rvg}2w|vGzoFvH<;Rl(b3bH{e zE+M^H*@72Z3ls?nHU&g(AFmD)+d&pLS->%daD(=Xvi5p$3jS0aey`V+b`dU4f?SZ0 zpB!yS0#yK9=PwApP!ajRqNYGwv3PUT>~a(=%j3m7Xjb+NEtyi@a(Hd`aTEh%AGCj3$nSCeO0vcgS;P zt(wD!-z%O|(xREPNh8YRv2Fb`!euX!BhU`Pe(b(@nZ3l8hA1(CVWGIa#I>jy^N5GcDHtxpfl zL%?0Ln<%7NCCwUhqMF}kceBnxC0ProOM<-X14-YmjC*AcI_2oO35m;>BrIRTm$D4} zPN(IkjnKt3LkHm+P4L+&3Aj8}pwx!trw#1WCxwC(jHiej_od7HnNAW7Xp}&nlpodn z{=hg$kbil{`$}JLBk$DFuxK7wn?yP% zvuJ^ktX*5Q467vIxbDSg$r?!hLA69*^Fr-JE#0+!0tt?hzJO2CR`$+m*WM055RHYAX-%s z0Iraul0+pmF67#h5)Q5fds06+faz9T`2F@>dn_A&0Trj8K7}bdUUdL18#`q(_!7(d zjc9Lp6xMe`!{YLyN;eiODzX$x9%K>4hYJV5ZD_>ySFY*!{pchvhP*DFKupq)Iq*A6+wsiVPtAw-c2@r4CD7ee z{raHYizS(9r9(aVN#&!xq37kly9CV+3hgifkb}uOv}bPFwu@IX2gA^@F`@N6xa5&_ zYok4Vp(bMAvzHmf6X|sDHDP_D^Tdf#PJ6WP*d4mjf_NV3_kJ zZ+4FBRM7!b7>3To3D>NY$zu9pO;{NQPQbio?H%`XfH*GvbcK1{23)7pPo1nP;fpE_ zG;^ZF1k;-JrWIdBuLPR<$$?D7aUMJAE8tcKlS4QQ4S0Ys282dkIfg}1mQ9-(&nfHN zF?;~?`^~FXo4#Gm=`|oGbLK2ShY3XBaNxSp0kdn@BmSmLQVo9MZt;i8fd`pe2l1F) z`&L*$ZZ2!vnz>EuubY{H5e8@@BTol}DN_sy8T>ux7%opnrkXDN2Wh-m3<1n};2zX!+I92BO$AFoLS+skUXkFpJ6xyE;!2gYZEIPJ=6=XE&s~W6 z20j+x2DML*(oK8@G56y-;m>V5_t4&w(PyQQK=D<|q zUYW~m);0gI#=iS6PEQ5zt>9H71B7v#0OW!>9u{2U+MmF%=-)(f2E`-2O3K^N6mV`H za0c28ZH(X4SMK<#eLLsi7SmZduj84^xwajqv1&>(r9p-j4Uh++J@3tT_-EJ|=FT9K>xCT{De+JYQ0=z{ zk3{o9-4NE$cNj(b{ueS2w!ore-+tqYuUu!(A+Z+yJ0cR|Yy9vnbJUY<*PiUD zv(Uf_3zDXdtAD)$l|~DP(vG7sefwSBn~OQR9~5BqZ&n1?sQdlK&%Z2KvOG$uD+l2B ziMTk(Qj`z(gmy=!Z!&ocjGpu>?#q|mm(txAFT1Z@iz#9IHP9ofQ(IC$1r_eCpA6ku z6dQ|cH6ZP*Ten$%-v+%N70M8LO;JgRoiPQ>olfs4kLUL2XB>x*a(t%YmARVXC01xH zjXYmo{>{e+dv6CTu+o4pi+k%eb^pg`%e&mK>idYK zVMAzc2=#u46TAiF(e7(Ez@G;W6>_1(MkJ1rkRqKHq9({!Oe%$cxJ-(X64wQEMx<@; zU%s4NwCO%v`THnAoLnzy)tAhIJkTk*i{9WIgCnYzn6&nL&S|u4ltvyhtS`SQcy|fM zu*lSuq&456vKRqaw{Fj#GBbJ$%fkc1aFq)D2~a|&fH5VbL%LE@aJdZ81{dt7g8d2Z z9K%6pgKR@5CtOYs*ytrNR?oE?z5-)K&eAII-qnD-Zy8AP+dRZ2C24)_jiffkjtewUVq8JpRp_c{_95v#7d7C3j&SfH1Vx z7n%X z1ZW5_OwscpNzvg?3?OyQU%Uj>AP4}s)K8xR-JkyTE&}MG%ocDM;17NI`RE@!FcyM} zs|w74pU_WxS)5dzZci}%{P&mnAm<5XPTIbW0u?q3KL*0!PUOKm6pGl1fehvt3?C6)imXF> zus_aqgBLP>_66E59OyM*cCpWmmvz3cg11*?A!*h$@skf~Zdw=j>H_vAxyT{w(i!qp z=2Ra@Yzn{pnm;eE=-rb&$xsR+YG_2v%aiyA6hV5P|IYhNaaKaFH!PTg>dKV;#;Q1= z1t8@DS0-uPNHw6JcKq0qa<7sAnWbUYbfyg<;-GTzncR7K2tctfJO?RF@b^*?sg;m* zYsXHR%irs>g9@%jSl8 zvr1a$a*x6bS-joGSc&`k4Ngv03V?EG5LxS1OsKQ`vf2FIkNl$}mHqlCdUT82rXwZ~ z-l~wtPJRIrDX#N07UsXV%yIH0eLwKsa0Q^LqC0(4xqw7I@9p>8SFVCS1dA#B^z#UF zL}-oJX)h_dcVk+^dF({N2OqI(p3)H4sDaKm4XrC#I_{L`aX?X)Eq~-po6QwS7)Ca3 zSnZ=_X!3&g=@yImr%n0qE&*LbzvW&BCYOm56VWh@)#|;S#chFbK+MgUq8>PaDI@Q> zbt~(o>F9(5&c;3*kALq!sz)C#Qz$L*wC3=@Fz6t_hw~J7CJ53g&y{N^I|*caaFb+m zT~KAHqHhHEc@MzjMd@Q+9vb+Mz-J=nW=>T9m>o*TEk*RO~0SFaw(U$l6; zl1HxZ9&nY?Fnfk-K;L5KtkxW0Zu<^&s(UCTO&iB8oL|yhdFdz*c>uU9Nuvh#zy9GK z=I`}-Zr<`-1OD#A0^0yF2}#ziBWc=q7uRXKK?LF^>}~7?CE5KRAvSa@`2n}-?Z=8&0lJbg5vBM z%10jNuf~iVkGTt8bM8C9KbRjeH)n>be_tZ>9QLxJjCo!-fH7Hq{x$FI zcljwDuq&=tM?du?#Y5egfDG?(`ZIRJ65pE_AP<|#6@K3b6#V8TyPg)6@?e*Br|%2oc-0=Rem z+?lEY0x$;oauZTgh8+9@sRGt=fte33Cdz|T}n5vS!ez2_j_v~ z22vmhSL&gIBn|50MXD0u&B`wL;~#+qTh+8YXSgT$GT&tWgJmsx*G`xqa83k`{4` zQ<4pHX2{yMK~;!^Ar3)c@&Leu`{L#N_m@EmAC?9P>}35E?K4j+dZJQ7!DrzQT`shX z^Xxh6?^|uV_o52DRRfTa$-6$FeDq;ylg7~b*h_UF!a)va{PJse+9hy2VN)P^m(HIc_}lb+jI;g>yP7&ut%=#k>u zwbiMw7> zXhfYn8a|WRb^g5Z)6X6I!t7*cfa*!=V?}lAD0}u$JlsPRs|(X@DT;D9AhkzJ*6j|j zu>iGZK|x?~ZGkTzei~8D7oRscd_&+dIDyM#M64E%jTPy1@D(83Mb#4EF(#A2KU^+D zV~pV@W#H4S+jrRh_|tRk8k&idA1`a!9Q>HHLpx^UFCQR?(2<&6kKf}(V^Lo86BVw2&!@iu{tm;? z;Eq^?iNx^XXx|Y0B*{`lgf}nWdH9Iq&=Kc}Q@-qM=o$QhE;ht9Yk)RU_UsNCr`)py zWkuzYM}sn3Jeir0&zgT&dxt}4p}`dj6nNBX$cTYLS%K`K*&r05 zfE1?}*Q+N$X1wr)dUXDGdaQURWSRp)eL_5Y?;!LW79aLGuxM z_=z3|U80CUM&qOWln?D~FEpZvh(aSgD4>i+@ZONmKo~W7>?|K zwgmV*xJf@169|eBdeIJ8^uPlOHj)*5Y>=rb%H9t{CLpSwh-izlo-7@AnY3EHHrODm&_szn|RRH?&a0pWo3`pHwyLx&xQk4734 zg#d&!S=-j2Z>23;py4r%8f4_%^^jpv70D|GvWKJ|f=5!+6 zNNY%lmnJiC2@Vzi;!0UVGz3R1*?h#|044K|KZ;A75_sJF){xKyS9>S Tvo7|200000NkvXXu0mjfMoV3% diff --git a/B4A/Files/logo_keymon_notransparencia.png b/B4A/Files/logo_keymon_notransparencia.png new file mode 100644 index 0000000000000000000000000000000000000000..e7984161a07ba563e9562865ebde98d660fdc34f GIT binary patch literal 13113 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 Tvo7|200000NkvXXu0mjfMoV3% literal 0 HcmV?d00001 diff --git a/B4A/Monitor-Keymon.b4a b/B4A/Monitor-Keymon.b4a index 0e42a68..647e360 100644 --- a/B4A/Monitor-Keymon.b4a +++ b/B4A/Monitor-Keymon.b4a @@ -4,13 +4,15 @@ File2=kmt.db File3=listItem.bal File4=login.bal File5=logo_keymon.png -File6=MainPage.bal +File6=logo_keymon_noTransparencia.png +File7=MainPage.bal FileGroup1=Default Group FileGroup2=Default Group FileGroup3=Default Group FileGroup4=Default Group FileGroup5=Default Group FileGroup6=Default Group +FileGroup7=Default Group Group=Default Group Library1=b4xpages Library10=reflection @@ -26,7 +28,7 @@ Library6=json Library7=okhttputils2 Library8=phone Library9=randomaccessfile -ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~''''' CAMBIA LA CLAVE API~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~AddApplicationText(~\n~~\n~)~\n~'AddManifestText(~\n~'~\n~')~\n~ 'End of default text.~\n~ ~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~'AddManifestText()~\n~'AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~'AddManifestText()~\n~'AddManifestText() 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~AddManifestText()~\n~'AddManifestText()~\n~'AddManifestText()~\n~'AddManifestText()~\n~'AddPermission(android.permission.REQUEST_INSTALL_PACKAGES)~\n~AddPermission(android.permission.INTERNET)~\n~'AddPermission(android.permission.INSTALL_PACKAGES)~\n~'AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~'AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~'AddPermission(android.permission.READ_PHONE_STATE)~\n~AddPermission(android.permission.WAKE_LOCK)~\n~'AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~'SetApplicationAttribute(android:largeHeap, "true")~\n~~\n~AddManifestText()~\n~AddPermission(android.permission.INTERNET)~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~'AddApplicationText(~\n~'~\n~' ~\n~' ~\n~' ~\n~') +ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~''''' CAMBIA LA CLAVE API~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~AddApplicationText(~\n~~\n~)~\n~'AddManifestText(~\n~'~\n~')~\n~ 'End of default text.~\n~ ~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~AddManifestText()~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~AddManifestText()~\n~AddManifestText() 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~AddManifestText()~\n~'AddManifestText()~\n~'AddManifestText()~\n~'AddManifestText()~\n~'AddPermission(android.permission.REQUEST_INSTALL_PACKAGES)~\n~AddPermission(android.permission.INTERNET)~\n~'AddPermission(android.permission.INSTALL_PACKAGES)~\n~'AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~'AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.READ_PHONE_STATE)~\n~AddPermission(android.permission.WAKE_LOCK)~\n~AddPermission(android.permission.ACCESS_NETWORK_STATE)~\n~~\n~'AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~'SetApplicationAttribute(android:largeHeap, "true")~\n~~\n~AddManifestText()~\n~AddPermission(android.permission.INTERNET)~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~'AddApplicationText(~\n~'~\n~' ~\n~' ~\n~' ~\n~') Module1=B4XMainPage Module2=BatteryUtilities Module3=C_Subs @@ -34,7 +36,7 @@ Module4=DBRequestManager Module5=Monitor Module6=NotificationServiceXXX Module7=Starter -NumberOfFiles=6 +NumberOfFiles=7 NumberOfLibraries=14 NumberOfModules=7 Version=12.8 @@ -42,7 +44,7 @@ Version=12.8 #Region Project Attributes #ApplicationLabel: Monitor Keymon #VersionCode: 1 - #VersionName: 4.11.30 + #VersionName: 4.12.04 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: portrait #CanInstallToExternalStorage: False diff --git a/B4A/Monitor-Keymon.b4a.meta b/B4A/Monitor-Keymon.b4a.meta index 8ad51f2..a7486b8 100644 --- a/B4A/Monitor-Keymon.b4a.meta +++ b/B4A/Monitor-Keymon.b4a.meta @@ -22,6 +22,6 @@ ModuleClosedNodes4= ModuleClosedNodes5=5 ModuleClosedNodes6= ModuleClosedNodes7= -NavigationStack=Monitor,Process_Globals,22,5,NotificationServiceXXX,Service_Start,28,0,NotificationServiceXXX,Process_Globals,12,0,NotificationServiceXXX,Service_Create,20,0,B4XMainPage,B4XPage_Appear,155,0,B4XMainPage,B4XPage_Created,133,5,Starter,Process_Globals,8,0,Starter,Service_Start,57,0,Monitor,JobDone,148,6,Monitor,Timer1_Tick,54,0,Monitor,Service_Start,38,0 +NavigationStack=Monitor,Service_Create,38,0,Monitor,Service_Start,47,1,Monitor,Process_Globals,17,4,Monitor,Timer1_Tick,61,0,Starter,Process_Globals,22,0,Starter,Service_Create,30,0,Monitor,probamosConexion,95,3,Monitor,JobDone,147,0,Monitor,reinicializaReqManager,125,0,B4XMainPage,B4XPage_Created,95,6 SelectedBuild=0 VisibleModules=1,7,3,5,4 diff --git a/B4A/NotificationServiceXXX.bas b/B4A/NotificationServiceXXX.bas new file mode 100644 index 0000000..e70e840 --- /dev/null +++ b/B4A/NotificationServiceXXX.bas @@ -0,0 +1,54 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Service +Version=11 +@EndOfDesignText@ +#Region Service Attributes + #StartAtBoot: False +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. +' Dim rp As ReplyAuto +' Dim activo As Boolean = True + Dim ultimaNoti As String + Dim logger As Boolean = False +End Sub + +Sub Service_Create +' rp.Initialize("MonitorKeymon") + #if not(DEBUG) + logger = False + #end if + If logger Then Log("**************** Iniciamos Monitor Keymon ***********************") +End Sub + +Sub Service_Start (StartingIntent As Intent) +' Log("NotificationService Start") +' If rp.HandleIntent(StartingIntent) Then Return + DateTime.DateFormat = "mm" + ultimaNoti = DateTime.Date(DateTime.now) + If logger Then LogColor($"Ultima notificación en el minuto ${ultimaNoti}"$, Colors.green) +End Sub + +Sub Service_Destroy + +End Sub + +'Sub MonitorKeymon_NotificationPosted (SBN As StatusBarNotification) +' If ultimaNoti = "" Then ultimaNoti = 0 +' DateTime.DateFormat = "mm" +' Private estaNoti As String = DateTime.Date(DateTime.now) +' If estaNoti > 60 Then estaNoti = estaNoti - 60 +' If logger Then LogColor("Diferencia de tiempo entre notis = " & (estaNoti - ultimaNoti), Colors.blue) +' If logger Then LogColor($"Esta noti en el minuto ${DateTime.Date(DateTime.now)}, ultima noti = ${ultimaNoti}"$, Colors.green) +' If logger Then Log(SBN.PackageName) +' If ultimaNoti < estaNoti Then +' If logger Then LogColor($"******** TIEMPO *******"$, Colors.red) +' ultimaNoti = estaNoti +' If IsPaused(Monitor) Then StartService(Monitor) +' End If +' If logger Then LogColor("Monitor inicializado:" & Monitor.Timer1.IsInitialized, Colors.Magenta) +'End Sub diff --git a/B4A/Starter.bas b/B4A/Starter.bas index 03ec2c6..bb3ada7 100644 --- a/B4A/Starter.bas +++ b/B4A/Starter.bas @@ -26,6 +26,7 @@ Sub Process_Globals ' Dim DBOk As Boolean = True Dim logger As Boolean = False Dim ping As Boolean = False + Dim servidores As List End Sub Sub Service_Create @@ -36,6 +37,7 @@ Sub Service_Create #if not(DEBUG) logger = False #end if + servidores.Initialize End Sub Sub Service_Start (StartingIntent As Intent) @@ -62,7 +64,6 @@ Sub Service_Start (StartingIntent As Intent) If sa.GetString("cuantos") = 0 Then skmt.ExecNonQuery($"insert into cat_servidores (url, intervalo, timeout) values ('http://keymon.lat:1781', '30', '11000')"$) End If - StartService(Monitor) End Sub ' diff --git a/B4A/monitor.bas b/B4A/monitor.bas index ed72b56..5f4a5dc 100644 --- a/B4A/monitor.bas +++ b/B4A/monitor.bas @@ -27,6 +27,7 @@ Sub Process_Globals Dim logger As Boolean = True Dim timeout As Int Dim cs As CSBuilder + Dim rp As RuntimePermissions End Sub Sub Service_Create @@ -67,9 +68,9 @@ End Sub Sub probamosConexion If logger Then Log("###################### "& CRLF& " probamos probamosConexion"& CRLF& " ############") - B4XPages.MainPage.lv_servidores.Clear - B4XPages.MainPage.lv_dbs.Clear If B4XPages.IsInitialized Then + B4XPages.MainPage.lv_servidores.Clear + B4XPages.MainPage.lv_dbs.Clear B4XPages.MainPage.cb_conexion.Checked = False B4XPages.MainPage.cb_internet.Checked = False ' B4XPages.MainPage.cb_dbreqserver.Checked = False @@ -90,9 +91,8 @@ Sub probamosConexion s.notiLowReturn("Hay conexion a internet ✅️", "Revisando servidor ...", nid) If B4XPages.IsInitialized Then B4XPages.MainPage.l_status.Text = "Hay conexion a internet!!" Dim cmd As DBCommand - - For i = 0 To B4XPages.MainPage.servidores.Size - 1 - Private esteServidor As Map = B4XPages.MainPage.servidores.Get(i).As(Map) + For i = 0 To Starter.servidores.Size - 1 + Private esteServidor As Map = Starter.servidores.Get(i).As(Map) Log(esteServidor.Get("servidor")) reqManager.Initialize(Me, esteServidor.Get("servidor")) cmd.Initialize @@ -119,7 +119,8 @@ Sub probamosConexion Else If logger Then Log("Sin conexión a internet!!!") s.notiLowReturn("SIN INTERNET ❌", "NO hay conexion a internet.", nid) - If B4XPages.IsInitialized Then B4XPages.MainPage.l_status.Text = "NO hay conexión a internet!!" + cs.Initialize + If B4XPages.IsInitialized Then B4XPages.MainPage.l_status.Text = cs.Color(Colors.red).append("NO hay conexión a internet!!").PopAll End If End Sub @@ -147,6 +148,7 @@ Sub JobDone(Job As HttpJob) s.notiHigh("ERROR ❌", $"El servidor ${m.Get("url").As(String).Replace("http://", "")} NO responde!!"$, nid, Main) cs.Initialize B4XPages.MainPage.lv_servidores.AddSingleLine(cs.Color(Colors.red).append($"${m.Get("url").As(String).Replace("http://", "")} - ERROR"$).PopAll) + B4XPages.MainPage.lv_servidores.SetSelection(B4XPages.MainPage.lv_servidores.Size - 1) ' B4XPages.MainPage.lv_servidores.AddSingleLine($"${m.Get("url").As(String).Replace("http://", "")} - ERROR"$) End If @@ -188,6 +190,7 @@ Sub JobDone(Job As HttpJob) ' Sleep(200) cs.Initialize B4XPages.MainPage.lv_dbs.AddSingleLine(cs.Color(Colors.red).append($"${m.Get("url").As(String).Replace("http://", "")} - ERROR"$).PopAll) + B4XPages.MainPage.lv_servidores.SetSelection(B4XPages.MainPage.lv_servidores.Size - 1) ' B4XPages.MainPage.lv_dbs.AddSingleLine($"${m.Get("url").As(String).Replace("http://", "")} - ERROR"$) Starter.skmt.ExecNonQuery($"insert into error_log(error, fecha) values ('La BD NO esta respondiendo!!', '${s.fechaKMT(DateTime.Now)}')"$) Dim cd1 As ColorDrawable