From d773bf38a3c8f49ea56de67d3b828f8126f46ed2 Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" <takaoka@google.com> Date: Tue, 28 Jun 2011 16:32:39 +0900 Subject: [PATCH] Cleanup key drawing code This change also modifies 9-patch drawables to fix the following issues. In order to draw key background drawable just on the coordinates we want, we have to know where an actual "visible" part is in the drawable. The only clue we can use is "padding" of the drawable. To achieve this, the 9-patch drawable must have its "visible" part marked as "content". Please refer the Bug: 4948171 for more detailed explanation. This change also reverts the following "black" drawables back from Gingerbread because recent change broke these (I70019a91). * drawable-hdpi/sym_bkeyboard_*.png * drawable-hdpi/btn_keyboard_key_*_stone.9.png Bug: 4948171 Change-Id: I6e4d03b3144caa95c793aac97af22df34c5f454f --- .../btn_keyboard_key_dark_normal.9.png | Bin 472 -> 506 bytes .../btn_keyboard_key_dark_normal_off.9.png | Bin 649 -> 657 bytes .../btn_keyboard_key_dark_normal_on.9.png | Bin 944 -> 1048 bytes .../btn_keyboard_key_dark_pressed.9.png | Bin 663 -> 972 bytes .../btn_keyboard_key_dark_pressed_off.9.png | Bin 869 -> 1082 bytes .../btn_keyboard_key_dark_pressed_on.9.png | Bin 1119 -> 1440 bytes .../btn_keyboard_key_fulltrans_normal.9.png | Bin 1370 -> 1785 bytes .../btn_keyboard_key_fulltrans_pressed.9.png | Bin 1315 -> 1701 bytes .../btn_keyboard_key_light_normal.9.png | Bin 448 -> 505 bytes ...tn_keyboard_key_light_popup_selected.9.png | Bin 453 -> 301 bytes .../btn_keyboard_key_light_pressed.9.png | Bin 649 -> 835 bytes .../btn_keyboard_key_normal.9.png | Bin 904 -> 1134 bytes .../btn_keyboard_key_normal_off.9.png | Bin 1076 -> 1243 bytes .../btn_keyboard_key_normal_off_stone.9.png | Bin 2059 -> 2389 bytes .../btn_keyboard_key_normal_on.9.png | Bin 1137 -> 1307 bytes .../btn_keyboard_key_normal_on_stone.9.png | Bin 2029 -> 2409 bytes .../btn_keyboard_key_normal_stone.9.png | Bin 1719 -> 2213 bytes .../btn_keyboard_key_pressed.9.png | Bin 831 -> 1088 bytes .../btn_keyboard_key_pressed_off.9.png | Bin 1041 -> 1233 bytes .../btn_keyboard_key_pressed_on.9.png | Bin 1086 -> 1271 bytes .../drawable-hdpi/sym_bkeyboard_123_mic.png | Bin 2583 -> 2576 bytes .../drawable-hdpi/sym_bkeyboard_delete.png | Bin 1856 -> 2314 bytes java/res/drawable-hdpi/sym_bkeyboard_mic.png | Bin 1453 -> 1410 bytes .../drawable-hdpi/sym_bkeyboard_return.png | Bin 1426 -> 1111 bytes .../drawable-hdpi/sym_bkeyboard_search.png | Bin 2045 -> 1612 bytes .../drawable-hdpi/sym_bkeyboard_settings.png | Bin 1710 -> 729 bytes .../res/drawable-hdpi/sym_bkeyboard_shift.png | Bin 1820 -> 1474 bytes .../sym_bkeyboard_shift_locked.png | Bin 1467 -> 1115 bytes .../res/drawable-hdpi/sym_bkeyboard_space.png | Bin 790 -> 358 bytes java/res/drawable-hdpi/sym_bkeyboard_tab.png | Bin 1123 -> 1008 bytes .../btn_keyboard_key_dark_normal.9.png | Bin 377 -> 458 bytes .../btn_keyboard_key_dark_normal_off.9.png | Bin 545 -> 588 bytes .../btn_keyboard_key_dark_normal_on.9.png | Bin 806 -> 960 bytes .../btn_keyboard_key_dark_pressed.9.png | Bin 514 -> 849 bytes .../btn_keyboard_key_dark_pressed_off.9.png | Bin 687 -> 957 bytes .../btn_keyboard_key_dark_pressed_on.9.png | Bin 940 -> 1293 bytes .../btn_keyboard_key_fulltrans_normal.9.png | Bin 1068 -> 1553 bytes .../btn_keyboard_key_fulltrans_pressed.9.png | Bin 1021 -> 1461 bytes .../btn_keyboard_key_light_normal.9.png | Bin 355 -> 454 bytes ...tn_keyboard_key_light_popup_selected.9.png | Bin 389 -> 258 bytes .../btn_keyboard_key_light_pressed.9.png | Bin 526 -> 717 bytes .../btn_keyboard_key_normal.9.png | Bin 726 -> 991 bytes .../btn_keyboard_key_normal_off.9.png | Bin 860 -> 1083 bytes .../btn_keyboard_key_normal_off_stone.9.png | Bin 2389 -> 2389 bytes .../btn_keyboard_key_normal_on.9.png | Bin 926 -> 1151 bytes .../btn_keyboard_key_normal_on_stone.9.png | Bin 2408 -> 2409 bytes .../btn_keyboard_key_normal_stone.9.png | Bin 2213 -> 2213 bytes .../btn_keyboard_key_pressed.9.png | Bin 664 -> 956 bytes .../btn_keyboard_key_pressed_off.9.png | Bin 836 -> 1078 bytes .../btn_keyboard_key_pressed_on.9.png | Bin 886 -> 1119 bytes .../btn_keyboard_key_dark_normal.9.png | Bin 546 -> 571 bytes .../btn_keyboard_key_dark_normal_off.9.png | Bin 735 -> 727 bytes .../btn_keyboard_key_dark_normal_on.9.png | Bin 1069 -> 1110 bytes .../btn_keyboard_key_dark_pressed.9.png | Bin 709 -> 1007 bytes .../btn_keyboard_key_dark_pressed_off.9.png | Bin 924 -> 1128 bytes .../btn_keyboard_key_dark_pressed_on.9.png | Bin 1244 -> 1486 bytes .../btn_keyboard_key_fulltrans_pressed.9.png | Bin 1389 -> 1869 bytes .../btn_keyboard_key_light_normal.9.png | Bin 529 -> 548 bytes ...tn_keyboard_key_light_popup_selected.9.png | Bin 535 -> 359 bytes .../btn_keyboard_key_light_pressed.9.png | Bin 722 -> 860 bytes .../btn_keyboard_key_normal.9.png | Bin 1004 -> 1172 bytes .../btn_keyboard_key_normal_off.9.png | Bin 1176 -> 1278 bytes .../btn_keyboard_key_normal_off_stone.9.png | Bin 2117 -> 2833 bytes .../btn_keyboard_key_normal_on.9.png | Bin 1271 -> 1345 bytes .../btn_keyboard_key_normal_on_stone.9.png | Bin 2131 -> 2867 bytes .../btn_keyboard_key_normal_stone.9.png | Bin 1787 -> 2658 bytes .../btn_keyboard_key_pressed.9.png | Bin 921 -> 1131 bytes .../btn_keyboard_key_pressed_off.9.png | Bin 1131 -> 1273 bytes .../btn_keyboard_key_pressed_on.9.png | Bin 1197 -> 1312 bytes .../drawable/btn_keyboard_key_fulltrans.xml | 26 - java/res/drawable/btn_keyboard_key_popup.xml | 2 +- .../drawable/btn_keyboard_key_popup_ics.xml | 2 +- java/res/values-land/dimens.xml | 31 +- java/res/values-sw600dp-land/dimens.xml | 22 +- java/res/values-sw600dp/dimens.xml | 27 +- java/res/values-sw768dp-land/dimens.xml | 32 +- java/res/values-sw768dp/dimens.xml | 38 +- java/res/values/attrs.xml | 7 +- java/res/values/dimens.xml | 48 +- java/res/values/styles.xml | 21 +- java/res/values/themes-gingerbread.xml | 2 +- .../com/android/inputmethod/keyboard/Key.java | 9 +- .../inputmethod/keyboard/Keyboard.java | 15 +- .../inputmethod/keyboard/KeyboardId.java | 11 + .../inputmethod/keyboard/KeyboardView.java | 467 ++++++++++-------- .../inputmethod/keyboard/LatinKeyboard.java | 10 + .../keyboard/LatinKeyboardView.java | 13 - .../inputmethod/keyboard/MiniKeyboard.java | 30 +- .../inputmethod/keyboard/PointerTracker.java | 4 - .../keyboard/internal/KeyboardParser.java | 17 +- 90 files changed, 477 insertions(+), 357 deletions(-) delete mode 100644 java/res/drawable/btn_keyboard_key_fulltrans.xml diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal.9.png index 50cc49fdb0a201dae42f2613223a50d61f5d73dd..bc130cab67898c804460c6a51d7fa42fdf659033 100644 GIT binary patch delta 481 zcmV<70UrL?1NsAyBYy$GNkl<Zc-rmSOKZYF5WsOkjUU6K3VMlF8#Qk=Pv2FjQjgVJ zt=}KEJA->D7V2JPWLNlI0;}^sWg;mQ9`j*W5B;%crek!Bj?pnXM#nrpCJaOLbw0E2 z%Y~HjWb$v&uZy3@Bl<WT*lxck0cHWm(}|TzC8S=A_=4Gd&VQz}83`~8c;D@qQK_K2 zVz%2Y%JZBYn9DE>q+ZP1W`oi!BM0V^idnDMC`l4>U@moIR;v|?;+UKzpGzucv0Ng! z+fp-MEEJA`17I{BlLI$SsTgtB4fwK2O+K9}90Lb{9|YuNd<&3@$@rZXc%Da2nx+cJ zB>VtyT$h}fZ+`(&F>w+j+p)=s;z;3`D2mW<I3#Dnw*aXau{!hz19D)la=DDuixGQ} z)$fx7b4kU7qY-+wEOKBjg=4ON&-Qvfass}eNyWec(Cv1~@qJ&Nn461Y-G1SRsqs{b zxd{^McBj)J$K{)|RE*0*K${<?#!)&(JP4WXHaWKANLt451Hd#*a%|hyF*-)a=$JcW zEdJa8TCEmqHk%~CECA*z7K=!|m}<3(>h(IS)oLU(8Vv+<NxeIxU(q5I^K9=q|M~d= XfG#%pRDXz#00000NkvXXu0mjf;ql-9 delta 447 zcmV;w0YLux1K0zQBYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET4 zdPzh<RA_<inn7-ZFc3w*feqK7SvIHO*6B5J1}|B$v+;BhLV=DgRc*?6@RQI;AyVcu z-yR1W_#bG#UW!@$SninW=nVdnB1S4jj8uvksi+deHqE~80e=AR*DI<@mfrjQj*r`o zz1MIbzFjT=fMFOgP1EZ#`vG-b0|2_NL(@Fc_TF#4BkQsM61FnqI4+S$#<I<r$B6LW zqnfLPU1eA?-Z=n35MnXlYfw+#1Ca-;-)3P}9)wtIO)4i=427_Xl1SyG-)5xAX3Lln zXtPvK=dqcThJU#xl@o8Xxs=6b2cq9*rD+P_1Zy)2n<$A?PWo*|fi_VRshqMKGlcl` zd;*)PYMPmf(QmWotDM}HGsR|7X~1lo(=JLPm6N*480-Y+`hSL>0CrIlr?S~Ma-Eu! zO*6I+awuo%GewM4iWsS|vzeQBo1JrFrswt6dF<u6{y555YXJal+lr~o^9+x*HhKg` p)9G1VHZw%D3@!#~6^kcIgim1w|07~?AiV$p002ovPDHLkV1fcy%dh|d diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off.9.png index dabf77ec676fcd6d4c5f31bcf38ad0b0c5f92a72..43099899c8c2313e24cd1a7f2bc0b3b8564bbf2a 100644 GIT binary patch delta 633 zcmV-<0*3vG1(5}iBYy%|Nkl<Zc-rln$#2>~6o(_R<d5LM0f|Kd2{1d@?AT^s8c2zn zW67;){(osYzbD3`O{HcIb|;##^j)lH{639`_h#(7yJ!w}CDNOHW{ixHF)~KR$QYUE zWya$%@#FQC{d{{<is@|jPodvVe!pCZZ_m%{{Pd&*$OT+pUVm6T9w+pZ5kIirY}jhO zRs!S#zMju4d4ErQNalDv63gW>68il<k;!CODwQI#*(@84M#OC_@=7L?gnlw#9v+DK zVi7vy$%N%{IigyvvR11_l*?t7&*ur(^MZKfB_(q>90=d{L#N$tGt07wUauF>?RHtE zQXy>H4&srQzJD_N{hq+^hK<ALO1;q_I$YqETD?w;cmWsjJD!)6%yzdUP;J9zxmpDy z&}=q?In&^B6+VXmVnqCAyVY0*7l6rh8af`I2jYIs>%SOi@wtRY3d~$Lh)3a+k`YxG z&uSF-^Eq*Pd<@!_<LN}A;5HVcq^}Gv07G7VRb#=s0Dmc&1+TPVFc>JuoR6TsGU6FV zK~oLPAt@Qp_XyjumBaO1jb&V3q`+<CrwTLP1xU$=*5S{_PX&-yB9S2UlM#JTyVFq) z<RvA8r7S?Rry9shW0~vrEY=sQf!!J@8L`EK1(IqEheLg2-klWfw%BM;iGfZs?}S9V zU8~iU19IEAQZjum0xW*9YB*ZUh=owqvXsMi97!2|0l==jYGB{l$QT(TV`M%igST0r zR4TDzv8V*d1t70jEJo-jlTN1zyy+Ehg8w&#LV-YDQs2&)PqY-0`E1`g|MmC<hkGdj TU)@L&00000NkvXXu0mjf`QtHL delta 625 zcmV-%0*?KW1&IZaBYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET5 zD@jB_RA_<in$M1+KoEyN&>;&LJ$W-Dap$=66u$NBYxoF;aPpwC0cq(y2n5}R9kMIa z{P_}736fAn{i>>=fp(DD@2ME2i*+5t{Av&WCu1<WG6th7V}CHZ(yL&ULvy>`0`TMg z9n;h+-ra7;&yNq~e^b@L?{9Aa91aJr*X#2<YrteO0bsM)FrD7q7DC*eqt|W!N0ga4 zpU;JrQjcYuVcaT02!WYpiHFQ6gAqvrK-!YTPNx$9`~99MiU4q3m(^+ofa5qtQD23C ziW}U2nWb6eX@3h6i{qFe2mn|t7A%)b0HP?u_k94?o>w%0I-ium$TYpP&*WDaGMmi+ zux-0I?z(PKC*^bMeCof<WQ#I;u`EQ^XdbUO$>zz6WqnHe^)=Ii%;xhsr{fU-(=ZBY zrD<9WY{zkk<M^*W4M%2e3``*euj@4cK@b#k=9_KfWq)%f48u?Pq?TEh$~I(nxm*fq zd7g)5S-`DjA2a!t*I=W}%J$jh(#mZejb+y6&}_=Ehi02=v!*m(o5}Rf>O`GS{g;_c z<(<`uI-fdMGm`4|JOG)sJT#lod}wwwnEuNwf0fg<<;*BEU74cTHkS`pC+d9aU1kg( z0`BVbjB2_8JXoC=l+6C1tF5_qXjbimd?`bjGh;BiG6th7%5IiqyUj_GXw#m{Tjy0T z&-<U5e3#d@ZEZ4>f5YSZe&r`HefoN~UotbKltpnV&@E%tj!MaIdpuChCIe0r00000 LNkvXXu0mjfzi}#$ diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on.9.png index 6e7d74c887ee3672d0b6dfbb0a85ba7dfba9bf04..2d1acf22fe2fba3a7873d24306c0050c3dc6fe42 100644 GIT binary patch delta 1027 zcmV+e1pNE32bc(uBYy+mNkl<Zc-rmS+iM(E9Ki7=A-C2Sp9R+v+f5(=Nn&Cyd!3!z z&UJS#dzrmtb2Z(n>1Nj(v|zzLDERDyPlA2$f(nX06zY=-S`_p}(ZA*AIlsw7YAR-M zTBe;@_`q^F!=CT5J9BoKGiM&m1CBh<7kik+F>y>B6UW3c|9{WW(2?OG7#{f-!!A0< zn;-2MhGEc42M2Ja*9%<lkmw(x{-6(oS6nZ@I=G8BemFQhp3m{ze+Jz(xVyK9nynVp z9VakO!_{atptaFNo$WSkKi@&S-OayU+B_bob2?iaX#dhajE;_?=*4(1u4)=6su~zg z*HFpO!Kxal-hZ}XW4DI3FE?Q41=m*Bfi@YV>Ma|rnt|vWF>!VRohrt*Z6wQbFcg=j zsi<t~P-~i~vsZ<^0}(Yg6X0|nM~$s1GNz#RZWXGIft+RyCP~O-Bx6j=LPbdmge1EZ zT|q`gCkwXF{uK?bzx@RI@QVc8{$UDz@M!|B-FOo1ynkqskE4m4b`8#+n?UzCRiBJ8 z3<HUx7>HuAh!jmmMnxm<yoFx7z6PJ)I*)$(BMCqM>ALe<5<dF!Db&BpkZ=<<T2(mr z*d&TxOu1Y}ydVTZAVHL*N~mP3;B1=c&37{J&5utbFNC6Dx4xS~S8oVV+b~eQS@9R6 zmr97`xPL&<t2QM{0#eHo*i9V`u2tZZucy%Wzg~blzh6Y({&E3ses&Rc`*pA!4OQxv zzwgW=6{G1oDzI!YI2SMQNK!@eQBzQJ$A&lFs-X97J_8?rbsoL@{sQ@UIjG(-K(}OM z+GT&IX77rfC!5V671#peM2-XrNVlZplfmWw4uAAs@1kyR`}j+*ndB6&2uLq$Fflof zq8B483d-g4f%2jlmH|#+ktp*ZmqetQMbJnbrIP2eE+9cB-#s#yQd9-T$H&pBVkCOi zCbHS=eUZ!MNR*3V^T6^9;)DY5qKiIfIR-HW@<!xyNRo;$Ha3Q$7bB9ZHI>d}?w_nH zLx18jIal@{ym30mn@=ykzG4JXK&f;pbm*x)x-mS@qxJRm(Ba6A!dHy94Ov}V3mv*H zU;hC-QZe41YGrjbbm+Q##V~~edTwPUbm+Pw9CP&d?DFz*=;X;B&sPjRfLdBw3LUx? zicHLjL2t|cEIBxAvQdgT5#(*v7Z(>pCwxP8+`eLPTTU#HgTp2r=@{<^)cnFi=%mtV zpE2YBYJPq`bW*8Q923XHF>%Z(V^+xT25N3@4rXU(LxHY^qU#zN89~vDNhA_zdU_g? x$z&+Z%*-IVE?@V~#P^$pDCS|i&-tE@zW{rrgtc5&a+Cl7002ovPDHLkV1m*8?5h9( delta 923 zcmV;M17!S|2(Sl`BYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET6 zQb|NXRA_<in%QpDFcgMAI}4q%wId;x3xrfI5CS125D!pZn!W{4fhumxu$7^7fli(H zaN*dUPLqhLX(!FhFOBSEyquH&_c_i27XvAN=L$78*=2{)(|@+0Nz9#TE9TC$6`gV> zp4P-l9aTbo5;9hZJCK?r(kW(2ljiE`DgaNOK1J*1{Z)!UjaDjTJ2gR(6f{^Xfsyt1 z?^%1ZRyuB}%vK&g1YkHElIQtZZ4dCaDy`7k9YnDvik&w)8goXR699Q;LEL{UD=Q>P z0)R2**!Z22S$`=rdwYAKl)4pnN_aMOq==IUfaFR<s$D&fqrjfELS`)h<}k+?rx0T@ zqN494Go{XCMI+mk#KOvSLQqN(C+_5x1x?!924H{Z10p-FjqY>x`s1SG)nJQAPF3*h zzRawTA`MB*UrDRncyR<ec4rqB|8n=<I{+TNj=6Qa4}ZX5Gh^f9TL8X%eT5kv@eu-v zI-Yk*osmMTzC61(#q42b3E_BYd5dSyQvmKiNJG;bH)7Is1i+uaL;mb8yP<M95yCyX zFEcqOnW?dH{T$b>#oSzS(P{jG>j;+n?tHJ81Y1;%P4#Q0A(;h@=ROI#5DT!qeTSc0 zn*b~<Sbvh#H6D$G@86s=!(pGy>;s@hSEh^Eky%p-(~ok*jKz#x-uU`OSbz5dfM3H6 zmX?15u=S(Q=gmj%{Lcf-p=%$jJj9Vn^U7sb$g3%t1^A0(j-EX2isjSBA^<<Wza&jv zWE&lf*#1={)7^vMJV`W{S)=<h08g}Jd0@#}A%Dx<UU2vKeux$#g3VlqEVJa9Yac0# zR0!r`lBOTGD3w)V>^xU!;~Y?9cby_2cI<w}*Q0!fW!CiG>;yytO)6I*t4?lGWUL~^ zQEpF}G^G%wREe_*$g$%8yVcm#eVO^iCN-2!3w1V4XU&`eLUqcR0hygs(rf~CHg(FG z?tjZH>~5RhH8+4do8~fWD`HA^6f#k^33WDgjv2*-!{>EB(*#Z*04B;dVWwnu0+%&3 z*Cx%{SG&`~tmK)wGi}A(nYN-dn)z4K#+cTGXaDLi%d*M``rT({Fc<*P>-Ad0jQ@sb xFc?&R0@J0hXS*dcB~txfo%S(SZKw$U02Guf(&kwlRVn}g002ovPDHLkV1i5Nul4`{ diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed.9.png index ddb77c224bc1e1d9cbf264fbd4b1c3104e371b31..af5ea6bd28d8431af34bfabacc43c36d3ae5372d 100644 GIT binary patch delta 951 zcmV;o14#Ur1<VJKBYy*vNkl<Zc-rln=}IF}5QY6CqQ00uil7*mxF<%VCNb`DPfTz@ zqacW=_;z>rE_0f8#^7|AYR2gfe1DX#b5Gx@x(nUY6VK26Bv!HSOll@IlbT7*q-Ihx z@tYYL8S%Wlytw!G_kg#zH_z+qtN)(`#0GRe(;gce`_j;dKYu<wJ$W7<AKk;lgXiw< z&fVPHc&@Ln-PP5V3B(3;(1iQ@dp{O<etvd+eSMzfnQ6D%9)dTUP0#uHxjQ{Q^&B4` zyQ8Bc6NnAypb6;9EXD>02R(meMsMWe;vxu$K&@8u?C<Zpy}dmXhz;n-82XF_Zf|eh zz`%efd1jQiXMbmBK|lm{c6K~lTU)MLt(rh=Ku5+%KgI%#E0USZ%S+G6$w@F9ySuxA zV5L%V<#O2sVgovQc?Smv!AoUa$u-kzwLFK1he0kg^%C6J*l_FX>n0Ez(9z37pRoX) zEs_}(8#AJ}v$?q$2(7KHxni+s0<i%d&5~vZ7*}eBhkv)Xw><<^Dj>SLx@v+<p`)}$ zU!5(onMR}GAy<{RrBW#nT3K0fg+jpuVgowL1oUY@P_NfhGauS9L1hNf<>h4)WGZZi zdhOZ_4}c0E$YJF*qWOH@1erodHL4~6Y;BTjMw`p<LaFqETrTI9mX=H)HYnAAdexqd zqd_Dy+JDsXFo8fb0*EdyE}9@ynjKIR0Jd1kHKP-yx){(dmDh+aEG(EHQ|PEoQ#Y#J z$Y!)drSP=9(2T(R{Jfi+n=^sfpxFWRRlA&RQZwpep!5PnXJ=<kkSV1apx?C_-IS>C zfuPE3L}zAZOpqyb)TYr_BjQYxTr)b=sfz(Ym4DBOX0urnWJ+}d=&P%8#)@P{=l-x6 zf-0X8ot~aHL8eqUz-~ZWn?#xU?T<R5^04+}1XVsGIyE(Af=sDyK<ybAS7OZcbTXsG z5(ui|M09d;(gc}O69BC>z&$`DGrBy`VhIFQJ|j9YF=2vCsct~+892)K_xF2}XGXV} zJb$c(i=fJ9L^GL;2{NU+0XnJ7a1YRxnNBl9PRBhns+q25=D#rWRcnr8(M0F7MU!zw zGNZj&_y|CIR`58^Gw5hp2p<6$S8AryRTDL&F88-ljsAMoqzjG6W@I4Tnt5As*G%{b zt=7z?MsIJgCwXRuhK4*WV&miE0erUtqcEeR=AaYSR?8k99**|yO!|q|KV;^+edqk? Z?*|{l)zcXbd}jav002ovPDHLkV1nyw$^HNU delta 639 zcmV-_0)YL@2bTqqBYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET5 zIY~r8RA_<iT1&EmFc9o~)T?+G*B-+2coBDQxrG;Tp%TbjX!3@TL`o%wNLN`*1!1O{ z&IA~MG|-RVs9?m|)WP_-Blsj{GPz<VlPhL2xuPgC-bHh_+kXK7Hk%Ekly<yr+xwrj zhSuY(vy3sj<^2Cz8{fy{5&Qk#f9zx1iR^GV005e%LDMunI~5rr1OR|@ZZGO$vA}k_ z1pr*H*Uqs;$xQkNFP94d;C8z~DFpyfO4(GmZ995qIOkSoQc9bd)oNvJH#1%`CeXUB zt+bR<)=ovn$bXE+B&7`cE?;I;S|%GbOQ|yBtDYtXAG~Df+@J(flA-5kjM;G$n-As7 z%&-rwGpRE}CHJz-wALNTr7X?VroLl-%a@q}ts)_NEWF|`x@fx6%0XtoUCj*W)pzZ& zWfqDfhN#SPoHM^&&2lIJ?k&ua0uUub?OA4tF}VT|!++C9fE?zGdyg1G`7$%eNoGSZ zc+SMe$G}|8e1kbxvzXtfi{`VFkA+wK6(_SE<*CZ7xXdsFK5Cd+W+qw9LcWWWSr0j8 z#*NK~=)D=ebEP(YUHWPG{JC}r<;%>p-)Jk2+CcmYy#rt8ObF45BZMd!A%ypZb*g5Q z>0JsTI(VJu5XzUC-6^}f>8qa<nK9XrQg)iPA$ZB0&u0Ml)_Gmm0KVHg7eZjUTmrbu z-Sk{tlrOWYssI4%^}09lf#J{O@4)?b#>nh+I$5>!j(KcL_<FW1nK7+(Yyr$IW8pxx Z#vk()7%p-pk!Sz_002ovPDHLkV1mK(Fh>9Y diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off.9.png index 1e9227e1cbb3830595520b310459721a1093adab..3e25a981771cdc17e54b35f6cff7f5846496c45b 100644 GIT binary patch delta 1062 zcmV+>1ljxL2D%84BYy+|Nkl<Zc-rln$4V_r6o$`8K_ACQaN<Cm3Mx7fMKI@_bIv*E zIB;SB1L}*_+27*)O&{*L+}ro=@`P^TgRM~g*Wa~j)vD$G^5t`W+&4Z|>~|(HlbA`& zBxVvbiJ8wgQ(s?iyuQA=kB<-I?d{EehnJTZ_x$|q1)dG)pnnPIzrVj5&CSjKXz05? zK0Q4dkB^V;_V(7exw&zdmzT!*`MGz{K@-q_cz7@{nwgnt#Lvv#-JNlDb>)takB!~k zUAMWpX{@iWdj}mf;pphd<^uQk_bxj-+xS;zv>KS$+1W8xS6AKQ;-WD>Kc80G+S-iV z++3HFlVjxN<$t-Mp&?^?dpmfk%qzZT6svoCdv0xQ%|LW|dfJ$nm`EGl-Q6~EC@wB` zm6eqSpY!wcjfI7UAmpyEucMh!d~R)RxuvBg0~2FoW5&qHNZP2VsBk4EB}Pq6O+amJ ztt%}pH99*xZ7y(eaS>xPO2K3l?USjgDK|PgY77q#r+<y=>S|YBUT*MNU`8R=-`^i( z(#U2Q02><{!6qfXHG#pw!L-3di;9X2CSFxlW$;-m!=6#fK07;$u^9#cS!`}@&S0-7 zRWgBe!Snk1`i!!&GFMnwXb^Ve<KqVU%BrWQr_szX061G_XJ-xeir%Kg(}h-iW@g4# z0nnVBoPRX<J9B}Plam;mVF0YGtON%oVhW9(o*wUnO_E8MmzNEyfJkOkIxv_AK{&QK zwSCju+Z*grR!8Suyv<N@1Baz*sDXijAOtv(eS;x10ev0bhlhvJ%p4pX7;Hq9Fsw*d zSC`S=-tHX?DH71vdB?o6va*c$nqhF*j6y*74}YI@baVt}I2Lqx@9*zNGs8Uw$n~mj z*(-W$EiEnH!I1VS=~?F;^GeKc^6KCsyC?+cUHPW9wKYi7q-W*=+%_Yb(G``!%Jpn~ z1fZ#@$vdo$5)LJlDv`ttFj&PUSxoWV*x2YDLQUBdeN`fn&8WRZ8KL5mjjy++UbIgz zq<@5izA9+iPO&lL{>}_Fkq$1hm_neguFg9R4Glr|L|-)`9h%sf`HLZz61acM3|R~T zpbg|3LQUC|>wx+J|H}*y0<xImIoz!C1*@a%Nfn?Pk=|K+&1|KNz*x#mPs#{1ryg3D zG6K~pG2hgt%%BO~DKn!fBd`(K%(uQSZ+}9?9&bpSGu%e?1v;wJsL#|IrZE{`GrvM= zMkg()Ieee_(G`GI@>TkW?=!jrs6qIjt^j|O8TA0deKQ`Ykoy@OP4&$pH#BI=LU?7u z4Go$NzClN4T=?3|e*!WxGK~0{DJUo~h*#bA5Kyi384V3|WDI>7V_uQIJCl4x>mL^~ g^Sgb|`G-GW0hQCHM55icy8r+H07*qoM6N<$f`*q2#sB~S delta 847 zcmV-V1F-zM2;~NlBYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET6 z2T4RhRA_<in!ir-FcigqjuQu=4j>f?W>^?_0cIu^9)&02Wf);%MPgxPVnQ$>@kg|A z>Tf8voYct|p(YKXN2+pVB{{ynC-)}4g>GQJf2~4zWWOCET7UHnmWj19eZ|_DzGCf6 zUoj|Wf<^QE{2YL@voqp224FUuF`LciCmVw??bKNzggZvje66D>a(tJUmt0(2gs=TR z7G`#ReGNdK=X`yA0id-e&vO9hRGWyR2q`51aU7GTDF8|-PESt(m`o<cYg(UGhloRi z)9Dm|kB<-M{eN^iMQaUo7a1$@BuUuV*Z^QO8oBXuWP;9QS>{f*7fdFT)|`2IdII3? z?vB^jR{(Z)b~rvh24HV*&pk^@sml8dUuHG}S(Z7;`7*PKU>SIOd*lB89)R85UH13) zfw{zQZ*KuOIXQ8e&8jAZpfgrRT5IQk*4o`@nKFBMd4FL%9s{towdKasG<DhR`T3d6 z%}t<wA%`zBTcG^nShkl1rBtC9TL>Xs22)Bk;{2~OmdJktSf<Rz<1r5p4**Ch3(tlv z*xTFNjkt#|Gk+Cql*;z9Af@Es-~fQf$43{9(P+fs;o$;zo!nOb%xJAik_3RGqa#<{ z^E@vU>3=5N!<Si?2>>X(GFe1X<RX@)X)xoJv2vMJp^Cc>e@A9zX|*M@Duljl>$q!E zb63wy6++x~k{iCvEXpg;bpr719~aFkX{}Ob>!RtSk9Fq9Mbo$Y;!GXZGV3}rO*wzX z8$i=<slmytGJbuLSyS%8MMhAHPG}YS5}7*GW`8q#qtMOU##&~fLE{~(?6&a}?y$^k zD2;KpD37;{1-=H{!<U)g<@IgbV(0==O2_Bhc0M80I+G-c+q?4nB2voMTj&11S&}4f zr?YNB|BlR*QVS7*?z+wXj;3wQ)<q`h%=`O0Fz;j9Ez>N^TpO^9qA7$Z@K`54KR?}u zdPo_=m)X_T6)<lx_}>v$a$QFz&vV!HzPY(^_QEya$07WCc33hK#u%5|1L#}CswZj; Z{{Z32_U?un6?Fgr002ovPDHLkV1gcOk{kd4 diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on.9.png index 7207b2ece8b47c0aeb3a07a0c2867d417c01bd8a..fc7ba2aeb05646e1917d8e9e9e9d5a605ab5f37c 100644 GIT binary patch delta 1423 zcmV;A1#tS`2%rm)BYy>FNkl<Zc-rmSNpDkE6bEpiQiLF3*jJ(yC~9}zcGGXbs_Lez zZYotFa|nTWo~I->@r#Gpv17-xGZCU15hnqpwo;2)sok_{Kg;R+pO@ph0#u&ELl8UC zPfDWL_x|6z_uTt#eB#8L`JzK_w6S+tFHA2?FHA2?FU--LJb!uU)JZz^-b<X);BVyb zyF1Lt$Ozlp+oLB>p0I<11O6GB%_i;c?jA|Ad1$YxzUQI+ChZ^Wv4h9^YP*lw)2B~c z-%n0X{BNND{PNMGN379k(B|eQtJmvPsZ?00R63G!xlEO+rdF>|eZ9)oHfprKsoB_C zqpkZJZ2Q4|dVlz^!4UfN>C>$H!tCtquxhnR`Fx(G(`ia15-b*rbtE2-vqUmZsdSQM zR#KEJq}ggYLxqZ_SY4q~HP6bmBCT)KS)=hC4Gi?NR|+F{10hnW6jKz1B9RE2pP%nY zBobx|(Fny7QI^WaXkM9Q-wb|2UwwU%eLM0g#nX0HtbgRFQY*3T?JYWYet>mf7|ah? zUS6if#YKkB1cO25^ZE4gYXU((n+peNAvVvVNi#V^@3ZQIOSJ#f6;{}|L=OLlELT#f zP|mT9%{4lIVSv4$R6idEa|M#gB;C7rk0FG|<6$nBOBc6W<Mnx1aMni=C8UXeL0h|* z*)M-xr+;7n);#;;I@NYQV2SJ?t(LN^zFwmX7tgWo3nL{Ml}qMHAP`VH<YrE%Qx}&@ z<MFy#AmpWRG{};<FX`att4x9bg6;lrh2_d4lrLtO?l4#f0A*ArFUG!f&ThBs<Ip%= z4(9c{X*TR*ODi^7e|VMs`1>___UA|J``@lnWq<o)mM<%m&8JwkR@OIXj#ZdqvB*%x z=H})Y=8D7NU{<TOBX+xux!ex&1zjwx1SwmbW~=L;(OTm&%hx}reAUI0%L=74Nmj0u z^p)m9p}?@V%+Ag-%oVxP7K^1LR-2XC9cmztopB(UKN*EG`2<_aDx@UBEE<bYVkypw z#eagn9l)^)v%0#<qS0t;p~PH~;bJnGI$}0!EEcmG%EIhUYb%)B?;y`1Z@|e_59Y$N zq%1}m`qkgx&t55vY%UiT7Puq>=89b5nVFd*F_~0qC@@=0YACbDZXw$tyTeLukBbFE z0qzT+UuVyrW!)Dhm&-9Mma@OH*=()ha)0N}o!92>UAU{6`4@sp_4BLyI$69|R#x<d z$!4=G91gd(Ft{Vq=<VCL4TqpI641V^cj(udGiO-$hQW*5!^qH>nwm1)^z?Kq43-61 zyfc}MzA$)>0jw{w^Tk||t2Q|~X*dLuIf`XL);sj87bX-6wKkV1sWJp6CMFDb>wng* zRw>7_fW80@R&<5I3ji;c%_Sy28i4Wfal_&6NWsAtN_HZ>Fn|}!<`Pv*#`D<NnBg$g zq<W%#*@@^5BgadAzrVG)#Kf1YCTGz`LLezPXdiunrKP3r2}3UngFTrnT&Q9)1crx) z4L3SE+Nz#tU-pPNG3uHy&jrG*1b?sB+X{m!h6Z40XvlCFYEnJTW;6E%juZxO1gK&% zo^Rf~X*k>+sh-#c$Q}`AdEFZ(sRjX$8pfmsfeH0Zht(i3s5WM_AvFxzgc&uATMYtn z-C@*m3Ahrn*~1l*$vHSUXgIVZ`!wv&<Y*WNlieHUZ79uX=e3mP_UD-wJ%0k=E*Z7; zZ-1VVM*y_n@gu;o3L|F#?dN8ALm6_No@nZUcH}~$efg)C?gI@R%R>8|X+O}wVS~}o zj;wL*kInecL|<PY>%K5IZrorPuky5q24t`FCJr>vjs!#d5)A#)_1T%;=gr=tFz?#u doL~6$4_{K(25T#v1ONa400>D%PDHLkV1hKA%u)aV delta 1099 zcmV-R1ho603*QKkBYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET7 z0ZBwbRA_<inn7>lL>Pvjnen*0DHK?QxUH582c#}s_y=%cIg|r8enb!ajpavh<J<#> z_EdfV$6X0&ZwQ2-RVCuIjy*FR#xr#sCw0;^32tAh^2BlSeShz~?|h$~DXa&s`nywz zTCo2+gxquntHcADZN&qbZAGuhB%2B>#PuMKn{c&*^Do?-CekZqTASwK;UNGA2L~jH z7tdOYwbozk9B$qebqQQork0JU-Vj0{t2QWv#5o`P=;(--FMsGx=H%oA0AmbSS62X( zWr;B+61yD{5r5mYlma2I2?UZt$Vf&?MXFN(wAQ?M@ijoqEudF6Yb^ld@fd(C%gFOQ zo-4}|SYDZEAqh(Pc~pr+CH}lrazYtFu$iJLyfTBwyJ+pxZV1y(rYH&k@;r}Z@;tva z87V{3f<!BSQYkJj-T?6W)z4(3KLOa=d&Z~FzwzU@K7XPpMU~q)+H&gqm&$5O(W*>P zpeTxHxw_3lA?S>1B7-uCmY{rSGyaR=<xc>7@s;9(51#<=$M5I7`Rzvl27~W$?roo& zDQi}o>^rSwf{n_uj0DQEjP_g9W+Aw%)`^e~WkW`<dH$IO;OVn8Uc0xKkfz?^=YPLq zcjt3Y-hbM-_L}Iw&0M^7a5KltpzXT`1Iat@`eIO@aH-(EC;t59zX{IX9P>sp!BX`* zfQ74Buvyicg#=Ujbtl{>oS*#)z@tYNo%)OO+;R3#T7CTE>xOO2%*pJ(&FTt-S!j-z zg7dR(1QgPLS2o;5pM49!DEo!S1K(#x!>3@s1b^Ui1WJUQT&!SCf!4ZaqV0`^!oRp0 z<y^S;0T}FlN0IrIN>eh<ef4y<L??dzSYv0dpZ?oy<prRE2==f7TlE=ZEM?&rca~jp z{bV3e(x;asDZ*9C)NHmenbnr&kf@96$69Zl>Wv99Np%A%FjzI6M-%tQW=(6|)@E%G z0)I@<quw;7jOryS=@ffzX<qf3Sp-hH_@rq}w@3E=+bp0t1Gg;zi=ZB(Yw@}94q#I@ zYv$2~%>A<2D*MbLSSI$|(p(>J3z>O%u-Uqm=^At6cL4J+>$z$cdS|nl`fZENy2kFE zGJ=LWZL_c~%FM%!+kg)?+Ys7IbL}{5e1F$iCU(2c>OV|XW6?Z+$C!%OA$I?5CZ&wW z`dBHow#1ZDF<yNf@@d0dGFof2_IoGw4JM`3omI53_adc?v9;E53xD2(-XEK#X*#6{ ztmj6vuFTHP4r!WB<j{szGQ;5z@cWoyx49^axDB|DrYVG&h!aSRMx(ej*+l<sc0_!9 z48Z>W{={=cu-v+pF~-DQ@6*%MIG*}Ub?n1`&-Tk^!Z|l{U!Cn!Y<8l~@gF@<GKdtI R*hK&U002ovPDHLkV1oBcC$s<n diff --git a/java/res/drawable-hdpi/btn_keyboard_key_fulltrans_normal.9.png b/java/res/drawable-hdpi/btn_keyboard_key_fulltrans_normal.9.png index a524168c9cf150925552f4b37c776d5808b82ab9..1163290163635942cf7a80e3b39bcd524294e20e 100644 GIT binary patch literal 1785 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 Kh|fJQME*aP=Am=| delta 1352 zcmV-O1-JV74cZEjBYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET7 z{7FPXRA_<in!j!vM-aw;`{xc6VmLqyq)MGM2~r6Tkjj-GA+O>`@T&xHnZ^$gATC`d zb*ccWtO(-$*-62j)!gxpq9jsONPmF9Ay0QV-_5tPdov4<1AobXpYa)=@r2-v{YC!# z5%@0Ki^p|mD_jGAX8R-XuO9FRac576#(o9x=FOW|FJHd=5@4}dB%lZI-Y4(9WE-`e zbK=}hfUUg=BC=+Sh)XFsfRqx(_CNr*zP|P!K79Bd;O*PDUje^Ok@*(j{QUg+)z#G% zz^6~28t0sn5r0EQ3>lnr)?RaV4CkCBfQUG?4FOBciAVqlA=KyR=g+OrildcT1h~As zY}&T%0YoH`XYLI$8${-=$dM^_N(q3Jl8j`Q@;&;l>zWDw#eN9@%jGh4T_^b>NWN1h zK(@;`QBn^fLw;acPQ|vw?ER7+$UZBMR%QX9ZCh#ER)3$4KBz%t>_B%b+&Ma<Y*rG$ zjO2=xz4szFCl4aCkxbWhVq_-fg3J-H_Bf->9W%}qV)j8=GBHNG0zWaCHBD0@lTxyg z0oEo;xzE72Fo7uvKtyaZD2XQfv$f1p(=<tK%^Y(n*vjpp7)#HLCDHMkQcBLb)5>NM zplO=4Tz@V#GSc_`ZELVy%rleUt>i)oDl;1y>;Gn%HBFQHzSk3HGuRFxGLf<Y2_cl< zLI|fNGY`<VZKsi0E|-JIC~{QxRc$E~sJ(|q25>RPTV>_}x~`+^I>t6kkCQz>ukEJZ zc|r)*r-8DLTV{RVmkic*o#+bMVo!sA02!yb9DlJGWATqsFxIkJ-}i-pC3a|NChfY; z`gB6sEWhE|$msF=L};wX`$oCEW?28YO=c;j62?qsEj8Z(yOO9l=gOEiWKKwCB9hF~ zJDI0&Q0VGiM0_r^z&0||6G!?yD9kH#IyspISWQ;SJlhXR06T+-lx(|oLBsy@6O);J zz<(zyGxLTg6KkY{V8*A-GRr3b!`juMVPs~1K5m%_t2NY`%=G(#d>f;bo#teAbdk}O zt+Ff?!~6uEL}W}fPPEpXQ3`)Nk;s^uo%LrnHG4g2R3M)uv#&b9T)r7KfhS+ij$3AP zEpm9As*Ht=(u_}=R{*w?96}f@G)H9iT7S`mAsH>4XEFny6~`^J5Q5~sAt8jpYG5iE z>{5E;`m*T)l*q&wMQv`AnI&VJp%eX?y~xZGu>Be9(;S)OmRXFE7*{{nb!|8N%r#~A z(xAn30Yn57nc^R}O`26zNmW(lwRuElZQ|NNh8xJrHf4=n#*FoklbSSRjMQ}vtbd+} zmTK(|jfp*G4@m}t2v}*^9U9s>tLyqsGDBM$V)n1t$!bf<ZOdemfUI@}s@$F4JIid~ z^W>NRJJupo*LB%W=)Et6gz>)2eQ%zV;TA_Rk#Tih>y0+oniq?O_xa4WZM{|!z4xO1 z_q?k~35&a7v2~grrDL+w1H12gt$$)VZD~|h<?Fgu5=T2}IvW`WaCUYUtE%c@)!5NY z6GBK+%W%8fi5)~{YWHm4_ue_D%dHr1(%Il<mdr<hckkZ)@cQ-ZzW`pmcyS4I>a>yB zV9ea-oyRWk)#=eV8OTh1y|}n|_Wu2Q-2(j4Uh|k_HVD(t`STaxr))oaTtRoX!X@xW zwtoeF*8`SJoj<<;zRq^V(?bjVlkL9&-Q#?`GMmDasF@jT^!Gnn-#WT0esVSd0000< KMNUMnLSTZcMwglZ diff --git a/java/res/drawable-hdpi/btn_keyboard_key_fulltrans_pressed.9.png b/java/res/drawable-hdpi/btn_keyboard_key_fulltrans_pressed.9.png index 4395e978a447ec0d25879575330f5685efe870ae..207c90d6ce9942bae42f46221d1f0c6cde748682 100644 GIT binary patch literal 1701 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 delta 1297 zcmV+s1@8K#4WkN>BYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET7 z#Ysd#RA_<iT0L*%HV}P7YJ)S9%0SZOfa@-0x<!Cg`2%kAXI%QX7)Wd6F9ZnOU77x> z3*f>?;LR<`NnsBC#FbY2eGAD07#h)9?Yy1G;cz&>X+-nitAD)8tDKPt>0jsTj{tti z`kT|5vym(S{FU_&0RFXqxG!SPk)$F07XY}qxw)Fp=WhYv;^M-INCE&6QRkkqJLgp7 z*{LGJ`ql=hDpb{UF+HUuDJ33v0Pytml<x2EKLWt@_4OTq-@CxP2Y~r}{w{>@82}z1 zAOABj&N+3?X@AxsB5D9w-w}+|dP)f?CDRKS5ozZ0`8&4RWVAGE0AR6LgcxJWV`{(p zfM<~PtylR>A<a67W-ywilwi*QNFjvKVZZW?2Y}^rsWC?TU`azVm|`^P_S~*CQ{<?s zsz@mrFfl!YDmK};*=#aent1>SAr#NNc=nlE?2RgdNq^RNq8aHN*;+I+5fLTIwLH@Y z#$LiS>zgOQ0cl2Hlp<Tpjy^Ecp;=0){0Kbh?LJ?5Y-<B7keSZ3<6yv1bt{^M5EzUZ zt(D<BQ)?YCo~Jy2?0eRM87<8kpm-($K#Z}(^bXJPd-h6aK-oL}>MhS0#l80lFHT_l zS7{bw)PLo2sRYIn%|0M}zso*f7(fjq>*_L^l#<dCFb$eH00<!@3ji_3M5#lO4m#~q zc`55mYp`;bb1vm^F&&jNR>0&0PXQo=P*&eH^WhLBBzs5am++hs5v7cv1!mkdODS<W zgD#pKQPzEz06>h9ZR(|&2cE%D>Ro`f-g>}=vVTvy0$gn$CKb(iSI6lLOUKaBg^C-! z0bqq@{BYLKqTp@RuC~w<q8Vu4pEpQn;TcZZ@DlZgX~xwO9A;76Td1}+y)8hOXU>IX zsBGG7r)i(1cbo^B7h!uQL^A-9%RM-s0KnJHXr`)>9{wV${eUp@$4xWa=^0A)%GuG( zZh!N2+@7(`$x3KG#lB@z>8SvX+cPE}SUHwZ+2NSt*wR-wTgjS51bo~_wdPaU*(td? zBiSadtWKjkQ)pII+>yumbElwQ>qO1i!bkNO$^e{m@ZOgi0Qw_a0kkg#t2M-4*2+St zaL(sM6N+XTxn_Oc3E8ncvocl(0Amh@Xn*FtN7IyHKA&kVTwMV6IG^GBQg^P-XA}UM zrh)eb!^CLTG!5@G0jzW{9gJcuHMPhy<$$(nnvH1YGMLseM%MxDKwH+PVY~B8hN)E@ z(Au0~noVfYq{)xm4^RR?&%#wlx|Ips@toF_BE8hdtly0HRaJl*rkQ<^n;1AJs((8H zyFg)>Zd_<AK&WWn(%Fv5(aZtBY&H{{Z2YU`uBJiC?IL~DqPE8JtcXa{H0G)GwdUDu zCf<8{p#xEl8csXgwd{UF09|0XFSFI7iI**kST=wWFPg%h5dfIYW?of`UwP8grmfZD zc*s^@YM7I%d)B<*Ma1;h7c!U+0Do|Md;9&>)z#ksaCv#T5D|-VEilwFHJG#YfiQzi z&!=JqfPslImR8`0hle+JcX!{i%_d`_S<6j7=j*Qke#-hcr!{9I`3JzCS^o{dANCIh z^HsjS1@K+gXGb?}dszbbl=Y7QKHEP=OS3LHx0=~nd;bS1nZd}U8NJp3015yANkvXX Hu0mjfuHkjR diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_normal.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_normal.9.png index 9d85c7b742b7fdcb8642cdf3484a0edd241275bd..005c4e49809af765ae60e11a2b9219af29f03c90 100644 GIT binary patch delta 480 zcmV<60U!Rr1Nj4xBYy$FNkl<Zc-rlnxr#zT5JgQC{U!YnH8D_3-S>UpMG!F&LG(j= zxW$w(I574EdZqipNgllRo}g|SbRh7W$9(hBANypyjF<5;UdGFKnb*stQYqnbxtQDS zM#1%Z71HVSpF%%go=zv>cs!cJ;Xnbhfb;omLZOi0p3Hu~7k}34H66$miA02_WOloq zuv{+9YPF&OSpagmE3@5hh53AL7K;T1$O4e-Uox}V?0(3*K^CytY#f%+=9o+-W;&fx zfGhy>V<n@*HX4o0cs!;6Speq8T^VhV;c$3A<lP_(!2DRr=&<$seKQygC_ol~`Egf9 z8$=Ia!dgaauz%O<(Scm<%4mahIvqNY%SuLTu-$Icfn4s&XdSj%Ejo}Z91aUl$>^{( z8Vx#-%gfa3bvnA;uAK}%0JU0;4%D-|GP<Cu)hZpRXDb=)^h%{d2kO}wnTMCUpvvVk z9nEIb9hnCqd;m(N5*=8aRx-M6i^U=xSe)+4=wF9Ip;<r&7N?i-GG4~Z*vaJc`OlZh z<#Iwcn>CqCh5}>($Q29*1@~m4(WsC}BuqRWry!Y33b9zs?(U4gqD3V0Y4@CeeZBw& WiZ0%ns}~{w0000<MNUMnLSTZ@Y3O<Y delta 423 zcmV;Y0a*U|1Hc22BYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET4 zVo5|nRA_<ino-JwFc5?%TJRPg#)J6onFP<`0eto<L8D0@`~z+OB-m2ZP1p}ak)Si| zYyw6g4(9K;6!Gw~)Dgw66?_vmLlrhd6*fbatjstU&9-d;0Dn!>pe)PSnw%JONF2uz z!!S6<IL-8Z4**a~L2G@T!Z#?2BSckIq3b#Tz`Cx_W1_3NkelnKlo9~2EK5`|XV|vQ z8-1slecu59T5AX)TtlK`d&X*Wk$=o=(^ITWXhL$Dd3^u{td@`_j@d8xIA*Du$v<Xi znk_bGG;z$R5`T=@>os+f=@|<znvZ8nyuE00%m|QVWqi7_>Y4mwW}zB0A4&F%kNjhn zYGtxAlU>aIS>?(Q;D%#c<H>HSmEj41DqI<=uo<eb8L9-$P@K&|1h>wmlw`gG*q<7- z*4`cGtYYS@%rs2^fV!^9M9o%ao@XefoMUqOdp56_2_R!kXm^ZS#r#5z!5w^96<Zes R-7o+E002ovPDHLkV1n-8x{d$< diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_popup_selected.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_popup_selected.9.png index 77e17dbaef701da8f1461bb076ecee7643f461a5..9a07acd914f74b321f905f450461dd5878ad332e 100644 GIT binary patch delta 274 zcmX@gyq0N#O8pm47srr_TW@b!a~*P!aD6zjAu0K(lg=8QScj<c1Z~bRy;G;cICjWr z`>HoyER;)8v6CvDWGU{q`~iDo#2=?WX_t;jB<p;dTRice)r=H}&}EBax_7R67<<jJ z$8kv`W861}PX?`?>z3`hb$`PC>0e4_&t$*l*0}NflHW-l61OYrUnKUOH+bi)sFbs~ zvE8zfk(rH0!XV*50}?~csE6fnG8<gtnX`{}pVXowJ8sW>>LM<*V*ZOOzWs+&lCF1X z7H<sL`qIUF?vzsbVE3zXJGB<b*X^9%x!3kfb@jCq63IQanVXjGjAaaYHdXcnUyCUN QHv<EMr>mdKI;Vst04N!EeE<Le delta 427 zcmZ3>bd-65N<B-llV=DA5Y%v_bTBY5a29w(7Bet#cY-jZ`N`9385kJTJzX3_G8*5` zGW22&6lmL@qM9Hq@I@kNwZMiA*NwJDaE38nJa&wE%@c-i+o~A2Cto_oUBRU7UD|u} zT;9Db4~H{ppZ?fK+&kml_0y<-!)d-NhfnA!wg~+1K34y|_qyEg11p!#tvWr^EA6$w z4wj7NciQ7KuEk!o(X>vMW!w=Ppu0a&|HZis)gKGOS;YB&-l|`-epRH(x6Sk49{5?d zvzF=cVzIY|zc&~}?mpFg=Hc3hzqD-Rr@!>JPCfkSl%aRmfyFKdZ>Ou~wt9vf_c4l_ z*b}buSoCCtD~MT-#D*}Jdb+%SzWDW-{_W|fy-MbGvO!e>Wv6DO8twLwdi=33RcY0^ z7GWvp=<@z;pC0@=d47xA>1XbI=GwQL4LH-&cZuCQvwe;I(*<*j(m!gfN;b<}vyoe* z*jcuTaUtvHyw?mbm|0>QJLLW=su)Qswsf>aem{2a-|pqtezUgRFpt>vzI_)kDi}On L{an^LB{Ts5TsX!F diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_pressed.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_pressed.9.png index a409639e7a07101fc0aa45b3f05f71a2921cb65d..be420a7af2d8cda0fd6702561d8f6528fcb3a148 100644 GIT binary patch delta 813 zcmV+|1JeA71;YlABYy)5Nkl<Zc-rln+fHIZ5Ji2{2mM6CpYX&VsPP9R_@sz8E((eY z;{8HU!ON%gWL0LHa^hs>m^7nv4#`T454CG`cl9|WOifMZ6Miz$u<uMJlgVT<nM@{= z$xL3RP$(GV@i@G`zJAEd%S#k~m-qbqY!r*dKMKA3=i}p}F@GA3-u`}gcnJ6R_r`EI zj1D<uf_j0cr>8J8Gh?JrMg<3hLAblSGj48f!u9pFadmYS9dgJ7^#JrWH#cYel?)Q# z8^64~4Cm+P#@X3fbjTqSBnR}BUYXn5TZ1AO7Z(Nrr>Cbzzu%7zIT9mZi%MUKWV8x? z7YOL}dPcX~4S&bS$5Eg*kaKc!Vj!kdL0{>W(UwX=A__V>I*N{jfP5_~eI=67oKQro z!>TE$)9FNq9PO5bfW9&rB(&8OKRi4%4h{~YLykXkT2$sHk&MnK5?UQEvA@3`+U<4} zs14+3m;A**U$e8bM*3v*aP&79MHNJ7tJR8vm(t?-`G29WL^2vSKkO7&;NIR|*xlWY z0=2=5=|TYJCcQGcIsBYZR6&F`o6RVADJ`CEH~551&**d*_O{V#A<;CN%|>W6>QSIJ zkV7VrPcP8xbyF;(YtYXLTi<9jjC#EuYPDJvs14-k$dRv`lpF2SGMW?4vw{fS+1ZJL zm(m=OuYb#cOCY^6dO-ObjBQsCq1)TrQSeea);emCSVnicW(8O&1rfTnwG{;~rIWz! zWHO+qzQ4gJuE5RB&9Jet5d~@kIa)k_v(Z-~89nv=(6d?!BD7kqM!`#Im;7ZwU#XD^ znap=NW_oqd-~+`KxW2v~DwRqUs14+3@%+t3Uw@g*e<7pyAk7MJjuk}c+S*zayp-lg za|87CDH-06CM_d=mC<`)x@9yo{(bDL%uHgL>~-d=%jg@Xr2ges0DVbJETdIgU0n?; zD=S91Tn?pD$yi=qjt)6w0{Qd;?AY}5w2?lUTrOuUE-t=fVPWBo`T6-M_za)Dw6tX8 r^CtOZzn#f`qV<JjzT5AdKm7av8ljRpwsGnV00000NkvXXu0mjf2B(fT delta 625 zcmV-%0*?K|28jibBYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET5 zD@jB_RA_<iSzXS;AP^j|_B0;A%Xkyxb$sw5UcqDd=3n7^Q0l_BV2y>=wUZb&B)B`> zVc7ss2KMpG3PqfKJCq(ef<7^k87n3-W5q;ftPn+pJv29)4SxV&wOXO7Dt4i@dCpm- z6gzK>0RU{bTddb>e(huQB0C%o?H{|Kt+k$=8%n8`7`3(5SS%I*fYa&Ztq~<NRzpqG z0Jx{tWr5nIGo$tMo6lx5%;$3e|1-mqar(U7ZXN+QUy6()VT|!47lVA6(F{0y2$?xQ zT5B&$F(k<}O@HI<8A>vDX{LLI`ulB}ahpD@Y`H+CMd!LmJSnqSY0gQ8f|FFrw|tp7 zgy}6=&8UxFWELKjC97F@P<HVxUuH3BadruWl8Yfph8~nd9-3jF7Q-a7A!OFYU!*j< zpbe}wjGdE=YDe|BJ-+)!YsVm8X2#fd<m|i!fR4_`^M6Ie#lRui0RXS}PfonseaM#? z_Z7yHnG{A{n%`|~<;#p~VTNdD=p2nBhOd#?&s8%G8PDbbgk`3}y|eSO6T4~}vH*m! zaS)XmQDnZRG>3B>Uf!FPM(l#TODytb7P}!yJty>qPkblIgg5cjE>W7DfBM)&V+tW( zW)9(3;A&p7`o^owq`;Cn9*+R-ug#as1;DVc%}OcMbqxTh>l)YVm0crWX1m=E0I*yx zz4@+(*C&YeWG+kl{T}D@nP2N-%Mw{(h?1GI)}{`mv1KeCsI~Y5vx#|&snbL100000 LNkvXXu0mjfQuiXL diff --git a/java/res/drawable-hdpi/btn_keyboard_key_normal.9.png b/java/res/drawable-hdpi/btn_keyboard_key_normal.9.png index 6ec7e6592306d9c3f6948fff2ebd154956097f5b..3e25180f085f4546ca6464ce2e9ceb52512dd7e5 100644 GIT binary patch delta 1114 zcmV-g1f~0k2kr=vBYy-nNkl<Zc-rlo*G}Y06h(O^=O7U20se!WbIv*EC<F+^k9)LA zcUy&VxoK$kHJFyxXh!O(vv-A4u?q_F^YQ*8{!eFTr}xwOGxKLA-)1^GIt;C?tzJ`8 zlcBM(F_EAV(EIz%G&eUJW@cu*$Hzy*%gc-R{QPWqdV2cbAbνPv&@o1UIFpw}|v z`DPj#8Vql5Z@!tkyF2gt`Z^Jy1<-{?KyP}?(5$z&w}y+03-9#wG!dW$(53F@G*e$+ zZ+Lik@GdVe4adjF-r?b4B0vkE3ypx@^q9H7zxU41&kaXMN8bMazR$tIL0++AqXp1~ zMsS*`tE)56Cx6vXDR6IZFA>Nfx-_QIn;tVaH#gqN$%%pH-Pzem1nO?+LL)fM)YjG- z$mtqvySuyI_V%{V*49=eo12?i6IGra8!dn?%{}N%kD05hD?c4l$i~LT2iDiuovf{` zeTt|uAQ)4o(1k{DnyIO&F)+)je^PS_zPh^Vv$C=h%760m@|OrJ%Z^8UwIsT<8bEJ) z%$%K_`TdhZ6mV&2$!BqK@f`~b3*RDG9@z1SuS!K18X=<@2ABpQg(%?s{JhWH+}t~6 zXJ@}fuspEi5nq*xE+wdRn5nL=HjpipQD|;ED7#Rh-CnM-W7x6P{m`Xsi{3~x3@{Bm zYG`U|>VE^1lasL%jHwnwml9OE%#bbAKWXZTiHQ%4kB`SrFs8a5x|D65W~!>H49v3X zpVY|M*w_a~M@M5P7*j1oGSF%Oz3DN-EUW%W^Nx&+gfcul91E^^>Tc-LY9ON-QlI)K zH8M0blnB&9=+e}Y4l|XNl?GCuCNP?JU|=8-sDHbmOH&7WBh9d4Rj#KG_xJZF0*xtj zX=R-bGZhsT1|}t$p|AG!^(6w09dv0@NAI`I^!E0~&Yv0n;2-7X<p$f#;NW1^26}pW zK1H_1&;qs@^!{oy1yN?cD>_?T@zQIitgOtym$ax0nh6Wu-QArtqKwH5x?~2uUosP? ziGL_VGWBOBYRqI~rmL&V$!E=E8Z%BarKP2Ys7W)fR?3tJT$3hx(_@C!sP@~zRdc2# zO)gTg9V2Yjj4rL3on}f(N({D{;N~oBX`aiKaj@*L&6#Zmz3DPzZ=01xY+PI0uWY)a zw#s%)d)u7ROmT6s!8XJBmFs{Z%w#Tb#edUznr#NX=`mxU&P18XH?|p_&V0&@eQp-l z$z`_K=Vs|LQ&d!B;1X1~Ra`CDXUnd0;JC2QpLNxNE?w55H_{C6RJ2^+KiU^eVHZzv zVqZL|g3+b-H0d(K12x@DaX9UIz>sfrSdK0|q;s0l@hq!YeVMmi`g_!qLw)C~WK(+5 zC@sKCK&`ejo;CjpGc7GG2JSqRrV9%T69-*O6_4J?-vYF^xBE}&lS*4#n<3*58-BbQ g$M3^_0`ETm05iD-O_xD1NdN!<07*qoM6N<$g4zo)LI3~& delta 882 zcmV-&1C9Ld2#5!eBYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET6 zDoI2^RA_<iTFVlmFc9nkjCk-nxarORKY8(}7yrX56@~1<O?HS02`G<>+f`Ok5W-Bl zGl`RdloBIA{{0R20V$CY5sIQ1#Ul*p5D`%_ROeIRzcX`1rhhI}ASlZc&*!soZ*EvD z761St1c*rAkCU0(?FInY?RF@N;`K1gP}enpX;~s7BuS#LkH;eb;BYu#wOZ+R+L_1W z0RY%+Hn`vK0D$ZDimIwcGrA3FngV!9Y`fh80QUQR!<jf`rcjn8%CZFTVry>9NGThW zo<Y7vv#P3eG=F<M9(vA94P^%rA<JH7oAWqsnbmdOh+v!<2fc%VkG%Rex6j0z%y{Fv zt{WXr8J@XKuH_<bnMo<N$EM7tgpwJz&%~R|c;l`z>m$RqdB~q}X>nUQ;+GkpY_>(S zje$^he38-h+*AvPH=5ZZhpV%`(avT#zehyY(EM96<A0u4Ri$Ot#>}VdPY5$M`%Jt! z!yTBTGu$Q<amtJb0Oh$E&BoZ;xEN8_RaH3yK=7R57-NrSN-t!i8K=w?T<Z+S6wLT+ z0y-?398)^eHfQ3O8INWzN{5bSX8)aJ#$O6~aVWS3Da58YWoG+BHU%>-*pe*XMbm6N zmy-b3zkgqjxMgPUzvjjazxK+kYsW*OPr@-enMuGt+I_bC-%4nhsac<WK!nT?T8a(6 zor&?iZ(}U<ThTECpnqQMn~}|&8$OnL&ly`r=G!6q({IEnGY(fCtIH_0wGCYmefcyK z);Yspbm^AgcfA{mF1cpY4vx5G#z(<5BCe?Ojeo-?UlPz|6VOv;ymMbD?SfFp6n;x) zfS+m?8$+IHhP3Y`Ggp}YM$v;$)*QbjvriVZvEYqnw#IGIY;16wT!>R<YBISN&6c9I z!4P5-$D7QA5RKC^en2~=GpZ6$2mv94wS7!7BP%nCfh@~rSEDI}&_&uNv@^@)5&&>M zpKEnpbDrncIsg-&%FnlR;4({+1gF!fVY5O^G6MlXQ4~^DoL?>%U8Fsi;|vZW(u}Ov zYvg$j063q|^d_@3O?4^oT*0f)IpUI;XZ@JRdB#7u4V4mq0Be5FZuxOJ+W-In07*qo IM6N<$g0rKUlK=n! diff --git a/java/res/drawable-hdpi/btn_keyboard_key_normal_off.9.png b/java/res/drawable-hdpi/btn_keyboard_key_normal_off.9.png index 995780cbfbee7f1038fcda56dc88857441401b05..bad360f77321cfdcaa83f8d048c042293d4aee7f 100644 GIT binary patch delta 1224 zcmV;(1ULJ%2-^veBYy;<Nkl<Zc-rloS5F&T6oq-F_aYGO0bY3n1P_Q_Lhrrz-h~JP z@yF-t+q%m-89ZZ5Y%m!tebL03%wB6w+ow1y>vKNd|D^xZ+}!MacYe(LnE7loO-)Tk zeSN)GQ&VG9S662wXaw~B`(|ouYmJ$i8SnA&(RhA-_MV=ejDO$1e}5UoM+>~Xym-^o z(*}ASGhWP0RaKSo`uZ9(b9Z;=U0+{k1ZV+tp%Ks<9WxZ`?d`2`adF|Do}Oj|XaRJo z`URS)tgJL19v-~Q%S+?<_}Du<Jj@8t0_Z{`pf@^Z?(grt^Ye4#=;+AX-`|fhK0a=A zc6NF#EiDGu`hWi5;2@>AvC#tPLL&s4si>$hsFSLvJaBJs&lnpU^V-_ljK01;Z)9Y| z;9B2vkM2)3GKem<Y4k?N%+1Y>cXD!KP`o=kJ4RPmmp3>#XpD}I{(-*d9^Id6RNc^p zMhG-hUS4j{r>n8;?(TZq+uKHad%HJ0JZz{`#L&=?L4WCNZf+*U*49=aiVbK1bZP8C zZ*<IDU0ubxLmslRv0)4h40!$h{f5K~+70k;Yin!oVtsu*6vY)Xg)THgpqa9=GJ{c8 z^^-TJ;B#|x)(t~XPfyGM*Bu=l21)Aj@^aFwtgO6Yb#*lc@l}%OQZ|6z=$JV>JB!s% z9-@F0@qfa?g3;UC>$SGF8km`%pEn4mdy-*saq$gHOG`0`ua}B0G(ti%G%z(l9-@GV zRsE&E*8{m$J)fPO{ScJ8AH5(TzFsQ2)ImkVOlfJUL2n^(6t^3cHX$_IOEqo`H@2!D zy42gEH`ELbObw4WG&ME#hRMmvwBwJd5<{0dsDEggp|?=|q^Kt*Cf=ZwKb`nvs_LOj zy=|bGl9CdGE?D)GH$o=t$De4X1Ak1F5S@Xt0rW=43<IC)C&l~g*RQzvlg(5S6i?L+ zUCIU$nxX4c{p5`(Q~qjHLg>=a5e+lN#l;3)p9V0BSF^~kM%4{n8amJ$YKDweeLZ!U zd4EhMpf-grW!BL!Q&d!BFeu3kbyc&=uSRVLT^iKU``2bPF-s>uX841@6c!d5t{E09 zk~P3A^gSeNOp7P38T9_sX0pP}{H^F@35pk8GX(_&1~)0G^P7nmoYk3B5oSzg&?PhI z{g9b-ng}x_Q$J?H+DtNLy1Tmrd9Rs7ZGR@vOn!d85jJS1tCSLT1VMu)dZS~8Y*h1Y zf7YBRrAb9s?8b<fHKR*ebD){Lygb7-<DZ<xOU+Z68T+3dZ*u0EL2tCoxYK6;E*S(( zZ9g*U3Y#jsG2Ll%LNmF!xrS?o^{b!-hIl4ZK~Oxcr@3a(8yz$5>P(oK&&D;Q)qk0H znQ_<6(zSA#Ebh8lw9Mq><QQy%YPX851$S*ZXdO6Rxa-f_>Ohw^Ytb8OhI1-P7x<6v z22;F^r*z_OJn03aOXq2#WrhQ4+L>Z;I^KbUuRx3C=+Z&DKr>pNC5zR~obA$e*pWls z^HCBVX_OY=B%reGglo<Jgqga!IzfXy4|UVo+1VKfRZA}(y`jGaXl!hZ9i`7y8X6jm mgg<Qf_GSWpANC#i<MSV2Md=B3rot@%0000<MNUMnLSTZQ6<HDh delta 1056 zcmV+*1mFAH3A6~1BYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET6 z)=5M`RA_<inom#iKoG`%3$-AzU}9n<@o3VU-u(V2FCO*67cgk_(lh~zZQld$u0!e4 zA{Ls}Cn4D^yW9Em%*=MX<ay2kkpKTR_kcXdQ%Vtr;XyQ_L4SpmQmWI`;>W<BGHr#Y z8#)mrNy6vn=UQLeaB^}2fbaV#rA)t@o|(_*0Nmf-6NcgHPtPOEGT^vgQcBV3bWHo{ z=?Q?x$45?2Pt7=^%yPK|;P&>G#bN=#Y&IiJ(}M}U4c%@RSW)cm?hb&5hle#~+@zUC zk|ZQa0<65%Hh<6LdA=6(0{KQZOViY3v*mJWV&>S;aww(nyp`C+ICh(6S(dG3FzK1; zbPB-7#|Lp718{bB#>K@20ORraM}?D?*VK~o6|q4xIXKHQ(?6X~d3$>UAP53RqY<!* zvDepEv&Plc)sHHqA!V|a3%6;O=ef~X(kzN1&d<+*uYc_XK)>HNnI?)NE-x<|5meJm z%2&h&&E#N7v&CY;U@$QKWe=Lq=R2ozOPbyIPf|<DD&aoOWUy&V4~Iije>AN$bpLQT ztnHa?9@+N4WJ?j1*-W=bqY*DJF97s<J+tx4vdnB!$K&z0b_`{L%RZ%4X=?smG?SXA zX=*GT1b+e7*Vh2NzrPbj5wI$nx_>YjFq_SG7NU-4%H*q5Mk*lNaU7fN_RY-=zV8F8 zqNx?oyMiW_kunwGCe365(3;COd|5t@<Hp`RZ649>G)=7upmxki9O4zaNWD56O*d(# zVXHF|$M8&*Ot3@IlsKj`+hWFjn#pWtb7|Artbe%vPBfE~>P&13HY3%M$xWJ-y^tNl zGd7eRvQ!q$;^4M?2`Dpm5pL5=YTZW9$aW>oc3rqBRJ~T0!8w}cP;Tuq*H)qKxGKvR zk7ldn0|z~$*mBvxX6b$7#x}pqV|Ab9oM(V~@ll7j`=A&bRbKjb%oHa!QG@n<hMP2# zuz#In?P8^EW9t^gs`IoWN@GS&wDDH<+ve8AE@#a}IV9YsnY4n<BDSpaorGXJAG5V> zGQl@#CKs<trMsZ6Vj91TW>D>Fn>T)fW>x?Fcs8@8>3wOoZH+&g?NiVWh01JJHh5b$ zJ2a$BHn>SM9Za^Ox#iMYW2hsO#0JfL-+y2GTBh5_Rz_c>@O|HW94^8onyFIHXb*Uv z*Sb5JzVENys**6u^m;u2CX<P|*WB;-*Jx(LzVxfwIY^pyIvt*$pVws8aEWFpfG`Ym zeVHeYV{=KnEuS+alv2hcK@iaI_W_tpCTfFb-EP-hxoRuq?Q;pYXjV}_+VMT(3mJAn a^PGPLi2Y2%c#xI=0000<MNUMnLSTZ_84iE| diff --git a/java/res/drawable-hdpi/btn_keyboard_key_normal_off_stone.9.png b/java/res/drawable-hdpi/btn_keyboard_key_normal_off_stone.9.png index 1388b669450154bff5a418cf1a11484849ce74b2..cdd6c8b799ef2555920d6515e2b2b55057ce2ed5 100644 GIT binary patch literal 2389 zcmV-b399yqP)<h;3K|Lk000e1NJLTq001%o002Y?1^@s6!$f9n000RbNkl<Zc-rlo z*RNH_6~=9_jg5_*U^|MCuq8W|BA&P)>^Ccl65>C=4|&TI5<-BCKqxN=Lhrrz-h1!8 z_uhMl_sBT0HJ;ySzN2-=d!Kv8625-mNS`hj&Yt!CX4cG}S$p%^YcJ>HUV>hIUVUDD zUVUo+y#5<i^-qTm9sbs?UAsf=+qeJjw<J7yeeEqasR_tmwA|~5ef#z~Y5)HHK?e>T za0d?_3_tmuf7`ovuiLX{Ptfk&yX$G!u3bOV&Ye5!X~&KoH3?51WTm&*G)h2)_nFuI z1^+*K^r$;|@}xU;>QvC_)2D;ZoH^spo;~Z%ojVtP^1J>`-{rbgCr+HG==kyD6&*Wv ztRiBT>Bx~Iq4V(OJ-+4jrhzF1c|q{==g+$f7cNwE@!~~y>Cz>4`SN9V<;oRz_3G8| zliv~lX2tid)DG<;Izt^I(J@7$qX5F2_t@O)Z39yZ@*M#%imqL|7Igjkb$8>&4R`bA zO?T_oEqCY6or-SXz8%EhTk&0qYbDxJyXp|zDMg(FOa%G8*Lw!W6|PQz(1^^)B!=(a zz3cAXyXOucJ{)@a(W6K1@#DwgCwlnsVLd%~@SvXV-@hM38?=Sg5!JvE@ghhoua;i# z#xyGgX#xm6MKFor1e!EylIzr|lk3{GtLxmkv+LEXSD5_IpFa<J_Uzfu^z`Y|ik>`q z5(K<DK)^+SR*anY_PzJ`C$B$xy&p%VI*1yiaeAmnj~=d1pFVEJj2Ujhf(35={P}L; z#EGtZ_wH`>>eUsPT7fJ~5l9LHh+nk;sq<<bQ|z6pAY5b{96x@%8!}`_Fu!u;O1F0H z+93Wsd-iPCyLa!9$G-%|j*2p%Y(zZB|GdYqygv2%Fi!mHAZmco=-IQUn?8NITfTg` zTeD_OfLOO~UC^>+%iOqe<J{c2a|_Kklwtz0BT}@Guo!p{mfyd}^!g~ylX4I)QUlx@ z`uFc2dY%y=jV#QH6)W7-sZ&FmVKOyc1kg}wSpY2rEI<+DA6}o=1VWl<)#A_n`t=KQ zgArM^YE^(ydNCp_0<&h#s+deo7XcKdRl17VWgH*bAS`wEo-ty?h>$)D7cLAV00?4) z=FOYuh7TVewj|bMHQD9bjz+bm7*E+C+<|oiMBG*T_U#+e2jhztEee`5XO0^)W=t3n zYp|Nq`;1K~3z6PH@sth179zc)vvDKEh7B9$#*Q5u00s{p9N_qlZhGlWvDTX-qhTRv z)9wK9lnuhZNBb#lQ)rwCw{hdfF!7l$Y~-}!<jCG^iy-XwMOzp=WrMI$(|$+$AR45H zw9m3PEql+gH`3H_s&r0h1d8@wc&Y~Cia=O$wcFK>7in||sD;4p$FwJ_rgT{?f=D-w zc)?RP2<L`sTljQ0ETy~OGNmh$AT$CpZ$02C8-#<7&I>v}SRkdEfb0ratL$V}Dp`Q^ z+=8cU5Kd$|4N8I{NP57s=ayP!C$dIC07VBbZUNaKhYlU8cf_^F+;nu(MWI&Nd0<B& zJwodk%^4^ggk_bSwC8St5yXy;j<V@dw;|ahutq@u>DeDIoO`lCsE&}6woo82g4iO2 zaydQYSChTQ7BU1-RHVRDHVCC1<_S_ILtq54qm#}h0TwC!o-HoWrT}bJMLzJ94MP2i zd4kAIBq#x;DfdfcQ^*1kOL64`PuU>st5lFvQ4SRWsa{o7&#ER{=Sl$-Px0}Br)-d| zTepS^Vp?q!lm!x$mCf(6f?S$D0<cv~2`_lc2HCuMb2wk96p92UprX{vQJOksWmuJB z@sth14ws=+eU|(bSPG;xkYub(>Gz8OR5!NuVLWAna2DUTZJXP^eS44!$%3*#w#c0; zn>w^9^NOeVc)?RP2*rghTegI}lmuphiqfwZrD<aUWZcHa3!bt;IEyosn>K9<B0p&i zr9grzQnkkmY3c|-afqq-c%kT#4Z`Vf{rdH8!-fqN2~1FSl+qMzNcI}_zBNxQ8yhcp z$_81wbZNaJ91>Uxl%`;sj%k{tDN_VMEE^jyc*+K$LZbSW3Uan6M<9aQ^b=eyve&2` znJ0$gDL!8Clnp|Wn)(%UMG{yFl%}9fMXRFk=z0qv<2E*4@RSWg9hV9sc_|6Z0tqTj z!&;>4Z0`$zST;6ZsHbIvQ0`g0c(GfuWJwVDi3FEIrINW+Mc+-$6GQP7A1`>y2AMf? zW+;!UqDVsmOM%i9%#p6Q05XmgA1`>y2AMW(T6h*hUP>vLg_3MKG$dVPdtc^>Wn<%o z#~RrnQ>IJ_&pXIViN*vcC_7TAWH43wJ=^;NAdZcV7am<?gHV(vClQ5eNpN<w2yRC! zN4nOUCkC={@qwpokO>negy$jTCC@!13udA0Xyr)P2|%Wijf)RFWrOf6gn2?<BA^5& zxD?9DrbRW`-j{jBP)vjeJY|FM$bfl5UIJt#FbgFxE1Mc+vb}H36T`;D2cEJ)MvWTf zCQqIm1dx@5D;g~;n;vB<0w4xbOni(UJvtwRM{PX7VS=TyfC^~Aie%FymA)eY8JCEO zmysh!=7aE5if8LgFe@6AQYbrOMM_gNO&tp$^AfS?+-#7cLx+aPYfLZ+Fsl?U9kC*% zX=;@M*bXEfotq89vq2^oFhwc?EE~C0WvMC%8Mh)1otq2tV$h&LjtS2M1E@@8aAl*| z5VVD`?a+P%`5_17`+)-ohRIbXAX5RIDyIXi`7{H##(;FJ>0zk<^13cvy0`%Y24ss4 zDApjyC|i-f5-;pvRO0tk-MV#iZQ8WC<URh?>$CV$O*u$iUEM$Zs635tcfLTpUPOM< zBVIo?hT67m``^~BTTk>Jzwr7bzI@ia?EPL|c6`IDnO6(1KScU3y}t4K)~laa|6fu6 z@%p#dzr6n9_2>8&-S6W2TBRUO<12Q}BXz6zT2WnmSE^&2aKDy1#&r53LVO(4szvPZ z(l@S~#+M%7j$dvWU%mS{zVP*VBj~f3POT!u`*Aehs`mPLlLY3ycwx)f$VZJJ;(id* zsfB@fqoMcUEljfr^iE8-cN<B~qlab&qG@CN_oA2fUzC0V1a2KRLbCSR00000NkvXX Hu0mjfPF8!? literal 2059 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 diff --git a/java/res/drawable-hdpi/btn_keyboard_key_normal_on.9.png b/java/res/drawable-hdpi/btn_keyboard_key_normal_on.9.png index 7215782eb9a07c6fccc3d70af3ab2c9692f20a5f..49f519860b94a20a0b221bbcd24b6a272a9a7579 100644 GIT binary patch delta 1289 zcmV+k1@`*!2%8F!BYy<qNkl<Zc-rloNoyQe6oo~Wn&$xtO$*6CLuj7oS!&I5YaS7r zI$GKb#~5N_?1eY}0S<)hLcCH|Hp#-^wGCc)WiZO_g>%Vio?88?)KZmHQmNrH<)&2k zoO;uJL&wEk&qw`_`=9dia&_CeH*;_1y3Lf8l?lbg#j2p7K!3>3&-WzI2%z`wn<*?T z6uP^+)!yEoaCCH}4h{~4{r&wL1M#5+ghC<J)zu|HuVzMt&E)0f3CG9BVKdv?+iGKD z!xKOYfG%hR(CZ&FDAuj5En#(aRV^(oc>-tw(8cO!G?SZ~E9~y>s<pK>As7s*`T6-U z0|Ns>V`HPLsDG#saLw=adz}Va0CYhkfL{NY+1c4qD=RC)!oq@@ot+i>`ubF0^MSDQ zI!!$~`9Z*SVC#X<-`}t1=H?uOu>rII=z>OIG?SB)BcM*Qp5lQsGc&?ss8T)ur$Bi5 zA^!~g9{2Emr=daUVw;9u|Crg_+*FH;ivo&wYHCV&`hQ!s`t@^_CAf$8I}NKFbU`C9 zn#s=27SN}&u}x1;tI5ep;q8~8`r~WACAepNd^{#5CMJw9Hh>lYT^xI$*FR>~*Vn_{ zAs#X|HYU6|`BDA#EhwCPn?D1;e{&L2BO@ahVsv!W62>Jo1zpexjApX3vILB>te<#u z4F2SoLx1)0`wQX2zYo>lr+Wgf`TgT(2Wn_&C}xI-htClR1i~ObOA@-64M4Ad%q%Z2 zhwCRE!hnN=gX*VeN5b3puhgg0--SQly;6^VJ`^x$UIu0mI*3OQpDz`<pb^-bK?7q0 z#6uVm835_+?L9+JPtTQzd>+u_AwFL!bg_f-hku#O%uE5j1$z_}w;mL;P{P@s)95ku z*sOlg#oiWrEzO{TvEktjb#`{1qobq4bs}T3#Gs2El)ucNw_yE5QMb3ZpQEj<&2=JU zvg$z>dt0NKjEoEcqb%zu-bia}>p5ClT3jbGCQAsN0kZ+<^^X~hvaFvd-sa}!s5CV- zxqpHw9;+L4F&nTogRYPD6K@1_d@sNff-Vjn{xFlCo-Uy4;{b-@t*@{51gvh*#i0Xw zEzKZfWnYgvTvu1;3D~Bfi<z}Q%%r8I2^f@U26eTzw$>A{?LZd?b?CjanVOm!*SR-? zfAF8w)Koz?)6mcmvw`aB>I)I8F=zq08Gq=#(`MqV%v@D;teE2Y*Gx)Eih!G#)J2+! z7QCve$}y~r(F}Ca4D?>gjGHE`4AIoR8LKuEi<!#GN+TCFW7lSkW|EVW1*<{Rtx~e< z2uy<}^!mpPvQf^rBeQ0^l*Wm!SdS4cYlbdn%|<gxNlAikCUSBXEj4#CGmd<Aw13H& zZU%b&Wk#Pivlr1ZO>HkT>9U$C>oN6dv#puL#6&?igY_%Z0z)*DPGE}1^)%fK^!mq) zzB*%N=DN|%aCPQFX7qJ4w^lA=MPE1bmzjiw1Oc0%+^xdag1)wFS_gIuef^nR9ni(i zTIjVjgL5iO7x0Jr22-?+CpXbIo`3j)p^N8f{AC6Q)VMQ+#p!4V4sHT2mO~d0(izQg zc@|kLZ^qd!URxbG<UN<g?nooG0GtG5wr#uCd?(Bl6%`5C^I$g}A0O{IP__8tq1W=a z0Hvj+;iL3krKF@pu>E1ftv6%%eb{Z_%;!Ia8bt?b^qMvR0000<MNUMnLIPldEscP` delta 1117 zcmV-j1fu(!3h@Y#BYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET7 z6G=otRA_<inp<n*Mij??V=IbdNFCB{mp=3*eNbD7-OYocAEHnFn5F#+y*zj+fnCxB zwx)Y&DJ-N{2SP4#r0Ih*>XEFG<hz*NKM01=nbEoY&lzbnXn(C)1N8m1x(8^Dr<5WH zg0)!03Jp?9sm7`%-vr(oQ&)JVVG2PQhTPrVrTXfIt*tEpeBVbYmGrwAnVXv%0Q&tt zK@d!CdLD5c1DlPKQi?{Sk+e@wPXRbSK4xcUCy`5x8IQ*Rbh}+{Z*Kv(zP=`kqO~bq zgl4k|Oeogt^?v{u3<fD<+@zU77>0yl2uz|?x5#L%Q%NtNr>a>LMM*UqkH<;Q0E|W> z04^>rxVpLmpxtiM>2v_t+uK{Z5e7yNr4*j$rF1rMn`Utwrz)6fk47W>4^IF%{NkMV z4lV%r>t%=6PagvC@9&>2H9FGshFVg;ET(8Ch2uC*`hOpM@+aLdF9B$JZJ-Un{v-J4 zaMJ(N*MAVcerIXMNJyP*%Z1xC(^@AMOPU4!1|RGPg_GU(6(`^1Q(#dTno0e#n4*~! zmNe@f1w`K8g%9i<y~~rYuI5s*?4G2S)K$WLn#p7{i{|Lp_j&l~y$oq8se7NCKYu_J zy{z=$qJM}K-Ir|1qO_Ws_N$YKj}IRK5H<f{tS6;;OLb^Q`v44{{x;VeL!RQYPbrmK zn%^v%Nz0=sN<97J_s`Ms#5+fyA8-(K0eJE3oF|W8Ok{reWiBPEL?%zaQe&h6vaPk| z@pnH1F!=UaYRsbFI<pufb;`m`n#lrSESGI5lYeb56Sjz$b`(X{0#G?;B-Zf>ouyut z7fm;5W?)-qBsLM5GM!+CMN?vv#uVj@`!ti)%ofsBSF`N=Gto>Asxoj@usNxUPHxgH z?}Ka;k+C6flcjXg%nH}#Pe7itvv8Yc+4rxyMMkzuX*TP`t3uglbsn6fnTC9C&-2P( zRe!F`^VzN0GX228$S4X98`wO(Xx`Yy=S8gQvz&_zP%S^I@OBYobE7OubLUKU;40Rj zMW5j&%_MC5ShIMkNVe*NShk;*MQ+Z>fi~XCe%sipm}RdytA~W!G?QMidBj$A<|zoa z{V`kHrW4FbGdX!#DV+sX4KsMNXa?n>wtq!q88j=qxAbaeE7Ob8tZ0t6G+SgrTNg^J zS)OoFHCs2NPByqnGm}iVMYG`0+R9KxCy6PV`M#g}TPA<dZqgWY643X3eBaNNcZp^y zH!>yyp6Au>jHd7V$sz455@WWvw*eRqhsn9-R;!hwnGK85uk6i1(yY;FaCUZ<(pK5P zC7PiCf*{c5#QEjrWpYTnF26G*lu}7Vc6WDawORlSheI_*vu3lI90jf`<mqz>w`f+f je$?ZC#{aM@sx|)sg<t#=3!~!900000NkvXXu0mjfqZSw= diff --git a/java/res/drawable-hdpi/btn_keyboard_key_normal_on_stone.9.png b/java/res/drawable-hdpi/btn_keyboard_key_normal_on_stone.9.png index 5a94cb6acb44dcdf7f6078eeece980154bd59783..d8421746a872e837a49afed25e4e1e86b1e09009 100644 GIT binary patch literal 2409 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 bqM!c)h+Ggw?|RU500000NkvXXu0mjfOnj!t literal 2029 zcmV<J2NL*+P)<h;3K|Lk000e1NJLTq002t>003qP1^@s6gM4fP00004b3#c}2nYxW zd<bNS00009a7bBm000Y#000Y#0XNCZtpETAk4Z#9RCt{2ojZ>lMG(h-vybzw?|c}r z{K7~OVeyn~*%kyKA!7IfgoxOoGla;U`7;neii7|`KxB{)9SH)QKyV<iW!XO4cY8ZC z1T(!;+wPv}p2zO3=)ZK@>YnbN>Du~NRrjpha4?YOe*pmj0RaI40RjI*M04)9Y?w)u zODBEd!i9GL;yC^|ilTE}KGh<Trs*c|3Bcy&=2w_k6KQX*PqpM2lwC}c<U@cciY{Hf zdbO`#kD_QsR^>EJNz>FQD@a+wR^PN=8LnKpaw$#I5Ax#I6pWi$vzE~?I)DEB7~tBq zYlFcc)2pr^DXVf6MMh<*vPm|<bX~7=X;U@+WHRCM<;xR*8#ivOQ79;pa-g9HN@)nh z0E59`u(GlO%vzHy>y~Arq$=CsLNQk>b+InhCV$pAuO5(Dl)_Z5QdSBu91c;+5`)jk zQbBj_++j2t0kF2VW}JYJ@3ARDAFmCc2pj_T4fT^iLl2lN>oKQ491a-{heZQnSxJ&v z>DJa3H*em|>el{*{dEA2u0F@bix&YndGh46pYJzsvKpIZ=~m`>&k?iH(20gqjr99{ zR5X-`<Cw3$`2v8Q<DW5j`-iM!e>`pT@WBbb-Fy##OE0|7*|TR$AKWs5N?+9^U5Vou ziuoR<P*6<a%Lp{|K$U}^LVhcXhCglnNb>460FG?@3n*t^ICWOW@cL%}Z2j_x)2BZI zU}Iy$IJSNdbzP6brur&tmHD4(tQ<#xy<FZyFw99=`VDfk<<{tPo;;z3I8{B)t3Pw| z&z}G|_wrlQdYNXJpik1KAXB}bAeTUOJ_6j$<-Vv7H1t6&8a{Zq1HdycJ)qZr*6W7J zk>B(2-gNHcn{bxpU$!<B7IcWhh$8CHP!2v^&4R^f^{`9#8T2;_%2m-%e}<~Mx)D~Z z?_pUp2O4_7$+D6pnYFBbW>M=aXV_2f+PWFBK6(zAwbmvU=98d0T9y^gG*p>-6h#nc z26;4ogL}j8vo;PtRXEgpierag$=Z+Iw`xq!qsz9nVVlYdH1t3%2S4q+^CC~5cm%*s z@*4>gWB--tDFD{S=V0&2Y|NTJnklmmpQVr9*9G3nl2I()U150pH2{tsJI;P|3xEj^ z=#eeF2hlo%y)#+;{nJxA!{d8nW%sYD_f?kb9-Bm<p$D9!p>*&vitX=YkulzVo|W}% z$ul~%Pnu-!H<Ixx<K1Gd7)A9Rds#neK{9&F;H3AJ?Oo7_hBNYh#NORZDdWesm>*ZP z2{u}m^|8@SDIm~rK^Tzj29|o-G8!tm*Xzx+>Gg{5K~Fvv^m3D=RLWh^Fj$rcyq7!r z{*khdBuS>SZe^zBOqKsCLzROs^I4|8tvYx~L%`_ZrBY-YTYX(cNtESTJ`O(6umd#8 zvs77q`dC&QXkuBi-0E^iSC)iSii&{Je=SN`w#aDeA86PCTD2^hb1mAkd}!ENG<5kD zO<BEuy$+hB4yJL`tGy}&8hW5no+afn%QE$oaIrGiJuUUwMV{4(veGo2SsR)Z*A`5Q z&?8_-N*4fU%Ti9zMk_r6%AJNq=2>&!{EOqbG8)QtqOLf-t&T<bELjfGumg0GXW1OQ zsecocIqWJ2FUze*Lz~aC{j}TWvn1*$u8fX01=;qq!rHJyG;;7ZEAw^mP2l6;ZS7qh zd}lsu(QCsld{&^L2b^hG<=}y71k|0qY+nW0#$^Z7MnjX;G<EQu>}T1cq^VyWv`xd1 zly-nl9Q;9|;oOtbGM^=7)5{CJU0IzgY&2A`W$=2tK*J8v84abg*W21)yIw}e14+ZW zK1=U2kA-wdN)G^9+bJ!JhIQ#DQ56||cN(NTm$jj*vP|vUf{)L#wGTAx0IfQBS=Z%q zM`7L$zO~dr%5`bj=8KCE4Ht~YZ=_}2yz?w@bMU6NvfO$!l&M3NvQ)XMeH&;)S%HQf zpw&D}%03RhtsRK2EvuHY<ckT3rar6bd&H_lG|+I4sP!)_s_0bqQlpJr%Y-s(s#@;2 z?8rh3zk`>sMZ>b|W$;m)OH!)04>ar$jh8zLy2ZIfLs!djZCBU9w@Sk_O)J-iw#euz zSHYK(At_xjY8|g4VXC)LQkTo>Y;Z|zT^zi+CO@lCrL0H|W=cwJ&=qA<obiS=qoiKv zLqj!0)olX}JuskLqf^WBG1(?dnl>y;w`Ly~0`_xXN@<v;>6ZZ8+uQG+I#qq9pAX#p zluAF`#xSKTQ2hmOZ*Q}^yZdWioKPISIny!F&;wPL^(nyh>(?&<Pvq5+xE^6SA8(nE zB+2gm`}e=gi#sqqu1OwoZk${sK9wT+fI5kKM0PwSz%f9bkaz|-n#;>zu_^E<m;VC( z$mPF*d%66O;>^-V%P^?}1E(X-^G~&_KcV<WZUgEd<$r+HTwVq`rWADBVb+?|oMIdg zqE5khdbK<&JrM)nC8O&yLCtAGF|V<ZCkUSvXy^fxWhqTYLe`h%sy?Q$EbC#Y2N)(d z6I0OBnTB#Om{pjnpD-IemrYp;DVYC96ao$Fp^hcE?Pn|pyypKOMvNcbh0|_100000 LNkvXXu0mjfwk+4@ diff --git a/java/res/drawable-hdpi/btn_keyboard_key_normal_stone.9.png b/java/res/drawable-hdpi/btn_keyboard_key_normal_stone.9.png index c6373a8afba7af21b6e273175fa4689542f9cf54..44c2ad6372ed827dd510ea6def7b917a85949f0e 100644 GIT binary patch literal 2213 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 literal 1719 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 N002ovPDHLkV1f(8D-Zwx diff --git a/java/res/drawable-hdpi/btn_keyboard_key_pressed.9.png b/java/res/drawable-hdpi/btn_keyboard_key_pressed.9.png index 0bd49a0e7d0aeaf28d4e87c39182dd58ac3ad2ca..e784eddf8985c46388b443a876e47271223010cb 100644 GIT binary patch delta 1068 zcmV+{1k?M!2EYiABYy-3Nkl<Zc-rlo*G}_F6h^tG_aYGO0v?H%;D+9NNAzArZ$bzV z59p({b-u_aWE}Dz42Jn5EeRyD=Ueg2_ShzQd0+Di{w4lbdwYBE)A=j&SLUl_+S=NT z=H}+0p`pR3udh!eWCZg5ewoI`Mx(Q{GkAD-Fy7wYg4fsAM1MdQczJoTj6mLyOpubP ztE)5g26%dU3LYOH69HM^`T02|MqYnpkWhj9`}^Sb_BN8cySq;#Y8<ivx%6Q>Wom0{ z4ea&Co12^9>gp;HkOj!4qeNbRWH^jEv=q6xxJU$&BA1qdQ>Lb-#-Jr%Utb#(IXgQ` z1d<|`P95a+M}LN{a(Q`aP~`OVG!aOOT<U&Knd<6lgE^^Bfg;Dp$B95v<kFfZuRk)( zNgYy(93CEK<lx{S7F^>=id<ULPMNBzDuX$Ba&lr&WN&XTBfGo1vEUj{QsmN_Ca*s- z=jZ3a(b17Xk?rm6cWiBK#ZLN|k|GxwA*&3FY=3{>pnu55#>P9=*VkhweN0J_OU=L! znaavagO0JYvtv+Xb#?U}D=RCplRl=T$feFk-bfkRqvkC|mY0_!Sz229G@{0l)aK@9 zs*U?4L&wm(rO4vqqOq{B@NF=@q{yYt=9H<Zs4!S$nzt00o14qX?CfkTxW?0mN-i}6 z^7<pgoPX3IrO3?8j4?eu{cSM5q{u}^$SSk8ww9W!6q=lzOau}m7a741ney^-gE^@~ zN|EvL@kAgga%oMIH&TW<sdYk;(b3UFASrTbP5U8JR#s+kCf58M8ygFThldjZS%6&H zF_1S>hF(53HD&OL3=Iu^n8CrpocU;N9U*e*oPYD{W$c&I(o%yzQs)>M8Oa!6U|=A2 z(#IqVkV`V;{navgVHr+J6B82#3op|^{r&y1lRl;z0l9Qi_d}+nq{Nt?pHKC47M_at z_4Q?>x3~AxaE-zEY6RpWBak;zhV6oSI&;+(x~Hcn7F?2AJLJ-K%P$!&kkr$etFG|f z-GAM&;1bl@A(t-XoHE75#YR|$xtghXdVsF3uK&eHq_lR!GUW9~hFxjWWwfhz$`ln9 z8T^sXwl0~kUNd1Ca!H1~{>X5>5SGcM6@O;<^llcG(e;*7rm(QkaLMFKuIG|$WRfAT zpEBW-rfc8yCwsO(sil)<PBP)v%$su^IDam}I{-BRKV%9D3JlJy;f>~3T)TXP@J3TR z0P;r4gzuYiA(WK+X1ZVu-#7D1h9^^c<i?G*?|fpWD@uOWjX!ef$(~b2w`V&#I#PGp zdDNyS&)-e>KSRg}S?@Lf3Yn&+CWB`lYSa1o`H6$6r4OFGk>3SqZEa2cD}7RFX(eef mvVO7Q$ICdrANCXY&+8wPd&7o@_IxA&0000<MNUMnLSTa4ydhEm delta 809 zcmV+^1J?Y&2)_o9BYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET5 z;Ymb6RA_<in@Mu=Fc5`b%L7A|&*3Am%Gx__%7!&7R$PI5uwbxI7Wt*WEl(nN5O%(* zR5^~3`>CH=vSOf=!T_j$KmFZ6DTG9XG))IlgdPPE5sAJUAAf^CF}@P&16>I2_dD`D zFP!s@D2f08aU6q)%=u|%=6byX0JhsLzP`Qy0PFP{&*yWT$Sj2T>31n54u=B(V87pE zwOW~LjF`vc0RYId3{pw}KbG@Nj1U4@mH_~EyIn!dG;OAlQkpDDDO)qc2jIIj6&#(J zAPDO2sY=yMN`Gl=<|1Y&xKJ(37C&v9J)cjL4SwtkL{uA7$!4D<=Fet6@siDyQk9nT z1tCNs*23S$2&gZ9ZL_{s)NPY+Q%sfBOi!Bp*k&v-Qc46tP#ME~Y{r*1oFN|C>N4b1 z%{2Df%ttYG)}N-$stSOwnW<aORNAa<%y7CC=JISbKYyEPY@5}kbVv%@NkX_!n%r8x zPMSKVc~6=jX)}%Q8yZ50nN_n-*#qD)wN9F!B*tdiHsgB$N-1wLqbr&nAE#t9`{Gwh z@^8ww>t3}>Op~*j0*bxb)(c%upmlB88LP6^<d-u9_OgM?m>FYfGs`gppuRNMl|lP+ zUBJf)Z-1AFoMLh=&GrZTu$oe;wp7p8W|}cG(}YWAN@K=uz@?hKE39g)*ymj0n7++? z=Ovr93F4(v|K1gCZOv*qQ@~cspChWyH+|Lx*DYC>`!rUwcW&C$URSo9m(4i52ZtQw zHciVMPDu<Abt0lK@pgQiY1)i0Bee3SUKpCHn15Oy0pd7z+SeT#{lEV(3=zk1<uy~X z8I>{<MUm-+JkLkn1mxD&uQG;VXpU`+n8jiN063ja*laccfFw!0+0o?hWgd@50RLk) z*9;z2j}QQ)X{z)a=a<U`x7!T>yvYiOh)hP3B*AjI1OS}RXDZn&2m<rP24B%*T7SVo nGa@aUwXA!5d+e+aR4IG|NE6!!+#2|c00000NkvXXu0mjfY>sn3 diff --git a/java/res/drawable-hdpi/btn_keyboard_key_pressed_off.9.png b/java/res/drawable-hdpi/btn_keyboard_key_pressed_off.9.png index 634419f1b4ab31a3586acafe788ccfb785ea4080..a4731cf1ac85aa84e821a7b5656fabae84b55f0b 100644 GIT binary patch delta 1214 zcmV;v1VQ_e2+;|UBYy;#Nkl<Zc-rloXG=3d6ovh4?*+y7L4S-tKokV^lb~Yny%+4g zVsD73_yb4I<vq(}-^|A7CRsBE9*AMRbI$JEJ1t2`iO);@BlfS_+FJG7`7`rpCf;Uh zYHEba%1TvMRwk5|mIe}N1kjuOX3ERUg^rF6_4M>4e0+SU_kZ{IKmaY^?d?r80_fGu zD921mNr}LJ052~u>iPLO5I_rfeSLL|L9ab#V1fZ2A0O5I{k<m-4-dZK)ef`(=;F;b znkg<W7T})$cz1WFZf<S@0ki<<;!}cNd(7Z5^3fv5)zy{5*w~oR)YPQv>goi%=jZyh zenV5x#WXOQDSs*|5>S$FZ*K(zxwyCxMn^|geSN*q-rlYT2L}bb=jXVF*ZU1kK^KP( z=(WcTs>=2CwSXY!=jTFeYpd$*?G;8wMndT6=@D=ZulF08f-Y7+qnX0OLIHh}cL708 zPfvx0h6dH&-!BXe4TZqZaSgBc8=8VH<}~!$V+MVakAD<Fj*pK8%!RtTx`cs&fe`pP z^5^L2=tr<UH#7xZ%xR;Uf`S48ee&$=OhAx>g9Bk|YD%@Vv<RJ@ovORLTY$;t=4N4X za#HQ@@Baw4=Z2=Bi#ZLw_L#Z6yi_MACjx@(?(PZ*G&3_Jw6(RV#>Peg@297y1$2|0 zogH6byMKhHpbHv7L^DXT!^1-XLAJKG92k&&mwCmzy1BXO8+yBdrl5<(zz#F{`S}9G z?d|Oe2(rGu{vT^=Yca>&CQU&XD;xBBn$i0`f~>Btda|;z;u~J=(A4(!wo}IKGJ~98 zzeSMc<z-=MX(?f#eVT$U=C099US6JnBxAotkbi}Rg|N)e&&LE)d%UU8#bN-x_LxDR z<Re9pxw$!Ec6K&lpnaNxE@%W1&1`IJIDHj?IJzeq8iOuq1a_Fo&CM0iC;3Pb1e3=g zKvU4goQ7UcGw74d69gF_9}fgH1zpT(JIv(d<Ompv**_;HCS=DY2tW&fF3uRB*V7DY zIe*tJxFhbJ7%zs0hok1JvH66ci(^jGn~^`Vv$F+U#L9s!*Kh*dyEC!C-6pqyp^Ijq zH>u5}=w>h|Ve<kY@xnF4t=U-OZj*%ox;UuYVJ0gpOITc7bZR;hkHOs=e}uc4eqd?? z?XwU-7c>Is^)!R&0&6<@s!4QTUtdfxnSW&NKo_T5cA3Efi8Wo{6n8hu;|;$t8D#E2 z7Z-9yGntv0f^G(VHC%AF0G`i$m#>&&?&@Zs*B&#Nl?L4mXZ1!i85tP@F5+lwG86Bd z(ak^?%|Nd`X0Tq+%|ug*{S@!6X1W=!w~S`e)6)f$nP`c2EQv%oGtg_N8GX<+&3~J| zGiUowEDoAcnbAu#{yEx)V}(8gU;(hhOj=r+fRR<7XvSmh@)h)nCT9T9>uE;cH^V|G zDEnqyFzWkecA3G+6p!4n(U!;)Gp;D{o*RGA#gjdw8E((wdt=;X$59(ko)Zm^{%}Ok z@3%$VYfcI?6%`c%&OBJAQ&Up|2RFJFZ#?vR{uZFRy4v|FeNd^YsuCjpu;JI6G5kL4 cHxTmr1Ta35lMH_{GXMYp07*qoM6N<$f_BhUBme*a delta 1020 zcmV<Y0|Wfg36ThpBYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET6 zvq?ljRA_<in>|nKFc^g&Cu#T)WoSX-L#mJv^d~SecjKS3Ff%dn7x-GbzyebtP?Gu% zz4mq7q%qL6A-zYc6x_sqkKf~C$GAu-nFHkCPk9YUNg#xv+kfrOg%KqZ5<&>CtjZUG z|75C)KwT&!7!HTTahxiv8XAoT0AUy+gwW;n%*^}yI{;^AXPlm%0<gZm&S*4ROk@^3 zZ`|)ml5lx>3Bbk01#4?-`W{W@^YascUav=zB*0j5RU_kh9=%=<fb;Y76q$O;Od&}U zouwp63NvF4z<-}&n&GI-_`aXlrkrrIBuTW)T*%A|CQ(JqCSPxvjYcD#4f7h{_VyNl ze!tJl%L@RlR*O!j1Hkd|ap?gIA#&9+A+tO(cXxL@JUjrfwYA0W?k)hYudm$S-|IS# zj*d#AF@{Ozzsvxho}Sp>-v?l2Wkuh=xw%OghWehv!+*n41OAfCq?DPGi=v2DtEJ0L z_`a|2Dck)#&r8Lc`mWTL=L~0=wcBkync9<<DsQz~dXD-oiY8&(VNGPZnF`3fZnxX? z`+Wd5Ha4`h;y7k77y!`ebV?_aB#CZ&d1YoUZT9x|^fKb{@sa1}XJG7R2L}fL?Ck6? z91dp^SbtuIoZL*oUYn`wD2mwL-Ui0Rf?)h;9LJhK6h%LzkPbSpJWtB?lv$Pmn3;ip zJ^%LhR(fDAGP4aJQ)XFXCJ(dR^l*7MT0WU6*fPsY={%9zPVzkWNz;^;Nz6uB<Xk3A z71MH0n!i$J3RU0G@H}tH+^lF1peit9Dx5Tb6Mq>S^_H2r2Oy=aOlFj$+3}f}kePk+ zS1kEE_U*b??GjV%WF{fqt3|yq%Lz2EE<0mc(yIM(MqnH^a2Yd;SlTS*m;v&wInM^| z=Vk$OoS5|rA)I1zwr2amGNdM@%(d#}m6^gKGcye?nVA?fb_FhO_ETb6W5q6WiKG59 ztA9GaB(owyrd6uHXN97=mTEbZg3Z=^kH{*Y_N)tBw`5(~nd)XgX>?kBvy$a<$;^b= zgYz8ZHl{6eOiYjwLd=9jS>)~bOw?0m<}yMtpVkZWMpjIPuK-~fI_>Mu8|r`mK@jM( zIyUMgGcl2wMx&8BeX+<*KvVka3_=hD`gPidCZmpBU0+{wa&iJdv)Qc7j;47o^Xlpf zNFNo0ddUm{(Cv1mI&nT24EXr?04C3sRRKZ>osnj<$?EDV05>-`VnSxV@9Q5nR26DW qs~<Qh)JtXs>z=B;cIF2vC4T^kx+g!nB=~v&0000<MNUMnLSTXy3+L_t diff --git a/java/res/drawable-hdpi/btn_keyboard_key_pressed_on.9.png b/java/res/drawable-hdpi/btn_keyboard_key_pressed_on.9.png index 8474f9f427bc23acf15376ec50d0373d8f299bb1..03e163c9cd60f56a6272e1cec0cca1d3072e6eea 100644 GIT binary patch delta 1252 zcmV<A1RMLl2=@t)BYy<GNkl<Zc-rloxlbHP7{v)3ao@*+xdQkrHgdc%mK+jUiv#Za zzDL~mX<)d85TJ2nR>IOI_GY`<m4gi&d8L&$a^NE>`+e)zYQ|GNjOm7kVx*tcv}(S3 zue<82i;0W7nveR5_n-3ea&^<WGjnI=s?C&@l?lbg#j2p7K!3>3&-W$J2%z`&n<*?T z6soGK)c*dy5DJCV$;pW?fEI9kd@LFP^xDiQ%S>Kgp1?1F!^1;$aB$!YpamQq9a+Yp z*Bmo2!2o-EdunHA$C2ILUDt4`2U-Ah@nLJt<mToIaL+GpZ*Qy3%}t9yARyG%)~d?N zN&(lrZ!haM(0>A;i*E^f%`t=5$XAOX8yg$K(9n>o3H&H@AN`<4e!C~&n)gwL<=uv+ zpo`r=YbGZrM?gy6+S(EjWNmFt=wE!KmjApjtiH}a2k)Z{%exItK^KP(=rzX-vPv)* z6cA)}b@hK<{G>u}A2@<CR(Y49Dd=MM)0)Z7&KA%n`F|7;WO;d6`1Ri>>g>OVj-U+7 zyA4f27yC5ynqvlSlCKm&78e(V7k`bZSMPonUcP&L4&FceQf6Uc;Zm@^aA*p;*r&B- zva+%Sw8@o~6#+r!=H`TFzXa9a@1F{<KL*qvA6f-m^M2@bL(R_4UJBM14oyK9`!w{L zV`hDQU4JbtEeQxRJw0s^It>cHzd2F=d^#0y9eN%VrlzJ`!(K0-Dd>Vm5Y-Gi+5G&x zfFKhS6W=gCKJGc;b<z}cF&UU)CNncrK*pGvnGq0VbaeC^Mn*<FC%jIYf-Yt@=yf!M z^vHILAe<5F7#<#W4X1i&YI1VYO5<jkLB?RaMSl=X>%rjQ;I)DJX$rcS*|cUdGBN~o zGPYX;>F@84NMB!{C+O<qLxnCT1L!r!4B8}LDT4I&_6j{cJ=X^6rzz-yMiAA^*w~oW zRuQPHtIHSA7<54+FvCoGdb)r%$ybUX9UUFMfTo~}eHwZl&7e)PpCCwETbnPSDd=LK zHh;rRT3VWbk(lkXy}ezvw6ypFXaUg083Xh>nn5n_?(P=wM4FqMFHBQYQ_Ng6Hs26* zam=~(X5^35)Kme5m^oToTO$f+Y;5$L@H(LdKo`wG@2xfyXE%dEsk5_FK*x(zQA0z6 z=Y-eEL;zhJ)XgxHl9D0}3=CK~9UYIs>woL(BT`pa=Nh^?P(Kp^bU`D4UPm*SE-<H~ zt?ESMkjV>lCfRqOi_<N$%wU1UoQ}4t6JJwP;|V&0>^soKg`Cz*a&od@H-oksDR{Vm z>gwuCaS>DOyLL0sYmOPrO8stzvwE$Wq@*MPg*e*k%v^P!v73P|nt@((%wWA>H-8gL zDt1$Rcs8?};d)DJCNVKl(3y#qSjUoRL^1=tW}2}Nn!0(@_srS8Cl&|In9SHyGrk;a z#a>~b0WblWVJ0CVLBPmrpJ-mi+T|kHCz_lAK(C`2`@R_#LVnpd<ATw?Z)TPmoJ{e^ z4I6FOd1A&DC9b*g2VFeb)0*M-Y+Xe~g|*9$qc)yAUpGAZ!+&u=BZ#`!d@IZp6%`3M z^I)2ekB|2qXj**m(CheHfYQ=Z>tE^pN=ZqH5cP)*H{Oiq_hC1IbDz(s-^U-uS=7}4 O0000<MNUMnLSTXx)?SkU delta 1066 zcmV+_1l9ZZ3BCxBBYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET6 z;7LS5RA_<in@exoMihm=At~AxAXo;HxK7ZbMjwoSfftR}S`_d<^~OMVUKuFheOfez zW28WlsCLrA36#JO4W|ov*x`teu_a0jl>-Q%N5h$W=AL_Jcz;cylwt-@x1Z`JP>MhZ zK@>$ZVMK+5gb>23YVdjB3z@ni&=)!pTwh-^91c@$bwjJw0w4@Sgb+!4Gd**8c?rPo z?k+n!I{>uXZQ?kdk7X7-Z?x`GN)8SV0NCH(XJut2>64JTxw!$L*Xtpr1V)mp8yU~@ z==FL4?CtHP$bU3bW*Sn;#7k1jQqPzHI4Oz}j`oc2`+0M!v1}%#Ok`%0>G%5poSmI< zad81ax7%fXeI0;}jg9*=DS=5;6SK)TTV`<_C*Clx`~5!W-Y)>GK09UO$vFTYUq9mS zlkZ0TU;kXGcVHyzJn4_gERT#_d(PHRe*)n70vJha?SCme{$bR9{_At%c)bb^2~09y zWCrk6^npifKNb$=MIVSytKFCGBr~N{rsSS(eap~)TR2g7>me^rswLxjUdq<gca_dO zV>ru9zT2ez^=;shUVU-9CZGP=O!lbzqHGg3ZL*P>&9p)0^`QTNC!1XWhTc1F)O!G0 zVwE6%0Dr*w8y_hLlW-{|Bc;Um{gllbiz74hX!Gii_b9arz&GDVJbc^+;O(1FygV6s z>D7yisTr2%A*XDnVV}*+7&!g?UjSbI_Rqw|mZ6ADUR*X)W?2cq_Ke-PO1Q|(wj)z! zSuvA`X%cgJHd;KHY1lH$bLlLRDkpiK`=)71%YP(hqbhPPo2IsDu{X`nQf3-O1&w(^ zFQ(^t3zp5wY5;YCX;bN@`8koX(QKKSH2|elZ9Jnhnr)wnF`3z&?~;=5lfGSR)h;$Q zPG$<yt6H`S)7(Jw#<D$@C9TFEX9UK}1}-r(kE6{(#te|3n)A}2ecv=-#)&zu5W>kO z=YP~}-&lpzlv25=dU0i@F;CAF!NoIUF=G$llFcS1mK7^@n~NRIms#C$Cz+KIGE=4g zds-+PYoU%aDcEey=ZLKKqI+H7T9S2{r!bpMGHKCx(~{+4$;^bgg0l>A8%4()6JunA z5K|#h6?xk}6U~&Fd5qA^i&kOQ$g-*Q5q}^IL#Mj#tfBw+9|Qqm7-sfqlFY=IXIiaR zvI@iDaIQr_Q~LT<#vlliYa0ofrKKeRj*gDl-rfeF)9KWvqG`UDd3bmT{BLv8XXaK_ z2mug9k<xFR4+aCSuC4%T;}sJ^h{PkEPKV{?WdM$kkHwhGeBV!g*icvKnASgV&?9J; k%u3EZb$jg0H&iM91G_FF&CQS<+5i9m07*qoM6N<$f??eIv;Y7A diff --git a/java/res/drawable-hdpi/sym_bkeyboard_123_mic.png b/java/res/drawable-hdpi/sym_bkeyboard_123_mic.png index af6082d04edab700e36bd8797aabdea1a6f2e9ef..3e4eff698b2e8ee2edfe92e3b5c31d199f51503e 100644 GIT binary patch delta 2543 zcmV<L2@v*|6p$2<83+ad008f^<Y$xS2`7IEvPnciRCwC#TYF5D*%hA|=E?g#3oK-H zu?p*R5h{;V5yk$&S|2g8S*vc1k4SZ6H8oZ%+BR0)bxp)7jix{)J~mZ%yEaYLn3brh z#-u{ETCv5hqArNQfCJ2f>F>~Uo13r0FoUq^n(rpRe9ZmM`R={H@0@ebxu0r19*=)U zZ7<h!Dg`QuDv2tIYEwy6NmNNxNmQFkqDrDlqDrFLd^Wv5LRzi%8?hK4hbdZyj<5e! z0s8pr8Br2n0dETe3=AXp5qS>4$#8R@N}?AFBmyl!C=d>W@VZ^V3%~|+0o_Bj$XA_2 zBG3#(0P&|zotjipQSpvmuMcv$T<(80Yu0?eaN)u_+-qj?x|!U-<H*+pEkh?k^aY~h zkDkyq0ajqj_U+qCO(v6FvNjL>rhdB5awb2X`#;bQ@nl;BX%TNkuoiK}%@fs1E+yiU zkndxNc;uE`N!HOze`_RJZ+gl(lIz9+sgaS9CptPhqLo4s5fRVZ+uMur=Y4;mg<aee zXwV%>pr(Zd15rRMxe7oN4CBD9m*mXcPjasTuLCK3wX$BYM6e)RJl`tm5R!PjNJ&pO z0EzwcJap*LWN!pgqkg*2&(bS)?_rOL!urGl!<m2(?(YGf18p3rHB4wIlR>f(2M-=h zZ)s@>kBf`5tzEnJ7W&$OXMBIPvvr!8q!`jYbLPzG`uchzQZs4Nq^5cE<~8zIt;7Rc zk4v$;3TrmO(xQDWjPIKiUN!77k=$Mn1OxFv8jyeZ@Zq1p9a=?<DJdygkN#0WIA8{% zfp1;AcCDzOpx}4jV$!Txvra)~29OFwv99&pxpTQWIXN|9VPP$@4uOBhT(@rBN07?{ z-e4WQV$SqC4wzb2R<=j^3>kEv<XB!GXiW51kb=2|2}}nHSFT)HX*QeXw7|1%+qR$L z-gqDe2mxN(v}sduNJz+6z7{ci_UzM;%?6TLH#sXS>tkO!gt>F)Rzo&}HwB{?5^26! zd-m-4(ARV5KFP6sz$Aa_1BinLcHNlV+}w><uU;)w3R%#UZjq9b(&=zGNKXUH>z+P+ z`d^}>quq6Nb))axxkK?ybN>AK`M4Zm_v|Itg!NWgt=0m&-JURI%9Q#=ix%B``0!y; zWo2dlvuDpJ#%eBIx>STqrD9CwW)_5sOE*YGrjzBp5Irn0ktTm-ID7VN+=>+|4m3A6 zPo&OKqeitgHa12HA%nqSRP4S^xZOQ0y5#ur<L@C)tDZ1n0*OX~kkKIcM?!bUjvZOR zzxXFr61I~kPksO^4$I8U)NqW92eDdM_d8-!kTw>XJOdL;FV7r=<};c6&wVq?_wb8! z`q=r0o@^Ht71@70oD-#{rZ&P7zDP<+df!{9<q6PaI(F{dSqog}#nFb;o1B~+I>0b4 zCQ&zI#*8m{XOCdr-l(W3v1w`I<KrLkVnw>7V=^qPM<j>i<(ho0i|>n#lIGsYiFda@ zrJ%nlj)x~}KX&Zc52sC=R@2bX@bkpP#4mm5^f8H@?52OsybIHB$AJR}-VlQ1=CHyW zOrDGNdf6&mqVjm~;6XIxW(mEeOP7AiG7cV3lz34H0bA43(te3~rWlPz%OE70Nsi=6 zkFyDjl$#EVB?=Ndv77!Apg^6#1NqVs$*@R2Ov24}?b`J{Avkm9%nO|2bn`eO76s+! z=P$Z@_wIi}Y+@#mIELh7Vq$C?Hf;FA)~#EwN|xx6^3uqgH*fZP2zL4V!NI}i!AOMM zc#JcXyME1c=^D;tTT~V=q`dAqTa~YX?U8EOV9xujh;bi0dGdr_f(9|JY4`5k$N717 zsdnv;Z*6UDuRneIbi5!Cdsi>zis-jU8-Y%`ib8*&zg@n3Iep^9iQT^DIcLtCc9N62 z0!q9Cac5C#_3&c5*^PYVpgK;tMa7a>TwMJ98#iuzTevY|WjPl456KeU(m9_48_}OB zd|;uU;qSkZ-o=X-)AsJ&J8$aLsU;lCEF3e%3)hB+hf@gAT)A>(Y(_>#Pj+^;*U*FX zssVp--9vKpoAtDkb&uEq1SPj`0gDy+)<;slW#EE7mXq_sRjXE230cZ9tE;PjhW^>W zIL;5vtY;KSHzn&pCh%S0eOTl#V2wTEIjDNdI5&;r+%yqDo}Tk3A+vt{`YVqgKmKiD zVPS(jU;5qD)Ko?HMIY&rK0n7aoXK{eBwBwtIgbR!5K*gFudWtyL;}*CUlA!l0Y57N zhyX(QYUOGqjZay=L*oHI#s=_6k*H^IwPE2Z=`G};@5&Vt5rzH=koKFJnwrn)O21_S zNuKn0KGFO_hb`G2N;9w<TT$J-d*sNGrPPVM&w2Xv=|92>I=HTmW)~I*22RdN6OeyW zd3d7`^*X^swYL}~G&EE$CEXluIuIfnVfhEk%gZ;C-2VOhbC6j~z%v^VtF;#{Tu8(i zV?^RkjpRv>>+v3b-iRK`_9<hc%jI%P1JkoD`}XadeDvtiVrkJ%B+J>5%_Moi)!W<a zK>l~<)~#EmoZ1+dFJE4Py4itE<Q{)w;$yvDZ|LgkiaBxOM83T6B}<lkAswcQ4Ujgx zuRz?Vv9YmsWCEKohK2O1s;b^rE`(z9mMvR8EG;cPPkOBH9O;-yF83zIxdCeDI1vl; z^74)iRs$2TOV>mGZFb+uNTllq)0sbiehtU3WIh}bhqgwJku=A=+qZB3VA+4NWxq#) z-z@8o8#nGD_0xSm%y^UajQkwUNV>Cdn|8&Kl1)06qUIzk^UJK!q>o10v17;9Qr!&e zi&M%{rLuVO;*+qn&%9WUhsU?GHyG2?)0<#{w9(v$WxrQnUmp**ZASe21bvhlJmP}D zCZ$<^f3zAZiQ*$qGX-@{pq+m_iB5KNigBISuU{|Y!-a5;Z*qYzLP8h65F5L*zP7fu z0@qKl&;-QLG#wh1oC_8#_&X86^5Q(PTT$osNo6P9vzL{Xr65U<x7lp{Yo;sWw6(Rh z)wOx^=D)IB?@+$_4fXSYDDurxdDJIO+Q}puc{7ktcXVFzPlr^ix><k5BIznWb9PI) zYR>?cBNF^*gp`fQ1J@0-nB3glawOY(rG(!d2pRg9*i@X7TPwe@^eN=Je4HA4B+HS% z&GfRh2T8gfsf=_gzUK@$SEtkI^9vr|?;Gk4tNlO!FBtOqpiH_y=X^TpI81z=2$wv^ z&6aGFK5M+-m)G|yk@#D(FF?;kiqIf`MC+4|-Rx3KbOrjg&o2_c!T%OV{;V71C8WqF zP0CQDTH@E))PGv1lBklXlBhP7M3qF9M3qFfd29a`U;tPd)X|=&81Dc8002ovPDHLk FV1lP30|@{C delta 2549 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 LNkvXXu0mjf9|58k diff --git a/java/res/drawable-hdpi/sym_bkeyboard_delete.png b/java/res/drawable-hdpi/sym_bkeyboard_delete.png index 999a182f42746727114a0767d668ee25914499b8..1d24cc85c020e8d4be1c390b6debe43595d87ce0 100644 GIT binary patch delta 2279 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 Bg<Ajs delta 1817 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 Hu0mjf&6QCJ diff --git a/java/res/drawable-hdpi/sym_bkeyboard_mic.png b/java/res/drawable-hdpi/sym_bkeyboard_mic.png index 5c73600d9ee2393bc9955744c2e7740f59692948..512f46080022eb99c3af40d970362a783264a78b 100644 GIT binary patch delta 1368 zcmV-e1*iJ03xW%f83+ad0095fs=JeX1t)(6BuPX;RCwC#SzkzGRT%f&nR{oPX?C<7 zCmWSil$Fgiopmjh3bA}JCI3)jP!GYPp+$=i;e*hF?n4mO^wvuSDTJh;(t|{nL9ikj z7=)}7J!FdPX65MkXT1H6d<PDf`E#$0v4{tL%*^?7&+mNqJKy&^XPB<*8TV6BGVXt~ zazW^V(77XI|BvHYf_nY`B*Y}x$jXXD<k$fHED151oD)$2jbNuXPT&wYARGZPBBiIB zkRZdyH~_Z<2eokmQD6s%0DHi`L@MnTveD!oARD;MKSxGJt|^LQtEi}0Z)s@>qwXGX zmlmNDDRWlhxy&SNfD3pCcocYcaBzR{!>p{Vd(vcjQBl#InVFdZv^M}Hz-7PzC}!rd zLdXtyfnq+{=;-JznTQNda%E-Z74*9X<O6P6P+AFTfDb4Kp3lwA{XG#Oj_&U6FVL@% ztdvCyN;!{WF^H<<Ll10hYy^^ZUR+!ZlEXWtU6|HLE#i(wlO%sI3iVTI+?jt65;4eb zA<o&PKzb&*j9D0`7$SSx39(bAne&<LS%Tl}l&{%nE!_$sCcS_0sZxK%q7R8pph`LI z*bujp5;E>48zGZokZOUDO^RKa^z4|V0%B$eiIoXy;h=s_dZ<PdnRN+1-bGeXDbWgf za%{$_<pAiOo}SLHs;U|o8XAAP&LcDtvqFgX_q>2oS6BBcDTU00mX4E86iS8<16OKm zYv1GD{C@vWJcj{2z|CZNjH9%)^jGxj2VMkPL_JC+P(&&~GtO^MktQ5DIXMR>OGP0I zX=Zed%jJsFSI6w^tY2;-5f?X|C`m;638}KOGA^_-*4Njs(!)5hSY>}@<uAzyH8wW> zOwZBg=jX5RI#pF8Qf@OX&=?7^0Pr}_EX>{8+xr=Q_wiS;u&{8;>2&TTd0jVw*MZ(( zF!%$nFD@>=jo(iJWh7-Zv+^S*i}mvI^6z-%`1p8>*qIFt4I6WFb05^#*Ds4f+1c6K zU0q$@tgfzpL}Qh)v9W)`rKP1Oczbhm^ViaIkK*kzmf$+ZPFjZRX8+{mWJO0u$H%;( zrl#gL%IA_F*(ALq#~2n4huzp&1Dl(hc|M=-x2>(M8>rs|wt&CLmttmoNE~PQE7@sp zZ@<&p+WIL8uj?o;V=@<!68&~*0!}Cce&Z8lG)>zb9v*%l)&GCci6olHLW!g#x135E zx`2G?IlQ`Wg`ar6-n;$%{bOruYj30NP2dd<5P7Gqt?es^!?7#+_Vo0G(DpQN709Kq zVyAgbYib^koWO%XArR!GV5v`xP8<jX)=NrC!p0Mb$K%-wg+gx;na6-U;1W5rVpZfb zT16%Wu|l%cGgE(4Q#Y{fzn85bgIlkusp-q*<>i;qzn+dw`6Tuo$xa}tP62|Hi%2~} zE9G0alW*yXiHQ&_^am$`9rq&-2dIAyXak<4EuKeYoJ5A5_SB)%E;t~^jgVtT#1Xl( zvvb4kcArFL5ZgvL_>&xVj~sYMa`?kk7Z7G-gwQWXL~MUw%GmLCO3ct#WcHYu+Yqz5 zMwdSII3(qAC=u1;j7`hgULj}Xeo#<dUHxvVY|qix*Vj(l+(Ti6rSs$}ts(VoJH)|G zK|#UaR&Ugp$(wv;P=A*IFNrM|)!XQGMJ4CoCa2z$d@gPGL-LM`(C?@uapfDdeIl_Z zIds}Dtd2yb73%bTSGs3p(!HXr77nctVix{<k<V62l4G)Nxct<uTz;~Pe}gUvoi{@N a3NQedDZ7n%g6yaO0000<MNUMnLSTZ*^qpk@ delta 1410 zcmV-|1%3L03#|)~8Gi%-0033mVlV&z00Lr5M??VshmXv^00009a7bBm0000;0000; z07l7cJ^%m!33hNnX8-^IBme*aGXQ;rpBVrE1hq*-K~zY`?N-fiR8<uJ-TUtQoQ_jo zr&wWTN`q~YG6g%;020K67{5Z|f~`b%ChCI!!RSI`Vgd_ebbsT@h{kAw8YGI?5=)Un ztF-iED5afFr!$o4%)IaGqC-2wyn)t4SDcr(dFS2V`JMYa_nZqnwExXWeHY)*@AN-r z#5cT%-3Nw%fP$3QdGNsNM_~0Fpr8;TK?DVX2L~2xxbXbJ>H!f5kfB0B^I$k59mob! zFi?U43m)ghXMcfTY6Jol1he6x*id`2wWvjJ^^A7TZb@m2D8hnQyR04~0V+22?|S#x zWc*G5gt+?L>)#&zEpEes18=>lQHW5#={WuDWFixG0RZ-<Q*NR7;WSFH;P9GM{OgE7 zgfg(>%D!x)TmEF@ulU8?3!7~Xg5QSt15t=j=bGnRcz=~YzvYLnbi+n~2q;8Xvc+np zxnhMp33UBH0ENIn?%7lZ2~6-`Q~#_H;un`z)cU%B$o=|)pRLM&Pu=qeoZD6R-FW}5 zjratqEJ%VCy#Nu+Pa8r&2!#L<wA>50KM)0j00IRvL`rHS6G}xWu;IXk3umntR0Bzn z!QerK27g%)Y9*iok)gtc0~ZbqSbjhh;<)}<$CrmYQ}2(&B_`AoB0_`wQSW!#93H=X zVzBZ6vkE>0(p=M6@5FI$aQf4DUaU!tcnw^YuRJyK3Lt-h5twWHxTYEhfw1%l2~kU? zP9r3VGnZ6BNk(TL5)V2JTxK$)%2QV<KL=@bb$=UfLI1PWP<k`lla(DTU_>&JJOa7q zLP#^4EC`i_P+dpf&U`E*7nj2Woio9g=MRrGr)5)c1y6JumOCeUZzxV*WF~4Vo9EgV z;lcHn--9jO-g&F#R;p{L<Lafyr(U~8@N?JLHk*YCJCbjn-+wb3{9yk?hhTIMy)Xq6 zj(-mj0ry~`*g5~q`JeRE)|2~gi^r1h{JlMUdDIkiqi5my<Z#m`y?xydi;X=!yk`bR zWz(%>#9_f~U3mN4cr+L8OW2~v_RhXId-NtaNRC~4^z+2`d()dAOYZACcs-DT;mZgB zhYM59bzMJlmTCRZ{hk<$?3hm6=t+m{lz%$V^2-x9qb03zx%<NLAKOwW!l)bq)y?07 zMVABQrAwSR#bi7e{X-v*oyo~oLCxsdFf$|9_Vge8H8F;4HJ_@v#>>?W6+tv#Z2$Ps zg#+oWrGO;?1X>}O+d7pPIB}ZYKmm7PtY}8+0IfhN2$uBmExDN4daC<O_eAW;v46MD zwN5D0q1jz2<WN{sjQFNjE&>2h5qD66y|`&OIuVQJ-WbIsW{^P<#afsuAaa+L2L}%9 zX}PFtp{z_f;E{PLuOlB=YH}o}I;nb$Rxk;0vTf>6sChOrs{@na_Y(6ZZFr}9B;Q`} z>*wrVgw?wdKf8PKRZ%guq6SR0eSg(xdX3@SQasttL27Rwtd>kUL4HSBQVF3YS_*hB zNmCFe7Zii|4+j5hjQ|DO*U|Y%utAj>qr`Dd+bFSYOR6WW=lw1={y-EWWH3ljA(z{Q z4HG6T*sx%OKQOg&NjcyU;lW;=CLAuD^0V&L?s`boAH3ql`clJ#ZG#j2p=|;92Rd-* zam6%XrT_o{C3HntbYx+4WjbSWWnpw>05UK!F)c7QEipD!F*Z6hH99mmEigAaFfc{K z{{{d603~!qSaf7zbY(hiZ)9m^c>ppnF)=MLHZ3tWR53O>G&MRjH!UzXIxsLao=3Wo QAtwp|07*qoM6N<$f~ru2qW}N^ diff --git a/java/res/drawable-hdpi/sym_bkeyboard_return.png b/java/res/drawable-hdpi/sym_bkeyboard_return.png index 91bb397ff8903db86dd536dd44d0800232527400..426e1599ee26dcb27c8129fbea70f6df334d0746 100644 GIT binary patch delta 1067 zcmV+`1l0SI3)cvc83+ad007*G`)-qA1t)(4`AI}URCwC#T3tv}VHoagr)|evS(=5( zHl?683WQb{22*hgZW<vOf;Zg=UU=2tx*Odjby;1FD5!3_8M(RPF9=<Y(S=<`7a9_T zxXRXk+Fb8v?}<5&JKuKB<|gNb2if_4pYMDBz89HHCUamvit4~V6@{2WOd+NaQ;2^l z#Hv}?3f&h2P~-mi!`}p?0BJy`8i^57T0kw}FhGaj<A4poFF*o`mW~+1Fp|a#<f>#( zdO&kqTbrBXxGiGwcs${DyPpgU3@pLV2p}msu@p!ZfjMgcXG|tj2vzPsT3cJg&~^?` zE4D9Hh1z{>DwR5#+pxO2YC-ipST=tfgHz%SUV{ctY~T+ucu?0uu9l2tRUo+yi9|w& z^Q+533`uFwHjbdd6J!5Qj2+sO1(M5WxN4DhdE!_WDWW>2uCA^JEX#hdSS(K?kw_DK z<7hS_yGV2%3_uGw3Ak*t*?if?J~}$;g6~ZLwt)5P0GA8~!{=P*@vnQP18{%5l+Gjj zri^yG{r=+OqBFZgEEa3Tm{jmOjKnyil1Qo!U?8OC=H{;MFkqHd)7nJN+>%vSC6Sb| zx3||NM5@SBXV9T(ARu$QX>TcV#cem$*VlJ<W@hG^h&quqSkU`4#oQ!5=^<X70LOD| zhdWfO(-=lJ<s`<FBJSMabUJ_U1cSlBd;@Ag;7<c4uStse$t|548ymZsOeQtC9rSwr z4~&hn5#vvDixlK*x2C41u8R#?TU#@EJRW;A8r^_QB9+%BK(tz|&g=Es=jZ1;g!<Ii z*MG$XI3<_6SEC!g0Hj_Ex#4mE)_zIyNB}3A!%`9>vC23yGBUAOq;!8eT{IjHJ1}Ol zauGWOFt@a{EbSGs{{H?Ku!pk%JthWKm)-9WtJS(NIXU@^m@SF>G%lZ(7%|ppdwYAJ zoP;zQO>$^x$P)^M?!nJ5_<~MT4X#AzVKf>)f$F^i&pU|f*MN4;(B`oW<tvzX_jTy* zZ~J_{8)AcohldwBJ3D{h)3|$*-KIfYF4sq*9e6uGvBnXjE#efD-Se4zBf#o#INpk# z{P_6zbLe{oa2j9`K{LJt8c{oH(EBmPygUlYJTjO)km$eS_xm41N~Ow|ef$PNgXaS) z%^I79<b-l1!8|$gGF}M;0*`undc6763mp$B4+w&9(ot`dJ0<L<M`El*ERPjq*8 zzsp0cs!H73Zf<sV_Ms3t@E7TVjlKeE_dGdLyj&*aY&M%ey938@-)O3~m00u0t$SPq z_x=XnO$oEv99&;tKaU<xRl@Zp#WC8qnqc`2Z?>%J$jE5lyB19M!p0coA6OJ(3NeM4 lLQEm15L1YiP5u`OFaW39whq8|>xuvX002ovPDHLkV1kCs_bC7X delta 1383 zcmV-t1(^ER2$Bns8Gi%-004G@GvxpP00Lr5M??VshmXv^00009a7bBm0000;0000; z07l7cJ^%m!33hNnX8-^IHUIzsGXOK1Jc$4R1e!@iK~z}7?U&1s6jc<5zgv&)u71sf z0p~?{j4%Sx48j0H;vhrF1YKxiTo`rhihqE=z^!rN$_*OhV}C<%L4u%?sBugX86M&w zBXOQE4~FipepFZ0burycRdx4tLwd)YPI_@~-SeIEJLlf23+uLS&!mZFIFSvyZzfE5 z{7L`tifPRe2!Vo%hKdR}*w{F@{)d_a6R7Bf2@^s`VqsyC!}jAEfXNEaRbU#%V*6C* zznw)xxLRh*?0?>AT;vnO8p=#3Hu}PMubmrt*rB?c7LI=X*|!uaVtZp<6DDhnR^+A- zBKE_c--Z`<TY%F!e&_ty;LQ#b;dP=kfGQVXLq$P=42Gc)A~xPPvAYOBj^*BaJ2P=q ze_ZutR8Y~;P>{IQy9@;#Ba_VN<sd?e5z=*3|6?^^a(~rLh%g4prKogUGTI|@!Ln28 zMyan3D?(Eh712OuK2(&}dz}}zk9RuG&VSy!Z7eDdPC!S2f~p3Ff~d7+RM3gilHYRn z=;z08^{c#m?%<dGmXY_Dy%e1gbx)%TnDnEPxBJf@{%T}mPd*B%zPp>drw!HjTzQ$4 z@(E!clz)anTdMc_Ll;i`vCm%VTI1oyf`N(>Xh?y0s?17@RU#zp?kfk*9{Y8mghE#% zVJ%Du%_pQpM@Ltbr-2DH43hNzH1P3>>wEIy@<d2WL^mWzB77|(iIXHA*K1XzDom~j zsAAAs==x>g?5md#r4ycc-AX>_H7I7JxA|o#Mt?_Pv+aEn*OhJ%7tBnc5g|#}#K0%7 zUmP-H-pP#icL)3Q9od3(yldj&T=LK7?sTmVxzdu3O91DAmGaVw(s|*fPv02bpNab; zncn!#-ncF7qT|g>2wj!>Vsx&3bxbvP-A@$OfB~R5p=|5rUFU`_4rLO7IhI<NT4}&^ zCx0=2c#>>z^ZQ`}VMcCre{}rXn`X2Tx7AE_x6beQkA-?Li3o`{3bA~w?hdVK$@Ia? zLsxl39>+fu+#51tZ%c2T>YCHshP``)3EAzBw%z#P!n<Rb6ma~<W3XltE4=*SXh+)@ zZ&lW;o`v0=lY>9M{o~**7BMN-``~f0M1T7DxD}gi`+ab>(?8k1+%sR<jUd4l#mI8Y z{pV+fuaDefi4=vPh}B?4Oy*9GZB<T-OGnL^^yttt|IXF^1wG~8XA%d+PG*lxcTAJP z#KffF|N5vUqeC9ST;H`*YESmeN$*~Z+x-i#TrsACCx|PBtJ@oL<j7N?fL-y%3xC2y zNf0DC2)n}y%tS}`uZk&(q12|S&;;p#Gl|5-#lgYBE!RrahIy9S<bcUx+3lVdmxj!k zD*!Azon1_KrASpoE=xaO==Ee=6*C9SZ0D5PlRY!CavT?(T;48V)sm^61z?X~Q)Myb zF{LQ}YP)*iVG?An?Lm0uTv!7o8h?d7u3TA6!Q>I~zL8<<MMWmZ`z90SN>)#E{i(Xf z|8XE&W;fm3I2V^r_xz!m=#rAfLN*N+z=esRq2S_RQJ{#^RG0^-pp@=iveeqml`)W= zc>G`WKG_sl?YnYQ?#Ao3ZqJVW52B&y*P_M`-2eapC3HntbYx+4WjbSWWl~{uWdJfT zF)=MLHZ3tWR53O>G&MRjH!UzXIxsLr!~X^V001R)MObuXVRU6WZEs|0W_bWIFflPL pFg7hQHdHY-Iy5ypG&e0UH##sdG@eJgks&7v002ovPDHLkV1l3lnS=lU diff --git a/java/res/drawable-hdpi/sym_bkeyboard_search.png b/java/res/drawable-hdpi/sym_bkeyboard_search.png index 0ac08145b3daa55aff413ca63151cfe1bbbd204b..1b6f884fa39a191cf08aca04df2bae8d77bb08de 100644 GIT binary patch delta 1572 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 WbLJ3QeJ+#$0000<MNUMnLSTXrV*;80 delta 2007 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 diff --git a/java/res/drawable-hdpi/sym_bkeyboard_settings.png b/java/res/drawable-hdpi/sym_bkeyboard_settings.png index 5b6217aa0d374d2f8223565606551283690c481d..08ba18f28db90ae647f03e5ee4111cc29a2ebb27 100644 GIT binary patch delta 705 zcmV;y0zUn&4cP@DiBL{Q4GJ0x0000DNk~Le0000a0000p2nGNE0RPjfyOVteCw~Ha zNkl<Zc-rik|3||?7{~W1BE}do#)ydMr!hv9h!G<qBKj#J`YB38L`3vY^mD(&5@RW% zU&bg)lx37=lo(Ogb9u^j-97hwwxuubcyoQad+v4jdA{6dUcFuq{HEqPAP3}t9FPP0 zOF*9I{RqS-hW`N60ZM_=pg3p`w0{I@2VH>9K*yjX)QcaWw?E#+Y%5}#Bmpr4T2-D4 zMYt#Q!N3GcfV#1t)-0^kJt!t^qQ6x@Q=l5C4BEoJy100r(L5Jp_oe<=vp|!KlPI8H zML|`|*e4y7AD~0a0%F&F()ek{1}2*U61#pTjL&K2>=NTI@ict{2`3JN)_)C#i=aUw zEi8f_4Rbd@vltvKpdk9fv*C1vlXfzqSwvWgIIRoJT~?qe!bnkpiQ<m42r5prOZtBt z9ob|r#R1wT3=B()r7+j1W5nr>NaN-Sdm9{}f?;xAS|nl#@jLWE(L#pYC6wa;RjJ)z z+hm0Ix->pR_|YeZHjOie4S!C0u0)}&#ijnWVa%7cbU+W^aKkWF{B{md#W1;B>K`#6 zPNaU1Vax+v*y#6NRF3+F@ShSov(2e99H(Bh<qd2DcmvRt2ieCK2zzTBpoC@TvLlA@ zu9LwUwv3rxepQczy#%+G<q0E)%$wk#<+YyrDXycI98<y))1d(g;(u#;ve=l=0a2Iy z98uBV+bu?11w%NDeipRMI{*#&z2rx+1k_usGTLtFf|g_)y&u(dS>Ep@KWTAJu5L^v zr;*Q~82VJBFj@6AH47AwzR3zcKnhASwE{KzZQlzT$0!VA0u%-G3L{QL(T;LM_y<2W nxF4(>kOOi+4k!?K6&7Fs#{GXcK*=_w00000NkvXXu0mjfQ*Any delta 1693 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 diff --git a/java/res/drawable-hdpi/sym_bkeyboard_shift.png b/java/res/drawable-hdpi/sym_bkeyboard_shift.png index 5ef01b8bdbeda5753aca1d12bb7c668cfa7207ac..5a22dd30970f4bd04822e15ad7721ac16df176d5 100644 GIT binary patch delta 1433 zcmV;K1!nr34#EqN83+ad007*G`)-r#1}A?7WJyFpRCwC#T3tw7M-+DdSF^iWcQ;XM z<JzEGHKHMnH9nZc5RF2LqO@S41#Jqo7F!TX@kI*KhYCWA(!_!fMQMvzP<&8os36!% z^uazPf~e5;K_dP{cUSk%?RWHCx!A1r>TYtC9r#%8xifRW@6MSyXXdUV7!1ao#-e|W zIi)2kEGjH2EGq0sMg0O_AVC38d<pRHi55nJ^gt}21-yV8*ovgMW4oe4p$G{cArfU9 z7#O%>x7&Z1nVE6m+5+hKeq;(|9>>7}{VD)G@ao*$-0g&fggG*&rKLTBtpG>@bX+ec z+=z%UCaYue1(}(df3Vx_ps=v8ANGH%z<EF$32|W;#w4{&`YMSavs$h8R#jE~CWx!7 zto$DLF9TLU9d2=96~^S$O!hL77lbr4G_=F^PDx4009|7a2I}kUzk=-&VCHtR6{cpA zmxwfxCv#CzQ6FsASVW=Vni`E}tG&Iw9ySMH1XQvU#-xaxqobqa6LLK=r>B3XPl^@` z6L4XEe!e6zF>#*m8w`e3teEe@ei1kWC}ksz$q=cFM3Tso*=Do-v#_vmhgL>jAxV53 z@Y?=*Q&UrSVNU^K!!h5&G3*K^YX`Zvh$NAXjg8&t>+5@uM}qDvL@!}yWLsNXKNCh4 zG49F6#>REnUkOJT2!|*lk-UGnxOj`m5lNLw<!^3o{sQ(4VeW*Oi`jK`bzch$OkQ5z zL)h|xgyV*R<BHNUiTvE$+%bV*b#?W9*m8h)5)mRK2&?Cn;^N|;g|?-or9YAlumPH* ziaU-d4L|&iva+(D1Y-I5`M<)J2b>d#9T3EY7jrE;JNtK`kD8jAZ^VBu=0yn;-Znin zr?$5CTY(VIlN;i6>3`C>y|jx~%A};E1;LeDT3SA5S2i6b3>-xmJ>)Eq)zs9~OeBbm z)oNXyo}RwPsgj*D4-3yR5~&o01sxN%@`zFWHzy}2KQft2&!}2lT%5DJyZb}f(*c9j zFd$Wwk{^=Z+1dHAPN#p{<Q32}G&J-b>>mKMY~KQI@IsKm0<@wLI?utH;@eHGPwnmv z4h}v*;Pz3!@$vCXqobp5!=5UvtdS75m)H&u58pML%}>RNZ7AT)KSi6@dE}@M^T^0Z z!C~4GD3H(2&fb)|Qc8|j<KyEQc#}^KOU!6AF0*@@xsP)b6BB=T4%?oPnwt7h>ZnQH zLASNFC1+)2{bI3LjC#FZr$pJ?wW7d1buO3dLT_*Hb-~6vXCaoU;A%Q?pV$HX83+Vi zeiYHdvQs=BkJssRy35PUbNc)HM<R7J-~-`D_<hV<ebv5QFkRbvdU}ckVT#?Y^jW~l z_bt$F6nEOy)%AY>8&K+V4cOlQOg>6j2mFx|=I4iaLTu})KOf%kGw~?mCxt~hNhIc7 zvbfRK*48q9{sxwwa}E+@vHnO23yQ?~#b+MkREdPc72SeuWo5;PI`<Ficyn`;Uc?3? zD2v0K=ZN>MudlnLG;+J$E_OND9>0;xcq=L@9>d)}MM!_JXti2>sLEcicXM@hbp`3v zk`y<4Str54l#~>2aCfuz@;<&r;LIZ)*+QX|I7Rh2_YB*CP9#Q512;S)r2*I1$lVo{ z*cEFfP4wORO1TUBPZ=8<`x5R^3EZY%x;_<OTd?|3U|s>}@W#*ACtnzrd;@=opy!$R z`s52klG}fL8op?5BT4s4N<eq(Z_8bn54obGImGpSa(6|K!{PX=v9a-eq*MmlvxTaN ztlqP>w&tYzykiJkQAFS`M{3?!#_?B6)d6(_EXd8DaQ$)?rVzRLVLrtMMe{2tXJN7^ n(Lb<6g++x$g&nE<E5HCv3ikh^dNNG_0000<MNS1ou0mjf4k^Gn delta 1780 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 WFf^V=x{)C#3IG5}MNUMnLSTZH%Qv_H diff --git a/java/res/drawable-hdpi/sym_bkeyboard_shift_locked.png b/java/res/drawable-hdpi/sym_bkeyboard_shift_locked.png index 7d36dcb34c06870f4672a2eda80a18c012040fb3..5664491267bfe10b0660f1b0b0474b99cc174e0d 100644 GIT binary patch delta 1071 zcmV+~1kn4t3)={g83+ad007*G`)-qp1t)(4{YgYYRCwC#nm<evQ5?s)_GnA7NGn17 z2gT58q>xl&P!d!$alsfC!a`h#izYZQnK0-?oE=CQG%>Kq1i^tsBa18=1_#8DFlZt~ zqEzS~dbFJ1pZtzAL`YxzPET_$`Q+NWcklf^cdz&UToql{Oa8~?DEUv5EoO_^Vzz%+ zK}r3C7m!c@^)Ff8{?lS4<N;;C1vHQZ8)nKC-4qo?*%Q7)BvmyrF>$u8uI}0V{CpVS z1HjG4%}F%!D29E?Re%Q^UtC<gUQ<)ENV`L!&^zpF1xJ9J^OeZP6fq9g&B3=uB9XV; z?0(VS-u?pn&x2~<GDA+f7zgR%pwEAkM6Q%UcX#(w9FKxSK$R^gRg8mEIoK!#|2rwd z;c#sA_4PeMzD7{V=UG-v<scg=XbOHWF~a3?rH6)w`j9^ie86crF%F7?J4L~&s;ccL zW#IGqVw01TJvi?qC<hM9h;c9!)JY1mqN3tQK2iqN)zx2SXJ>EX{8~^Z<M)3i<F-=} zUQkEDQIH~12KDvzAJ^B{FQc5JGP(g7QWV6o<>lpT6kH)v1}!ZuuTfSDI9zNuP^^@T zgSZflM&A@8Wzf;l@f_uy16823P`P5HO1biL6pRchgWlfW$0)ZM_zUd@3YAj1(q;-m zrWE0HIx~ZVgZEMXX;4u}H&B0w7*%o*oEaDxctAnO79+e~Z+v8A<TmOFfdiu5fT)y% zD+vt`58rXS-6=Dq4E%oo%JlSf7wQZ0lUFfAY-eCQH8pjkva<54nNkKcD_B@qxFY(b z6z;EPW@b*~N`CkgQU<|b@RjIYQv_CmX;N6$)zx)zX=&+dAQ13*JRW~H#)CVPRr-wP z=}sgPC&tFcF6CQrTU*=vY&M(7Amt3vex-Cet;OT<WK&bqlkxHKmpGKlXXY&`rt%cO zoVU(hvtasOH99)l-qX|bFyDgF)b2JkG|b^+3~cQ>yva)mYaqejb=hkk8LlL~$F!cx z+r$<AAyVkZ#>O{nK7)Ui-vq6*Y=)7(n4{;&WpdX%a;GgMj;5Ft5lf{~bRpImDGNNZ z*A*$K&9$|)gvd$BWYTD2mR)|MCZlzBcFv)Ly@xI#fXSq1ugsdJrB+v0zeggG6_IB4 zw^oAn+S*!8-+n6ny_at$ta<n`T4)pLrzk&<J*6$^m~qES(F}jfMNZ)SrB-i>4pmiM zLO=BF{0^&&*{_joF<Z=Bu`LYJHK76McK$7^i)~`87#BH#^ILjIMJXK)hd=fA_us;h z>Hy8z_8HZuW3gDA^7D*AT2f5-%aO{jWWD^>(z#FGEDI(16>i4LVoFXk&*xRFp7Z<C ptt@6g?rkw!%oZE_chgS+1_0s_B03J<d&vL*002ovPDHLkV1flW35fsz delta 1428 zcmV;F1#9}-2)hfA8Gi%-004G@GvxpP00Lr5M??VshmXv^00009a7bBm0000;0000; z07l7cJ^%m!33hNnX8-^IHUIzsGXOK1Jc$4R1j9*0K~z}7?U-9{R8<tm|9kIqnLBM6 zdgan0FQrmJB1pMYK#9EYW@7vV#>5X{0<S)q7+*|CG%ATfE`O0|NhFGqfKkCh(}Gl} zrBK?r_1yN}%ZHiPwlmW?L;Ip(Jx=~-{q|aWtu^Z$;JN+RjMXQnWjUw|M$2?!JVP#6 z$vXj{swY@ZWHhTcAi$x)Ku}Q7;oXFcYz}3@Mx+q^A>Qis=HS39#zvul^`w!(fQ=Ly z{#g5QU-wAwRezYs!+{K&$`G)*s01QNq2YtwXAa%nJay|ly>Sy78U$60u2yU{Ve?Qn z61w^3#(|?ZP87Jg`fEy24>gU0;1zKzl|~K|39NeDb@I($cg=9%LCY6Mz)x7O{R9HR zgRYHR5=Q@`EF`e%;!Bqf|NQDi3jvTK*Lb<l%Jxkr0e=OJ0IF7*7$H$HG>vr*?7MvQ zeurWJU`VEi)}?lQI@Pbb6xS$#pqIY6+G*r45Jjr6_NznR?;dPdC0|M?0sPi|GVZIl zRHFo820^jwo(;ypil~PhFZ7*0Jp6(`rzZvgzBShQ`9X5t%|JneAfc-#vkGk9yojK| zYyWQhH-87OZ}H7?WnlcWEs@zi`65ec5S*n3*iw-(a9Bv9^=|K(0|Psm7D|coV->6) z``$~QQir_xT^AZgMO3kgJ1%bh==im5`Iw=oVs?mSlfylq^!vf<4ipG3G?iS0i>%bd zNMG4}e&4tI^GQI8Dq0Y-$*X&!h4$(0VN;iyynl`~G8l*>jrE`HK6}uKp@u1buldrE z>BOniolYs473z{#MMaUi-TBV(fxVAfl|W6C;_tTWuYB2eXA=^zAu1JQ<;WNeME-0$ zxAp9?N9%*yBmjWR@3#-^=eg8mlWY5x%A^{M!}zf0O8=8|SQG$A^YYg5smSQDr(Ky! zk$>?j&oR)w^utYV&D)x91lOKuA8pK5sRX0yb4q8#g9Im&F@Q0~Idh|~y-+5U<=cT) zq=^V1P4Q8g(?R7<tK2ypHsV*?$2zFVju{r18L{I=?EM25b}UqOjPDzK`*wWX%WJ8m z^j#-9(KXgJ5zoPg4%cS{32)Z}JVq2YOn(4zG$NhqT`Y{Mw&`QPV+0xakdScU!iQUV zid2IsxR40of`fw)g9q`{Uo2E2L$@CHj3EoR)Ljx1vK|;p6P(SZ+5v+(?JkzN$U3<x zJV9=D&%*3JSx12^ek6bgf9G)InwVF=jHMrL9%{@%B7j6qs|YKv8scC;|9I!1#eZgL z1QN;d*0HoKZpmzUJIG=?x8d3z!(*j%5!0gWuPx5Ho2x^v#9?6!0><d-kq$O*B_-}s z^W7OM>|yJHSu?S`jRkF8SQRA5syuefjfW8d00eBSZ2B9_G7V#;VXW%UEc}~LSQtSg zkY#^}ilkC1%r;yPOe28fmcarzzJKQ-2nP#WAR0dM9mAc26z3La07#S6EqBsGk!;wP zrtmNi`MuYhEVo(2Ob!qQYQ|qP^zw~0Q;<t<!m}3ga!J5K^j_m+la32p7z{*GdR`>E zW~wD)I|!g^y9x_q5HMlDfC&Q}rIIPlcnJksIasm81^9xm1q6bIh6Yv^R)1YhVO`bt z9i)zL9?$LnVgCRUln0PF>@?m0001R)MObuXVRU6WV{&C-bY%cCFflPLFg7hQHdHY- zIy5ypG&e0UH##sdMZ^CF0000bbVXQnWMOn=I&E)cX=Zr<GB7bQEig7MF*Z~&Haavl iIy5&eFgH3dFf^V=x&QzG8IdI;3IG5}MNUMnLSTY%XO3|I diff --git a/java/res/drawable-hdpi/sym_bkeyboard_space.png b/java/res/drawable-hdpi/sym_bkeyboard_space.png index 77518cc9361072e0158b7c8ef7dba41267bf4cd2..cd0ebe2f496a2ad911043ffeee11b49c2585cab8 100644 GIT binary patch delta 308 zcmbQn_KazQBnKM<1H+w;-+7atGO5=ya(KEphE&{oGs}_du!4Z=<OvVX`6{fITX_BL z*{UwRyPgVR2U}TOR%hJ)V8_GEX|b=cB*sE2xlKDuN>A$m12c~SKH?42EaL;>*@vo^ z-<|dC--`)97X8pPFrTqyTjl#DYxeHB-dlgL>+$jfG0V&}pBn#JF=f|p$E|<EO^dC= zLjPQ{-NrJLOSSpZi;YS0$LAYm#kd&VeEdMO&t9CZL^9ggYh_q=%F$K+M`z?6bj#C} zJd(wqX8!r{ed#Y3AA0Cd^!s{2<i@>)ce-}9%#RL9el&50g{j9!X6>n07X&9f*FL-b r{WSM?Qx&qFM9L>Lm|l%;U}WIB>vY7v@@g_Ld>A}k{an^LB{Ts5@MMUV delta 742 zcmaFHG>vV7WIYQ514CJ(@lznhl;rL1!tlSn|IB_MkF&rdvKUBvfU(=jY&(!(S%G6Z zkTwHiV+P|{Hl09ia-J@ZArXh)PW2AD?I6&$f9A#0hxjDcw9H^-jcZ#qhn?>zZxO53 z=@=HX32RSudvWNWTs-p}Q+q;Vu4PXB*UZI}e!bscopz;Z8ZwYvQNR6?&YQ?tna%0< zSGrq1dm0%eeWgj1&AEZiMwGAJ#3*OM+VZrH4o;4SuC7Ujp@;X0WzC-<I@iYf-kyl& z-uU<D+U+N0U7TmLpxe*RqR#qaon)Q=oik3XhLh&?^6`J`oAmif&HMTn1^-LJtroSi zO`mq|<-3Rfn!i2BQCT_Tc<ME4?vgB{-LW}Mw>`H#vJ20+bLg5#o5?%%=)C1OSa#<c z%@qnbXRV;tRqgqTp~@)YZTg+UyBF5nKF_w=meC_tzccB~7xUovKH0);#~57FCX}^b zxU<GuX30cG12vwlj@PHXUFqYys{Z74`#t|H)~xf^uKV~hz>2T=o$Ivq|9wA~2wger zGN(9>;nTt8CPi+#GV=UU>dD2EnJNnX?)>SO+Os(|Q`TXkNT*OpvcAAfmgw+l=Ypaq zE)aWPlc|4r_0&@pQ}*BQUB>LKxWI7^-}*O8^<P)Vny>znJ11S;JiAk3nsm?ix(6Ed zA!S0(e@)A>I{4*ExJ&A<wf}#fecwCPPatdWo|)gL?%i2kYWVBduk@PJ5`o5Nc@z}| z6+fmd(d%Bm=!ns=q{7c<M5KBTF37CoTfW`tgN2M-{~5FDKX2-LmIZs>UG#ANFV#Iu zUWtETzpwKt=ERzn(}2lFwZt`|BqgyV)hf9tH8HRxmBGls&`{UFOxMsX#L&#j#MH{f sT-U(d%D}+&@P9TG9l7}_nQ4`{HJHqE-!)NDor{6N)78&qol`;+0Fxs@CIA2c diff --git a/java/res/drawable-hdpi/sym_bkeyboard_tab.png b/java/res/drawable-hdpi/sym_bkeyboard_tab.png index 5db4cef2b0d0220632639ce9ad30a8311f644199..3466e127101007166179df2ea81967b68ccd10ee 100644 GIT binary patch delta 963 zcmV;!13diW2=E7x83+ad0095fs=Jdi1Sfw3l1W5CRCwC#nN4UDK@`V#c9Y#^^Ifc1 z!L)*>9C|8f55XR!;-T$Pi-C%V2)&CvNv}nE)LcSoOTh@0wx_0eC`Ay|vv?4p6)Z^6 zek5IOn$7xNcq7vw&4z9_5i{^7yP3`GZ{NK6&+LR*mL)Y)k)<XpEua=q3+TTC^0<He z@F+&YQYKlX(*rTaYF-1g0bZnlRFIeMiy%c($uXchqJuDgk_I{g6)0LfQm*9?2MYD} z_CAEDevHLpX*iF9+Jr82HK`FOpzAsUNSdbch^ZonTR=RAGy;)4P~gKyY10rOnK+cn zjiC^v+%iU2jgdS?5=M$e{$w=*hzWlVEDN3joR$et<wgK0WOOREXOjCK0@P8xP)-2h zRG<$J58ns|gWCN3{98CTKzVdxgmN>fIZz-J3SG=*v*}bSbr;TKp!4X=6gfq7<FlUa zu?;;Ei3Cm4R5O{(qhhgmX=Y~Tg#dC$$8`bm1XTpdHhv!lwF6LuMx8u6JDY#p+uQ3{ zTwHuc?d(#XDRzMv9ec^nb!xy{1Ik0)asj$5Dpo8lE#2(z?+>r6tW5cQzOR(*8acEr zAca7%;dAulI$gs~$U&SSJN$lsdv)dd`uerLzP`t6YipCyX!Hl>Q!OA2F-idiK(X=h z@q4PO=7m+<snylh^=V^c<34}1e`jcD=p}v^kH_D@`E}4`kdHWybw?$C;Hj=cQU;uy z4mLM8uM7?jrZ5FqjU}cm*gYDUIWREr8p8X<NuciT?#~Mg3mIG`S~Yez#8HOpT4Q2j z;yviLkV9TOIh0PP6Jujzx2iAb>FN29%jG6JJ3GH)TV*JAfGiF~k@|lL+9p$DCjjwL zmM;_v@#@M%BJpl@b@d61vMp*qTn~^*26jY1c6|s(rM$ntzav&a^1fPLUVaLP*!??X zBW-qpL@1M>>>6vO+jgPQvZI_#CbM&MbI%Fp8%?%hYWvKm4(y5p;K_r<ltxEKr>3W; zbJXSAG|4hMFirqj{QZ9lx@>D?WaI(B9GmT_-oqDeZUGsPFS+XV5Y}NA!brD$A18ni z;1@wK;a$BUD@IFr4Q`4xwRmGk_Lp1lWz7P_bFBoW;z#7zCf|l>1W;vaf>M--jHalP z2<2v%AxOb6473P|zz*p9KS1oXf4<n<(o<+->Tf$}h7c)7-t8~#T*mhkd8DfM7@dod l)4Q;&^?%vF2J~Bi0RZ^Fg!-}ie%b&4002ovPDHLkV1hkY!`1)* delta 1078 zcmV-61j+mG2jd8k8Gi%-0033mVlV&z00Lr5M??VshmXv^00009a7bBm0000;0000; z07l7cJ^%m!33hNnX8-^IBme*aGXQ;rpBVrE18Ye{K~zY`?Up@n990yCpL6eg?1zbW zZR}(n*(@YVkdZ(#4HO`eCXz*<u#hOAp^NCK!aty+LgFXTAb&&$iUpEWBnl!TRwQsi zY{jx2yxBN5`#m%FQq0<3cE@XHlnzcg(tXZ5?>YC}1OLZ=IOOS%*hGx;3<Ovp6-ZEM z6ap9`3>KRPq;T=DSQHS_Axfu6;gbEPv{pQ~JG=AB6C$Ei_E_IOZ>ML!^fzAr`t$c} z$>yyBl~z%BwtqckW@HRMb}JpoA(xF5IeW^*iy3J^pmDVZN4w5`{f3&I+<FLt2p}S| z-%%&4njCU1*!>K)C)05tL6EKi29qfAgdhjq#aTiE%n*=08l-S{^0&vt8xQ98q(PH* z@<ku6NN{lPp8jfHjh7#uyII)6!J?7D<j%i7_2*K!WPj?D>u)}~_(%0j?!#Zoe-fe5 zM=Me&6oTsMEQ2P`DQ}|o;?~Q;&&tottMm7D3l}8`AVJ~a<KuL#jl-hJQ=FL0Xg6x< zrMa!*`oy*GCb#hLlu81*<nS52Rj!R>wH$y%yV*i+W7<(FK)3wWmlm0-eDK=~RXnW+ zK?;xjPk%FO7w^1k3cflNB;tC{$@WM+7uUSz{eJ%XrL4Pf_e|5(HbIetdu`#~M|h%o z4HpoFk&YL3^M}sTT*Yg<pDp{6^lO6bPBkYuLA3np<dY(f>gxc9`0m)z&1_|uBHR6* zX^(Fgb_h*hv&5i~;EQk9?j7aP53}p1TNwZyy?=e@%F@Cz&30c$I)I@={nCA^vztj( zTba30j%z(uzp!%o`jzEU6)%W{K}7*|Lc%w8llrJ8p)oFG+80(nUi@S!Q^6w_MI?YC zED^1Q&K{vvDYc?NJG}Ml{NnpJG7o5z$1w@N79TPs-8F$uWn{JF<sQBB<GZ)duJRa- zi+{0$AUUjK|CKfbwDQ~2H)mGL53k-TY*MFACTS)OA0w8K;I+R#{a(EBV04cLO#(dZ zpm+z4UP&w%g5uwoYdsUvCeOj+My(|zdKNP~&TkSOd@2zA2*Dn_Wg;g89pRnD#!s5H z_Q0`pPj*BQMG!_o*j=<zfeayyrZzNWFMpsDJD3g>&~!HZP4&P&rX4Fvv(>s}$n|V& z4LV}efb`%FnGTe&)usc%z@D9cVYeyI9UuPySiM&n*`Igz0000bbVXQnWMOn=I%9HW zVRU5xGB7bQEig7MF*Z~&HaavlIy5&eFgH3dFh#@v1^@s6C3HntbYx+4WjbwdWFcv0 wc>ppnF)=MLHZ3tWR53O>G&MRjH!UzXIxsLao=3WoAtwp|07*qoM6N<$f{kqIWdHyG diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal.9.png index 4e337fa0836e56404e74b1c9e250e9088dfc1794..49329f094894ae3cb884850ff36ce95bd394029b 100644 GIT binary patch delta 433 zcmV;i0Z#t;0?GrBBYy#rNkl<Zc-rll%WA?<5QYUcK88ybbdy+Z)ZC4^dapv2x~%SM zeSetFxDbSzap4dI4}6>ObLQLp1387lV-6G^cu}6bL|!6KEaG_{{2Y()dpe2Xk486T zE+4-4d-&SzV6)wdKzHvC2Pl<F*&-C4Os6oOOhll&KQ|jtDu0!1k@b2FX_|^cGZaP1 z7Wr7MAWjldXa*~?TrMGsB2j1tE3#NDAP7TI<~V~Dna$_tdPy>!&3F+C4Sin}Y7Q$x z6?1W^Ns^Aoya<IH*A*qf3bP^!*2}hSQQ|n}MIsEDmL*Dv6=p@kC<MbaL<z!x7YTv@ z27`epBdjnhLVrE)_4}gGjB>f0EkZrldp%KT1}owXhw!fJqR<Rp1Q$-X+ZDydUBZe` zsMG0);yBK~B3B=1^SxnM68nb8l?-jZcDpT#g-eYUu~0<Auq5U^A{0_JO%%g4?-0R| zs;Z(GhVc@4Vi6rzaI4jVX0s^*-Ayx!#bUNdwOWOGy($j1T1|vTqj8?W{)FfKERn}s b$<_G-yCxR!kSqbJ00000NkvXXu0mjfL?ypx delta 351 zcmV-l0igcM1Nj1wBYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUz z8%ab#RCwC#n9UA@APmO~a`82s$N3b#_4XP*gGW!^gmyr-!+>oj+SnzM^g>Aa@o)Jk z0Q)rB>Ok$~Xe-AFa)SIXNZ<Ex?K;p}v&}jT1Ke-7w?2~&x_`7SOw$C;ITnbjs-S5a zFvftj_A|&l&(Vm8DF!M6Xb%M6K<u&rGO6*(0T%$0g=Qe=2O#n0ZpnWJLWt2gTgiV8 zB1MrH8fHasts=y%2(41Y)1Hcm+%<B}5yEJ^p;?n7NYQvhLoz}`g@hHnYovgL>sidD zca$QOB@**Xxme`iJj+g!_Z~S=5xKhtm_bVZH3(@Z$j=;Ee1R2=yV6Uaiy6o`j!@S% x8%QYb!yIXCE#+GRRB7d2K4LycRND6tU;xg=0|;54gFFBL002ovPDHLkV1jc;o8$lh diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_off.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_off.9.png index fe18497d82a1c7d9c1138230ffdd14c24b59ecba..46e9db092dc267820a4998ae1e278d65c04d83a2 100644 GIT binary patch delta 564 zcmV-40?YlO1k41GBYy%DNkl<Zc-rllS!=>T5XS|Neh43Y5IjJ^`%b(~;(fH*TH43z zTdm(8rt@EFsnBK%=^zCIznAQ?^J8~svKyc8Zyxgf;Xs$<DsmP1$0FTsmtGGCdOIG) z=nn=z%6z_f+3o1*`I)wlk0M~~-F{DjK)_uDou{)IO{P;3Fn{*Lc1xj~8+VcQdQIc; z*fY&$lcLcmg~MTr#bVUybUxb<BNPg`i`?Gb(Qq{KM7P(Ycsx$IT#hQ03S}}GN+c3w z*|us&46Vp&wIauHJW;JyDWA_%qtQ^*>vhUzvt$^CYDWyM$a1+<=3X#)S&F3+)mY#} zp;)92XC&Ge9DhSAGG8oIdU;_ynWz~km&<BtN-UM-Wx{*3&*pQz2s-upeNWgt{TQeG zu|F!jRG5W<WvO;#j#dOIhAH%lGaS<9{$ACM^=6~wPHmVOtq3}`In^W?aSCfiMx0)) zR!fv2&z4pMQ;J<L36@DKVmme&rXh-DTY3?TclN0eNq;fm6xNC$&%YKT2@oR~47!UT z&#SeXD2SmI!3PTkND{=*i*Ug~X_f>>0<8!-;oBfdyWRd)<m?41AHJNDw0;mdlR@Px z6bho?^rjVQvPhmgOJe>;1f6nxx{|~&&0mOcC!94U!IAMQ@_$8e6-cMkluD&Uz}Sf4 z_xs&NA}x`Kx(wlhBtbHnR57%d@Js)exWvDbv*#UWIS};8Ww3Yv0000<MNUMnLSTY? CBMSKd delta 521 zcmV+k0`~pP1fc|wBYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUz z!%0LzRCwC#Sj%q0Fc6$PiWER_;)WVTIhL>Bujy~_2?%lGKte@A;;q*zRht+{<rsXx z(jH=2>&fiSW;Z}Pi%cDOZ8<W<;lq*j1o8y(Z`CXo3%t+g@PB=K7+0$mK9<Wrdtvp^ z+iZs2Ziligt$+xE0MqFdVHlz)ipxOKG*w1qr?hyUrvUg85Uv3!PA7;K*hrED>-8GP z;}N}H599F|-ELRqK*<0qFIod4<N;yGMwVsRZnqc?hZv1U3e0A+K|GnL(CGZvfRGT% zOxEY&fPTM^D1VC7Gc&>=Iq&QI*MYRa$V;b#LWcLZpFk!j?_XkE9~whO27>{T{T{w# zftg@`tU}Ha4x7%uuVcj2SQW2v%o0)g!3vqk{K)hC=ge(JBwABO_(EoaFYm~3FbjLh z(7A4ira96^4PhqOv|ZG_RCBYPYr;qyb>!A+R!2xEvwzA6HOUb{%It=Q+z1V664sh( zu7`&1CtqVA{CRdlzK>*tYKdgIQP%knzZ+<BuChLo5qDJs%RqGgpChNUKx#R1k^>f- z?MbiNF4lnXAjI>CEg(GH^BvXM+LeE3@N{o3=_AW^#H;Ro2`~V<4SC2?3d=kI0000< LMNUMnLIPldp_TP# diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on.9.png index 00aab3d5af5cb97ad0bf3989b2a6f027887a3b40..ee60e48644ed6d2746ef43f75005cedeb864a48b 100644 GIT binary patch delta 939 zcmV;c162H`2EYf9BYy*jNkl<Zc-rll+iMhe6vq=oZl*7N7P?9_n?M4Rq=~ugedo4w z-JPA;%j|Blxi+qsWV739Awq@vpy0C)eG>G+R@y>K`ykk-R!~u}FBSb;zMkI-Vx;b5 z#AzsG;KTB}Fz2(sIp-`p9UUL%LdQqE(SC9uav<{Gi*$AphkrV8sOueQj?J_6J&7a| z37p^D#8$oTnff--*hZt-K=Z2xzP!+U0~>EQw_EGHz`s}K&BWUJI?9y_ijLz6r{thi zDWS4hMs;NYD_>NxR$F?_>7~|~%~zKfv2l6>-QC^oMc7R>U5Bb^p3n^)Y14p}H&I-$ zvA9;i%9#>Y&wrM%TywBM<6^~zRWMt^eTVzni`cdeMNzz=D$sQenXG|AIg9Fg9_yPD zN=pGa)lX4c9;C5KGI``36Hd8+em9Y<Wg#WYo{$w8s-eQn85G#U#+HuD*N))MF9F<t zIEY(625{-hXIMRF(P?GjEEI5fpzqzp-7R98CL~GnM1Lxkf~qSdqSLpxaPjgSe!h1M zPhJG^^koo_{|VyzUyq`(lOWM7J(@fQKIv~SlF4Ksh@vM%l94qTX<LJ{l*PB#BlzRd z@s<RG3Elf^5Ia{y6c#Cm$~kutBb^4v^PXVkD9IwUj10SMpm`~WyT1?O!QUtF`1uh2 ze0Bo2e}5W6tx<&K=*Sf<_eY}}29g}-4W6Tu5$IGTIu#Y=RU6-2&EdP-C-K8?$8h83 z1f2$zdDVnrDahIx_he<I7^kM@l_Zx0FYzQJQZTudD`y(3sDE8Ut-jLA4LwWAt<ri% zM_+$$dl5xd5sSw?!(<X%0=&pUQUoYzi2|pflYf*(pNc`bq|l?JbyZW*+v_4CQ#nSX z(GMaPi;+-_gyP@?CY6LBC0m~yPohZ@j>jlQ3OzkN?L{Oi#c(9@;Y1^dkW?f_a&N)L zY@V&NDsvSPB@v-;$X8fmyNU>cfcg1(U*W0bT}4=5n4O#R6&Azw*O&E$nb}!iVKH1q z5`W1gPR-2t3X9<`Lj7QRdfHdw)OTD(*ruteDPLjz=HEniO|UNcIc@fn=zBzV$*>MN zIXUSo5o&y{BCPvO&}Kgg??r@d8lRZ(l~6dm2NBvdK0fX%p-|{R<bNzOLoIl0Yz(8L zqrSlI&0=(Qb+s1>1OgZy9!4-2^o5a;kt9|O*FWL={eEOWUfS%sUIBoCIf|!Y8D;<g N002ovPDHLkV1m8M$CUs8 delta 784 zcmV+r1MmF62c`y)BYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU! z$Vo&&RCwC#SnW;|K@>fA_JbA>p^5S1hcPKXh>;kL#s{cx;CuLf@)iQoH2%ece6)qO zz`8qgy)!KZ+l6)u8&~6`(>9rzJ7>>5=VoSsyJ>ve0CZP@ZhwnIp&+d=K>Q+r`0(-d zKg<YG|BGncSI!a4_A}WvwOS1?*4Lqwni+($K$QJ^iH2o&WBMSrx3;kHY2#)_s;jGL zHk;5|X9ht^KuGs|<+}1{_?Q-iPK^8~RI614L4Y`puLsiYc3o%AR$43oyRjd52<AM5 z%7gEF4xj~*7=MHKr<ToaPvFVC8-XM;Xfm?l63oh_!Vd^@C55ouM(^Z{JkW_SRl&l& z=Q3%*#b(x^Nn$lNml@fxK@Bm404SeOnm@ziC!1J%@8iM43K}~J>R&%&ckdnIh%Qq} z7z%d`2n&U_XBLQy$WEloD~EXbD#X)gp&MFS@)3p+PJhpuIPI)}H2)^#bRaV_LW6a7 z{o<mJ`^(<Y!Xg)}R6LZ+fty1q@zYb2kr79;wyuB^V!QnaM~6Eol?;NA5JimrAD+0e zA{y*LiJnHykjh9_$Jp6@AmWTjV{ezSz4->MW?j;BjKhNpzVED|b#(5W<CAuoyt>Ue zBf>^jMt^WoG2^~YI&AQ*K97U_x1x;@(RqY+OI*}BcR(T5&4rQv1IXG$J3y{(Bwcil zdoFKIcfwX8T_+5WtRW_7WG2^Kq{on3tF;ujn4B{%48>+p;_a`eCo?ij9l4qwi-<Hi zE79m#(hZB2%oMI+;f&c}=EjrHooVq?Qq!j|&ws{d+B(8H0~wei7uRHy(o`BL2oP78 zjLBIerr3<|n2>TlvGX;jc)B_^Yh}Ir)ciq4it8HW3?wc7|F;2u&ua;L`?5VR!P>)8 zk|blt(J>&6MnjJM<=lYS%e~!W^ln|0cWCym!)f$!&UIw;>Wg0j3;^|4(za@KTp9oX O00{s|MNUMnLSTZMC4B?{ diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed.9.png index ac0bfd3c1e754d21c87d5e6f7e9ba1e93153dbe8..c6876f76ee20bf3a71a361eae57580230221c200 100644 GIT binary patch delta 827 zcmV-B1H}A-1knbNBYy)JNkl<Zc-rll>q=@-6ovZ}QodL|N}#0WwbC^6ZdP{jTB3zz z5JXh;cJuHpn1_m!dovT_K*Id9S>xMdk2%-c>eA9;KC-kx&`;K{kzXVKv61!lb$Nb% zmbbSzSFf+H^78WHu2~8#jQ6}qB=V)1zZV`KALZfULGJJG<$w0}R&H)?<ofzrCX<P& z(87Q<o6Q{i>FG%VfxvttcXxLVaCLPh{eEA%-L70*T*&$Pxv9{?fCUpahJwN1d?Pr& zyu5TmAg8CNa&mGa$H&K}LJI>HOxV-uR9074=Nlo)Ua#kbKw7PqG@DInG#aKt3j-Dj z!R8*GM#kf@bbmS>_Y_A*M-Eo2)udXjnhGrp%(UBW_ki5P)5vHvlC!fj7b{N#tXwWj zsZ=r*S{Rst37c8*G(rzagD0rh>kf2qa3IBE(Nt(*kc_6nJ$xBq@!{d26Z2F6_xJZr zg%$>>z+_f@85s_TE<&QLR4NWsC=?{0&zlM@3{ru~+<y%Q1Aj(zND%`8xVN`wDzs{Z zR{J)>BApK+C0>BJT+UQzVZhQk;XLs)!Xn)*nnpI8mEGN4Q=!#VXf<q3T2CV!I4nk_ zX#m{W*)bJbO-1K~bIQ{QZgoBwG~xxgy}fNJv@l@N9$N0p2qz!CWdCa#nM_8~>9ncP zYAP^kIe$mJFC#i1ng+mBDrG9PnhH$cMp&ftftYv!CX-21p@qTF!i3E+?`ecZIv<FM z7GNTgFcn&D4@}s+LOhMINR1#ST7dC*+*D|_J#1qJ_A4VFF7TdVF(Sl73vg>|%T#E! zJvy-5!!r>U>5f56v;a3ZH%*0B+oJ=^i_g;ti+^;-ASPOXu~^JhXtg~$u)I`PR#xU4 zVG)ZFAtqXY(P-3EXth1e9Bf{EzKncMgm@Q~2y9=8{A*ahyK7*)-!<IB(+KB?o~#Tk zfbSmhFktD)$~}A;`TRA2HW90((7yi~zzfxv5e(?C@-&NTjh?Qsc>^ymFV8o!wzlS` zeKccZ!xcZ6!{P9^3Wo9+-cTsy{UiLR|CacP|4Kf5{s8j6hK5jv>2v@9002ovPDHLk FV1ipLig*A3 delta 489 zcmV<F0T%wz27&~TBYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUz zq)9|URCwC#n9GfXFbswb1Zag`I8y}m&<HoKbU`B=c(dbZJ<0|aJYY2JY9d+DNRyv0 zwi9dsWX60}z>yL<%i+RJ#s}mB^75%k(-h)32Bnn#JxvqL^M9=E&;uMto9ntyy`m@} z%d%~dJkMbq#~&sE;(4Bi!43Mp4@r_h+qTdDDSKhlG|+V&48x!ecR*e_3W5Lxffk0L zo;N}8fqma=Pap`+5+LXi(nkneZvjG{KmY=g05Nk7HSMtgp->Qj1PHCAd_g@Hh@Grb zAmkagM{pr|Mt>q%Y2MOOtMByhSlV{DMqucyo*LU5(jH;u2*KF%8IRbyY>!+W8di>6 z5gPN@vO{Bs<E<XK#i>~fi&SXLu)qBtIdp2cB7ZhV*dVVYnPjrgckzhBh545`vRf)% z4f5N|PwiboX3cr_LNjd_gi3$Y%(~)C6;HhlY3_pH0%G%8m#E^gg)m`Qp`muutgIyZ z8iHY6@pWD6P7iw;=}r$Jf*{aZsJ#hNmL)_{BoY=I1_#1aRi!t2$8TuhtnK!(gG<34 f&s-eAF98Mspz#+8-DX;q00000NkvXXu0mjf9+KFD diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off.9.png index ea2f357895aa2c321234be50fe45c019bd8eb31e..1f8f318d11312b86a0a02e49ddf83c1e836f2c53 100644 GIT binary patch delta 936 zcmV;Z16Ta71-%E5BYy*gNkl<Zc-rll$x35E6oy?X=;QbZ*|-q5f(BiPBE&>Zj8o!l z;%uA}W1KZ{Ubt}p2h<lkeZK>@>2A8Mds6{vFz|C#s=oWzsdG-1sj8~XN2)3a`bvEp z`8M(&8|m%smDkr-`S|#dx3@R_`Q_zBo}Zt~5_4g|g8BabE`PCD?4M?S{^9BANgf{` z<@WYgZf<Vm^72y7&(Ey{0~XAOhX*xRQ&aP~k-NJ)xw^WN)6-Mg-`|&=ogLZU-nJ49 zSSKeZ%D%t9m%6&T&yC<36MK7mlFepieSKXrnT&4@4h~8n5Rm%%dTD5Akm>1Z+1=e$ zHt#SRA%q792Y-^w<rKKIv?TNM^S+cwB=qI2t*z44)uqqI#zt9NThqu~UtgPz5V}I4 zAR8MSY9gIZ%k1o|FLicyN-!9do}M06I2@L?wl*0V8BzAd#f8}jiN&6>C5wxTl1imy zW@g5hLZOg!badzwVT8y`OiU=-lMx2x^LgDC!VGw7YJbX?cwtLRi@v<OyIY?`gsmZY z&(6-wMi@kXtgf!=wvc3i{fIf^<Kxoa-Y(6}%^ID#xjALRE|p4VBMhQiR#sMYTUa4b zzao;$%gY)CSPKga`aA4mv1m5JpslSfO;lj4FquqR$u&mKZEkLA2^)<th`~&9Lrgi^ zXl!guS${-@YV>4;?nlLtsFRbEx+2QXMwo#G6ZY}(vDwJc(UI;eiApp^M@MC7Xvj*K zfd!Ll<Q=uOwPqs>c8vg`UE64Qcvx8^Kb3QMcxX04dne23kZcPp8W<R`5@ukLu&{ZD zCnJ;@lh|7z+#hTdkH?io!oudfF&beIgPBBr0Dp-_qgEm+u;@v&1<ytp%p~#yNPmC7 zm52%~n6w2?M!1Ji?=&*<gB5Xov=L@t!Gz7d<ZnjgPb1VjSx$Zci9{k+>g(%M7EIV& z1&k5FEe8~n$PXYK<2E8Hu;{R`eHmdA`2obe;FK$(0*ex+KXE598YwtN(vFd&V<hHG zj(<2tLJrJEVaEupgkvP-7|DAw;)D&?xMvlt#=U8kD;QJ`y@c+{#miIGR61E<_)b>0 z#sAt_iA=d&)ot;x+{==uKEk2r-ba|oDk^y~;y&W(^yPNuM#MdRIX!IzgDP|nJ?^d5 z)zzOHX=-ZHFmg5kq5f@8Ul_1pVu*Jb{~-zg>aQif;=7XHK0g2<0CT>=PEv9J0000< KMNUMnLSTYG>B)}( delta 664 zcmV;J0%!fb2d@Q?BYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU! zQAtEWRCwC#n7gXNKoEu}F<uZ01qH3OvG4_~t!#W0pTw83)XG+{@g+nX1@G4!|ACcd z&*tVPXyL$MBFW^Ne`n&XMDdtw8o-JxkST{vUt&LyA4ue`>3{e8)a&)gaU6O)9_+5` zvcL5J%VM`}n;mh6!yyd@1Amb5cue>Eold6{-EKEN28@yHPk>Y^#mQx}S;}NG)a`cZ zd_KRfanzeGmkaIpd%g(AfQbVH5b1Q9a=9E83I#s*1-V|Ye1Y(HK^BVz&1N&&Y&KM> zRH)r<Q>|9xWq*Pqs{I4Og8>6Igd$j;D7M{hX+ED*wOXZmz0L|xr&H>5I;;-j2ZA7b zJX|<#imJ$JwW4ylOvPf6&ruhsk>zqp`FviR*gp`_A*x3)NH4lgbPj3*-+RTfy+B0k zzT;5ics#P2$R4$ZE-aNwuWJH9<adYs8O5;-jYfk3)_?0Y!!(;s-*-|XOM}`%tF~G# zZc~7W?u!hfW*OB)`-}Goz)-Yu?If;9P)wa^L3HbGYVxw^;yGS7Bmv_0BkFibsmf}) zH0lzCQY5LRiPSY-1si9vhVGiMm7ZwVB&mp6e;;dKxg&KT?zhy4CBvvPezZoCF4k~e z<Kd=%6@LW9b2Rubx8!rv&65<D!YCp(Lc%fRm>Ocpj<}&fFgw7-kc*p5c6xG53`)A> zv>+IAWr#R7SYj|j>`)-P-H!J&n65DV!cDsds)!hXI2;Z<I{Jc)MkAgz#TyXH#07#_ yNOCfn@aH%Fhennz+h+!ef<2#Uso(txFaQQ6KoNIzCF%?S0000<MNUMnLSTaZ?l;r` diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on.9.png index 6195ac0d4f52af9ae965d5a31e1ad9b88f1e3b84..2bb7b64f40ff6ee1cdca6808472adea094ece529 100644 GIT binary patch delta 1274 zcmV<W1O@x72aO7lBYy<cNkl<Zc-rll%THrf9LHfy2;ni0y~#Mvj6`>C-S{7{GHzVC zF)_TMyj$q|U1*_~K4@v_`vrwzh!7}rAW;)%qKR%a`nP;N-!rLki1uE*L^jjp8=7*@ z_k7Md-}5`C?dZ6f7dmdx=r;8h<Soem57OBwbf*({-nk<28Gk?L|22V(jg8^#><kwd z7icz{@_nPx!0G9!CN&yDXARL#=)8gR<{6qV&V}C#TwY$vzXrq9zry_W!O6)9j*gD7 zx3`B{t%h>BjAF5<Nu^Q=<w^<FS{b$73U=yM?Cw=j-`~OhvpNo*Kg03yk%a8-?rslq zczB3PrGjiWi+^M?iC8R#NF<`FXf%pgJc>jzj?{JnnS2ttQVRKU3Wdrxij^!%)dF_w zH8Id{(BI$J9)vSNh(sa*MNtq6g|NE1s;W>Zi1ly?kysdsbOfu40bdP$gfG5)fUn0s zMl@+bp`1avTExM@KJMP@Zx6!d*xK5{#>R&1z~}S9?SFQ+m&XmS&x4hq59^UtgySaI z{O_Xj{2|VNc#M4gA*`PFktr(3moljD?cm=1{;R=#6NJkWkH@jLwk9E*PABYkds{gi zcDUS5_yTT(6hA`I&#-^`2tWQlfS>*tz^h*eP(6GPvGfpf#k9yz755+9Z4bh5G8bGD zuh%O&aeu&Ov$d7oZiCb1fY<LrFziD-^EsL?pGXLbK&Rh5My51|Y$2r$gvn>{xGbD@ zc4V<w+RJKz&2ELu<3J$j#^$yeyT?!P{Vz}P>bDQ@?axn9KKKyXl7e(Lfl9TczBGkG zLFQv+WkoKF)oR7^^0KNd7BlP)E8IRif{G96!halcyPsg^=n=BDPm!(I5#LgfOvO<u z7uCa>&*$ZC2?PRiSvcaQr6pA@n+1$jz&I_hVYoyo1*vQdn`s3~EQoL<gxF?O3^uR6 zeRH`S!r`zCDwl<$H5!eoGMS75$RvQ4V6iPrAcw~ar;y8QllfT*2B2(&WgmTgDj=*O z>woL(GN@b@j&^ZzQIm{DApvAsG72C8Wm$q*$YNcF!)b@l@0H%{qqn!WJxC^#kvoP# zHJi<HwDa@x*V4iQwSa}i*CHG<<Pr6T-rL*T>LBTK8o^*t29>ix!`azcT_PO4=*iv4 zK6-k3)Is=g3xp;!Gc&q0H#aA}7=G@?RDUX^4#M)z9m9&rW#Nbn27@jUhF%Omz1fE* z5Wn9q8!>=1nVOo?rRnKu>BaEVo2R-e2p{6ZY{Y!fWO8y+mpCi*VohRM&<w(d*@*d| z$;8BjE^$`qMNgImO(497csw3i$e0g~h}TCwA`HFgN$<_g&3^>JRS?z?rkwep$$#kR zs4k6<k4rCl(wo-|)fpkJ%jJ@dm=BtajEv|KXN6uSlSz7C3xtiB51I@Q59<<Vg<jmk ztWUh}sDi`=h*N+V1;~_WJSsqjgqa?V2oQQL3J`|?iE087(?)92a}*rS(9n=B(StjO zwS?7`7cWh_=BC3+k86juRpS3%S#vov|Fx>NN<6*jskyT9&}-dC*pQ>paxrQrdeDoW z{C1$}^yTfWH6yLlm#3#5(Sy6Nb?EU<+|||99%OKEP);My2AXjH>pgwxK`(j|h<&Jj k3BT>%M{eUsn>Sv60==Y(O6~aVZ2$lO07*qoM6N<$f_B)0vj6}9 delta 919 zcmV;I18Dq>3akf^BYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU# zPDw;TRCwC#n7eM&Koo}m@r=ER0}BKpx+pXhNC^muH-Lgr1PMCcffT$(cnCV`6ckAn z9)L2DkmwK*f<%#6doR8W=S+51#%r%l>=j#J<;1&6eCC_~Tz_W9Ks%Ri>Oi#Rs40ho z1-br%WUm*mA1;m}s`acB7r%s<t}9a!TJukJ)$Hu-V0(KTN-3miYD}Al_1}Svy$b^+ z;80x%GObhW?d@TA_w8(ugM$MkNrJ&(fH;oLXNIW<Axs@Q4&TKX0tSFV97n=)J-Dum zt*vKfjMC7IMt>s&L4e_KXg)Jc9S{p4r30zhNCoLkK<FFYC8EfKzq~>)3K@=RkSK}_ zgtfXLtb!v2lq;DA=jUH=eDnc9c!F+s9rrh%qkH8JqFB%vBcs^NWaWVwhSji&aCoZv zGlM9XB~eI5-_h&8$K$6Gw{EZE+t)LE`TP#P|AunpDu3c69xH`O;!c6^?0Il&3{|Cw zamZnCG-S#n9Aoo=i?wyn{H@zn@Vp_;ejH(?^9Tv~6QV*9TOoO?T=g>l>-!F_U6+#* zrX0nMRf+yD1)b`8eZ)GmrE9G!H1w27)+A0K^gW!Ne!|jH3fB{qYZ|9NNgdq1s6w** z<O)M$dw)mvUM-10LO>CPC+JaCoW4XDe8jSUg0Qznj-Q|(QVI$7f6>&kEUkscD4q~- zq%jDGIM+Afue?GOD3hF{VMJkx;VMarq*EbkCo~)#o*^Y_N|w+-ag<O$>O+isjC2%r zYYLB+6Gi5ftURDLA!2TxwQcnbq7;9o{E)>y3x7fKYSeA<*>X<ILSvhqV*r&@rTz+& z^)jKEsTL(LuQeR9vPD#t^@Mz=8i9<TpB3uT@@-R*d|RjmQkJky6{+&4>d4qONbRlS zycEgj-`vZ$Do4u7S1(GAh%8KA#($b4^G?=!Ra0V3UlmmOQ-!P7*hKbw(^n1|zo?@K zFMm*3le8mmda;kJnMJS;2p@ph?CzZ(zHFYDQ(nd=pCF4SR|w*H-X9Q6`-lbUbUMa& zEs$QXXU;QxxZ<M(ThppxRjdz&2*c1ERc3<h@9$${V`I_*lY$-hWkJ{%PxA2a(A*dC t9UARr3uY_K=5u}*jhTOYg5LrR07xM+RuHZM*s=fs002ovPDHLkV1jmntB(Kx diff --git a/java/res/drawable-mdpi/btn_keyboard_key_fulltrans_normal.9.png b/java/res/drawable-mdpi/btn_keyboard_key_fulltrans_normal.9.png index 20f3d50878abe67fb74359fecfaa4f9761389e65..4b1a78cfb7af2a1dc17fb4d1e419d3b54be045ed 100644 GIT binary patch literal 1553 zcmZ8hdpHwn7<Z{7$t4aFacmDemAh=AIAp5DR;F4wLTtI;W;8?zu_NR%xg@DHs!bXh z%kUIJ5;K>!4!JKnwXrtISuLHO^T+pn&+|R+@4fuq_xENTg&$PhynVBjl$7G(Lr!ku z7a%?+n|=}BuBqLPQc@d-4?8)y$Bix&jlexmZgY+<C~1b41A^RlLaue)=&5sL0C5cT zKgpqgC0+@2);`nGiqfx8*;<j~o_RFq=;fSh*s<dz`YiX+8%H~JP1|4HuHgGUL^8uG zr@8HR;P{!&-1f%R$jP;_q;Z^!@Wh<Ej7e49f(@GX%*L;FcyO#C+*8jk;p_u483G1_ z=SxaTsM&h<L-qCbX!}HwJDbDdoJ4hRsWbCwy_6-Z2}kD6mO#R%iG_vL1Og#XWK-YV z?1f*NKmK8f%SvT3k9%g11qTOfoD(dTO(lfWvZ+003bGnK;HFH4DpKdmZlWod$KwSA zG&6$=uG=ShqfjVHOp9@{L9&6*d3#@D%bvF6jcQ;euf48N)n0UTeg9b(RuJ{W$jHde zCmQ^^{SXKya9H(s#0IwI3mbG%s&q}SPR9kY^FuH~wWXycl9uI)KxlSPMOAp*AC*Df z@+NyC%I$jJgYLyl`!FubYs;CG-T?p$U;*fagoKAEqr#9elYE##d`L)7aZwS)5Cq~i z0cYV)_;qS%-yZ;L<GZLrtK42R0SE*x&(7Y3Mm2hQ3ua=v<?G3mLM`+TC70p75#xK* zYneC?LPuJ9`hpW67u4l%L4@7LU4>U2R93|(rM0I>cr>S$4Ngoj7|Bc)i%4(+RIaYB zCP4)l<*V#Eicj0KuO)Tf8qE%7D5W|!`j{1kVkUDQuA}EFDk|I%2n2__gtoP{wS?1X zGz&JHJx7+WYdS@V{JSl1ms^H&r9pWgG3oQC$mP})IW3T~o}J5D-aB;bH}8k24Gj%< z-vDCQzO3dp#lFA8-V~zqIHEXna7m=j=Vx&mqe0QU>E3+p3zC$be^a68?Z@ZS6IXDe zd1ehMnDsz$?N3x}4pkEI6@O(_1Hl%L0+MKY8cy3PAtZ3F^))?SU=eh^89V3Jmc@`1 zcd_HG786ONMNPpbCY}-^Au^KI5NO494Por<L&$CRv5T*B*24$TI}Tz4K+Ju(<#!_v z>(;vyKF;~UuvqMtGP^`PW8HZ*a`Ll~mlCFafnL)&zX*VrSkYSs@GTvu66Oa<=f9&d zlX6rSQmBh2Gdb;M*apeiad<a4GhXaf{C1%D>k2Mca0kG}N1#H}u@2C_QtN>kXP>u> z)B$(@1L35}ENw^}0lH`K2)|etrlTuiFl7FKAqhd3P82N#ev<DGr{pPUnp|oze9^q# zK;ux9s>t>wxrTO9b{yxJp1)%q8jR=~+g1Gxu}8%X&)@l2Ezw9$4BTf_B;ojDCC)W+ z)jTsOUUTS=Y_PclRXGTw{<3^AxgP%|<&xG<BWoX6qlX;03~ts}+z=BWhdn0DSmasv zbGhu@O)MMUk13mp+ovnGTi&d{P%n$$v2?#YDPi>3IVzo(*6!PPzRd$&dJbjg`>p0l zOqrEm&}dbveyC7ZM#QHhW>m;Hw(kDveqU02L_|a%B~7CF?`jZ2F|QtLIANzZ$xmlL z^|P}Q%==IG*VcM=bS}CW4p7U#YUe+hwaoLc4@%QcV+KGrs=vfUD9xHJ3|KRdU~dX$ zvG4n(X`aDZ<K{z@p=&A93WgH4KcA>!S`@$xz*bi3%r;I`qs~yDKKl)l%u2~}2AV-2 znsLkTt|gKGpV^nmuDqI5$JQ`#Nrq4;Y&}t9MWIks5<g5p{R0C@*+!<Of~y4u>Sszj z%9eiGOYlbsZ?CSFrqaGpmOL`I@;T&r<diKjx_QAybbD=h4e~I0MeP&4MKpFV%uu}Q Or4B>kP7fS?F8&J<8VPg& delta 1048 zcmV+z1n2va46F!{BYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU# z&PhZ;RCwC#Sg~%@KoH%veJ4jmP(-4l4i%z`f<#4?hMr%^C*)U<Ql?2og+$7fP*WkL zKsnIGclI#Po^d97UZ3xBra-LpwDD!V^Za&pc4nR1O(XZe{eP>?o4=nhUNc@Y@{#S% z8DAOKj9(#<_ot_)?~ad;pXGU8@pG9ZNyQ+BL+`x@nlJFa+iQv1p5d#i0-W>-|0|u( z=gHO8)z7oDvrqhdf$^D{<M8O{=;?26x3{+i8!ClF3m8{2fEsP(mEV*EdLht)e@nSd zVGB0(T}vdJ&3|UaVzDTBFchH<MVwV7x|i?CI8lR)A{9Pzxm*^;K3O8^-Q8Wq1Mm_i zQ35Rq^nJ?`EDwnSWR|C$r@{|xvrCbb)gS;bU@|45OW~VF1AWAIC{rs6BGe4*CjwPO z5t0{ONI-iv96poE(l{(B8O)Pq8A&vb6Df*<WO=B=FMrnhN1#l-G@?$u<gzSliBwFa zLXQ?Yr>Zje05a+*8K^6BM|~s%2{<g2Da*1eZfxSLon(0Hk|C1yDgrQ(%BnDQNme=C zJ1;sW;)GCCk%WmXRTU)?s<F*6qJCR{ZCcy*?66Tq5_VE&u>%tNuD78dWMuxNlL-6* zz^(xTMSr$u^6)IEw=e9(h@?tF35{~xv(KrGsE^2*phSi)iQgbytRu79i7H}9kagA_ z=Bo$?wF?N5ZbcCMBm!14aObUR;(a0~d|VMFF(MIXKD0Z;iyEY=j6noysEsHQLt;!t zS{uEJ*fx?PcK&W68u>JT7*UZ2HkAlTEJ&>qqkl2E&rwzs@rE6#dSlhIX72u_k)Sgg zkznrbfM#kI3bV0o55A7tr?n9cXkkIMi<37b6wIH-h|~imoePO<ofugnm|KgsC=m=o zu7F;5ja{Nm)v=kGq>9ekSW86fj>ly1hK#q#v(Dd3ga<faI-OEb{XeR%(Nqx-BDJ09 zu78<KCIpz`ih`Xq)L(p9&u9q>CDcxI*N7T5b0jZTm0;TqiCYh9UoAP2IK##|MV!>V zPRm2Bdn3xMy_PT+HubFl<`YHYSv)iKI#`y+nL>Q)`w??tLqf#ER&;6dJWtTL&`O#z zwT>y3sN#i;?{iw?q)zTf>YkT6X(~+*<$v+fNo;BS-riougG%^^mW5r{SDO&A02zJ{ zVIs>KC(%i~C31a!e*Ws@<mB7I!NH85mqrm9dTXQ+)T&_>!N=d+-0WXoULMM=;>z{r zTgC^*8^->~*PHmzFN}|j&moa1;|1e6V=^+41>*<fJEI7R{LM@L6}x`~7yzh(I}r(F SFDJ?X0000<MNUMnLSTY}L+bqi diff --git a/java/res/drawable-mdpi/btn_keyboard_key_fulltrans_pressed.9.png b/java/res/drawable-mdpi/btn_keyboard_key_fulltrans_pressed.9.png index 1ed3065c5338775041490ef37013da0abbd54d33..697683e299cdb367b0605e7678930ee57838febc 100644 GIT binary patch literal 1461 zcmeAS@N?(olHy`uVBq!ia0vp^N<gf~!3HFKTTky~U|_BBba4!+xb=3%={(_diMGg% z5A~`<SF9+%ARB&Q(``Mj#t9Az6C5}c?dCsve53e-qTM4F^}bmyfle!~=v7(2{k_BZ zgp2(&P1(|meP6ixpZ}is{PdX{^X6w?|2Ok(fA;_U|E+J^KCLZs|Ec)o&c|4DpYJ!m z`_H%YegFPFe_wxpySlo1^X1Ez|J}S9`Tx(KJ>UQR{eAD~QP=OEK5hE_@NoOgg>6w) zFIpM7)pBHZ6wG4#8OU1Qd~m_-_ur$vk}YJeeVu16)w`#;nYr9XZnwL;`#GD1)8wiW z4>WN~v+K=S=2-Wt#OiO_=9^)&cJJQ(wQTp>uT{3;z3*;s&zC(Y!#Jn>{k@x;op`r? zxxmdVcIH`pw6wV2Wd-hDx5dwQy<2xFz~=4ltfJ_()08JHPD?7^eHZSWW#{i5ZM|%A zViDJ_t65u9Bg35kS8a_tJGZ2Ip7X1(zf_uTY!<r0T5FJS@XJlz7z^KKoz*LXwWdb3 zIxURT5sTehcKYe2;FTe2f(HV7bzhtbaL&EJ&MfA0!=m7!3Gb#whrXRV=Vv_qbmdH+ zW1%u{{U@D&{#Iet?3pibEs%$+nsqj<9B78}OrKpFBhGXlf4nWuf6@2smnFZto%}EG z!-6a_+|m2!y>H*PZQi;yb${jOWn!H!>y}xi+r4aN6*l7oIWA|#f|W_%udWXN)-A5T zN?KZaa>oD3IeB?en~S#EJvh+P%M1#Z*|T=7V@t2C-TUj!O=Im7w{G1!Zd3nnkCFef z>Sd7|3LhNGlyYg#yK1_1ZQHBK>i%n1U%X!Q)H^BZz_CW|<(U(5=Z5*$_X6b}AMe*r zWP#Xxq~z3{t5>hyTI}AxX6e$UUIK6HL)UH40mrrHizz#;mWIxfx2uWZQ-)ZevR3-! z!z;S_`qSlYDgwA*qN|&~ojTREb;pi~UG@L#411tf?y<`<&C}>ItyP4HOnR60u76Wk zH#awTs{s=vjp)=*IC*nN`TICKpsI)bNi*3VcAr_~aowo?`@6eyVXAESUaiw>v*qBc z7s#)gkT7c*Uzo<FtxGh;-4cE`hZM{@=P|q4D)-Lag}hAC?e-qGO+5U~1@70d&b6Dh z3Fcd#FE`T!-o2S4Wdsv>^YV6I{@y)xb2eq2V7ZuX|JQV8+CfNoT|7Nq-}{&2BdJRh zuKAkI6}h-^r_dFD<Ag&H>5s3kukYSfW+|H1kon1T%lu3Hp_5*y*Q{gt`h`tq1|+ne zq}$#Q`#NXB<*(k%m*?7cN(oy{t=C49H<9WU`|@PU)y+;`o?4uys$ULBtN+s8r{O5i z6JclE3Xb;lPM1Xs+Hb8<(6kL!n__XX+EAC%&hv}$?W<N*%zV%!TeNU$gd?}&GGDDi zGt(nmG`ccnh358&1qfcPzw_MmeeBxB;%quFR|R<=Y~nIvQkl9VEZK0;(&Q-_ccm1g z^v?MNh<{;)yIov&T6fl&RT?Xge6?D}S{%ata)sDgLER0?+j8^I3unDth-6|oqgT|? z=To*Qa2|Zr_xOm-`R=Q)zh-Q{*|RNb?FsZEA=^Z1+AMA_KTqx%z|!Gl-uBrqzW?q# zm>?j}*IwKTDQ=dX*8`>JB{jdly>*UFc0YSGZvAxeob>#B{q6hr&zJ3Wo7vple5S(Y zoQ#~@vi`olo`({qS1vj0^F$aVK0W{{8g%QQ9-aHA`ozu;vD<x`W5V|Z=4st;oilsi k>tE0RCI7#FBIUR6{9kTsnNQYC1Qy2(p00i_>zopr09g~s%m4rY delta 1000 zcmV<E0~h?Y3;hR>BYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU# zpGibPRCwC#n6Zx2KoEv^y$-q)RFR<JBswVRA|xtaAT2MGGS3o;Ho8|pLf2hMe-%h6 zB2dC5@i60?-;AAI+jkdJAS{iX+}S%{{+ZpK9p_GSk^6uBtACd_pP#b5WqZSRHn86< z+gG-0wx9Bc-2C&yd_JE}CX<Wv^YhGmU$9Y@WsZ&bvy<<7Z_ivJn3sD|6rK&=v(08x zTwPt=%x1GCKYrN+dCd^7_WS+qdcFQ7AOfIfA*d&a$6X*4rUc>lbMYlU@s0(_x7+Rh za5xk)mZ}j0DStnAfQUnaG792U6?wPdAG|mI$%2I4ZbuA4x-Qfp^zIb0OA&b=VIft8 z1O#KtckvlhBrs$NayO21njg+6Q6_jFMH;zMDWU_AI%x%QN*fEwy%kZbRKd7?KuG1R zLV{lbfIi6z9;ky5A@@2##PlU<IPX*<HI40O8KVm%SAUQKsw7mPo{D%ArV2z94k1Xg zWY&L85dpx=DP+<|LV-N#TCuB){{vP+F-V3VnNlPZH8f8OO{`c>^x5*sZXbq86p^@l zxvMJ2AUee)Jmpl2gy24P2Q~JxDm0>oPUR#BrmwS#oVZ}}W{HS`1YP|IK#9=YpN48Y zm5*eOV1F;b^i2%(sLS|Bh9=+vzzk9VvASmSiz|W+3D*!HSXR{1iWr8WK)i7hx<G~! z#5EkmLClmJj-)=VlOP9d+XIHi=1DR%2LKE!NVON%K(G`C12L!~COpATS>Mc&$F8JZ z>quvgm|B#&>e3Scr57|*PpBzRt&Hxz9tXDMf`5jJOiQ_1Rd$M_t%8s_8^uGTWgPYy ziWNkCRWeEG?M#FZEz08{`T+4gR<%DAq*g#9G~%lb#N~Nj)eNb#OwZyudd3k5@gcri z72$`l#Mchq4=IqEM+uy3#7CPVnNXruwda~dJA%4;F80W2&NW{1Bt2_1EDi^8%%GSm z`hVTyS0jX01-tEQOQIatq(E8`oK3a#Z-q&yLMaHjW85}Hve9Vd{oPUBb_1d?eG4E9 zVY&gH74gZ?2ndswT^%T6&E`oeaT{t>Z7Xz)bOo0@@u|>w29Z*rfFsi}I%-k$?V(u+ zRVU~w9!z3;3v#_!EM88h)9>T)cq`CY;9)c@y}Cv?fTKC1Fs1P%DAiuAR%grQ^0{^u zkJ_8>**>zpV|zAmd-Dg|7q(AqpPL|0*e=*!u#E-=*|B|NyJ5R+g8a=U|B>I{0t^8E WXuz8}l6tHF0000<MNUMnLSTX)&&crr diff --git a/java/res/drawable-mdpi/btn_keyboard_key_light_normal.9.png b/java/res/drawable-mdpi/btn_keyboard_key_light_normal.9.png index 50cd06ae3685154ecdf450fe3055e3bc4adf5035..f5ce40cf6df509db08cd86690e6e05c9a1e579b4 100644 GIT binary patch delta 429 zcmV;e0aE_s0>%T7BYy#nNkl<Zc-rll%c_E46os1<`AYR5*~CH7w6fCf+0E=Gf=H7H zq8@Y~R)Yh<Iqn86BuMxsvfTT_z5jvca__k$_r^k5@)h}te6WaRS#rHz<$k|YxZQ42 ztJVIM`Mq&IpXGEqNs=TKQ2TPZNTE<j7m4Fo4u=C3^e_w~U4JBsBH8VBvfuA1pf-A_ zB4HRx5CpQ_ZYiKPdb}jE*=!yUFhK3&@u-VnhU@iOeBY;l+8B{4f*CHCOIfW}6i^!@ zQbiD2EEbOk7@#&rq>5mMp6AJYKBs`%7?CQ15W-Ae62UUfW-}`2p^9LRlgWe%dZ;2; zrtx@81wB*|EPvE!G@^nY#bPmC1T!2A22{}FC6Ru=Ph~ot>LLiau1f_AtBN4xI1Uvo ztSW*~uh*l3h5bw9=>|gGZkNh%IMm+=LY+>B3QmqHf{<<7RB&=s5ro?9HWi$lugGVM zv|6p~MVif~G#U-5*XtBe8$I&*e7Z=fR1(uPrBbO-s3umcQZASEkMOL2OJwn{<mvhW Xg-$!g?*09300000NkvXXu0mjfW}wRB delta 329 zcmV-P0k;0e1LFdaBYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUz z1xZ9fRCwC#nB574Fc5^tDA<L?Scvb|Bv^|D_-rfUZ|)+T9QhGJH|}v+@I}Jr%Z!ms zfO|?_Z4lkn=qg752_U}<QWOR9JVzYIBr{4W(KHR}x<1~%Rex1snkKC4N&+H;K$@l~ z%M#-_?(Y+QVBhx`hJn<Fd7cf$4UlD7HZ`K%wfn76bLeG&C<tm0o9&5fFjcAEw*Gt- zVFTil?tiWM&{C>mEAQ607U{HxvRHhqrxo!9qR+wC8Xr4`l{Eq642a|c5`Du2Yq)?2 zFsT4?3dHxJ$U>R))I%9LRc}3H86a)jBFi!|RTN0qbz8nZ4B?O6OW0QaKEX@k|A-M0 bUIGjNOzaskvYPO+00000NkvXXu0mjf7C(}4 diff --git a/java/res/drawable-mdpi/btn_keyboard_key_light_popup_selected.9.png b/java/res/drawable-mdpi/btn_keyboard_key_light_popup_selected.9.png index 125ff13350e09b4e109b075f02bcf801bef12e44..ca73b9249a004884627923b86d0696972d063f6f 100644 GIT binary patch delta 230 zcmZo=Zep6CQh(CZ#WAGf*4rDlT!$P4SRYJmNJ@U{s1p=f#SopJpv|VuKlM~t#0QJ8 zS$-{r={?>~VmWiZzPGLLH9LB|O~lw`J*RNfpVV`#XKVTQ<=j}kezloN_rFrprr>Rj znT~U0))m!eTwCM5XD*wMWb=usFT1A+ysVH=I4<GBzgF<lMTK|=zXk>-4h1kVpC$1Q zi1{gdLW=Tp;|{)ur#p3*&A-cD+qx$6dSeKyZqRzw6j7nOUe_eP|L}3!`(ySEbAgC{ erTfx#!KUVR0aZ*})~=n!00f?{elF{r5}E+)(qHTV delta 362 zcmV-w0hRuO0)+#RB!3xnMObuGZ)S9NVRB^vL1b@YWgtmyVP|DhWnpA_ami&o0003e zNkl<Zc-mrMpbq#?sR4{&Q~v*F7)Zd#$jHFNFh~Fku?jyIGg4#`Z!i8(A2cB{XdHr) zSb@Rs2c$}Y*oKC7{srPAK->h3u6?k?3U>(95gX|o5Y8aS0Dm3wA33oWfr#2e3=9*` z(9ULNpx4VS85k-oz}y@l-iMw>z|k?~ENz3}FEAC%IuGaCVoR*dFom=Rzy86QY@^wC z)FGn|8Fk30Lq;7k>X1=~3?_&CA1n@G9F3Y$hm1O8)FD)I$X{6Bbf6sq8Y*B&)~Bsw z*nl0|L|r)dFk_5?JS-6oWUiodK=||a{@(-|mVk!{P+%pHiU8t+uxO$Y_zfM306PLB zL<j*|4(6eR$N&Sz(Q*VMNQg}%G<5`QR1pjKPmcgV1^@vD00aO^jgx6DmH+?%07*qo IM6N<$g0j|;K>z>% diff --git a/java/res/drawable-mdpi/btn_keyboard_key_light_pressed.9.png b/java/res/drawable-mdpi/btn_keyboard_key_light_pressed.9.png index 7ce52f0f585605e632f2e9810677c62098b77419..73f2006d4264a3a5f57256989a9ba2b3753e79b1 100644 GIT binary patch delta 694 zcmV;n0!jUj1kDAIBYy&vNkl<Zc-rllSx#zE5JmaJ4;UhGCVVjiAWQ&)Uv!E{-}fjW z1Zia`<y$0Wz`V!3IhPkSkz~ijP^;FdQx_vH*JWPfx*+J9`4#yU`N1N7zh5?+jqLaP zlf1vb8|5o!x7$e|5csFe=Py>Pm8{q6!_Vb%DQ|CYvREt}1%C!CWpB4zxw*MHFGAsb zK9|{SCe!IuCX<Pb$74r<0ShLfhu7;pFM@<Ne|dS4(P$*Y;m}cFz)~rCSc<&9z8(sm zpPvtq!C)Z$e&11Gz=8>z9+n~)>lA==yItvYI?`^pjY2JqUaxl$f=v%g5sbe|v|24k zQ5l%9>0v3t_<tzi1e^#^qtS2_7_d}^9=1e~pa?*-*_3*{?kF&HGO)QGOA$tg1Se35 zTCFD4YSk#z!eBDGGxYFyJm*DNDBTN+RiaX<80A<-uZSL&BHZDz1h8_sETvM(DAcNu z?hDsrDZ-odN+?!|VzFqHV;S8Sn<Cvm=IjO6fds&U6n_eNqfiS27EIXPZpT`L{m?7n zG=)Mz^7*_xJv|wPS{Sfk!e&owi!e?`s}i|f&L}Da3ntgio>+=ttGmHTRO0dR(I_f& zJQZ6ayh*Qxlc+>Cn>C8c=u~Wr@QCSd008#z@F4g1_eP->1}vQlJuF3d#B?_}jY?!P z8KbBSEPtH}J^m&l-$mp^h9^d^1pu&gIxVSG$|%&rfTg=akDnvLqpR1#SXCmKOd3UH zVCnVH!<Goo{iQ_6u?TEiB8*KxKmOO%*b@0RPYrK6{yTH&PgdBrL^wqvk&wH)JBi2R z5{tzo8jU&%3|KH>Ga<LzeO|=p^GP@y{!AzoIxi#`3>ro2l^2Ob<o5Q~`k(M?e=Tv1 c?@CTyABMG%tH}emv;Y7A07*qoM6N<$f{8&w9{>OV delta 501 zcmV<R0Sf-j1&#!eBYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUz zut`KgRCwC#m{HDxFbu~#7@md$a2anxybcdu#4C6V-T)CkI=-1YH!QA19$eBaCgZ=~ zx_0XXkZEJAfRYl5<w#&B?FaG$S)Dbf(+Q5pBWSIk^K<+xv450OPrrv@fU2sXEX!q( z>-B0r#)+v#t#;C*mLv(}c@9m}JjQ7Eqx=1CsBv=JOMxH&wlqy4%d%w<oV@S*2Y`i% z1wjbZvQTdGf>;1akDvy^SRfV%ZjTfUjSZ{A@(A4$>Ya~o!+%duZQr829&v*;2E>=f ztgUg$C1S*Wzkk{zt~X+1gl0=fPjkE>;T6|2tYEcqBAqq#JYi?eRvroIXkYm`j)P+{ zAj+7Uiosb6OwS0`@x|h{X14iWoeecv>AO`5uS#D!a4Qg2jBFLG?=*r(ymb1~!|ki- z`%Wv_!7K0K5k+C#GC+E3LPz{=o)cfm8n#Cy?v;=h`)(X@Z%bc&8FTxF^mM57_f=N0 zZyIW>yM_*=)wdJ~%OiDNn+I0cb>a^!><@>7vD@vo401l7p(qMgdAFu|w><(~E*EIq rc9;L5f%2_%qTdv3n)4-f{sb5Ra5s2i6{wb@00000NkvXXu0mjf7E|Vw diff --git a/java/res/drawable-mdpi/btn_keyboard_key_normal.9.png b/java/res/drawable-mdpi/btn_keyboard_key_normal.9.png index 7ba18dd25ac8f79d769a2291c77ab2844e3d21b3..12bc97928b4dc45f26e5f056ab56ef2924790116 100644 GIT binary patch delta 970 zcmV;*12z2C1>XmdBYy*?Nkl<Zc-rll*G}s|6h(QahMovSdw~C-hTeOxA)(hO0tDj6 z&(#{;u?FWjc8a+#H_{dYJbP_VJ(;??+I*xYE+Zo&@-Ov2NXa0>!^1K#Fd)6Xz0%Xu z6T4u+EDF-s*C%UhYx4H?CZC_5^6~K@@9*z56`pv1eSOL5>VK+X{tY5tkW?xq-{0RR z$m{E?JUu<dBD`V1f~f`}^~=kP+~42J&CN|L!W#xGHApg<ltQ5(4-XG=b#*1#Y&I6* z4FeWTHAp_6m%F<=$>nmA$z+T!FE48%>xVZCSZa{&?rzg%bRP{bE-qpb-Y{UnRD(P} zKg;#?wMl+<c7GO&@P+|P4bs)sWo9*Fcz%8^r>CbzCnqOGIzB!wDXoq5!y5)Hm}-#6 z$44`vXmE6N<mvG6ut*072dcDZT`#<0z*2*Bc6OSjMc46GnC|cI8}04w{m}02Zm8Vn ztq-1f!+-@-4RU*XYr2jGnC<NB7;SHFd)nICiX^v<^?$(=Zy2xwgD`fCCk-&$+}t$U z*x2y2zP=twZX4@^C*Ck%sX;nAI?UKHro4qU<orRL4VB2Yw|;oTfCW<x!q_pEyv54O zil^n}<*MX*;SB>;U=YTRuHy}smX<s%E-qFj*9&hLu+$*!?d@i1(RCzWSXl5hKR;iU zTra$tD}S(HszF#<bREg(=H`BAc6PQR`F-$)0V^;FlZdV(`OM5rEW#TGEHy}5Tbr3g z%yg2c)9F}*Hw;)X)gbJG%yPPPYHBJL;SB?p8l<(g)y!rdq6;S{Cu0%bFkrzfE6Bve zL{*9!#Qc&-B)lNg)6<~=#>dB1g$2Uf27y`BBY*xNQNdyI`-BE*X=yS4WSzS~T+^|! zv9hEE!W#xGn2~~16Cx-~<RJc`DHUXNbo7Tx1<{5^4bt4)tgf0$dqx`;|Ehth24R!o zP;xgkZ3&k%L2Y|?LxTZJ4bs%q<OOlJcz0JUck^=Fx?8*r0y8j(J!=?CEB|>BwvB6N zjDPjAXH8&`#>Pf32sMQN)O3TDBfk&cHV8~Lh&_F^AhnVW0;^;YTaQ#)2!+YkBY{C0 z8XC-Z4k~TxOk0)tE38Uoz3_$s3#J-`FUhQL9<<fFTY*<2>xDNASb;&fyP&$JjPrlZ ztd;PF0ZR=+wZx9d1KeNmQ@iou?@<)g7DI0?YGA1qT7Q4PDQ1~K_4W0!ik=_@O!c01 sXlTe>IsS$Q2M3GqS$&uLzbWtY2ZFF<N|YI9$^ZZW07*qoM6N<$g6T8TcK`qY delta 703 zcmV;w0zm!W2i66UBYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU! zcu7P-RCwCVSxJt<Fc55qupM{@oZ!a)Pe_Oh5**+q>|~}QHR?F+B{&|9r6>rT?n+g8 zYfM#Dl-i6jzhNqq6azpOi$yw`gmyZeOhNyo{Tm=9e}F{y`+uFD&nNZan@}4Lhcp_E z;IAf->-9?O^_u4MIhAEe@AtcRKuB5?MSVXU4z%0tXgZxXfjk}$S}vD#yWQw=xzOwN z%EH88FsRvBtyZ+zY}!E3APp{n$_WHavm`wH8y-P&cmzNoO^$}R00H@>^rhX2y}>{v z@|4C&5s&jYM}G}>kVfs>uv(55Blv-@T+)CM&f#Q4g77gCVo8&ezvI|8m=+^Un;bP= z!1zE&dAy8B{d}y%_{JKZpSv_`aMXYeTpEyA^SXe@JSrn-3?MfUj_;KQ9i&H6hp`O; zcg_(lO;;9T*$GNxn>7azEq-v+<N^{U4R^8;r+7p@8-HZPCruxVU1w>eM7g#B_A=s} z;<ZJoucm>hckyf_nOrVPIW9Y2i;-BJQ$~&NI8nK#aUXy#tFPRhxt0q6F$~6+D3%qw zp9JQMQP^*<0r=KCnipKTirBaN#wT5#FGCAd7oYe{scj3K6PoO3Yb%HOw~4j5DkI#{ zen2u4Vt*;LDbnIcGopb>-KBXMalL^JAmuob<PlqrF2_)f*(i^sOw%dTzABC8kv;(g zrLjkiUB^gW{<ZijBdBTd?w!vyeFH(E26=EfrQzZliYPfNM#zKml>lizK*r-SozLgG zm^YbB8YjJPOzV0UKv2*-9*=d-79+FSjQ0CIZ8*2vZ2MIS2q2KN1q43;Eox|g(YU(U lsKqOYvsQeyKM;Nd7yzIKFqsU(eDeSR002ovPDHLkV1oP_J>viX diff --git a/java/res/drawable-mdpi/btn_keyboard_key_normal_off.9.png b/java/res/drawable-mdpi/btn_keyboard_key_normal_off.9.png index bda9b83941ff20ac6ce4a46912dfd292957be711..44bd414a1afce676289e43ba523dd856a04a4a04 100644 GIT binary patch delta 1063 zcmV+?1larB2D=E5BYy+}Nkl<Zc-rllM^EHR6oqF^&Osp30=Db`!2*$U&N=5Cg#dy0 z<M-*idS%tPuRD8YGc6ric6Xic_*S{9+P{9~=OcM>>FDT?zo~ygk_KsSZ<m&q7HMp3 zl!k_e*aZt_LXf7WCRtiqlK1y_`TF{j&(BZ!`1r`H@WlK3`+r*&7Z;WJe-H_R)YsR` z&(Dtrd3kw}$H&K5gf|RWFwG#Oetv$IySqENzP^q{c*B5Y2C1v7lef1wxxc@c%gakS zKR=H}c*B4N(+u+Z`YN}#w{mfDA*ZLOs@d6D>Fev0&dyFfa(;Gpma&{4-Y{U9L27Gj zwPci!h9@T{GJi8OBi-HIGCVvilarHr<eck#pN;T_0Sl%X<mu^2uCA^$`O(pl^!NA6 z*w~m%PfrKpoa=m_jqrv6%M4OeQ=_ArK0H1?mczqC>FMc_iHQlVhST`?xK?F<e?L+O z2L}nl58(|17ECk9!^49PC>reT?aAoqsEmw^DBOwe;eXoB&W@?w-Q5J?<%Bm3SZ0vw z>S}$oC>?i&>B`EA4$#5DK@GsMx3^a(zRk_eq}tlr3behwt-=#;7_eZPL2hntv~)DU zjPz@3Yce!6Bwbxy8f0~KRn54bOzZ3Gfi^ZaRCwYI16E`Z`i}mj0cJocCnKGP94Ynk z@^VU1O@AkR5T1C$fMo`$s;bhy1H@f8L%IR6He@5$-udAT0~Sm(2z^Iiau*8=3xVe6 z=W~+pg*OaXkwNG?O2-|{&CLa3HqAx8mmBD?%pjGOl{z>n9m$zJo%{(c8~I*%Gge^1 zG=uOoP&$%NO-=nKe^SdtVIRC<z={mQAfj|6XMaYGLwLi0Wd^CJsL(;gNGCaKN*ux) z1}vCn5N1I}IVEL!k3)FFfMo_LFE7{8%#SD`>q#8K8wM<x83kdT$wlb~(UY>WvLFbn zY^ngPKbBGj!rKLbnNX2%kaWSR6!u9Oq_nhDzvMahgZQSbzM04hgf|RWFw+W>ONgj2 zX@3U^cTKV&0|NuUDOnJ!Ys?@eB_-xllWk?JZV5j%FwG!LGAv5|gl0X$nG8_Z-k;E5 zz%qjr7Z(RX{3+g_6*HZ@{I>oS?}EUL4C2-rf9D=vFH%k8)*9oy+*%VEq^PJU2*MsB zylVQvGEvwEZx;ln8N{u=R*-zj1%Z_`h=1FUWV;bcCAS}m3{qHFsQ)?GX|vCCyRz^O zD_c1)ykWqCX$Ij>GS4?Zbh~$d2cC<Z7v3;nMF!#B1-omuasFS%d<t(Eu*@LrmY5Ow z0q-w3T5o)~o{pm0;?0X1Smq9`xw%<4vkahuf`V8@B?tl2e9zj})~2r<|AbmwTObqP hvxZ*o|49X({{TJJR}VQuch3L-002ovPDHLkV1kRN1g`)9 delta 838 zcmV-M1G)UW2;2scBYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU! z{z*hZRCwCVSjnpDKoG5H9B~3c6kH0r(w+ama^q4L`U9e(8xfrKz0<t9blRRw%;Od` z(WKLLQs-0;6}(<AN@_t6{2k^MBpL%i27^IzGzo06SOgjRC4cs7fQ0-56kV@Zy5H~g z4c)jbm&;K;pNGDpK+fkgjmKl^_xluvAw8eZuLFY9OeQ0)v)PQM(<zlor6`cw?MB1l zkS>=ColYluJRYe;BAd;MXpBZ9noK6|KwzK-4WQBlf=DwZoc<Awz&SJmAfP4<!?*we z`eo`vwG(TDfq$&mYufMkbUYrZQmIh0*`!XV^DzK+3J~nam^Ivi!2rZ|yQONiO7(hO z(6-rZ#Itt09Xlej4{b#7fEzj<4hL#98bVyKVzDSV#{E{S6+3g-hcO~D2wagt<#IU^ zMht{hw~1L6qI!?VR>8bQgu@0$wOUPx7g1otf7~|#v44S(>9Iyc<_`_JSglr6C=|p* zgnNhv#Og|KB|U$xvRIv211D$@X}8;@-EJpzfvmxQ(1l4a4iMRoHX<+vzzr#jnXlLD ziFE;40|2=1BT5qx9^Xn0I`9<+r)Y849Tfzw?8BQHbuvn_*vY@0)Tm-j1Bh;XXV#<z z#ETm4q<<n#q7nIBXGCn&Br){^ys42XN^2V+`?5~)x<%<*rURi}^wi&J0MYpf<M5m$ zYmDa_>=#vMK9P}^a^147>ud5OfSAs#>YzRjUHxqDg}Nx1UjCFKc@B~3(fP{wY9o$L zK6yWMEl@5Rd_}3-7Fel~cT(~*{;&3nvqRJQ41d*^<!0jA6=vI}NH@NBL~O!~3&<J~ z(-)`!K8eUzHKNkt8xdV!Z;d3GrjtzjT55C}`6d7-HEPzVb&RB|u5Ns7L~wTD-8-&n z0KxGUe$b56aB&Sqlr$?w@WT~`e;|V&AUNMHmrGI1L-~Ot5?8dQcL4<F==ppue7;ql zaX+}mi4LWRwDzkqAb`Nx8Xt|yb0i`_i?YN2Fs?2}BBCqurwKy08T%u^0Eo>ggTU0W QW&i*H07*qoM6N<$f)3z=NdN!< diff --git a/java/res/drawable-mdpi/btn_keyboard_key_normal_off_stone.9.png b/java/res/drawable-mdpi/btn_keyboard_key_normal_off_stone.9.png index fad0ec4586104a5cc559efe898d72ce436cd1df7..cdd6c8b799ef2555920d6515e2b2b55057ce2ed5 100644 GIT binary patch delta 2363 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 delta 2363 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 diff --git a/java/res/drawable-mdpi/btn_keyboard_key_normal_on.9.png b/java/res/drawable-mdpi/btn_keyboard_key_normal_on.9.png index 0c16ed5093dfcac53807d9d9663c516e52bb07ca..43fdf5b885a8c851d3cbc24b1382c0fc34b329d0 100644 GIT binary patch delta 1131 zcmV-x1eE)p2mc6=BYy-&Nkl<Zc-rllIcr>37>12Y?fZg+wnFmH5Zd>Bmqz<O+E;`m zYoanK>=1~Eu?sc+0S<(8A+D4vAt?;06G)ND5S;D{&%x(%b?3XYkKAP7Ww`gwd7t;5 zea@ptsrg7sTpAi0<WuVZAQ6Mq*Vju;O^sAmR!T)hMcM@mW`9_as;Vj(85xoD^K-en zx{}MwOS!nXNU89|I}{4Z@bIu<eheZ`kn-|!xxT(OK~7Fi<nZt?Ey5cHESPE#QXd~5 z%ii9eY;SL;MR>!2r3NW0E0eRcGuhwYmtZg`8yg!&larIu)zu}9jg97;Yx^t_;SB>8 zOf|^q>8b4Q?tjYW=BBKzt;zWKxCD-#$m#2R`Qq-e`3@XEk%@^3Szlj|OZXwYVZc&@ zl$Ms7Dx>-+xVpM3TcIX-@mr<5dRO6yYwq(r5#bF37ECqB(b17?ZEcz4%gf91)psrO z?VrtI;y%w45#BIhsX<CgN=&b&4OdoHWNB$h-u@MoAAkOy2ov`g78ZQ9xVRW5{1DzS zV8K*_92^{&4n=|a`FVMB_nG|kJ}7tZHym;O<}M_&v$Lw^=H|kLmlfVHV5vchi;K<B zqUv}nOuzi*sr>%WOL_P2=kn`^bMwvhvztqqo}P}VnVA_!fk40rPrPBkf~f}C+1W8w zM*+;Hrhlg7`OTHQ{pD8v`0%~_`17qi`}(OFHPOT{x55YEi8l;bzCma^+LHp9F?`Y3 z*qEcy(b1UXE@OT0#2W@IHAqoWk!d^Hl((>ktUrjgAraZ~)(>wOuwbe|Xgk`Hw-_24 zax^$Nn3UXJc*B6@8-%u_>Ue{JfdNPT{rySF?SF+g3|MNA!oor`w5U3g_x1HT>h0}K zN^UQ_=_{~cszDf9R2|8CdV21uySqCfd42GP0n0ZCortO<IV){Cgf|RWYLJ400@I1; z=_K#y=tzt3h5-wv8iZMpUQU&^x3{N7c*B6D2FcIQH@%r3QH5=7ZD|qSFkr!qD@bc= zYkyLTHHf*$%gb|ubar+|4balkqAFS-yloJeVKw3n5-T{GygpHb<mTp@hm3P~5VvV_ zb8}qM0^tn<7R;D}Boo3fOw2*NO%o|dQ&ZDDMGB%djT$5;Cr2GMiPntPEZ$KAQw_o- z!=mJ#(6k{OPY1Q--4hxNSZa{$>})59dw+^|&x-L*UhcB)Dc%Nw=^MnZHMFIbcfE)< zjcaR+^|EV?Z;-64EGGzi2=A)t4i=BRK6u+8Fx4P-_0@u;N;U|rh(YXrB+-pfG}--# zZ;;H)O!J?Eoi_VSyDRhVuo9K^!W#xGm}(IIBs0GGq20Z^ci_p$df^QNmTwTwE@aqU zvyF5AWlW{;h5<_r!fuHfksok=!MAqe!~Iy~R~By$YGA25wCd_=vzes>Wn^TeRn!C_ xV5;Y=b#-;-$nhamTU#4`&gwbbe@Ho>{{Z~3fn+r{Yh?fc002ovPDHLkV1k{2J&FJT delta 905 zcmV;419trX2%ZO!BYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU# zKuJVFRCwCVSlNmiK@>f`xPoyonGAWzi+N}hP%}OV`G`E_GehzVSsoljn9(SVl35Z0 z17=ki+}n;<C{tEfFLv8uE)><;Rrj7g=T=wsRV>RwSW^^b<$uOfLir#dg+d`bnh@6Q zb`=$O#O@3bon4Sbv)K%b#RB`t8!wB+Vu;7%lwaFGCX)%O)hZ0bfUfIUE|+@;L_t+m zUH9#F8;wQ-sZ?qk$b3FWsZ_#rI>mTAhH09SFrjJMnvHU~j9RT`2SP^DP$N)L0wJcE zBy9O_<p>3*9DgAoBn{bMFu-s)#Aq}^I-N!~o5jJwL0}-{mq3vGy!5&_h~)<L1S0;p zh2qOT9^{Akd6mV@*%AJHd%iOm7L-7+IF74^4PamnpZ-AU)h#qVy&925?ihGdyv3(C z-!Z$n7nl(~hLjPy!5R%Tswy7k44boQRYB|RGVsb_F@GEx;XzPet{5=&Up8mu%6*)^ z9=Qf{`j7b*!PppKv{B*?zC6Uyv(^9j_w=hb0s0q*tNT|wgW%<HWrWv{+I7oBp?C~a z`;ECZL`=y-Gjph&ef3=4!t&hoe6o738VW+K{^0`FQbFZK9(kjL%kw@?PcBja_}N!3 z$bj&1q<@T%F#xO);*<AX)ZU%jmSGqm%)hHNG=TMd;Gp}C2!eVR!?!fMvf!5;Pie$t zjRJ_wzvrrn3WzUh*dP&cm>l8fdNSfBO&Aj&z_&EKL{S(Y!}Ap{+m!ZYG7!>DPrQx- zh%AO4MCUN8#__v`&WmC&Kg{r3xolgPjdhB%27lu8%_=(e6VPj%+dN&yg45((CF0*9 zygag4s^8oQk|(>&*S$6<FB$wMrR-SXDh+><;_tEF;<z9uG+9htoXj^Tt-WY=I~2+M z`)0%~@qz+!WyI+TL;$-mvez6D<?zdhY^?7b3G<o`^V*k6Bg>I}0`QbZTs2}HBkZm# z^M5a8glbys^v=F(_6>vzH57-Mqcp6zMn#k;D@GKD%2ymnWdkIUNTAp2t&4fdWOBnu z(4=*mOF*cg*XeZDF>Q=wG8r_RP1Ni4$j+-gAOb-#Z9wP-p`{wy|1efv+^WS(5Jy_^ fl^w?Z3NQdjFdci?cOL@)0000<MNUMnLIPldTd}O7 diff --git a/java/res/drawable-mdpi/btn_keyboard_key_normal_on_stone.9.png b/java/res/drawable-mdpi/btn_keyboard_key_normal_on_stone.9.png index 215f8157c3b7306760178bc0e1715afd675fbd76..d8421746a872e837a49afed25e4e1e86b1e09009 100644 GIT binary patch delta 2398 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 QbN~PV07*qoM6N<$g7~VfaR2}S delta 2397 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 P00000NkvXXu0mjf)B~<S diff --git a/java/res/drawable-mdpi/btn_keyboard_key_normal_stone.9.png b/java/res/drawable-mdpi/btn_keyboard_key_normal_stone.9.png index 88acdd7483f4eaf257c1b64331c7ae3046ff53f7..44c2ad6372ed827dd510ea6def7b917a85949f0e 100644 GIT binary patch delta 2134 zcmXw3c|6nqAD`Srjm?pxn%u29zR0zqmNRB<`_e=$XIi<_$B}C&%9L^~UshjNbBv}$ z$dbr6X_%w5<oIQ7hWgR(`+NWUe7s-J<Mn>N%faQ~92bC6FfIRpRxlk?JRPH~uqK3Y z@S<X;Ib5&x7ak`-cW=Bw6s1NjMBQ+kC?eTs%8*e%;FQe|+krp-0RH~faNS<>*UYEd z38Q%4iZQF{@&w_sH1q4`xOIpdIcMT=`!aE1{Kc*L(I&)G;Ma|)$+kqU^vkJ*wfW(x z$c1qwRwEGnNqe6CZ28<gi#7$NU!L%VGQXnTdFj<E5IbLjH&5cH3Gr*X>6I@xO=Fe< zCI_FmBz~YewdfQ2n(GPusU;glK=;CV)3=LL-SkyV`oW!Cnk7r|)<4ofDdg&?O| zila_fV7?lYN=&2ricmmnXNtHiyDL+6tla({8{oXXH%8X>c;&P$$&C_gtqn)95N-Hy z3lSkTK_M|K<~RMJ=#dNu3R53qfeBxo{n*wR{E59f_h~F!!HE6tq0!iXMw{%}j0o)n zln2)*DO7Z=YlmoY4TDYQFVI+OrIs<9WnNdPqMu5q`q>DyUY)+x61QH{0{m)?<4z_5 zaT{Dp+{$<74N)#Ztd+`ci9#gA<Ig4VJ3A`k-OFr@oMfHSSQl+`-4C|gP~`kTslfII zEjTEM=u~WW#i;}dPn>{nD7Qy~mJ~r^Q~_vjVgK4I!glX6je50^yaZ!YdP<KFj;h{K z`Abg|tj!MwhLUWGsD^aUtvVPBu!(vMld}}ictHMBz6dJmJ&+Zhi;91ZFfWNkW(nVj z0gq*n2fQc_swD3$n2E|0X;DWZUjgdGW&gN{>~33{h~XE>`NXi>(7r6YnFY;6yXx|N zX5dKy2)cE7rOHl#YHFVCZW0`5K^jKY?|VY8Bj}oEtGLib93!4z<T3z?UhH%3U?rb6 zg&JIxO{AU==#goM-j}t2YTa?B*s<oa=y`T5aSgo-nUgYBwclgis9C<}Rvr-$q>sLe zG$%6N=bJ@E2$;Rjy+LZy)Rd1adLr|JRdH-(Eu~3^nFmi&Fc@FpBGav6UzS_RNCYFU zp_|kT69;!>_eKJdg;6cfrvyz*^9HtbN#u@VcNeL(3b0p>CQhJVf)n;Rv~p&+`p~?5 zhEyS6>ZkpC6NQzK2=1n3O2fyMfShFI-Vjyj(|-6KqOOOOkg}ts$G816ogXy7Ur=w6 zILI%nTvdmbR5sh_QK><G8yTjlrvwd5SrFQhR=~0@?>*(zCM+6x#%cDdQ5WVkA?<eE znsbvBPo&qYG$DS?TIP6cKqfvy!2F50AmkL-=O!L8O4ufTH)P~kCJw>`cYWXkg}X&3 z?S%HOcPraN9Q<BVGsRizg4f(qjQ6a}Ih}L_#Y$sHR&>r!@ewPn1n;W1ip)F!o+PMy zf_cSR@~@lCzGUxyt+bk}UVKCT@d1_<A-QlI{U-Eu%ZQC8^ikfU9iN6HgweEp43ce* zU_l+)FmwcxZ}to#rg4ViI>*7|sF&pP?P<F~)cJL!>X82|K?B%cF`9%(GSu&7iPR*6 zR&!u?_cs3iWuuIU%29eKfJ+d6lZQR(^R*9+6W$7l{y(!p@KEz^yV6>ZL0l-VTW-mr z3Q&A_b@uVS=|oPC4q3q{Y=0?=rjJk2AU|TG5Ue2zXs%RkPUY?2Zk0>uLx&FSwsMZm zTb;AVWMNJ0>4Msn(eM=mv!KAx-{vm7&3^{$wmEf|quz=x7-~9VNQ2*%vVi|f6TSFF zhg|7VD_M%-<6uP4jXN415)6s;4({Xj*s9yVrG$UBYC7K~mgb*==@lE68FY8WPJCX| zYMb;{*n2|(<IiKlHkUXQglLy*I+iX`nK(N0-38RxU|82%f<gi30{RM#!`|Fc4V(F= zoNq<Fw2)k<Q>eP?qo8cyd3!Z?FXxNz9&lvf-VmM?-uk!FtCM>S3I9VYoJxMk9QQoP zyW^=#hK)#)Ck;(_`)_;i3b@#NKNq1FG3%N(B@l1>RKLgBj?nWeL1xQbDPFAf*3g-J zAn-#4C)1(W%y{M4ebcBg(Vm$QN^_sPB-_2COz1s>ndmSKyQ_AVxclMmk2j86o0rn6 zz?$HU!%f9>{`eP{R&xkH>G=L02n#7IBx4)kJ(RM3ZdLmOko;Z*?B*+y-J(1xE3qzD z(s>g74A_KsNZFu4jd;Wbpfm65`m^&iUG^Qsx}Gq=k?7W7O};@;RfeK}_pNub@&-Y9 zm9@18gzuvTy)a$aOAkFal*DvSTAmG%H;=v6%4FuMjCE#6ckor<(>m>DvdW*rgK*Y@ za>b>FLPofN&UA3t_Qv98kjg=qs=^`~gnkyPUCN&xE5{DW_3HpqQ<BB?G_gr&eS&6? zo1IQ`l8GFf2!l((`qLzpX2aX2K*<;|nuxCVwDnfKhGGGbm;#lh^UR#1pC`5U-I1}u z5rr%|MkU(}VS1%n;9s2AiTuKh_GDo~GM|n9pkF?;0U?jP9xY<WZMpEi)Uw8-)>k(E zb*;Ji7kh&)02UDuf#P`uk}gLfg`;1H>|}r!w|CUOkF~5HZftB^MfwB%>WiHE2and{ z7VG>KoN!L+{ni6N#rqEwmzckdy#Zuzf7|R@zB{emKfMTNtbf_^PJvZVX-66iFmTta zAD?K|HaMajUYp5BE8<ya{Ge5vbnzjsPcb5{&(M7KZxior%=)Zvyz=Nbx{DE!L#|3B zFb;P{&K{Er)p{XZs~1{^*<yt$jUP17J%!7?v;%A+Y~6Nb%K=b^Y^?sy!%!2@?y*HX Kp02UNC;b-_LIx86 delta 2134 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 M07*qoM6N<$f;bQlkpKVy diff --git a/java/res/drawable-mdpi/btn_keyboard_key_pressed.9.png b/java/res/drawable-mdpi/btn_keyboard_key_pressed.9.png index 39b9314a1a699813ecc408a150b7ac8b7b4217d9..1c1f3d711e109122c0b694160302e1fcf04ef7f9 100644 GIT binary patch delta 935 zcmV;Y16cf+1-u84BYy*fNkl<Zc-rll*-j!+6h(b@7AK4bhX?&6f5I0BoI#w2I4jP^ z86<=#;RA1Hope=-;uOem?Uy#$>DboYYvt6f@=8-vW4=s7S|%nY%)iWkk+LG=<Kt#z zWW)>&4Vl5gLF<79vqU5kiI}OWDU-=$OrcOP`F!3==>Gox7JnAZzaqvJ85kIFFUsX| zCY#M#3Ef{`U&4Z^iXg$opP!#5l}eQ)olaL3t%GhDuvC$7I4rhY`0?>!-rnA<gl-tH zV5%aRV$Fh=mlrFc8wM;@q`$vkHtPHPyDWHmda@F_VZef^if~_FUteXx<Kv^1&<z8Y zD$>{2CnLj{1%LPV_f|qT3|KH#5k`hF3vO?3i*j>wQ&apsbi;t9iuCsO%E%rb9%RAQ z)m2fF$z)CO_s|Uk7ED#-`T5!0-QCH8i;D|4=jZ2j#oI+U3|N68+`sGVYgur5dg|un z<fN{6yXb}iOBLzq>5=<)d3h-dj*gDp93CFl6>k^aFn?gdR7KcajFJTh2L~nD-`}q) zS_j={XJ^6+6yg3cN*3(x?U~)(-G+uvx?#XlMY_AY<^C~B7Hn^C7iDW}tETvS=!O9c zrYge7FlNE#=BC-$*l1|zq#FjTK#}9)V;Lcf5{ZPB&<z8YDiR8XWMmk#ARdof3EePY z!Bj;U8Gqwr!RqR&mCy|XmMYTK)g_M{ql?92W_fwpO6Z0G3#KZ<j$U717xSg1rNAsM zE|yKXwRFRP<rk4}Iy*b%hup)Jm6f96g@uK>;_adv1}vB*6X8GE&1-9GGD2_B{QP`f z@pjP-1C}b%(a~Xcc6MYlF+vKW(P&ZT=H{x3e}6rlbi;rJQx)N{Vly#9KX`U_wx;;S z=!O9+P=r@9n~4$n;WINcHN`JQHw;*+NPBy`E5ZnaB&MgQf0Q5@x*ZXist7Nd-x7hP zinO)0$q#wF{34CIHI4`jSTI!)-gu5kxeZz^+`C5{5m>57YinzXNTrl}LW1HIfmv3> zd4FpB?}1A1m7iQscSR9rvvP5z(puv@zOYo0mX;QIq?{L8y|4A4I4?9<FjW!fJi_k+ zTjvqFo%2Yb2&Zd~`<xXTeS+tA3;)s$1C}bnX=!qDQqGbb_4y;nMx4K+VW}sy;o)I9 z%(8)+o13kMNgx4J{hW1dY)n3K{Edu`jv$tP&g%Pc|2N}){Q(FB*Wec8g69AL002ov JPDHLkV1m8u$y)#b delta 640 zcmV-`0)PFy2bcwrBYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU! zI!Q!9RCwCVnM<zfFbsy>5}p$KU<ZsCGh?Sr7&BtT5?BZW-aYrP<SQpQX`3cMq^L;8 zwZHliCpkq`Rn&JBMe$EfRrJyUki}xrpQgt+olZqbKQev>#DDM)gy?p=(c|%;6nWD$ zhQlF^MkC~x4RX0$XtUYSYPF)-Y(}rwD^Cc@lAg~e?e}}y?RGSsPHm9;{Z8xkx)y?G za)MyO)^@vn2f+XYfbi5n*o|$67GgjQ1_MhM%HPTn0PxJ^5rzYh1hqT@<8tO2@P@13 z^2nz_e%~WJbAN+yenfdBc9GL6P1FCDBU~|f<^q9klyIX*xP<#c_+WxL!lZKM1aUpC zhUQZq@rFj`hf5p-<ZB5*k8qC2B|i0bfWc6{!K#rExvK`VRn>gWBW~5??7qA?`g+r2 z{a<f-jZ3`S_;Ph#X-D;l3)5u_*mg_l(_do0D3!Y~T7T|nGF|1}4=UxEwaGy0*(ygg z;n*df-*fY$b&g2En8gk6xcSoPksKghlGSL2LJ)0%WLV^HpRO`RW9xI!@_Iyr;UtSW zc53pPE#sq<#$AQ63tC8r2`O(<=)TkEkZwYTQiP$YoK+AAb%BTlm3Gw7uz)6*vitJ% zh6Z<9zIh!~s(}-pF{ZZV4Gk{XAczaS)cX<kI6e{}c#6Lj|3Sv%F&&RbS}vC~pU<=2 zp#kb}IMg=ZZk}<gcs`%$dc9`dCUTwt0v|k?OzN9w%Of0?PYl>XDp(#-h_f~w?H>q# a0t^6uKU&u06kO>50000<MNUMnLSTZ-aWU5b diff --git a/java/res/drawable-mdpi/btn_keyboard_key_pressed_off.9.png b/java/res/drawable-mdpi/btn_keyboard_key_pressed_off.9.png index bdcf06e1b8986fd3d5fc87d41037c7c037c6584b..dacb675a99c93e2765ee8f15e41f5f9777391c9e 100644 GIT binary patch delta 1058 zcmV+-1l{|@2DS*0BYy+^Nkl<Zc-rll*GlYA6o${Wy%!YQg+7cAAPRzdC8*eY?*)6W z*c&1$KHxfhi<6L(Ss7>I#B*~7enKW$|M$<%&d!?r`jwiGq{OAJu1@}?{s)O0q_(zJ zs;a7_yu4h>%E}@aESNDtDk>_Zv$Ip4pP%LP^HV-PJ|Yp`?|<*_%7XbPh`2#YOH198 zUSD73<>e(3;r;gZrYx9d5JGVB)6<hYJUqnc@$oS!Ssr-9fMo_LDJjvkoOpkKFSob1 zkqB=Xuwa@&NJ?r7uCK3E<KyGf+}ten_4T@C-#HdWc*B5Y1}QEs)`@y|cc%rHmzOd& zHYN=X4bsukA%8<dL%L<3?>Qbuc*B4N(+t9Oy}7y3f{Tj_X=`hfzP>&g9UXPm+uN(( zb3Bajh5^eAQdCr=Lq=i>&d$!Hv9VDG1_oq!c-R&De9!SP!W#xGm}U@$jKmb2oSf*r z-re0TgM)*v*yj=*A0H<qe7wRN1}rm3VPT;T+4=do7JnQb9?JCew6wOiN>^8x^z`&- zu$Gn<nVOoCgM)*FgpXHv!+-_T403gKC8wvSTClgbr$w`~v(nz)E=^5Mx}BMs(O<f| zyPL4^a)dVwSb;&fen&?~TClynt)kEwPPY8Yt*x!3<ai;xVZbtj6ciLFXn%iS3pO@3 zT&=IKe}79}FT7#Ef@ubEhMa=6wY3<nuC68}%LDJ7ogHNb2H`R=loYJ2tjO~6a!Q3K z-Y{U9LGttS_4+ZC6f7<-{-uS5g;4VQ;0*&7Ofv{WMq&!)=jUZ^ZZ4(56K@!>0)uRB zZt4(H#BCad@P+})43d|Zr$a_!3RtwF5Z*9g!GAP^Fk}oL1rrk!kqB=Xu*@L2xw(4F zF?5rYllrKSLU_Y~1=9?|jAltEx%biU*T~37T*a%!8wM<Y5Z%ei$<c#cL%J}pv9}Ef zBd-_UFkr!q84<o@HuJ<~2)#yhXWx<63vU>(%plp>*|M~>q?3su#K7B!Aey3N<gdpQ zZ+{rDV46X=t(Z&<pe-ycf;V0goT6&QpinaSj|gkD2>*D&&j!W#xGGe}lemK%g2 z3<^Q>oQQ(L;Ozu~X$E1T`KchV%pjSWnR<}h%O50Fm&OSK0~Sm(2rHfwB;Eu~7Ve!R zP7qjTkc^Csm>^#%-W?JoZxEPqgE)7Me}5hLYF$a>e7wI5;!IXf{>n70oZA<c86-VD zU2iF8LHq8q9wcW$g9XzJ;`Adt3!>^r@OJu<z#w$jwEOf5sqWx;wy?z;1}rlO-4gFU z=p||O`4bd{@aEqlEVDzatgO^#mI;)WmKLcP2|~a$-?P@#)aWb6pHOvmb?kdq-y6&Q cpOpLg4ch0x`T-;elmGw#07*qoM6N<$f^KO9IsgCw delta 814 zcmV+}1JV4p2*d`EBYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU! z=1D|BRCwCVSh=p^KoD#ja|#GJBn}B7ArOB+L`=q?k`NOS@d=0{A%O%U?sK<Bny2wF zzU|%D(#Xb)yUW$pb7`N?hk}}>X@A{(v_L)pq}%NVM-#y2^MARf(=V}K1H|ArNYVX% zr|0uYVd%!m;_)~o5(((b4CH#f(r`GWe!owdOora?cQh%`b$Y#CG?`3jJRVazoi+n` zJRUR{3|J>H6D1Hd#2Sr8-#}mh0YJE_fN&b!nkvNr5sSr4zEJ)qjQ{{|Q8B{70gwpP z#0Y|m4YpV;Xn(WW(BW{PLZLv7MuR$?PS64H>qAY9$Uv6MC9T(MDwRr9tybxDI?-yi zVtw1~c3>c`8QJZ2RIk@5nM|_(^Z7h0IXrK*TG27W8wYZ^Tv$59mmoAe527Ki57&$o zi$zvNqQdbT;2>zXUoV@eK}(JBioq2?Ak=I&%b38Zdw)D0nP7te!MpJ1$OtdtTCK)t z+-|qD-|v}5n$0FvDit>9dC`Pxjc}x5gBHr=G6Q5724e&O@Z767<=--+%GB@%L(ud2 z9C+ODRKB7<R2uL)D_czowv2F%h(mnX%K;7yy0fhs5rmA`FDR?3L333#|BVs3YNDKd z`Qpg+q<<HcasQr{0Z{^Rob)(5Q5bY0#!)gNgYmKibi1Uq@~>mPC_0zHsI;T%<F&v1 zLAtnSbqWx6bEOegXTL){e^1tjYmJB<{S0n+N7joYBT)eHB345c$PR>CKw?_Ndn;dh z7!zBNjg}=NDllARezu*e{;F7p6-qI<?9lIkW`F0yuygL@P<|)KCf%?L6h<1H%2^2n zoxFhX3sj7wObzd#>KNwi%bR6tu)(%kL4{@5;bD)2SeB{50UO_1hP@u)jN>B#1Xtld z?FR^s9%i!{^?E(Z<#Lgpp#ju%I{i8BFr7T(R1q8O+wB(VGLh>9An?JdREnKEn;79~ s`6m~KSdfB=5!E4o#PiHoN&XRF0GqC+|7RdJHUIzs07*qoM6N<$f**Z-zW@LL diff --git a/java/res/drawable-mdpi/btn_keyboard_key_pressed_on.9.png b/java/res/drawable-mdpi/btn_keyboard_key_pressed_on.9.png index 79621a9e6300cc77259b6af19649931e47611c4a..3daa69f314a0f6d00fed463207e9497f704b670c 100644 GIT binary patch delta 1099 zcmV-R1ho712HyyfBYy-YNkl<Zc-rllH*XwQ6opl|V$Q*&nF{h(s8a2k0#vdROcl&I z=LK_4E0W6$f*^@?Wg4IWH<CLGGE}%wB?AUjsZgk{{9R}k!`U}W?(7cLXn}*lgnPb& z``)~LyZ7!T=OamRsi~=vZ>jG=Vg{+Mu9k|53Mnlum6DPY-+u)QW>k=}vNEZ!ub1QF zV+n`Da&d9ti|{@_KUWsauR$adq`0^^^3dt&shpgg_#(W|&d!tt(-?#hJbZL?BnJlv zQ93+4j7ugDykWpH1}Q2k(zHCdzrQcLySu7DARtXmO;T4^r$^4MdtQV$3|KIYK}bq! z3U+pOWPE&F8h-=#W#H^bnf&tyJ#x-<?t2m5Fkl&j6c!fhMBUrl(}Jz7Eg4yRBpa`O zlHlu-h&bmu_q_;j7_eX(gD|e4P)G}c!Jq`6{Vd_P52D0%z3)MI!+>QBQczH!Eh8}n z8yg$)$A3@c>fOUAah>~Kgf|RWFpWWI8Hp)aTU(Q7e}7NQi}%0C^Y@P<;{59W>#M7) zw-P>f;SB?pF-U%XzP4<0b5jeJmzU+&-$U}xho|!TQ$SvR?9wCW;maLaT3Wi5@UaVT z7_eX(gKTea%li7d7A!0*sKS>a`RmPv{QLP*kKx}!GCw~bmn<)YHw;*=K^VW4l@%?R zot=$nW`AZTA=$m~h5^eMBrh*d$8T|QQ46M~rXrf0oJ>e|FT7#Ef@uuG<f4@nu!1@@ zF)<OBOdfd8&CMyxH3;KJD=A?092*-;s_?`c1}tNc+}vCpKUzt_$jHbw4G#}{lG6uo z7_eX(gU~V(Q!q3%B!h#4Nfn-W!+_-)WO{m9TYpGVe}BI(!W#xGW00Jj9BmniDd_F( z^+kBYfCbYSgqG1h3c9<yeG%R;U>SpCXJ_jxN9%fedZe?n(-+|l0~SnU5N7niz<?(2 z=;&}&dwY9K#j3>{1}tX~J;}<-(wmH7S6A0H<F>Z8gk<-^8wM<xQ61qTv$?OYPg`g= zYJY8QO-ObxykWpH2Fc9Kl+n>qolLY4gO-+-Yie$8j!VvZJn@DB3#Ks$uN9Mt7COP~ z;JwHh3~v~)T!XMAGnr_i6W-X^=t<5{c*B5Y43d$N5eY&I-9j`pG~7yVVeqzsz%&M7 zp}DIdu#7>{)6?}Pua`4OvWCVA0s|IIV}B4<JS#}72^uflK1Zw|u#7>{($b=W+@x4< zh@0#|V8#q$y*18t;HGuuHqYaIV-Rby^6*WjUS++$u#7=cQ&aVovKF*NmvuK;3mPn# z#vs;ygzo~s_9J*(`w`b5?5^4FvsXy=4xaB8j(Ed>Wemb@skXLO_mXV&`4QxY@I>Y} zF)ZT_t-QQkH?vHjl#~=-MJEUW)A&DYRaKS#<#-pWtgMXwpVjf_{#`2a`2zF}*~{@z Ru<ZZ<002ovPDHLkV1mMT3fcew delta 864 zcmV-m1E2ig2=)e$BYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU# z7)eAyRCwCVnOkcbK@`XTd+`dQLK162OQo0SC-9;5*@uGP)EA*|J_!Zi(^A1m0wuAU zq-e3h>)JiSw6o*v#l5sSFszBQ=lu46&Rlj>w%aX&nxZJCn}4km$OnOx%jMuS0j$^S zDJq_bJsA+4eV`OAmrJbIYlKlZZWfEh5Rb>HzN{eg`5cW#1GQQW>2w-~VMLPxRmEnr zLA%{XtJOj(m9m1YRx8x&^<5`YCQ1-$6sy^6?t_pK1Od@i2Et_YYO)j)gr;d0Uo`wJ zH9`QaF_7VKh=0*&gvn%rTrP(~p@3qs=vxs6M?gHNMG*?lH-Z?eACY}OK=EvhUpFWC z-hTz-=0hMDQbSbSqKF8x$zP!I?i#8_G8T|81E+7UG5&O6eqRU-;#rYr=Ra|hf4iS& z^Z&-ch)xmK7)ZJD5^L>l&rz;&j9%XeG;&xhPl{~rOMgf|Hzma1po%#eKYlCi3fk+_ zi^lvr)(9Ihbe#>4a8}A;t=?m`og$`Wp&LgS-)iRfGv6TOn})EfB5Vj>eVv+}vv~3P z9LJ|=+}%FnvOmRDZ*p)=c&-sf$~UsXmmj$N{19}%viG-`T4`!{5W5*N3`J~H!`Fwb z7!L)qTYnN96=5~PPw`=I2N)O)U&m3yLx{wFq3lKtHBY1FzbPV)nyB_8^l)r*<ayDH z%9wx8Q+(7Qu8SU1CkmrF;p0dZ5n&G50(#w2+WA*$zsNfmVPv%<>vL#-@qtwSoz*Qs z*v(Uo$U6I-;@N#-eR!@BzN4SXjqVZa#Z{3gKz|M?R$Ugz3BoH7pBDbJoi8<vg)PX7 zmaQT(7*=F{UOQ#|WwCTSN<O&g(C>ui<U@CI?&eUuC&){>?i47DG`J0CDF}5s1i~*U zA4i%R)<M=W%+;4Q+tkpRmfa32ETcC(UDtQ9Y*RxAY}Ans^upecFvaO1352fPcgi1- zL|Gz%ZnukSwTet86X_WmL3KKvUCh0cXF64!&1P6E7LjffS)C9BJ#aFa+?_mI6k%!k q7e=wD6fBBJh$CHeWIrJM7GMDE9iolaj`Pm|0000<MNUMnLSTY@C6k2! diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal.9.png index eae1e3a5434f8ec54fa8cc98585e9fda99c84d60..d0090a3053c25b2abd1ae612eded0e213c1625d6 100644 GIT binary patch delta 547 zcmZ3)vYTasay=81r;B4q#jUq@PWv4S5NS;m*0W=CR%ql@h*+{EV1e%U?nxaN7g~J& z^sjT?=0|c#9{x#p3Qd2u+rIqg_J(c8jvvz3pO@D^bNrXxqQIia;mF}6&?Eq2)(I+g zDSi3%t?iz@U5ME{p9_`}Ek8IP{j6~5_xFGC;ll#0%6E@X*K?nG{<%XSQt`=wr&+CH zr<bmJvhzJZd&r(WE-fdxHr{`KvBoZZ?wLRxF+s&mPIvCzUHCF*nbpi@fpr4A@A56p zTm@m@ek*p=bJ4EenFrlC!aKgEHK$}=yp^@rt)-xK0<+uWjjx_8HdBmIOsSM~oA~Nk zH>*;Mc8iRG1Yc;qxpDXOUZ82ln>XAzWDs(<#L5+@$>Z$VZFK@G^b8@Ap0gD8zhABA zm*fI8-J&mW{q^9xM|9%MoOU>!kh;BhXCTmp8X^Kf7oL!MUAlYKWJ`{RT!OuBFK&Gf zQ7;xaB>Cv~YUjCr?xoI~yKV!e6xp}j&b`XZ#_UqxVXWv^_tY=0G<N1;6LG1Q2?EcZ z=Ny?39=kToyVOxY0cZsa+reul?U{aYHw6!gI`L(g%wF~RcdZLYI!E#5wHGs1ocj*s zz=NIt&}W;F_16Q}h6PWx*?wl?>8BufP4Q9<Ss4<rGbSu_Ym}>z`!o3iLQVFQ)Mbv; e|2)2F@^x{C{V$ZNZ*ECu00K`}KbLh*2~7Z5JNnK5 delta 522 zcmdnZvWR7Zay<h}v6E*A2N2Y7q;xPaFmM)lL>4nJaCd?*qxs3xYZ(|Ak9fK`hE&XX zJI68akb!_}ypvf>^Cq3;53YTYn$xJNU8YhfUK6gW+pI0xIQ75E6ILCy`2LNuNe@gt zs%(3oMJpCB%bXv3aP<R)mSzDyCku{;Fh)I?^)N1Z_g$tB`))E^*jD;%+x_>9KW@Cu zt6O$XyP6^P%d^{6yazs3up~&d9S{G~uOr6I5Vl&BA+~(yoqg}?Yp%I<T<Ey`vcz;* z$o1UrWjnVV$Z^ni-XOT0v-idMbcSQ6s+`q+Tc<EHEzWJ>=#`lIAR;n<Mo`fHUV(*z zne{U3k40&&yzka=gX4S0&p@;6kbBBrueJ*=TH$_W+i{4x!u|{8r)`tmcDQp$EAF{2 zVCM9ru4RMZqjPHv<9fG(jVe#;Eit|3<@wjl=}gkK6Ib1}eV|Hja3m_bWVrnMdSmx_ z$%k@^IV~?Z&J`~`8KJHE^)^TS#lp&8->zS%IbYOvWb?6<HKN};>>rc@O<$C;UeI=9 z6sy@H8FodPmI8r8jvOEc$92K<xerbz=W3sMIdk2MmsZk>PRe}k%nYZW3avQbQB!0Y z?_QF3)s5pn|5TtUo|?6#*Bfs2a_So_J)%C<_P=|;oKuy+cxLc)^>bOr?3B<10NEqv AG5`Po diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_off.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_off.9.png index 13bad8f1a5939034b9539c371583c05d110f88bb..2baf7d90c3bdbb79e2b09714d4d273e02579beab 100644 GIT binary patch delta 704 zcmV;x0zduV1=j_TBYy&(Nkl<Zc-rmUNoyiO7{>8{OFo1L4}uFQxbN+*?Y>SlW0)Mr z+$NLn4>MH{d0<AyLAoGqkvH(WrJAlkTCv*h+}+*A&#!kkb0VLWgpd#tLPAIg2_YdQ zgoKa~65<0x^!t7I@%jos-`=b=9F5?b7!u-tA-<nZ@a_2-j(<;2R^fS{US1#=41$F4 z8iEI0u2!&EF0I1z{(3w@`2HRwgx3)J{T}A?`AulI+YpPzAQFi{JRXN$uLtMjIFE2R z3=+a?h%XNhFrCeO)gKHXkw`#3pNDF-3fXKHlF1~v<1uhN=OH0XL+o}tm`o<Vs?};x zC={UCZ2qOuXn#O1mjlOffa5t231J#yyWIj`YJO>{1yU=O%TQO7{+D8@1U<Da&^Ugh z=AcOk(-7;;2DoYQ%Y3l_zVs`V3UIM3t2kOtEub2IpW|2SHAo245In$OIP}$6EqEHw zr=lib`Qy)KRV}0%-vT4o1&-%OZ3$r-f}0mEK7N}_r+;vGd<1T@_lE;8*!eiVRV0LI z2p*uTHZnGwsg0K=AxuNe)P_atbUId>s<)FSAxuMXapFf@TX7MU5T+r<lQB3g$7=4_ z1qopq!c`wrwet%hwi&67mnI=hLvR~==|YGtIFC>$1QNn)2ySC*^}5wK4+&u!f?urg z!iTLm4}S?^9OC`fAzm!C6~7#o5T+q`0A4P)Rkzy(32|kJi?`hIQWw8!vsFh$=tzj` zLtKo(OI^ic(Q3TqNJ5x~XsZZXK^@FyyksXKOhfPh`9i^JPOAkH!Z?H)tnqd}Tk+;H z2_YdQgoKa~5<)_JTnOF_p2=h&olaYY=goNp0yzPY5MDz>qfy`kA$)Me7O7MUI1kSc mz)A>tNM1sGmj76G@#i<6Q_wPws({)60000<MNUMnLSTXhb~s4@ delta 712 zcmV;(0yq8F1>XgbBYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET5 zfk{L`RCt{2oXc(+K@dd`kD%}ntk|J|h?ntK@Yl|7@CgX9V!<Qg-C1xe1QNGr;#fnA zIuhyyv#7bc-0B)n8}5UkPhpgPE98+Wm5Z+6UT`6V3n5$x;eSF17ecrY!i5kngm58* z3n8Mj#%MGG;M?;v0OfL;x{b$U0KUJxyn0QVclH5PV_$xKdIDfRp963_9zVXK|45}$ z0bn>B0#L1<Z})IG{Bf;2LPQ<0TCJ|u5Yl>VQ7WAy&>T>fLvTmDPSg>H{T_hRon*su zxddP`nE<faY<~b~Hk$zSdOZLdjRtUOg-3Hh#L?~u5p~2#3Z4qihV6C>z-%@HpwsC9 z(Cv1Ci!-LvDFFS!0JwCGEcLr1MAQ-Cbh=uL;>UUoK&#aPpkA+EeQz0IUE=ooEcLr1 zMBEW~k`bS3H2@CkUa!?t(azDX&y#WP2$8L86r2(5c7Gdy<zfLqSy^D2VD;H7Wcvu~ zHd*R-M~F-rQS^*qv%;5tAGqu%Z2$0CU1Xr0<yu`MPyOx)5zh$ywu;V(-EIe5GGU;d zV@=(`vS6VMxqaT?8Igk|GQzM-ur({55jjX=)_5;IYvdq_=MnG4XN?@Z(KSw2YpP_a z-yI>|=zkjFYE6|a^}8d)Lv#(RKDNVjM~I|mjeo^wjU2cmggZh+9btbx_UZG1@Qe`d z2vH?+o-5p}sgk9BcZ8^Ne*5;XqWLq+2PED#Zq`)sjL3oSBZNCbWSTW%Z>%PPJ0d$S zgm58*3n5$x;X()(LPYlwd!691HMJe)?U}CF+d*~i2oZIJortmX5ve)CPA=Ph#Llg{ uBZU7SD&dY0r4Yiebd8X@W1=@0Lf|J>rBLx_#ELio0000<MNUMnLSTYetwxRj diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on.9.png index 853b8bc6e9d29907f2a250285a57e0f50828d1fd..6812f9e8fc92e1476c880e0ae4a0cc615c75657d 100644 GIT binary patch delta 1090 zcmV-I1ikyM2-XOYBYy-PNkl<Zc-rmU&1)ld9LMo(OP_YVcovLH-E9jkNLyReHqFB% zlbOt8GMUN4<e}+P>}J(&n)n1=aKRoFJbUmYxCb9lLD9p)dQw3b1-&Txx9H?E`5gr7 zmKhUw+;89oDKo!ee(ysvze$=47aokqAAJwZi9D<*1cjgw6n}z3PzVY^At=QEI>g9G z-{=U8j@`$oi|x<GQ;2^n1jljk!qE}jXt#%=ecabMhEBHw-IrW1zTEv=Z2NKd7}$6| z&BJ+OP>6pDanNi+wN`_&Z4Z=PaaC#+sBKrFu~&z^XB%+P+WD(%F1DTR-`L%T!)u2y zK0Xc<!fOb2f`6)}fugDdrRf@E4IRv)0p+>{+Xp4syIz6)=Ulrj8|u!so^s6svt$4Z zJ9TjiD1_G#mSuq~%Y&u3G);wEUWZaO4~=FKnnxm3c0yn`9)-&83^b1vs2>!eXd7Tx zOEB$3n5GauLgY;oGLke<lI&7+1&o3YcEg0j8yeht^M5gT|FaO>{cZ-{`#1zQPalW< z=S?Wr^I+FYaPiU<oN=K=A?_Q(FbohyaiB7p3@DlmMnQwht_iQ)+JH~*T!tThn}r{L zcisEN^}**)K<9)5yOD=Vtq7MMnFb2sHAF6#gR~$Fl;FhZkyHt?mJ0Sx9$tSd3SWKy zB(MMs3x9Lxn;AGc6`-_jK)G4~3gI_|p3Opv=Ld={ibP2OH79{p)uDT{03Urh1K<99 z1@8TN6~6xI3f%tWDzrLfFl`MAWfMHVSW<{SP1hlrN(~n8N(*U_R1vb40@ZyBUVEbe z@7#V0KK$Y`y#4MnoSfQFZWy4OGUTlsc)p;b5PyAaF_hrAp-85Zz>7RcssOqv0ed^W z-r0xtt1W1?_kg`!YIzAViU4{}gQ@9Bpb%a|$ch5-L}Dmd5H987g%pT#8sw}9T0Y}) z;`FG_^B!3jK#+MzIb(YiRe{OLNuUs3LrA>^ks}t14OKiIhXm*1QVB?<IpBpPq(v9| zJAcJ<z$FuqNW?*sGB7bQ0TjY(2+>&x^=w6>|BaX{>coM#D|QC9o$b%YvrBji;WvaJ z3J}?f1RA?gqY!>Wq|<5G+}sQ_zPGS*Pzb*v*fM#2V<XVmJUoBoM<M#yGC91y9%yVH z6vA%^E}4X9!r?$;^PmvEL-fBow6?YuXn%>`65l}~{Dxo$SY2HWG`6g#5a$eW=2!06 zEwrbdg9Ta4i4da@=MQma40h{mWo0GMqR}W&2)`lNEw5$gU_r)i{ZR<NA=m+ymX`x9 zvb6;i!gmN~aL>}xQlLd55ugwhf<jOT3PB+##PC9d!(mulT!e*%g+O8F&E_#SHai9s z!fS|7C<JqJb1*wQ8z}Sh^T6ie`5#~@1pRCRg?LzgvFyyppX!lvnP`QRasU7T07*qo IM6N<$f=4m)jsO4v delta 1049 zcmV+!1m^qJ2(1W^BYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET6 z&q+i<RCt{2oZD{HNDziUdpst?X%i#_yB7#4T%gsW6%vRC2rmt9!9lE|z0HPG7y=20 z!H4FeswU}4(lP9MGNY|eipt}$-R0_E)zv+AU@-{#cV=XV9Dn&gljUda!J^=SP&^Qd z2SV{cC>{vK1EF{z6c2<_oV5cfvMk=1em;p183^I9N#cr7l5>rXjST?)xN`@9JfBb8 zW|feeB68b(yflJ#ecQ%Lc>e4e0FNI%KCw+#gp$k=>$h$JFdmNqXqu*1XRM>MT$P}9 zP~?%#2Q!M$o_{wbG<B={<+%0rbpVFLApliX9ckMYp(GWtzrP>Z&?Wu;3rqpl<Hc|Q z!0?>dG8bDEVogD>`?aRNq9oRb{pYV4&A?MI=ZnqSnZ@J?Dmlu}k{JMulQ1_S}l> zFGsroeERr84i6vY`1}e07cTv-7rFo(_#HwMHFF%U2!AE1h}OpCo^ylsRGUdVngYlR z`DW$(7XW_!?I{4aABx*ouZa@2w<HH_{`CZam#-cGP)%YDOh+ZPhi}Ujp(GU%Gz**U zjU!zo)+))>wH*Ndyjucr<7OG1cKNd0Mp;e(`20ocp3i%0a$KX=OH5W=5lUJSbIuXj zOncV;#ea+9<}a&p{a|Q$!P*ts7>$O}b+QiryCRfsqejm;Vw%kxn=8m?s|a^@uLJOI zXA6Lp74c_S%88SSocHFnC}KR8(WI_E0g!8blB$ed5lW{V(f1s~u702hoij|NB7F5y z_CJ4m4}kaMO#oKcJ^--uRuu5h)@}Lz-B&qZ=YJeUW)&upJ&Y?tN#_X74SnZ`DW<?G zt|#__wEy?!c>vzNxeq{DN<A_8D)qzed!38ysUlQS=&aLoL<bfkM;Io&P&ej)?$`B( zTGmDOKFDZb!_Bnb(cDt2ZED#+$gDy>xoua3vKVs>Yfo*~W>LFMqbpaH{k{?Z&M_Sg z+JBi<Z2LU0QNwe@sVu~L#1W=lEGBEL^o-2W(`Gh;ZZxgWH9B+3sL@7t?#%v{`Lmbl z;J+(EIc3y{v+uIf#eY|XvY4aBf6R2|;&sI7EYw`1FS_{eicnk;iYr1%KUHUnnAZwb zPjvC$6`^>JP+Sp8L1J<jX6&-k#eY|XQhy)|KF0=a-fNb9;iJY6kRCN=?6TrH;s@|L zLUBbXo#q;yUV&L;ToK*zKqwvv#RH*uAQTUT;(<_-b%ee9WOmsqOnb7XuH^~d)YE~k z2qmeA?d@#<Mxzn1e2TC)m+d}M@2$Eb6#qX|iYr3NLI}xsos?x)O!5Xp2z&>F#uC#C T)O92K00000NkvXXu0mjfo&4~A diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed.9.png index 1edfd64fed2b50209084569ba49f98258abd37fd..a932249a8567c35b57cf1f2a625f2cfc22c0e1fa 100644 GIT binary patch delta 986 zcmV<0110>$1@8xtBYy+7Nkl<Zc-rlp*-9%>5Ji0viT;@R6hU!L;uz;RN8_x~;D8!I z5K-~(ys)|J!Gc_K(@hyj1=gFK+P&;k=k#e~S66#{zW&lSK{}NX5h6lFhzJoOB1D9U z5D_9mgrkUofdTRM_9i|*Kfm$u@gd&d-vvMC1$D{MDBsY~kbh`KMu_;Ah?kca@%;QO zo}Qk>!^4BPySo#&x3}Wv=EfE3l7n3JdR>tF_4QTs^z?`j(W;2Y$45cotE($<ets@a zPfx}1@v%5MI&y`&<RBM0$&Hx4zCIBmS{1>qc6oUzC`5pRg9EX@zc2Ro_FSPZImks$ za^K(Ii{9Q|5q~0D6+tsPJ3A8;BEatMuGrq*7F%0eu27d8<YMZOo9hS>Nkv>=UyGBI z6TvN5E|&#?Ha0fI`ue&n)FlT(DwT@h7sqvkh@>KFwVF6QJQOr3Zb<^It*wdG)m2xh zOAdsPliVz)AtI>=mLH}Bx8COFrXa}5%8FQCUUr4L<bPnQ*eSwwgow06FyPM4j-Vj7 zD8ZJNmRzAOIhZ2kWH}8HX^E&-tAgf3Gb)uzf*^~Fi(+A6!4>L~gDFBzmidc|3lSpH z5@9z`6eIw_ip8QU)U_gL<{=_&5e#6LO_~!;i(vEf^R7^r9OSagD39eKBB=-luv=<7 zCFbVl#DDDUtSi*DQ-o$tZjSOoL{bqPY%m}N?35tb%*>1{)U{K@E~6YHgovafxTWl} z$wr2zMX>4VX;-LA4sy{nY3?B+EfE}bu^jQ(Yp2B2)RZU`3a(JsP7!j_+&Rn*5ow9A z%ch+Y1k301u29!b5psrzv_&w0T{bC5(;`?dmw$7Gy5wMkMNV>ah#Ml3ieLb{Y*LVB zMX<@qNmr<An<hEQ&Ea#1NGgH>tOyFytOzzSG2sezZPVl-jEz-@_)ifH|KyHid<LWd z1!-0U8y_Ecg}SzB+Km<05h9ut(e;xEyS1hu&5B@SV`HvR*EUVNvEoHfh)61e0qoYA zf`2qCf{l)jx<XysH0{QU7gU){Mudn~MKAyZQh<UqD}s%TjJQHw+ca6;$<2$N5RsOM zpQZ*)tKFssxl@}O9WSEU4b^XNvB}YBi_LX}h@>KT47W#hY^*5!+lRO0AeTL=<2ph_ zS|WaW2}~2ENqIrtMlXSRF%=@x62XPr4O11jWV<y>dt^s$Uj21<cZ(3ws)+vne!-S@ zczF05e6e(JaPU_lht0=^E1S)VmcIZSBH~N(A)-_MV_Cz`9}RY<n6X}V7ytkO07*qo IM6N<$g3>wGL;wH) delta 686 zcmV;f0#W_%2gL=DBYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET5 zXGugsRCt{2oK0@RFc3z+K!B@o7uFnt^KcP%Y`Fy&VZpz<=#0`#@x(zWG0FF&%5tO9 z>F_$^xN(6z2=dVz#h*aNOfl&@f?QxC1SUdYA_OKvU?K!2LVsW)1SUdYA_OKvaPKuX zn+*V9wORoH%Cf9oe?FhTUmQYh?24i&YU5;5e_u7e{eBMs*lxGc*P;=EYs7B10{}c8 z4|mMPi0O0+pfW=Zp3P<efc1I}0JvN(|6Yqm2&H%Nd_DsJuGcF7;C{c?M*SVMwW2F* zZLlWjxL7P|bAKA);2NRt@a=X3P}KxALg%>{p*2F$c+><hJ{lpoM%bF523SLKF(S6E z(KtP5gy0%syMi?!7bEQVwd)Iw&x1w?Nk%lSEORr$)(qB&79<&=8MiefmzAZRzY`aY z5L_b^+n1ZhuK7efG(t$a*J!E@xz`A;BU;d^Ml{X)s(%rdcjBNCLQ;+R_O8KoL<<Jd zHDY(0>>6*7WQ3iwMhuuybd3~fgwSfw@>{w_tlN3e2w~9s5pAFm!dqP<^?Fxu9q~a% zv5ue-EogPGVL$&ZMx;O^gc8nqF4l+<QsVbnOE+aSVnmE;9pS}CBZNU4VXu482q9@d zBDND0dw<TcE1Kf6qX&%;TqEpL@3B!y$^0jYJ&SG6ZP++pK_i4DBQ(RY-Riz~vF$mH zm>C{4LP+Ww_H>_O|N7jw5o&-nBLx~ExJH~#Cjix%E<LA_`<X5^VLqSN;?lTZK_dj$ zh{NFk09Y=U0P^V;me@&PHRE_Z0;r6B1&t8+e<!E}8X*)Rgp_-PZ#TyM0YeD*0if&{ UQg5sE8~^|S07*qoM6N<$f+kQX-~a#s diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off.9.png index dfdbfadd361ebc26755afb5996cf9bc487e6c63a..16416f00070481bca5ce1db2f0ee830d875b3fa0 100644 GIT binary patch delta 1108 zcmV-a1gra;2j~cpBYy-hNkl<Zc-rlp$4YBa7)I|%K_ACQaN<Cm3Mx7fMToJ*ZtN!Z z-eT|FffEZ@P+!b@^5GiX1G!gnl58*j!Wu+jpYJSo-#h;L^*w$*KKV95ekvxyM3@K@ zVIoX~i7*i+!bF&e9ExaeZWb>uFXH|EUA(@&3V#3m{4AcHo_}%*&m{-B$ocm6CL)oD z_=*e@@i!5VkB{Qv;X&No+=%PzYjJULA<oXuoI(zAk@NokULY(#KVO)LbVc0W-ipi1 zOL25`BzAUo#Ky*kSYKav3OUGicz7tteRp>!3JVK`iAYxjRSW^!+uLGwbyX}bE{gg2 z`JB+%*(r*Pi+@E?QIRMqDG?(hBVuc7OOTuQFcCpT(E04{?uxawH9@fH>1i=BF_BgJ z`uYSfTv=Hu>g($TpG!+i#lpgZps8G4T?rErR0N&P=H{kYT3Qkah{xk%Y-}v6)Ya9A zs;Vl{*x2|7;c!?~S67Rko*qH&^Ye3IB7%xwqQdY*=YKdgH6>!Pm>3-$%_^Z#NYvKW z3O)lOXext)gM!>9B2ywLAdyH2I!QV)f({Q4XBA$oqM}0Z!VL`#g3mM!I!h*8r>CdF zL<AK<0SudSb8~`Dk_ik!vjxu?7#I*WH8rBVyj;*^#>dA6Imvx;aw1GbP!SZslzMh{ zR?taOb$<z%ZD@)!Gc$rFK(5KjNx|RAeSCZ@Ohix-6tJ?gBA7@Kh^iZnMxEjp#qhqo zyewFJnTVhwD1ZWafWPx%QRIsL{(eC&ng~k*6OkzqY<V%YW+F8-G$g2+EOK0d5OR@| z+y@5-!bAiWvA@4B7^av=(Ik3%dqr1Qms1czE`M^eB;Y*?3JQdY2r7aC{UQj!rm8Et zySoLsnD8;x-rL&~CL*W^Hf@>0vUNr$N!4s`Z+8kp$i>8p+`Na0$dm{cF+70biU1tD zyP~6`Ly(J!6}j2gHxWTaPyhw;0ESHhw6(Q4g(gBSwg*@wnutt`pg<nLut|W{)>fy` zM1ROdP8NwKB2yx`2EekGjTnYaswS7tT!9dBk(1n96EG296!Gyd5iDz&!ZK_UpsA_J zDJ?B6f?VVzH;2I{;)^0u%AiVdaKZx^HVMEXtSe|D<YMcN+$JJhB6tA9CIS2xH*yV4 zgj_7X*f!vLfQbkyV$+k5B<@K_67?h`iGO$xOVZ>?ND}hGxFqaJNJ6eYPePKICm~6~ zlaMeGnGo^W$xy|pa#TU8r2i^Ut|13gZI<I~*>TauL<AM_zf7pek+lhxiAb?|n`*0$ zrjqL|I{)S^x%?MOGPY;=<3(`5<G&WbgQ$Yv^`Z#Z0y1{w_v1xyWys$&{6~HqxlOr( z94rC+2RvLe%*)FYCL&!CWo2c8PKfPt0<i3LedI?Da*-1;yhqw!fHe{JC3zF^Q~qOF a%AemMt6O+tt0}nv0000<MNUMnLSTaY3G~_k delta 902 zcmV;119|-D2%HCyBYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET6 zK1oDDRCt{2oV`xtKomxgL--M*012c}Lz99Rpr)eXQFszwh7u}TB$~8TR0t}h0OH?U z?ETj3*?2O}5*))l5*pb?(dFj&&K+wE%m%srG)DGUAU~O`(|>dXvw|nW@I)A%2*VR$ zcp?l>gyD%WJQ0Q`!tg{G(Y40m;UNGA2L}LjyIlZ2K0Zogp68|UtH`pfG<G_j(x`Zj zkB<R3Iy$QSEH}c48gY7h3c&mOI{;5lPXN5Vy_L?(jHZwQb8~Y*VeaDMA^-~u3jplz z?*s7s{QU1{On*Jfme7q|e0g~R;Njr`C^D(@GGkVZkO}ki^8hR@Edj8yvQoP4Mns4j z@%s7-6d4T1uQuZP`Wk?Xiwgkm?(P8C*w_GIcXt<n&CN}qm`zk8Vz?1T)Chg!GDEc? ztPz?$rp0hL1Yj^20MP680NC2v0*V@Tetr(X-rgQi)PD}eAH$6>qDJW6*Eb)I%Jj5r z#O>`Z0PE}P0IaUAmaeN`P#<w~a|6Kg@-mQStQ%oOjR@Be<Hl*BsvoXxgk}fz4f_2$ zak&vjEhEBJXE;s^)rQN<OQ5I);jEyw(AwHs?fBdXBWczM@6D>?X(0o)x3>Yfy1D`i z1GJXt_ka5%<4dU(ZiLZ_Swnq`R+T$DJ3z6TRG$#8ecXr%XvM4{!qu<P>>*>+X;$?e zqi`dPR@8`bd`4Vugpp*#xZ2S4GfPo5TX<(#gQU)KR%VTHRK=B2Gu#LxYJ{lD<gCpa z;jwp?6HsgQ*|r+tMod7h8qwCy(v7G=QfC<+w|~uu6x;~oTh@s1d<t%a@hw-MlRRa2 zBaAKy?{l@SMtC3bA9VS>*K%aa##Q6C7?FY-VI=ht!fV72Al^sR9Gl`Z;&UU6c#Y7# z6^vQc^@ga7r$&5kgb_6&d?O|twUec36i3ylcw@K`Mv@WQcc3xc$*RmZ^-fn+oZ3;7 zVt=k1VI&!$ovc+RH2plHYR8P?b|Y#KHRAsM9w^?=(B38Obk*4OT0^xWj6)_oK0X4) zuDemV5k}OAlamvm*w+|7160kJH6s+4Og=k1D;<x*jWGQGP#JE7k>z>*=N^mDc4MM{ cV4mmv0?_vN5)NU2x&QzG07*qoM6N<$f@fu`NB{r; diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on.9.png index 0e2733e1786e3a38a9123c7e1be532f62c4cbd1a..3ca93fdb3e73dd66de559df6a8ea9432479a1a8d 100644 GIT binary patch delta 1469 zcmV;u1w#7V3C;_UBYy>zNkl<Zc-rmU$xj<s00!`oN(ixJxmQZlB(2(8uf6m?;8gX} zQ!kY&b}&2M_XV)QgBNVP@5Vp~su36nNNuGyYNhtls{LD1`x}3iYKemEp_7&u>32w! zcs_rcdGp?z33u+i8NXgPy)i*<D^Y|fLKGp25JiY0L=mD0QGdk$x`?i>rn_Bm_pK}3 zmGSTM--{xYDq?JG3{Fl?;Qag?&d$z&e_pHA;Q07hQMFprNexcuRCaoH0%tEz;r#q1 zTwGiLf3ML@!F9?IMf_6{M@L6ctyW=ocNfa#G8760$mMd1%IEV?D9TFZ0+cI7*xo5Y zWmmSdw+(yGcYk32#dA13tO5({>FEJcM7u>C92`KgScFt61<_~}LZJ`@0s%z?gFy&| zWsztYVu=VOGf_zAV~{Dxvc&}CiYdsKvQXJ6L$&%f3=H&xD5BjWcqy=eNF)N1B!SQ8 zgVohlMfiMPSoixN5b{GL9)MLz178k(2%mrP5WX7w2!Dc6BV-FnD3o%rzrP3f?hk+{ zqTM1mC~j?S!N$f0Fu2?828YAZ8K=zUcEXC+4eNnb@Q1Zv_Ph<n7mwid`zMguc?2fs zyO7LDkjW=uXLlR!KNx^ZCR(D1D~sSD84ibGZEX!$fX!wDi^b9rt5s%q*ucH)0H5TM z1wVzo<A2BS<L~doPk+c>{VFRRyaS>55TtW)C|64G;Nd+GMYLN4CrrFea&UCHTwt|Y z!E82n#A1=z>{f7j?BMmgA)NdS&VG0bEPz<d@wZPPnID5xHU^>yrHbHGmlGWhk{smt zMT|ycXG}7)#RPVz6_&jY*i0Cpa`+U!`{fzD`hV>`_~z$lP}u(fQh5pDsR$HHd1!mE z6h$;;vsvJ6b7f@(I7pgICeZ8kiZB`tV6mFO;kJNRazi{j2kFYkuw8u&sq!bXq6NZR z5=3KR$QN?Z_Jm3l(Ui$#fK%$_<z?U?$x~aW(<wr4(1X!r0E^8Ce-*;PGbTYS6@tyU z1b<S<3;uu)LYqOzW;4+CqDvIfluoC?@Am^IQXC|CN-r%fDMG82>2zAq8+2ea>w(2s zohGm~*<EJfZFj}H4AO=l_&xgj`#}`ZZV_C5udlBICsG_Fc}g!XE-Gqisi|H{gH|Wg z8?-W`4h&63lOC)#3%ETlU~YbozP>&XMSrwgL^7EKPOUkSG8hcNQ+j@W{zfe<(1L97 z?^qabzs~xSzJa+Di3EruIxQj|kAv6i1x}=RNif*#?5wI-7;`ZvmjwJCy}i94is-Zm zeqd`63@|e@qpG>NIbbeM__!p9#bO|e=(GrK+Hz{mtu+pkJT)~MjjC7(b8*7Q+<*KY zq6npm@OV7H190NQ08>*_s+yjj2Ik^~kGc7XQWVi?5&QstAP>OXCId`PPO6HR2y=0J zfQv*?gwjRu19<@6HW^@IVnS8CM3{>?xkwa6C{+Ys18_Q>z>OH*HhF6Dr8Bj#5awb| z=HA@g1X08_i+Fui5nO(A3d`Fj1AmN;j;d;Wd>ojIIhmUeu|*NrEaK8KcuLvrcHjYc z+hl-|kr7q#5@9Z_RtwB6inysFcmUou8DMyLSXI14n2U=qZX58m22n((MTF}mG}!7T zG%VFiXqc)WtYNfXLc>r!jG9L3B{VSCV!eb0YrTYqV7-K(C_;%Mnu82aF@K(NJOz15 z4h;>dia9vd=5m}{c6`xA6wzrB|CI?9bKKa3N)&O)=Iv!$b-Yym?Jc_2&0FSTPQ~{u zZ+#Jbz|;C#01w1dP^lM1+Ql5q#hiR)TCqodx4sCzGSqr$v_A6VBR91$2bTb?4|w=` zWOsKrh$7l8VsLN}I0$jOoHhZt>{a`bA9FAlbFvtIkGB5<tSCbK*aT6;ZTX31m;U+_ XD`>H(9@c!400000NkvXXu0mjf1YWDH delta 1225 zcmV;)1UCE53)~5iBYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET7 zen~_@RCt{2oXc(;MHE0!zsAWJ3<M!|QP{9Ra$v(Bz=E(a3wC^j7yL%}2zIQ!U}3M! z2e3>er0fs~5nGm+8G9Z*#p2%E<E~7XdmizOlR8pVQ$6mP+kaJOZdLUoupK!4w=t4y zfxOKm>82yt7Ggsvu_2V$5K3$aB{qZ-8$yW<p~Qwz@=XU2B1!5ms(KTyR)BNYiy+Ym zCAii&JUj&8;NSp&JQsnc(`l`ARm-n;$?}R3)f=`ssg<d&7!oa=llYE~jsST2^ryz} zibg0wBTi0E0DmaU5`e3#D*z^wNo~8Cv9_SBr?s2X)arEulFAJELo*^xGXOe82Y{j| z0C@7`+uCtlCmNvyM~%^F1VF#v2VgiH*0!4&>oUSOA<N`NmRqU0AhTRx`)M89E=G*U zVnp};E&xR#hdW1zXoL|oVmuxLGZXxB-9}h0NHZz(LVtReOv;Ok7XUne_A3DW!QTMv z?L7kE^T*#w{hd!F{z;<8AqHEHnfu*qIf6HUpb^&NW`^YkKS$W;u{7FIW<*|Cl92Gq z(LVt6E`I^wt8c`Rk3N0?z+Zo!1MuRHp8@E0e+0m}cO}kJ;+*9a^!-@~(Fi4Ig#Grd z=l#-5S${Q0R6S&)K`LF9O|1)`1Mv6@nGZaC)T!;aw<m|u=}7K6|MwXHyE|V3P-=Wh zV6hU7P=ZGIYlxf5RcZR%Zddy2z4s+I_#LYgNj`WWFE0O+!*bL1aYZAPg^ci5oqoAA zmLqh@V>8QgBBN2_J_F$V>~{d}-IMPtI<n(%D1ZB%z0};nr?S7Tg|rNr8;wv}jT-)W zho<_<IO*Y14H@g`(eLS6;p}?=2L0avxZjnT<)HUa1O6I-%Yjt0#Nw}?shTH7G(y>` zQKL%or5ZMt4Oau1A6&Q(0qE}jAaD02e49CrhBB{lQ>hoZj3QJ0ywE5TjZn5@)KC)p z4S(y5a;jyiJvtdn_V4#E<?n4jomgb498R9==;71|FGtKH8lh}ej<AnODmBausoHPd zKdWs<<hgCv`9sz|&S-?v%7~kC!@AF6``Fr|tS)HO-%nHRPc<md=3jpa5sgq<%`9(g z)L0g$Gf=y(VWZ3<SK^`(N~^2kO)dGlu77zhivRt~jB3#cWuevQw&n<9m8<m82xXxh z@w#W0%d(F6q7h1~nWbO9Yeuvo8lk+AIl|xGhG>LxCsv<rx#_HXh-ie8)8cuqyOty3 zJYofM<b2QECc7yc-xVX;5RFh4x;sDSh_`_7JYvCeQ>-JtXoM2Z5&jJYS|&~JZ-0o! zcov8+8leP@uq#MSWv2H?ZyJlEsjRMq1&Br{t&FfIV661-y|$LW?fFFYELTIE_6%AZ zbE6STD<e7`xdWxigiW81@Qv8n*#Ty8M<W&>Xhg5q17^=>*poYUSH6{-UTavc@Z&HO z1_QbA(w-`qM>IkS8gYDl48Z>WK0@&7Il!{TJ<hj*Z-m8VCZC?3*6Q<!Mkw+Bp;Dp| nO5&UgKI^31bz_1D=$zw!#$+<Antkh!00000NkvXXu0mjf<ML6c diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_fulltrans_pressed.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_fulltrans_pressed.9.png index 00c4476042a759cf40639bd41d4e1d87e4ee9675..df3b5ba2dbcddb776108bb397b07507b7758ec5a 100644 GIT binary patch literal 1869 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 delta 1371 zcmV-h1*H1T4($q%BYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET8 z4@pEpRCt{2oWE}4Mi7TTQdDq8QW;2^9FQ(4(+L4m<ptd4WnB7M45T&g6#@kAu1tSb z0=O^|*f~>V3eQ->(JV#Tl57F<1B}6vgtbe4`t9r=3f_i#`F~5LQmItx2voW9mlA)J z_=CiEhpEoqbT9Ewi615Ys~6M<t<D=(<I2APTwGk70W21a_W&m+CpAD-Rh`5hpspY9 zV_nz19LJtF<rh`5?|UCBTkg89lIYLZ0C#tH9l-VV^(TPy^YbhD*B|sVk_eF};(LI_ zV(}e7+qRzpZhvoY|AQ3~N`Q&T`B5^Ss}c!XRuT*u10t%bYHYi-omNSN$P>{3+~41~ z0L$gFljHhiJqeqL7#x4D3<<qNY&1j+qFxVl0Bzg0ww?APk_eH%Gc$mPhld_uxm@ZU z9mEm|ri{IQ2OgoH?|Ta+q_Slt!q;2RYdfuy2vJBx+kdtLB32LNQ6_%?LQl|3D=F{9 zBTPAr-XoqWA)jx^N+L?yL<BJSZcXhau-EU)BTNjv!q+#6n4n1>VcZ#5?<G{FOmbJ5 zCGv!QW~uVMh|hbHhzS}cLZi9UgA6lx@;mW_P4XU5I<ECdBDPRC)-XhLu<jLGc)?Cb zpST&d-hUzCiBJ!l&1RZd=!5s|P9jvHM<@Y)%+X28Hnmsq`NRt}7=3yLUZK534eKP6 z9#NJjqK1_>n0%sxLB=-FhzIOyVRw*OuAPiQp|0yr&R4cf06-EU3W+eIIPE>K$0zgx z`&!~3CFAKL*K4RZm{DmGQBsKrKl;QTe*>CYkADinQFIbfQkX}WxxYcwJL|RYvBf5p zdJWuMWzJbn&}grr8JZt`dW}4hS5?psJ(V6&Qs@!>4tg?<Me1F_%2#?sNufvJR*1|j z@lg@s=Q>SHk0@!>BmC+!N48BkSVd2d*rcgMglnL0U8Q!AM3fa0VHEZrM<`$KB%-7e z5r0cqUv1|2dW}J3RsSTSq*AY;6A$4^(h<t{dPzh{4UczAr<n9kc@mD=BkUoGNkmBv z!!?31k9h4l$>(Zh?KO!gDeN_ZeUW}O`6!jE;S&_jQ2D(_exKr7_YAZ4sjJ|=-Z?{6 z(x^uSyV9`7jb7V3!oAw1cg;wTC@Unw?0-h{>lvFoVnD{Oy(GvK^#j5&k#C3DDV#)< z6cS<XU@v80(*DXr6A>OS^%~kPl8CZOL_D5so=*Fnx7f%A@7UqaTYr48rz+Ta+rz3I z+AflavPM0kX&OI^4V2&bRUK+~zAyXtIJ92cj`WBL3db7yUGn=XOYduJ@#_HFW`Cfg zJ8d_`N-ARV3H=v2)+j0T2-8~t>u&`6G00S}Fy{v@A6y@<wFc$EYPb27fI)qOUNAkP zq*0H+y*K%Ekt1PSGMMfaB{D`y(6X;@dc*{UM9k-N?T5qfa_P5aHj(jCO(h|CH@pI9 znnp=UB1#H-4JBeWn+<-e1?L&1SbxeVw#_(4ya8Az!2iY!t2tQBC;W=uladILC!zwF z&*!=-KKQZ)v)exEbyG9VNh*ycN+cNX&?m2Rv0C;Os*(tiC*mW(<>lqK0B2`se*>JJ zp56mgRi$}GNW`vxYsS9;Y`j6wha@bQ%YnDu+}ykaxVpOf+P2dwi4gfm^i;FNUnTw| z@vFmBXK(sP;vW)!llZ${kVJ?)5no7rFYz0R^TSkUZ+ejUm&8vJKkEfaglMXbzxLYZ dOSQ3`{{yPc!S1;{brk>r002ovPDHLkV1oDfhRy&0 diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_light_normal.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_light_normal.9.png index ea13a7fdf5edb652975ff47544ae95174dbb7444..aa4f44fdd4661595d0f1bf07e6f3066b22545c61 100644 GIT binary patch delta 524 zcmbQpvV>)Vay{c~PZ!6Kid%2*?Cf$16li(qDN?IiD`09E;B)tT?R{4PLqW$cj_C_# zaLGQ|cEV)ZhvmNW^>=({d3F8z{~tB~zvYYlyuzZ$;mF}6&?L~J0AlVDRGRCz`1RMW zci(rf&f6}1D#hr9B#+}C)<V1a7hje*9e;c=^v>_1oeK&qdg@sOMIIGcEI6C?*lM1# zRIidFOY4pI-!ryGE&N*bR_oo_Vva*x8*jh8khIa^^wUeBcV<5qII>#d*=Nf~3HpWa z-<EZ=B(^?yoo+RE(aoG^K=tj*71jvU{OviOY%<d)=IGv^A4FP2o0#1e3xYJ{+u5*! z)f-4Gcv$d4>s>uWgUo@(IANf<6^bvv|6cdl5@cxhira5@^*t8=Y8Rj6w;bp`XMr$| zIG<Z@x4o|D^H6C5I=yNA{Itz4K{D%`GEAh_z5ZI|0aV1d;`-}#kB@qRnOC#m%&^s9 zroWTTpHs5zAzGr>>$gVfs&uF;$|V&z?2IXsU4N@-gHwUS%8()$b7MpahzSi_jz@n5 zTAdg<A6-`b^wZ|l(;|)8XLof~f0kJoz`?1c;i4nvd@@ByRfscuX^^H!|M9>F@&~w_ k>?esIS^g*a=Hc`FEtjfWLnCL4GXR07s~@Y&I;Vst0C$P?X8-^I delta 504 zcmZ3&GLdD1ay<h}v6E*A2N2Y7q;xPaFmM)lL>4nJaCd?*qxs3xYZ(|AH+#A`hE&XX zd*@*8AqSC`hxZ#?#6_GH_XP_JZ4F>Zk8(^%C{74-;o5UU&@j$szKE-!-J14``y6f@ zFi@%8>-#lVF*(fl-rlB#1p<#0jyQHS3$QElImxtG)N>R9MO13m23|L1IQ>+p;bqCK z(~II%m)_3J-5$+gHv8=5?7JMC(i`K}GiJ<UYk2(?B%Nxs)As!5pE3<svse$jEcsQL zTYp+=TjZAq4+|I`RM>pmG~<7f-TcOi{$gd7oFh+*7~fSphlXB!+B|u=+rIt|X~jh4 zB4Mw5m)V*1&)qz3bm*u@&)W0O>~*>Fk?NKmf{)z5N_M^3<@{vjNA`QlM|vlORUg?r z-@a2?QQp?n$iJ7*%C|SDGOOf)t<xP2$x!7*zYCO)1Uuj1`1zuIqcKq4&D2yW4`x<g z%NdSy#XAL+O&))XJl#GK$a=C;5hPs*v<n^>z_7Ta)iEXL<9_cy$ADI*@A~xp(!WPj z{eM0!byu&v0}6-RZy6$V#2hNuTNWvQ`)ylbzyH^VTXA6_4FBb|3YC|5X>R@5Q~I)( eGv8q85%J~}iJIyA^*#fmmBG{1&t;ucLK6UewcMrv diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_light_popup_selected.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_light_popup_selected.9.png index 057c5716edf264cd7930e7dcca4a7de258b4f486..4539255c296fcb5cd2172d797229941112a27e7a 100644 GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^PCy*R!3HFGE;h(9Ffi(Qx;TbZ+<JS*(2LoTq3z<t zhNR@Djyh{}Y#Y{^Z<xxW&7Yd8&0^Cxb(wHtYFXML9nTX^v(7yG`(di|iRM_dqbe<r zBc>aJ!0bnLVh<I+&wMTQR)2fX+PFitImfl_I(R#{7R)Y+c5ryp6!GjA_q_bztLL9A zn>BZ7-1{KWW6?ZEI66KRywul_zoO;x@|RJlW6e>Ao(2h<kSKPI*w`hj-hY#2W@KXF z5KwSvV8FvDTqGdNA&|$5uI|W12cJ&`(jCkSZ0rg1^Mckk%{d?RRN=i;lH9#yg>Q~) z#2y-&eRcly^gM&Zo8}u#L3vXTI&WE6_xsty#reVvM>IG<p4;4feQw0-zs#Fnrpz!{ Se5Vf>fDE3lelF{r5}E*sABE-s literal 535 zcmeAS@N?(olHy`uVBq!ia0vp^PCy*R!3HFGE;h&kDVAa<&kznEsNqQI0P;BtJR*x3 z7`Qt@n9=;?>9q_Dj5|GD978JRyuGv0OD0gp?c;e_!5lG`&k~c&oD^KEbc5SN7_}8u ze5K?Qn)xT#<<>B8Z}oZ1{e*LkPVZ{XXLm}!uUjM_S^nr}<DI>a#U4LAFVbB;`Dnq} zeihG2SBky2$J*RKE2eM1ao@XVWpa0Cd~GS!_iS4%b1h${q}07TFHLEg+Qa9<cf6<H zQ!}1i_|_$1=dJgC`TOLyzW%qq@7=SBre}UXKU?<qQ`V=|ve!;-KGf;(w`a$b)X6H@ z_ivru@mzl9n)TaWzwe*yo$hHQ^OUuEzM$*ho{VMYwewpZJ<57_$*cBYXM<t_hXhj_ z$<zS_IW6x;E<QX($NwkWoBOfwFghO)Fu<f1@EM*vTlvbw+dN(Uf4LvatKhn)A%AD9 z{QR)#ZjF8J^?h@HML#_A=y&hVc-iaXb2zT3H{SpF={U&S+a{-2oMNo@XA&>3UF<Ql zr)bu$n#CT)r*Dhjl)v`L=Z1fp+QI@Qlhd6OR6Ku$^Z)&`GJU?wnVsL?|KXlwY+m)X TbgdpRW*IzP{an^LB{Ts5aA@F) diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_light_pressed.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_light_pressed.9.png index 5d8e46de0a8d4546594923100a99941af30fec7e..5683924447c54c1119eac777154083de39798ec6 100644 GIT binary patch delta 838 zcmV-M1G)Ut1>6RZBYy)UNkl<Zc-rlp$xbR!5Qg2!0w0m^Caib^G`xTWR|1M6^E^1A z0uf};NAV_=`z>z8Rzi19b7PTw3pZVVeL1I29}+w`*pJWWU-l-*Z^cBI2oqr<OoWLr z5hlV!m<SW$P(&h;5LT;|@bU5SE${E|PWdU%X0s8J$)vE241W{xort%$H(|M43jDoT zEQI-dF1)_Jh6*{zrE{;>YatSe2qt1z5fqxuX2Ntj6<%Imgy-jH;pyoqRLDUtasquE z9UTcKVpkCe&<&5rW8vZ9LAbxa4;6BdOADe86X93HWHJ$W@Z;m7K!CfuJK^^BHdM$# zE^?BaK1_sP5q~T#y#)v`91exSU?BASeWy^D9HY@lKn%I*!$kNM!P5FkK(E&e6)l9E z<fac3;a3DhhX=FtSegXsbUL9z4svNB^kE``5`h2;P`KOe3hj0~RLG&X3b`4YCc>`> zh7AH(dRjoM)e@S`rc<a(4z`LuUg;wmjS41WR}s9J=zn99f?7bM(Qt~F5IsEU!$kNM z!SUlIfI#(nU8vP+PNA+AqmNaFrit(?f(Pi~NI@;2TCF<8ONc&JO+;`ahC-*)7Fw;Q z&}h_!TCFNns}-SADLaL_<RBM0$vqqn1QX#`1jnWxjx5Par6QEeW#Q)L#wpY#2f4^e zZjMnC5r4D@h7!X{3n-OJPSHZhMNWn~$Eb<$D}p7Zk4u)K7I1xi?G!D<Ym1nOphWNh zJtSF*TENxSl~c43y+uq!&?30J=;M;Y1S%Gb!sX?qQ>aT0a_KEXA11=D2re)BxMWFc z0T&k+PSHZhrMC!un20S!e3}RovEA0-)mjfp3V#!*P$&rbeBLS4B?r0maY`R1!bF&e zU`24*(nFFVr3K`2Ij3kL<kCZvK1@VVBDm)6n+Wg{L2eTfln925zIOj_!_q_qCBj~@ zO~ltCyuQZY_pj>6Z6bma!4f<_KNrr<&V+0>D`YYm;q>%0RLDUta*~^^b9i_tn223P z#6My&;pF7xOOB6^{~?u1IYrmk`O@jM5Rb=&oqqspBJ4-<CgQjJ$1=~)AFKP%EP1OL QC;$Ke07*qoM6N<$f|%uig8%>k delta 699 zcmV;s0!01X2GRwPBYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET5 zbV)=(RCt{2oZFG&Fc3wrc|}72Bts??>F_}!q(B(_@z#EDwJbfOwgj_C%idEprLv(s zJ?%rgWs3pYAn>Oe-5-Jc&vb*@5wwC5L6iuhL=Yu{C=o=7Ab&~(Q6h*EL6ivM&NY_H zB>-SPp926!qmg^C5Z*gw>AKE+{d&Cu09LCN0AR6LB;P9|h-<`lyS=@MnU7~YHP#}= zml_9y+xebOrvQNce*fhdGJ?1t`pe}4;Qm>QXWnkNW<)d~G8_&80ORo(fQ)c)jfiLd zd_DvCYJfGP7Jt@+7?(B0Lq?D+Bdh_f)`%EKG{YL=AtOkZ5%KELni;9S!N#K+QGjbi z>MD_{9q-201iQb)R2f0CYD8aWS<47Zsut*~QGkDgf%MHfYxfcM_p3&{z*C)NE3?p8 z6H;@FlK5l<De5CyuN9G0&G3*BB+CffPqaSQNZp_Ckbe>6qiaM-JTijxbe1u**PgMK z5#7Vsac$f^E<9{|$OzKYS%$2!-c{pqyg#se9AlgwGJ<5yJ|nGPHC~BJMv$UDBDKGD zBXW=t<fA&vSK^Qnr06bo>$6Y0-^S@7BgjYB2=x(9Fo3?#1wcmpW`x^h{#z^ho`$!6 z)rhD@6n~&Z5G8_qbRS{&d&me<v_7IW`c}>9e#8^FM)W;f%vrzqH~Go<WCY1FBDIdu zZrAQC?HX)5ddLWpb=62^G`05mUE~^(gNz`q5xd<E!2KIM$Kw$|dR1L5tPyd0GMPM# zr_(8U3>iUOBi8FR0AMzoef#<|J^fG8cON1evNYLj004)>A$cqrLG*v9h>Rdz2qC8@ h|JRLi|G*FeegUG$d9MNOyBYuh002ovPDHLkV1l*`KUn|( diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_normal.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_normal.9.png index f53b40419aa6e582df213e63613ea69f8cbd9c61..026005d6f4eb8104a851befaf1973b535b3d41f5 100644 GIT binary patch literal 1172 zcmeAS@N?(olHy`uVBq!ia0vp^PCy*R!3HFGE;h(9Ft9{>x;TbZ+<H6by5AEo5!Xt! z=L!NZ8UHoUDL!ZUT!V$<NWbx=i?QLCP1k)Z+-@zwcd1Ik<VLmr%%YvU3OqdvYij?y zC+@GRuHIj7taiv{28VE>l9AxW%a@f)%F4KMb90@tvtRc&#C<UlOjNpc`*v$<E9=9r zUqgTV_#trb{{7bN+qW-joAcz~pFbkco<C=;`ltHnwhK#VMrNkqzJ2>xTx@J@Ilq7Z z-r02L%K~v*-<B|z={FufUR+RItQ->;r^Z!uxj9bFNqf=Goskulm4bQs`K_Nn7eD;+ z#UyaTY`HIsmUmw0s;H|ITep6F>*meI4}biyXq`NH@}fg$-Set0oOa1@H8C~i<k91? zn)Bkt3k@Vq6%_({dU`B+TbrAkT^wPG&CIxb0(btEk(1;4{rk7(o40RQ-ne`BEZ5u0 zJ2g+1vG0A6skBAu-Me=zYHBhS>FMed-oDKhjgF3<ctP&^^lqRhrUM<6k&z)#5s|pz zp^)l>XV22Oq@|@ZBje-yS?_<mYx6|K-1dd5zwkoQ!qQSzgBt}2Ol#M!UAke{E~yiz zPI;~QaqjUmMfII89rc9;Ls_;<=XuM_a5#PXw5E=(F6*WpJ0!ICecn-d!V~J^E7z}c z-^tryTgbWVV8l1}X{SH8R@a%!gY;L;;#kX(XMU$|2g~zk&zNS;ovW*{F9zfbAD0lp zJ9!d0JHDi)r7_K%H%|{H(Guno8$0*FVXkK0>9?+22~hwBChJk4&+hoW1Uvd5MC!;9 zm#AaMkAL=xkON1N(kc!$1s=1QtmNcmaAbnQVa3|DqB9x{raldlmX!1qfrnoNQ!>}- z2PQT)b2Lu)@>k8|SlcmcmQ<srCVRpMNhv8Wn93s6q=JGC3ubi8aQ*YY_tmScgQA93 zR$3|1H3<m{LN~h<w`(`eQ#+)*$VFS}-J+X9(~i5OXfIl|%Ig7pMbFpH53FzAzdx@T zWeBzSkx-xpV_@ryjvcNoywhfOy?FiF+k2VPmgc1(x2{<uvL*OU&Hq&y>?b#9nt{_I zw?vJ@qv#nI?P{K8J$f?l{&oXrh;zHTxDJXwjNbEAcjD8kgGbBb?mt=!atkmR$}Q*L zp6GpJQ`NTa4Y!_Fn@`_8Ctqn%mxjK+c#L4pAGvRWv;9NXah!I}3uggY((-%a{4ke| z54(U#=R`=$Ze4}@(vF*s-W5v#>C)B~zH#q-SlqUcJEL0;ZF~1b+FTqSxBnWZ91r7r zl4toX_ph!<o*pbF;>-_Bi#1DZ{VN!~5tgzyENxqASU2H1--rCSt9^g`FBJT`=gBiy zsV_nA7ykOHWMyT=VwPg`QA1bP*W{0uLc_d!)4$E+cy8Kv_wHRL{q4UsOG-;QUwx1K l7bTb(cjIsH&*!iCRnBwnd2(7~AF#Ax@O1TaS?83{1OQRbFKGY( delta 983 zcmV;|11S8I3G4@uBYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET6 zj!8s8RCt{2oVil#Ko9_1##{m4;S4hVKO!Nt6aNQQ+~@_&_!#y^M$)V4D#|5eTf6J_ z%t%@-ecv+ydifh?=Y7wz>pE7e)g(rPkp`pdx^6MXj;DwZgn!@zA^1QDJ`lq4a6?n+ z+uIueA0Hn_&(EFn^K$?$E-nD*x^DMBH$pfv;^pN9fcyJ<09LEj_luU_FZ=rX0;X?> ze$$J^;%IxlUIXy>_z1xD_4V#OZiH}T#QXa@0Jpcd0KC4w0`UC&48Z5-=U=w%*PNZ5 z0sGi+cXtQC!+*mA;6?;lhMv@{p^s|HT#e9}c9<m$y&E9}>j?ekwT@6DG;7QSZLgZ3 z*)Np!+z25UBXlHf-C&JK{N_f%e$(1M+n*3_gb<7ob_8P;<<u+8(tdy&u_G8Gbj0lA z+_Hwo2-}YkZiEnw5it{5W5jP`NojVnue0q=nc+qV$$uDOqiyV1<5Xs}nqVn8kK#rM zRdqybtQe}^h<)?+dEJgxmL4M#6dh}5Y|zJ2BZjU#YmHF+SfhfV5!QgY8)4fY!i^A; zSwlxKR!59|G@3I(w{1T>Yb0pO8kVuoOXOmQXN?MqjL41XRE;QYKe!P)nvOLrQ#Zo1 zMg_?jVSh(5cg}LGIwH1Tj}Z+Fk~PL6XP_I=Kr(B@vdCPB^~1A9f}*q7C0B~3NQnuG z8zCgGbmg9(IyL=pBZOd#sAX(ZhM2kIMhHs|?xQL_8{KNasjhv-=1$d|U3VjdCD2iL zcimrI<1GEWm@zHwa3h3Z9TD5M{M8jMODqPI8h_$3B0*CfF_sB-Kh}VPS@==h2q9@i z?h4YW>WS7$vGi(r2sc7VW(~#8NwVaAv$4;srF9OK#j{3&V2rRMnj7I<UO&~$+tT?F zx%Pt_v15=JVP98T@wL)wh~hCKK~)_Q+s+v<*6jS6_q!3oATc7B9Zq#OU}?;<c#KGp ztbZeFnc97z7Ox`;D9Re8b;Q)DX}2381hYo&SmQTmf=)?o`wwv=gkX%&b(-wlYkR-O z)Q!*;MYKQq7{ZMZl1A8-IOe*>jP^%Y9}3{>St>_HTwY!Ru-$Hf{mNulS64v%o~{@} z$B^3nsu8+E*=Dl=_WeA>jSxCux8|*`RZ#cz^aSizCY#&*N{bqzCfwZI0DIH7+pWh4 zB^V?0x25Y){V&+H>ke@vgs$)VlIT9K36?)ecChbz{sD{t$);`i!R7z}002ovPDHLk FV1nRW+LHhP diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_normal_off.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_normal_off.9.png index 3c6ae6be861a6bfed7160a948dcfa305f6c33486..38c5f244b4f1b61a33b770a82ab91b7b517384a8 100644 GIT binary patch delta 1259 zcmX|<c~FuG7{<326r>XH%CQW|FeR^110^;gm}*VzU|Ettao5?JT(c~5)FcHAkPc@H z$UIQ<sL9G5vw~R9%9Y8{a;H^31wN6E&GASqT95Tud;fpl_j!NMqk_-DuWS}Tp6;bl zn3)5kCC?f77+1RIZ|O)$_<8@Z=#XejNqTqWZl7pOZV7&)&UX6NKb3K$#?TEnBSMHD zbbWV&l!e`0U%Yp2nlBnEw_2^2jdE!S3fD$cNiu2S5fN~k%|?xly||yto!zYVAji_K zNCpPt`576k%&aUlFCjrJP%1slcDtRki*c%1r-O%ug{>yfqbK;-Bx&94+vp*q5lRD$ zMg)OC@Ps~oM+wd<hSkH?HE6XY^W@|~B8jBm+8OJdbsbhO>FWC4JTY<Lkw$}NFc_k$ zsw#OtFtvDC#Oi2o7p9#&>9b+eCWND-W4TJDLPn8D0<l8jo@bbu9Ul)t138u&N8LUV zi$<r5TTE^0cEsq|7-D#Mn9AYY=z0CxPcE0k0P7e~{(SdWGZKS=W1gB~n)Vw82i-Ip zji|Mi!cR%rhMOt<_v7a}41xSM8QX~M((9o$btSpe)6=5T(v1~59e2IAz}r1D=Fyt9 zYvE7mO-)T;Qg${6YCr$gwaxaRr9<R51OToM4i2KZx!k<Apf$z7iF4=3u3lbV0i7e% z)T|yo?I``~wQKMkHvhgExy3Xy^Q5KYR&DKWHSr-SDhlGB#bUA0NoUSP;Eo?ZUXJlw zAt{i2{Ft8CTHuF6UI0L_vd3V+H#RjnN!V;Q64o(0oP6w<KTfaL|F3aDu^_cxjF=sv zd0RWx9ZZD>xLw!}07nj*0^d=+mlwNKxE+X(4@lEgz%Ho0<P;=3=(5u%+u#!3x5pM( z5C_wuKx9c-nc&i&eSOUMi4p7)r8b%AbbDfZ1tBuh(?wx<DGpYWimH^-9@$oZf0QaD z^zXE~28$KssH9E_L8sEAs+Yor97=NVTKAy0w>Nkqu;->sy<;gz8XL7QdVLD9k6o;H zT`36&Cgs6lhYqicP`n9)3QoNe@}|O3@u+Qiq2lDUq~7g^RsxgBWRRMhJ5~vu^^@0E zFB6k6rHP(9xhjco;pce|u~?js&%Za04($HDSwVYx#o$JXb1|ces@;k{R7%lTpVNE; zD%I*})2bY~O*#&>;G3BhZo3u|D=fod4`W{nwqWicU5Zjr6k+lctVXMC_T`}lT3;^Y zX?gPoG2oxkcfxHH;~D<6rgnis;woYAo*YEjfOEpFV&da_V;oh*a$|YCGLvjPaOjJo z^PtWIW^;{TJwAWo$Q{_(NaMr5h(`~Td+F@aN!<-Sx0`_C(=Ar3(_I1Vk6h<3vKM{< zKR`x&9xf`V__o=uI6SB|%hXD#<VTS<5cB>bMhd1PLKbBf3oK>q7ksecGZ09naL!gf zdqH1*h>Fh_U`Bqz$5~P%r+=M|^+*j`#JlJrh|r?oZs*(Q9)HlT6!v~~LG{m}-kr&g zkLq=e@K15>`~)R%WRH;dp3H3K(YV~wmV$ja@BaRN&$TC@ke*lBz2CW*k34H=XgFX3 sGj@s#3LGfs$od34Scu4&XU^H}-*Qs=T7e9|@NX7oFP%ZVOHIuG4_8)Nh5!Hn delta 1156 zcmV-~1bh4b3783xBYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET7 zI!Q!9RCt{2oXbw@JQRh$K)H&WgoHq1h}0R(c>fU-hA`<1AV4rdNZiRkI9^Tb-*N0T zJx!1HCsmPCxAA3V@9o$QWm(b#O7~gJ#mkaGQ4|b^!(Oxo3x8^iq9}@$MO?U#SVK6h zAsp5a4r>U<U@{?B`uX_@!1wp})cIv+ZEX#J_4RcCilP{QXNqu4DdPS89e~TrO8|z$ z;h#){KiPhNe}VohL_NK-vNDyvxw!%0`uZAxt*x!`Z%h%6DMfsJeF1QOeh$FL#|Hp! zZ*Ktn{QUgQvVYCY>gp;`*@laY3jnUJt^iX+kU{9AyoQca%Cag#Hf_>Nc$B6HM=*|1 z&nu3QBIGre1(jDykoOCDJyV1uXd~2;e%#<I;{N^~fam9D0A62T0od8u0pRfP5P*}D zlTHg=hu_muf?uByrU*ySM))o0D?>_ne0&68cXt<n{eS&^pz<~k4-ZqnJ3c<1M;&Tu zs>dXz2uILHsKxxFTJ+`R1%QKt1E7lB#OCHEQ2BA?KRP<<uH*^GM)>szVTy1BZA6_C zl-3wzdwYB8dmr_PMzw7t(?~=Z&F7aprVLYrBWfdjYpWjJ+uH-G$Wyk!N8c-dt|Hnh z!6)T8ihn7>krhYisCeP-?hb&BjSZlBBBXq>4T>yh9lh4|ynkNly2#ROM1-WVhI&#* zMUtndrvN-XJpom`ps|L&mv_;VuD0YVLfBX%gP<aO1^7peGWE>w?CcDv<_k2|kOGu{ zR@y4UFMkMAgd^%T)PjCmsHb)O+w&bwN>JLbhktpE2(7$^&!T6(nrw%8jSP|$(bS@S zRYYp}!4xs3)mX!)?}{+5kwMf(_$}Eq)3vBLqVBq8BU;dj*H{!y3N%HuAnG;hyvVXp zR}b?V5t5!_r_2=fkrX8eQ-mWr)75mo@8s0O6yXTkh+Gz}l++oq7^VovfQfxnbv;{m zuYcu|`@7Vhu3I~mS|2b)j2Qq0iM#8XdbDd>(e!_HifL00Q-mWJN7SW#a_+${sj~s8 z3NafIp;a8QC?)vU@fDD;3cnUpgd?hmrWvGp#S?8K#njpI5T*!6)N2TTO_ER3JzMvG zxwKtF<zrqWLeNI|E!xz=O@4h=Z_;+9On++m!4xs36C2^@OO5#2(pDkDY(#{tIHE4y zq=0$Zh}3)*M`X~6jcD=?UE7G%|1}%Yf@mC(%e;END=dykAjxZ_#u0rZr`)CpN6>3D zjWuR@5;RY8%Rh-J!V$C)+IQivy;gcz6rtURs*jE#Oc9Q#BK$XTEbBXFR3Cp2`+WrV zK1(sB2<_h-jYdHAW-{&m_iaQIUE7e{>q-&Yk9vE13sm)-#1!EufblzTwR2Z{wDeYh zWm{kABZWu_+P5mDk47W25h7?KbZ=?5|G$F&?z%}#5ssoP%M|OrTnjA!Pqcz%S@Ith W4EKcFkyz~j0000<MNUMnLSTa52P_N# diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_normal_off_stone.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_normal_off_stone.9.png index eebe7d39106b0a973703aeb3df50d00f013a8746..dec219304e5290453bcb8398e85d9fff1cb25f89 100644 GIT binary patch literal 2833 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 DEY3gX delta 2105 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 diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_normal_on.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_normal_on.9.png index 655bfb2c6fdcf3fe91490bec687dab3cc94d0b40..f1223e50e4ea7a48ea1df720b3195c43cab624f7 100644 GIT binary patch literal 1345 zcmX|BYgE!_7&lBsOzkfjEzOSq5>peh^58TtAf)6aiv({W>f9+?=B*S^Qv?ch^OE89 zptBNJCz0yprJMoX9NUyrbD~YbmFV!+uz76_Yxd!N-!IR3ez)^`c@g13may$GBO@bA zVle)=;l&wF4Aj(cZ&DUG7#W#BiFoXZoT2G@;?b`nw{dwP<8&zd^oI8bp!!375kF^o zlsX0k-hD|p6FPM&OKEp8pl)0CQ>y03wc_x&Gh?zy=Vs=mUc}C%hSre0s@gq^!9v0@ zdETgVRpzYk`3@JC>_4^3@ir@@*jVQKG7kVL!&gJ$>2`pprzb8s`9=hpjI0z0Ml2=> zN8vy?o=)%F=jFAhzP=u+)oNubRZSX$!4Nq*ccM`!c46U$Lg5E^`dJXi+vDN_pwMU& zyuE`1jLBpYO*$vBXhtpcHuQp|sK_{h$&4Kw91M1S9%jv`f!@A6HkPPaT#Oo2sQ{L= zv8}6X*(xb13CCnUh@eoM=c=`TEIhHucu_>1KM2GCK|w*XfdN6={rkwhXtc$yUAu6! z59Mj|=f9g%{$>U#H8v|{E0xC*l9Qd9%dFQinwr2uDF=JW(%s$NT!(lkL-YvD<GWog z&HMC>k)7zZIpqudDZ<q3tc6aegFG0L$yjrf?cd5U7Z0|m-#zrFmeo1T?>8{ua5xZA zi+%o91cI})MAy7&z-m@{4oA){t5m934-7`c$_+?m^cM?}IJd;?Y>N6Z+geyt15o39 zf&APZTUx1NE?XNPcM?h>k$$We3dvX$Voji7zNxV>K%K~ua!*zkH01spwKzSC=1|W0 zZ^@@;f(9=d{Cwa@Boa)_$k@NTFhITIIq@@8W+sW&rYSN%=;w#ZU7d={S<+`}7BHjc z{;TtGIm@b~Lef;Q2K<$CC?NbJoJ<V0!q^KIX^?cKiCivs{9^ldzAJS&U0-(P)qG<W zub=<CuMgq%DlI1wkyYd|Z5>+m%p!Xw)$em0_NiX>5{rKp7A{>Ei_zcbya6%36UpEz zU!5kW$y<LP9=59x3We;ktHtXZ6$*GqR6<(<MK?2JMWj$DxVJwMQmsVuO(Fx}C-JxM z-qj!W_Vyk-(sAf@vsrg2J07Sn*f-dA>un_U&YHUlLs+lJ$6@saX|9UafuW(=6Ker| z+(CntkfKaQ0)gN<YaO+>7w~d=W4tZ5wyy39?0^0e8|BNFl@X!%O2X<w@zm5eQd{M~ z01_YbP$E$x%K47%ZY&{E7KrDQ@%M@k8^|ER<3MzDG~}Fm|3C<v@`%gjRyWxOe#!uh z0d1Tfi8sT6vw+4_G0blfi+jq4`TbS`L$u(51EhXo;<J^b1fO88&y(ggxim--I`|>- z>wAcJiFbNN`>dx&;HO%Ylx&jPYCP#WPr_E6IYK<m2pj1FCr%r@O%v(AwC`lskxR2| z$Ub?q;~64-n8BgR$w`(QOFSyidou3iN@gnpQz;vL!`Ni@%GCz)<CAh*EE=933(VXp z$U$%9ZOM)<;LW*#?(ShUx_<~g`l%KLz}mB%M>;w`7h=x(dfffLu`?A(;u}3Y*)N2T z-Y?opr%j{oD8Rkqi>L>;)~m7ihlG?8OvdmAhcoBS%5>K_qtg|2cBlJ8y19Qzi(6V+ zHb<59@`6%QQjW_TAdrbk`U^j}=G9Y4S67UB{K5j~=1o^@p1;D(ZH#MoVU#kmvSik+ W$>069B0*~S8jXmAaC|F{#`+IWXni^W delta 1252 zcmV<A1RMLo3ik<+BYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET7 znMp)JRCt{2oLg%fM-<0@Yspt|ZQLdy4|#DPwk_Cd{UGRv=u<ytX}&_+JSYT1f@?!6 znk$7sdbPp$E^i-Zjx0@PXJ^-|YE{k;%rf$5cjnB0&N;g~8h^4ZqXA_0Z#oyxGTKR! zkfv!PtihCwkt9hnH;oH75jBKG4PjA3Skw@f_Gm#u>BYqb09RL6W1r7D^YilnEG#Sl zkR-|Qf2s(}m?F;3&H(6ky8xtVYAUr&wd?C^p!o`sk)E5I8!PYc?*p*Ay9>bb^78OI zstC)NA}%j40e{%u-Ui_O{2YMO(^CKjgTa5<wp-I`wSXJn(CKsl==FMlD#A<K_n|}$ zIf_zdRT1LTMx%s7ri!q5^9UJv$s<G&5;cUw!$Sa$j*b90IXMAfWn~3`wY4<>*4NkT zZ+QgLUQvQXKVQ^SMOeH(LM-X#4N?{*EIil)VC$Rr0DpY4X_WEjE2D&W&+Y;6&u?D> zlUIg2(xL>nKR#3u7O#(RE$Axa&gXvsu>I{Z0Il|lJ%c%Jd}T_XZkhl8{Qd6$T)g|J z_6~$7>c=Rm2#eQ8h{fEaSTyY#``zD2qb_pZHFI_EVg4MQ1mYvye)v#DSiC+WPYF`) z>=-2s+JApVU8J+~F#u1$JE_#jKt>p>=e9ef3{`|B=p$TjD;ekEo4Wwq`@+`8Klc-B z=l3t}*zdn8)wrrkaEW=2qKdGT$|L0Xde121vn`V_3|fB!aG9CRay~JcWoxhjK=0XG zQ}32{uX!WyelF#_%u;<sfT(*78A&-l`RN4!*?+aM_|Dgx0Bok_$=1u~=HBD!<CmuX zqhD)jY*|GJdaqFeuOeIpxJQ{|kAM6HfZh+!y(h2xX?Imcxb63$im(KuhFH)oyY=(R zlcq=sQg-{HQ6oU5sNpj0H(y1*L!(9sq7+eN(WWXQw*8=r7*gq8!=>qp(5O*@ppS4Z z8Go8%Fugn?@4D(EDo{(*m=;9}R7F%E7&Y>u$gGgp4~-fDqMl;MyeVoTF-j0r5tiVa zuA<MIPMLnFA}n4XQI=^dCH9S22vvlo&B*Vl@<z6<XOm^W7dz5<Yo}uS1FDE2Z6G1? z*L6iBTDPw#I$xe*s<cBDVe#e>d1aR}bAPZ-@_az7LexhDsFX)cO9}3ETm?j|!p}t& zVF@at=nc}O@`<XMV(i;;AF2pTFlq?ynk1K^Ih%LBvQ%9|<)Tp|fY(R37A>-HQCz=m zG^x5$Cbs>ciWpLhk8tb7W_(qtst`eaM1WFxL|(Z_0h96(vGp{MC_ybgq9{7l?SCU; z&#OM70>M0@ER!1fy3jl#f~cqwn@2Q_GVNAHSiDiA=w9PCPl6^%+4hg3im-TngzVGg zuDy1DuhDcx$c`e?A36F^MOcE0aChRE)jejUKeGFf2i?z77*oXJ;vxY3ejm8mnQUok z3HZ=Q6j8SiDSKT}gzQjuaBu+J^j&ilRfHu0hI`)1UUkREW+xEYnQYe9SGtHoL<y^_ ztH6!Y`~AN92*K+kWNyhmRR0&;z3WC%MOcz7%VNCyY%Q?-kYES1EaP9vmi9})<<tfM O0000<MNUMnLSTYy7h5X; diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_stone.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_stone.9.png index 336248aaebb9c5f4bca94e9767561d23c0a71fa7..3c77b3ccdab0ba91a0648bea8f0601a774858513 100644 GIT binary patch literal 2867 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 delta 2119 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 diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_normal_stone.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_normal_stone.9.png index bb1c72bb3d76449446ac1aef7c07fb719333b52a..099472889ad0b8b4be8754159401b6b0e6ae478d 100644 GIT binary patch literal 2658 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 CP3y1# delta 1772 zcmV<I1{3+>6#EU3BYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET9 zok>JNRCt{2ow0HxH4ujX@vaRAbp^pCu7a1q<?;&<^Ar@ZL#GtEGd}~bKtVw4z|ILt z7K$o@!xZ>@yE_C{FYDgz>Xt^D)y(vl^hqOW=VtX!cT2L}pnn@}$NpoZIrI%Uj^j9v z<2a7vIL<W5m6CgEAIHwp(9t38!r8?%lh4o3zXX8QYV|DuG)?nG$(tHFZQI_5e|`r5 z_xJZd(j}>jE20wSmPYIK`Wpafn&tukuCK3W``R^4v$ssPZCjHic$uSJ&pnQntE;Pv zFz(l(>Zf4o0e`j3x{s&@%||o<aCUa~1OPWTH*)}(&!2@PDS(%)${=Eup|#6ZZ~gq` zatQ#qyu4fjz}?;5$J8X)H7~m&D#7F<0IUFD9;9$`aspsi0feLkO&LVjcY3VCaw&t_ zZ#|b)u=JeQtjnhCil_vuB3b}AK0XHUzaj{$Zy<Ygw15Bm&!r5lUizF;Q5%2{f_*Ps zU%4VGVUFk7&R_O>U;d;BvYW<6MUWCSpFx!J6<WR2uETx33YO;)o9M|EQ3;xlcrn#y zv*(1G@`#<rOc`7Onj$#4^M_a^r23B4ih`xh^ZO`RQoxE?kD6-18a2Iu&j|jGx0W?{ zJ833L?SC|-S;v<?FTz*64)z_hn;URNR6>*@w0E&}23lvfbX}W?QaeonnzFQLYTvB{ zONw|K?2KJ^MbttTACcP6I>Wnuj#jU=i_I&x$~5CCvp!<=u87)5@)5ZdkvmG!J}<RC zw*Q{%TnRh4A}S$D5$pAHVwg)2G@ceMS)(rN=YR70)QsCYo&{G#B_#O>>r9sVYuCH3 zJy}2Bx~Alcm=HyxCc4gd;z&u-4qYj%GdOiMRvIq`S41UrQiQg;Dk(sE7hBhetoLcX z-c=E)`O!A6h)PJxBY4!LMLS#>yuUV1uC*xZyPfAtyj~hlYG=U}Q3*wT1mCNcl%SpF z;D1;%@znp1rVRHHBc_Ot;CTdZFGW$>Sz6xSO6)#@`-lnCY4uf#_jw*+^%bRe@M1G; z%|}S%xgrKkCm%s*QIqv-tTbM3teJIc)Z~g7Fj=D}B9|gcky{bcI5D^)Dj|y^IH{R6 z?_Y}8)mJTA<m0%H7%;skf@j)8QADbbaDPP%m|heS8#VEExyYSaOXF<)#E=<RL?vX+ zta;h02x%Nn-+R}dSx=B&6~Ut?seNBaGdy<H)fF)!k`zHvf%cA<@&;*@RvITasppz} zhi(EyDT0(>%_I2CmlVSLNz@uO@&2Ai447UsYb|P$%DJ&dJ+XV$?juG(k*LXfl7G*d zKXg@y)mNliK8`D5z+{b@G=+4HnsSpGHEI1lY8o&HiJFG8AK_8c1WED{)~JanwO5_{ zlz8kKlSfS>q}Nj%T7DsolZ(E5ghx#Srq`%xs6N7@rU_9bYT{)n!<PDK^{Hqxndth{ zr0ydI%t3qvkD_=#4XvHkSGbRGc7G_kXPp`?9eRh(6)|Coo@+|YCnR#8;^6I4cjS24 zqox6qHEK##gw($@U44VEzK)Pyq9&=n@6}hrqb5hBXlBjJxqL+5XJB0s6QamZ4DtHf zGHW7M2~s~^?|H<4$&y*;ik_tYr6{Ec_Yni8m&}@%Q=_KRJ9e%JCyyfd&VL&xchr<i z8CFF|*QN1X5d$X6?|rq-VCz}gQW>^{RROVUR57?BDxt`4x#XlOq3g*%E2+_w)ZTr> zfGM*2N=S-{^$mS1qifXUK4QQW`OA#fydt%1rL;1ne(oa%Op(9dt0_V98B$rR*NDy3 zW1}XiUkt8@N|*!kUmf3~0e@s4VV$Xx5;TQ~H<c-xlIl}^#P-nETXRKJg4IX7P(<px zF!xL^r3gu>slE|_`k-79m0(gt+qORdz+$oZ3II+|PfOm@hWIFnd{)}Hn$NSo0Tzn| z0O0ZQ@t07w43-j%oq=2tm0(rG_W*EvdwUV8J_)vA?WlajuJ?P)`+vZ!*Xu_BczAgD zIaK`}tf&lEL?uWwmCt1Q!e+sq1p6x3*TKFC_VZvr3-(hs&e))t{co_p1^a8TzX$tQ zu>S=6j{1%D!3+*-9?>#Ohdb$=M>FBiV4s5hBiIjv9jmXP=R(hed;(VhJr{a@n`K&8 zL?vj7pl`ZiW%?%Hvt{;FPv898U}u;H^#3Pi(DQj>WxDQBQ*B6!(3Bvxr*|LC0G>~b z9m$t+pXxrMR$`+jf-8eZ4LlE-iXsTE44z4QW?d^?XKMWB?6^sOp8o;-a`iY%8rhWq O0000<MNUMnLSTXtIb9zB diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_pressed.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_pressed.9.png index f73911674b0f15f4cdf09cc10667ce6bedf42bf7..ec35db54d60567fe63f48c54a6453c98dbe6d721 100644 GIT binary patch literal 1131 zcmeAS@N?(olHy`uVBq!ia0vp^PCy*R!3HFGE;h(9Ft8YTx;TbZ+<H6by5Hjf5!cFP z-<1U3GTL>{f6#ib+P#EB_Tp>-rX%c4B_`P>yM&J)=j<##+_^<AO~vn9+^3lM>Ynbd zPme!;ZLhGud-rbqeo5g(C7+f~1HqRaFJ8S8x^??@>$GWN3wQ3^sjxuY*4Jf5$F*x= z3%73%uc)gNv$MBv?eFJbukii%@7)giRsWP9opw<XzIf$|$`0nZ`1sc8)5U?3w{On| zO3va~%fVvs;pI!uii(PWk3W9Q2;E|N!k52lCdb;2W5?VYox2>rfB$~y?c25C6K2bO zS+u<KLf3<UM*_(ozJA>b7BUiy66EFOWs+XGd$)Dt!Rgbd$2sOzUFe>t=A_+p`O4X| zy$2q2cXO{-Ft>e?s<cJv)$7-+V&Z(dZ1d;Ntz_N#(h=ech|rulOP>7rVX?gBsUl4I zt5+;y(?5SMZamoD-mdAXB4nwm!w=Kev3j-k!!KV#5<dL<R~Pi{+qWcD4RMg9uwW?5 z^0|u_D>ojrwzl@XdGB7|)CDn5ma*^kX$f=5&0TvS^ZA1Z4hbKgJxdERGc$wf1BZy2 zj*c4-FsQ;eZre5u6d-$d@7BI>+QmimU}pQ#j)SXLuRe6@lvkXyU(w~}IG{flEnDXH zV9Vj8BM+7?T{=ZaPw&~34K^UlUStA&91&x&MPko}4GL$@pMP%pL<Q`#MO`;;-4cqZ z`O$RqW+XgtR;^wQ2^@ca|7zsG5tC)}_w%a)3kfe24GaxcEhs#kWNd1x+SA{Uq;%V| z;^Jba_FFe@L`3!U^`*J&y6+8)j?*qJ9Y21HPn|lI$^O90^rR#w4lXMrBOz_aouKHx zc-e)eL!-!bgX-LwGX*1Rnwog{`Hy=A=)pX=XpvJyT%6dA2^)TVIO^=|tSKoYb4Dxi zzCSn!zL)?LLClg3iisaNwXF;cCIlaHnFvfSMuLH^1;tZ%IlKKM9{&6HZ;p^!$DJ<= zrUMg^hQ7XdjG&HPAnTW}U;k<ZwobS$>gW&j+QHr)Ct+X&0zDZPruKn3W=l)wiS0)( zi8_Lvnc-THeOh$lyJMQSTbupnuj2qG)k~Lx6n$KlE!kb#=QV+&YF0;y>yGF*8%{s) z(Z5`uWw+DUWtq|)UQuRa-Wl0<y7j<%CQTA*>=yoh%;%1I=Hf^9W-J6|rIxUk-w_Pk z57$=fG~9WY%&4ZcibL+^(}j8etZnbh+deC^tyhC4%!(z;mM?dIP-r9f?3uVj&B4E> zK2<B{FZ}gY>DH}VEOIAO9tXz6yfOU~?7(2l9DgfaY0h<vva&L+J$Kdxym;|K;L7{W lf3_+G?b)z9;OG0#yvzG<D5tZOr~nHQ22WQ%mvv4FO#nkp3b_CP delta 899 zcmV-}1AP4J2$=_vBYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET6 zJ4r-ARCt{2oWWAUFc5~nXc1+`=im`MapuOGdhzVZ6R*H~cu+y&!K{{@BqT+k#r<ZO zP76bm^q+rs(>8eT=>a}`&U13_X`FLRr_)}H24@-!=bXDb$A5|Yhz&%*1|nbs5wL*> zH0>P;r5_(30Bkm!o#R7iG#UYLb8`cLbMEImQ$%1#5pQpA04x>@0A{lp0F%iCfbDjB z%C;TM)z$ZP{`~v|;Q9F(fTyP?0PgPYet&!7w)K`BMXc9r0Os>K@H>*?8ADZsY^7h1 zkB@*UB1#iGD1S;2g~)!XBHC_z3`(PzDB=408pyWGn<4_yJVF$pw?p#?tsGHEOi`wY zK-44T%BQwNL%bo^ep5ss>JgW&2=j;x<`Dr?L?G%BdOLJQ=={MvBEz40#HnYpN^6>u z_M0LC**rqm7_y(DuZoa%OBHG!k)g;VbQP*O_bm55Wq(*6Q9*WwDz()NMG-lVGerc7 zqQ<2t!m7^#vK~<yH8jUoNbM}Sc|---JR&uVeQr<KhgOVKpO!}yP;_78Qfdv^TGYr; zRcn|>`~#|LjiJq1igNXnGcimNfq!wQOSj*mMuvZJr^{xsD=50trM+V)NIsG3Pa9K2 zAnFnOlz&mnp_ypcr}S#tZ;A*swBDoABUU=1$F4p0{eMa^sdk%3WM}|~db_UHBl=p6 znn!e?Dvv0Q9;cqg*5})oKbS{k=#)pC+biTe`|=C(hz<-=5v7<SIuMN-nyyOtYlWnu zMe2A>yG#**tVdiL<`D&CJ)%?@I+N4Kk45SKTYvRgL6t|OuDt%f^#4lf`h-kPJ4_LQ zqC7%#=oRWZ<MdaUM`Vb4ghpSXzC?o*rPXO0Q$!%D2pP#^DdE(LO7*9WDIyS!8hQjv zMzoKl+HX-KL)0T=ou-;+kot(c!__q3-IRXCFhvBSijWn&WJG0!vc5kbp*>ENEQ*l* z2z<7lrLd!j@pufta=8TH;o$**`}=#K|BBG)cfwy@UVz_z?)>(2&FVJ}_*wH-)~b7b zeFfnC{T&#d5;Wo&q6AU+?d>f9tJTUpLWp{Vjuw}K^h=^*8&gEUdGAYVh@s!;$ac_s Z&ljFJ+c62-X&L|k002ovPDHLkV1jsqr;7jp diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off.9.png index 34a948f4e68a9a91d138290327d5a6a77af086aa..bd30464d67e2af9e2d980dd5b12c49913aee1785 100644 GIT binary patch literal 1273 zcmeAS@N?(olHy`uVBq!ia0vp^PCy*R!3HFGE;h(9Ft8l(ba4!+xb=3<buaBe3Aer5 zzBeW9zR>=W(Zw-fJ&S1d`@IS8MXQ}%j<SdRuzX!`NB!{|&zUKY<Rio_J-^l5Pdaz* zOp3LpX6MHrf1GRNw{G1!f4`*YLZy(Ft^mP@9V=F@6x7nzZr!xWXyKMECYlSxZ9`jT zcYOL(v~cla=ZdN-Av-&}mha!cJ2<}EzTLbr?#mzdBg?xuR2MB-;$pyFQCTTCZ~lB{ z)}8V3@vK!BgI#ZQIWRB-^>6|8gxT2G91*!K^JE$O-jJ5H9giL*HO6)|zI*qsW%lgZ z4vu+M7rN(Z9SURFEwo#LIX*VFHaRE9CnGCM=+&!NEb~6^`f0ge!QA%6Ql%VM5m8Z2 z8IQa7?s4(d6c#G>^!0Il{rc6Zx_Y;Pg@wk4IoB)g=YQuey4)Q1B}8zW(vMlY_U#js z`0?jYOh#_5XjOG}>%@r@Cw%$xg=5eB^S@blzI4<VP1IhrVM9PdQR4Na2bV7gFI>3L z@x}Z1;%#khPKRE@l~t|ch!*tGdlSV|Q&Xc;V0HWIRaG7yo|cyDGj00&`WA6j&Vf5p zM1;dfFFie-iCJDoh9fvQ*vZ?w`@+qenkD7s+#OkYd17kn>aBnO{$1fDr+&hh9};3a z_UsYy^Yde2yLb1l=#2ws&h%Wkc1_L1%#6!s{=9i&H>Q@Cl_fFl^Z{vD$+2GP$1O`6 z8xe_$?CjUlIVa{!sW_*%XXj4I;4?7}z##Po#=(j6=fyQPZQrhL@Zs05DvxW|u084s z)`N%6nUlSZ;o;$HBO)U^HMd!w*t>VHE>K^E=s}eeDMt>RK7IPorAt9h&VC>rzzA}Q zi<@`gI^SeLW_=x<KPUeD*|UDfQ$=9RxcUPFvFT)MY<J`HXU|%0-n`k;HU|>j;eyiA z(oB>2r5~thX-t?c_az7zEk(t}tZL$Ax@^ywyaPa?1~b63z47?*<G^$Ti5Dexb@vBP z+D@h=B{@AferEy5Uy!8IzAR==YIyOljn{i0K7820QN9~uU3bU+{}blU)&0P@uP%b= ziO7|g?g{$~PPsxgI=XaeHaQ2?-Aevc$aQGa!itAey6=2hFuiMo=)|d0Rdw|AxMU_6 z{M?YZJeA=9)5M5}+iHs@0Uf<)IZ(wxPcC*9AG<u)-@ks<9Q73eJMv*Di@3X`f}wc3 zC2R7|h4DK$m7qyAB`u9>8HbwudZvg1DcwC>irY1tz{y<PXp%1rI4AV<@HFxlTzaIY zbWzPam<1LN-qFiC3i#(F#ol=N`mzW(g(}(F#uf+*YCe>+sy^z;VjJqRL+Olj&i2a> zJp3;&HnrOs>as-X46_znkI91jGt^_j!F=h`B^E!wGu*}>_j$Y){d|aL?~9edJT&7p z(+(NAEvbx8%%-!h04Ah}O{W*-)%p2<S$aHX-E&K5;5Vt7-g(#Xv_j|EGk%9Arky`0 zYgI+AU-;{*l9rYhi&#q0gNd_dNoD+4-@s61b#IHmtHk!gHS5-i?bsQ+DIhddHRAsH lPuIJCJZ!sr@>G4le#FX}Zq~XTwZI~c!PC{xWt~$(69E0qM*9E& delta 1111 zcmV-d1gQJ@3F`=uBYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET7 z4M{{nRCt{2oViZzFcd{s;4%s*7$gP>AtB%ssHo}qQyOY2Dt>{fp@9Y}<|(guJ|x%A zcI<G6gm;#NqU46ecDD98w&RfJISn8;f5W+Xp3}*)jGdjGMt`&hLu!mH%d(MS+_;Ho zLm0Fn4B8L|Z3siByd$CX?d=VKkB^V8<85bbYz%<$@o@mMEc^aV6=CR7#LLSI00##L z0POAU0Wdv14Zzpe*C5OGV@5{)KIhNRPXLaOj{!J3Is#y7YN|MQz-4PJU5a>re+OWH ze;+7XQaq!rihq!;)a&r@5Ku)p>9`Jx5=0@gAFGJ68~20QC?-l69UTRN<;qnN24@~2 z3b40r^9Wlxq7av&R1pTJN63@+ZH4pma{#WduK~EfzXxD`ejb4J^>qNYx3_y*=v2fT zLW)*J7@QtarHG4*3jnUJt^inETm)ccWd(r8$43AzFMlt)uDi9h)sH$<Vk<&DB0w#V zxV^mvU~O#;fQgBTuK%B#n*)koo}9nAx!JptC!ijYfYT%Ft*waX=VzdZ4!)L_j84uU zRvu#K59$#CYI(%M!U9nAMSMBD{4UCo47FFp_Gx^1P#IN(A(%(leGJ(bMMy?DGcyAe zo*-kL4}T92K#^e%OA&HkDW7^ofGCf!d!ehVt3ct#H#au`+}+&)MIN!Su>rvH@-k42 zboH7lWoRCeKyZZ0x0SqLX=w>46w>MZy_|T2C_v8d7qN;6d6X)`5EV7-tsqbO>FKGz zrK}*;BQ$CR2zrE18CCRqt~7O&Ts<OzU>@Nc#eZ)4?6|EM$#*o5h#+cS!&ZooK`SM- zuOVBF8Ud2}8tM`M0ZDz0w$6RpZ_c<-MHp($bhQn;{2Da^{Af13E$AqA0#P$vws*7z z$tQgEDWi%oI6b0D8L9j<6RrD}UP}2@5rz(>byRkX#kOd_`yN%-_bJ9#ZuN)&9U#M6 zU4NJA5l!ulsz=lyDUXPa9)ljmw(nP!Kd46psFg<y+biTgRr!T_L=9T0h*(q+HE>1^ zo4QKqwL*N+!goBST&f5|&?9~u>JbqHJt9^ab|z;Z?-#Mx*WPCWNgm;Q^7iks*Ndg@ z8!{>7P(>J`@(7!sKB2lJPQ5}sB7oB)Y=7)0)Rbu8Ber*1MipUjDneSaUrHFXqI~r! zqlz#%qlVprF)i9eeC5}u5y0sYvVu3|9i%2AYq(?`iPX!5D#GAYgnYrvUbWZs_akhN z6D5lxWZ!{)&r;}8gsl2MJv{|rcXt<n+1Xj3`HHZy*My&(oB;oR-2l`hzR7^^Z&2RK zx9VgC@9XO;&^{&Dh-ZirMB$T@lK`BZovB9%PLHso#cx6CB~h`AD#DQEc^=b;X!}G* du!4D>^9SndCuws+_+9`2002ovPDHLkV1m`c{w@Fj diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on.9.png index 520f12d3f4aa1f15ddf843a8c2fbca71130d5083..a3ff5d1bb6fa451cf6d5a32258c74c3f427bcba1 100644 GIT binary patch literal 1312 zcmYLJYf#cz6h}idH0`gVu9L=6p;5`s)P#@FP#86Nn37JrpinWpQ<`YIEg)791VT=( zwPOrfrrA5hM;RG~Y>i?nr8{CtB1UFwiW%jSvMt){!@c**Ip_Xf_m-xUl9xh4As`TF zX=(~C!*wRQ){kDEuHEPH;cyTL{4y1XrLdn)oQ^42yFKJ+W;)Xx?B590*H_nE@bzaR zagmL-*?mlNc13h+O=KwnUq1QgFNb}>w>><dDJhf|`ek?C6t&RrOxJgD;l&k(-puIt z%kSB0_3{lTO8a^<o)^xb^d)~Ajb;p!B9x{B$VB{oc#Tp?x};PFA(2So^z?MHn`Z1X z+=QcKWkHBUqR!z^FDu0f6$-@`?Bw|PUVe^!?zkil3J`HScF5_zEDmQ4l}ZIeigIbR zCH9(&QWcaB^4uI37eFGBu0>-o#K@a59YjCwWv`!ry1F{|*1$z!D^_@m#o~GZA`<rZ zXPs+k*ftzfuNZWAs9#}G+$*li*IQrj^x?5sFanXdWc|4ok>x5{B(EP@#_k!vb9TZh zFxjgsU3YEE$bhTLV`F3eL)Zlc<PbA2ci_MG>lrh64uxGc)1=8QSA>6p)y6<B_x1L< z)7m=gXD~zI33qpS*bd#$kmoBhfSYisOy+?IKCs?%XlN)X{-a~1<q68Rqiy!d5Ne*l z<4pX3lwQOz?i}v!CR!Z7@7GnL5(4kC9WL9PPjYQeMOj(dV$o*O*MU+g7*SbO6~^Zq z`}>9DcyDj>#}5rtBQxbw-31zV0|!%747;XO#z$HU=NScKwhOOIoX!%)-o0t`;TJDn z7$v5oqWVL(fP){NXAN_#eJWLR^U3rs>Xv=nM`?IAw2kp|NePWUEE0(>br}p1(2G>- zg~b|*YmQEr$p5RSvs0?oHZ?VElgs6)NRs*+l{Ve(`&ue@|1K^!_T0cIY-VJnW(x{x z*$x(mAy#^hRt#FLySFBhiu#V^Aaz+dES9fji1iYFdwaW$nU~j<ZJPe3u2rXepslT~ z)pc~Fd~LcaQLAJ4da++fXecD`3$VF49$zn_$@q&sJ>9=~PKYAJ`k0Ky;K(m|;cz(a z5op3Dr_-58CX=gSXv`R%3}vhp)V-RTQfZa_&z^+^&}g(mVEkppf{jt|948Eo&ZaN& zP0(mGg3L!fJw4|~PRc&ZdqlD^6P(uD)`sQl+t;KdCnskVcH$Sr9FTVC^#B5a00*ri z#Pe9i#j~2`8#h)5wiqHJz9#eZc@>N?UAVUMdiy~OLb{N{DWpJFyDsGv&je{{ZvI!Q zfPK;Iz=4}|DSi44vRbWnVBa8xrVCyR0jGAb^WbB3@I3r(CUZ%iHdUsOP!#Kkz~>Zr zMdi!kJ899YZ>#z&eSuh%i#2@1hD=rffNF@U(u}MUoI%2~fKmU!iH*@ieRgr^SrZbT z1B?o!ZqJvFp+{4L7gBKSm=FI%z*`-m5!K6maOa1lPY-M~-;L_)_cY(lx~afB9mv76 z9!8;md;8K(x%ckW!*`n_TvE@YW2F(3l8$I6*ru-Tgu`HuqPMm`?2UKD|LA3xu3YiI z_5BG^GMCG(wq(1x*?*nujfXOLWxMk8uWKs@F+qFw>;aG4ns|-yNr!H-z4K%EA@|A= Vvtdq&rnr7SP%55;Qzp^{{{wm6a!UXJ delta 1178 zcmV;L1ZDf63atr{BYyw{b3#c}2nYxWd<bNS00009a7bBm000Y#000Y#0XNCZtpET7 zPf0{URCt{2oLg%YNf?Hoo|zmWn80d`;<B=bF~1-en(JH$`KP%Fc$ceykb8GoLkun~ z8WUZK5+#S3X)n4yGgDO8RCQ*iyWQ`Bq3NDJd{y=G)>qXB(tk9i0;J|w&c)M|R+1#N z+wDr!1|?NSk|ar^j0;y0tq6lwgh4C9pcP?g^{+@*dU<&XK&R6g*j{(0rltUxo}LCE zNs{mXsUi#mia0+%2Viq^6M*&gbpYn)=K<*TdXtRp#xxpPJ9oQX0CskE0NCE%24HS( z?t0$|$5vSe6n}Abbp^o2#s+X*lj0e5RfH_1Tw7aPfGWaC%e7IIAPSN7P(}2+@i++W z#Y73sW)twnm8v2P&OAaCU@vV&93342aD03W!0G8J0E>%@04y&r1F*8PGWy5^u$3bU zaVbg_VQ_kcw0z!DlyK5`2EeT+hXAbHKLOy&n>zr!JAe2!JMPWX?EjLKA>QEgI8}tf z=@G*e(Or50!0O|F0BAJDjWbVJdX%l*`#t;r<oOG8{PKvy55rc3dW45U9&xw*8Gt)W ze*|5mVfODGmXn#PM?~QC2zzNO;?e3a0Cbw~gD$eTdK-Y32jwWj&L7kxJQVVX?uUl} z%s((LjDNeO6I0J$|IPN740Tk5j%n=pU8o`q-aNt{W61j1(N6%}f0&IaI*ktiT&14? zm`ZMCC+}tZoxE+D<IhGKe5fKMZW)EDM|cSG2zwOz`tPje(===OpMPruaQj|1xB33< zR{&leWc$5-c{=*Y`xvGS%_Ac4&QRqog~Pu-0)O!8&;Q02U<jd#@by}%2t!b>k*5gz zxUz`#2<<gIcs(Ld8N(R2LSkph)gvPC<`H?b*kyadFl@!h=u`8E0D|so*b2#G(n^UP zYsgZ24G&Rc4fTls0a0U(x;-Bu%C(=IaiNMZ6uQ$@H|+Se*YHqi7Q1ffEOrDzce-rv zsDBHRPvn)SA610G=@G+}5z9?8(V|c3#l)|QFtq4<kIJsG&>9{0*kjoF^AwX8w|az! z7LZ`QT^H*SRUM70M-(6`j|lBOCOwO7UvF6cpdR6&P##gXSIBjS<rnG^1*oMWLQzE& zz}aiq6jj2g6_VFm<ZX|MOBG@8dc=>0dVfR!UXKV>hMmdT+s8%d`E~ReL6k@2wY>d* z==nk^`h-kO9I6OIP#$4((-tZ^<1{MNBRn`g!p3f)s`LhVgpN-8QAHS>ijbNdml7te zsJ!y@qlz#%dkwn=Lu#~&<i)SOh6krd$ak7zo<XW2@(x$4l@(LU<w6x<a4JH+;D04G zDqkq8`tuRC$BB|f5wh+;zh@~7C}L)227tZ2Jpk6$)&N*oSOBW82pjvI@ZH^A;JTax z`%W&bYLfupzj-U)syjQ&-q^jkxB%*>1RL=TQGzIZc6Jtk{r!FQ2*K$Qc5m^cAmx%? su^&~0AxYCTWDHUF8y(&PrfJGI<r9S>_cGnbFaQ7m07*qoM6N<$g1PW5`2YX_ diff --git a/java/res/drawable/btn_keyboard_key_fulltrans.xml b/java/res/drawable/btn_keyboard_key_fulltrans.xml deleted file mode 100644 index bad2a931d1..0000000000 --- a/java/res/drawable/btn_keyboard_key_fulltrans.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2010 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<selector xmlns:android="http://schemas.android.com/apk/res/android"> - - <!-- Normal keys --> - - <item android:state_pressed="true" - android:drawable="@drawable/btn_keyboard_key_fulltrans_pressed" /> - <item - android:drawable="@drawable/btn_keyboard_key_fulltrans_normal" /> - -</selector> diff --git a/java/res/drawable/btn_keyboard_key_popup.xml b/java/res/drawable/btn_keyboard_key_popup.xml index 860cfd5d54..9e3670d22f 100644 --- a/java/res/drawable/btn_keyboard_key_popup.xml +++ b/java/res/drawable/btn_keyboard_key_popup.xml @@ -17,5 +17,5 @@ <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/btn_keyboard_key_light_popup_selected" /> - <item android:drawable="@drawable/btn_keyboard_key_light_popup_normal" /> + <item android:drawable="@drawable/transparent" /> </selector> diff --git a/java/res/drawable/btn_keyboard_key_popup_ics.xml b/java/res/drawable/btn_keyboard_key_popup_ics.xml index 8f797ac3c0..b99679ba13 100644 --- a/java/res/drawable/btn_keyboard_key_popup_ics.xml +++ b/java/res/drawable/btn_keyboard_key_popup_ics.xml @@ -17,5 +17,5 @@ <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/btn_keyboard_key_popup_selected_holo" /> - <item android:drawable="@drawable/btn_keyboard_key_popup_background_holo" /> + <item android:drawable="@drawable/transparent" /> </selector> diff --git a/java/res/values-land/dimens.xml b/java/res/values-land/dimens.xml index d6e096278d..d5ca250632 100644 --- a/java/res/values-land/dimens.xml +++ b/java/res/values-land/dimens.xml @@ -24,24 +24,33 @@ <fraction name="minKeyboardHeight">45%p</fraction> <!-- key_height + key_bottom_gap = popup_key_height --> <!-- <dimen name="key_height">0.260in</dimen>--> - <dimen name="key_bottom_gap">0.020in</dimen> <dimen name="popup_key_height">0.280in</dimen> - <dimen name="keyboard_top_padding">0.00in</dimen> + <dimen name="keyboard_horizontal_edges_padding">0.0in</dimen> + + <dimen name="keyboard_top_padding">0.02in</dimen> <dimen name="keyboard_bottom_padding">0.00in</dimen> - <dimen name="key_bottom_gap_ics">0.04in</dimen> - <dimen name="key_horizontal_gap_ics">0.01in</dimen> + <dimen name="key_bottom_gap">1.21mm</dimen> + <dimen name="key_horizontal_gap">0.35mm</dimen> + + <dimen name="key_bottom_gap_stone">1.40mm</dimen> + <dimen name="key_horizontal_gap_stone">1.00mm</dimen> + + <dimen name="key_bottom_gap_gb">1.66mm</dimen> + <dimen name="key_horizontal_gap_gb">0.86mm</dimen> + <dimen name="keyboard_top_padding_ics">0.03in</dimen> <dimen name="keyboard_bottom_padding_ics">0.00in</dimen> - <dimen name="keyboard_horizontal_edges_padding">0.0in</dimen> + <dimen name="key_bottom_gap_ics">1.79mm</dimen> + <dimen name="key_horizontal_gap_ics">0.88mm</dimen> <!-- left or right padding of label alignment --> - <dimen name="key_label_horizontal_alignment_padding">8dip</dimen> + <dimen name="key_label_horizontal_padding">8dip</dimen> - <fraction name="key_letter_ratio">55%</fraction> - <fraction name="key_large_letter_ratio">68%</fraction> - <fraction name="key_label_ratio">35%</fraction> - <fraction name="key_hint_letter_ratio">28%</fraction> - <fraction name="key_hint_label_ratio">45%</fraction> + <fraction name="key_letter_ratio">65%</fraction> + <fraction name="key_large_letter_ratio">74%</fraction> + <fraction name="key_label_ratio">40%</fraction> + <fraction name="key_hint_letter_ratio">30%</fraction> + <fraction name="key_hint_label_ratio">52%</fraction> <fraction name="key_uppercase_letter_ratio">40%</fraction> <fraction name="key_preview_text_ratio">90%</fraction> <dimen name="key_preview_offset">0.08in</dimen> diff --git a/java/res/values-sw600dp-land/dimens.xml b/java/res/values-sw600dp-land/dimens.xml index 5d1fbc7486..5016f4247b 100644 --- a/java/res/values-sw600dp-land/dimens.xml +++ b/java/res/values-sw600dp-land/dimens.xml @@ -22,20 +22,28 @@ <!-- keyboardHeight = key_height*4 + key_bottom_gap*3 --> <dimen name="keyboardHeight">45.0mm</dimen> <fraction name="minKeyboardHeight">45%p</fraction> - <!-- key_height + key_bottom_gap = popup_key_height --> - <!-- <dimen name="key_height">14.5mm</dimen> --> - <dimen name="key_bottom_gap">1.3mm</dimen> - <dimen name="key_horizontal_gap">1.3mm</dimen> + + <dimen name="keyboard_horizontal_edges_padding">0dp</dimen> <dimen name="keyboard_top_padding">1.1mm</dimen> <dimen name="keyboard_bottom_padding">0.0mm</dimen> - <dimen name="key_bottom_gap_ics">1.3mm</dimen> - <dimen name="key_horizontal_gap_ics">1.3mm</dimen> + <dimen name="key_bottom_gap">2.21mm</dimen> + <dimen name="key_horizontal_gap">1.97mm</dimen> + + <dimen name="key_bottom_gap_stone">1.96mm</dimen> + <dimen name="key_horizontal_gap_stone">2.31mm</dimen> + + <dimen name="key_bottom_gap_gb">2.34mm</dimen> + <dimen name="key_horizontal_gap_gb">2.22mm</dimen> + + <dimen name="key_bottom_gap_ics">1.66mm</dimen> + <dimen name="key_horizontal_gap_ics">1.66mm</dimen> <dimen name="keyboard_top_padding_ics">1.1mm</dimen> <dimen name="keyboard_bottom_padding_ics">0.0mm</dimen> + <dimen name="popup_key_height">13.0mm</dimen> <!-- left or right padding of label alignment --> - <dimen name="key_label_horizontal_alignment_padding">18dip</dimen> + <dimen name="key_label_horizontal_padding">18dip</dimen> <fraction name="key_letter_ratio">45%</fraction> <fraction name="key_large_letter_ratio">45%</fraction> diff --git a/java/res/values-sw600dp/dimens.xml b/java/res/values-sw600dp/dimens.xml index 675f40c2e7..1a82b0c6c7 100644 --- a/java/res/values-sw600dp/dimens.xml +++ b/java/res/values-sw600dp/dimens.xml @@ -23,18 +23,27 @@ <dimen name="keyboardHeight">48.0mm</dimen> <fraction name="maxKeyboardHeight">50%p</fraction> <fraction name="minKeyboardHeight">-35.0%p</fraction> - <!-- key_height + key_bottom_gap = popup_key_height --> - <!-- <dimen name="key_height">14.5mm</dimen> --> - <dimen name="key_bottom_gap">1.0mm</dimen> - <dimen name="key_horizontal_gap">1.0mm</dimen> + <dimen name="popup_key_height">10.0mm</dimen> + + <dimen name="keyboard_horizontal_edges_padding">0.0mm</dimen> <dimen name="keyboard_top_padding">1.1mm</dimen> <dimen name="keyboard_bottom_padding">0.0mm</dimen> - <dimen name="key_bottom_gap_ics">1.0mm</dimen> - <dimen name="key_horizontal_gap_ics">1.0mm</dimen> + <dimen name="key_bottom_gap">1.80mm</dimen> + <dimen name="key_horizontal_gap">1.67mm</dimen> + + <dimen name="key_bottom_gap_stone">1.80mm</dimen> + <dimen name="key_horizontal_gap_stone">1.44mm</dimen> + + <dimen name="key_bottom_gap_gb">2.22mm</dimen> + <dimen name="key_horizontal_gap_gb">1.90mm</dimen> + + <dimen name="key_bottom_gap_ics">1.37mm</dimen> + <dimen name="key_horizontal_gap_ics">1.53mm</dimen> <dimen name="keyboard_top_padding_ics">1.1mm</dimen> <dimen name="keyboard_bottom_padding_ics">0.0mm</dimen> - <dimen name="mini_keyboard_key_horizontal_padding">12dip</dimen> + + <dimen name="mini_keyboard_key_horizontal_padding">6dip</dimen> <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. --> <!-- popup_key_height x 1.2 --> <dimen name="mini_keyboard_slide_allowance">15.6mm</dimen> @@ -42,7 +51,9 @@ <dimen name="mini_keyboard_vertical_correction">-13.0mm</dimen> <!-- left or right padding of label alignment --> - <dimen name="key_label_horizontal_alignment_padding">6dip</dimen> + <dimen name="key_label_horizontal_padding">6dip</dimen> + <dimen name="key_hint_letter_padding">3dp</dimen> + <dimen name="key_uppercase_letter_padding">3dp</dimen> <fraction name="key_letter_ratio">37%</fraction> <fraction name="key_large_letter_ratio">37%</fraction> diff --git a/java/res/values-sw768dp-land/dimens.xml b/java/res/values-sw768dp-land/dimens.xml index 2201ce8a36..8cbd37e174 100644 --- a/java/res/values-sw768dp-land/dimens.xml +++ b/java/res/values-sw768dp-land/dimens.xml @@ -22,27 +22,35 @@ <!-- keyboardHeight = key_height*4 + key_bottom_gap*3, key_height=14.5mm --> <dimen name="keyboardHeight">58.0mm</dimen> <fraction name="minKeyboardHeight">45%p</fraction> - <!-- key_height + key_bottom_gap = popup_key_height --> - <!-- <dimen name="key_height">14.5mm</dimen> --> - <dimen name="key_bottom_gap">1.6mm</dimen> - <dimen name="key_horizontal_gap">1.6mm</dimen> + + <dimen name="keyboard_horizontal_edges_padding">0.0mm</dimen> <dimen name="keyboard_top_padding">1.1mm</dimen> <dimen name="keyboard_bottom_padding">0.0mm</dimen> - <dimen name="key_bottom_gap_ics">1.6mm</dimen> - <dimen name="key_horizontal_gap_ics">1.6mm</dimen> + + <dimen name="key_bottom_gap">2.65mm</dimen> + <dimen name="key_horizontal_gap">2.34mm</dimen> + + <dimen name="key_bottom_gap_stone">1.96mm</dimen> + <dimen name="key_horizontal_gap_stone">2.31mm</dimen> + + <dimen name="key_bottom_gap_gb">2.80mm</dimen> + <dimen name="key_horizontal_gap_gb">2.60mm</dimen> + + <dimen name="key_bottom_gap_ics">2.25mm</dimen> + <dimen name="key_horizontal_gap_ics">2.22mm</dimen> <dimen name="keyboard_top_padding_ics">1.1mm</dimen> <dimen name="keyboard_bottom_padding_ics">0.0mm</dimen> + <dimen name="popup_key_height">13.0mm</dimen> - <dimen name="keyboard_horizontal_edges_padding">0.0mm</dimen> <!-- left or right padding of label alignment --> - <dimen name="key_label_horizontal_alignment_padding">18dip</dimen> + <dimen name="key_label_horizontal_padding">18dip</dimen> - <fraction name="key_letter_ratio">38%</fraction> - <fraction name="key_large_letter_ratio">38%</fraction> - <fraction name="key_label_ratio">26%</fraction> + <fraction name="key_letter_ratio">43%</fraction> + <fraction name="key_large_letter_ratio">42%</fraction> + <fraction name="key_label_ratio">28%</fraction> <fraction name="key_hint_letter_ratio">23%</fraction> - <fraction name="key_hint_label_ratio">26%</fraction> + <fraction name="key_hint_label_ratio">28%</fraction> <fraction name="key_uppercase_letter_ratio">24%</fraction> <dimen name="key_preview_height">17.0mm</dimen> diff --git a/java/res/values-sw768dp/dimens.xml b/java/res/values-sw768dp/dimens.xml index 2e41db52a1..81a68e233c 100644 --- a/java/res/values-sw768dp/dimens.xml +++ b/java/res/values-sw768dp/dimens.xml @@ -23,19 +23,27 @@ <dimen name="keyboardHeight">48.0mm</dimen> <fraction name="maxKeyboardHeight">50%p</fraction> <fraction name="minKeyboardHeight">-35.0%p</fraction> - <!-- key_height + key_bottom_gap = popup_key_height --> - <!-- <dimen name="key_height">14.5mm</dimen> --> - <dimen name="key_bottom_gap">1.1mm</dimen> - <dimen name="key_horizontal_gap">1.1mm</dimen> + + <dimen name="keyboard_horizontal_edges_padding">0.0mm</dimen> <dimen name="keyboard_top_padding">1.1mm</dimen> <dimen name="keyboard_bottom_padding">0.0mm</dimen> - <dimen name="key_bottom_gap_ics">1.1mm</dimen> - <dimen name="key_horizontal_gap_ics">1.1mm</dimen> + + <dimen name="key_bottom_gap">2.05mm</dimen> + <dimen name="key_horizontal_gap">2.11mm</dimen> + + <dimen name="key_bottom_gap_stone">1.80mm</dimen> + <dimen name="key_horizontal_gap_stone">1.44mm</dimen> + + <dimen name="key_bottom_gap_gb">2.25mm</dimen> + <dimen name="key_horizontal_gap_gb">1.96mm</dimen> + + <dimen name="key_bottom_gap_ics">1.75mm</dimen> + <dimen name="key_horizontal_gap_ics">1.79mm</dimen> <dimen name="keyboard_top_padding_ics">1.1mm</dimen> <dimen name="keyboard_bottom_padding_ics">0.0mm</dimen> + <dimen name="popup_key_height">10.0mm</dimen> - <dimen name="keyboard_horizontal_edges_padding">0.0mm</dimen> - <dimen name="mini_keyboard_horizontal_padding_ics">40dip</dimen> + <dimen name="mini_keyboard_key_horizontal_padding">12dip</dimen> <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. --> <!-- popup_key_height x 1.2 --> @@ -44,14 +52,16 @@ <dimen name="mini_keyboard_vertical_correction">-13.0mm</dimen> <!-- left or right padding of label alignment --> - <dimen name="key_label_horizontal_alignment_padding">6dip</dimen> + <dimen name="key_label_horizontal_padding">6dip</dimen> + <dimen name="key_hint_letter_padding">3dp</dimen> + <dimen name="key_uppercase_letter_padding">3dp</dimen> - <fraction name="key_letter_ratio">38%</fraction> - <fraction name="key_large_letter_ratio">38%</fraction> - <fraction name="key_label_ratio">26%</fraction> + <fraction name="key_letter_ratio">40%</fraction> + <fraction name="key_large_letter_ratio">42%</fraction> + <fraction name="key_label_ratio">28%</fraction> <fraction name="key_hint_letter_ratio">23%</fraction> - <fraction name="key_hint_label_ratio">26%</fraction> - <fraction name="key_uppercase_letter_ratio">25%</fraction> + <fraction name="key_hint_label_ratio">28%</fraction> + <fraction name="key_uppercase_letter_ratio">26%</fraction> <fraction name="key_preview_text_ratio">50%</fraction> <dimen name="key_preview_height">15.0mm</dimen> <dimen name="key_preview_offset">0.1in</dimen> diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml index 4470d7b4ed..c5897c853c 100644 --- a/java/res/values/attrs.xml +++ b/java/res/values/attrs.xml @@ -51,6 +51,12 @@ <attr name="keyHintLabelRatio" format="float" /> <!-- Size of the text for upper case letter, in the proportion of key height. --> <attr name="keyUppercaseLetterRatio" format="float" /> + <!-- Horizontal padding of left/right aligned key label to the edge of the key. --> + <attr name="keyLabelHorizontalPadding" format="dimension" /> + <!-- Top and right padding of hint letter to the edge of the key.--> + <attr name="keyHintLetterPadding" format="dimension" /> + <!-- Top and right padding of upper case letter to the edge of the key.--> + <attr name="keyUppercaseLetterPadding" format="dimension" /> <!-- Color to use for the label in a key. --> <attr name="keyTextColor" format="color" /> @@ -199,7 +205,6 @@ <!-- This should be aligned with Key.LABEL_OPTION_* --> <flag name="alignLeft" value="0x01" /> <flag name="alignRight" value="0x02" /> - <flag name="alignBottom" value="0x04" /> <flag name="alignLeftOfCenter" value="0x08" /> <flag name="largeLetter" value="0x10" /> <flag name="fontNormal" value="0x20" /> diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml index c1ef869300..36074b3b8d 100644 --- a/java/res/values/dimens.xml +++ b/java/res/values/dimens.xml @@ -19,26 +19,33 @@ --> <resources> - <!-- keyboardHeight = key_height*4 + key_bottom_gap*3, key_height=0.295in --> + <!-- keyboardHeight = row_height*4 + key_bottom_gap*3 --> <dimen name="keyboardHeight">1.285in</dimen> <fraction name="maxKeyboardHeight">50%p</fraction> <fraction name="minKeyboardHeight">-61.8%p</fraction> - <!-- key_height + key_bottom_gap = popup_key_height --> - <!-- <dimen name="key_height">0.295in</dimen> --> - <dimen name="key_bottom_gap">0.035in</dimen> - <dimen name="key_horizontal_gap">0.000in</dimen> + <dimen name="popup_key_height">0.330in</dimen> - <dimen name="keyboard_top_padding">0.00in</dimen> - <dimen name="keyboard_bottom_padding">0.06in</dimen> - <dimen name="keyboard_horizontal_edges_padding">0.0in</dimen> - <dimen name="mini_keyboard_horizontal_padding">16dip</dimen> + + <dimen name="mini_keyboard_horizontal_edges_padding">16dip</dimen> <dimen name="mini_keyboard_key_horizontal_padding">8dip</dimen> - <dimen name="key_bottom_gap_ics">0.06in</dimen> - <dimen name="key_horizontal_gap_ics">0.01in</dimen> + <dimen name="keyboard_horizontal_edges_padding">0dp</dimen> + <dimen name="keyboard_top_padding">0.02in</dimen> + <dimen name="keyboard_bottom_padding">0.06in</dimen> + <dimen name="key_bottom_gap">2.04mm</dimen> + <dimen name="key_horizontal_gap">0.70mm</dimen> + + <dimen name="key_bottom_gap_stone">2.45mm</dimen> + <dimen name="key_horizontal_gap_stone">0.90mm</dimen> + + <dimen name="key_bottom_gap_gb">2.12mm</dimen> + <dimen name="key_horizontal_gap_gb">1.02mm</dimen> + <dimen name="keyboard_top_padding_ics">0.03in</dimen> <dimen name="keyboard_bottom_padding_ics">0.06in</dimen> - <dimen name="mini_keyboard_horizontal_padding_ics">38dip</dimen> + <dimen name="mini_keyboard_horizontal_edges_padding_ics">6dp</dimen> + <dimen name="key_bottom_gap_ics">2.37mm</dimen> + <dimen name="key_horizontal_gap_ics">0.90mm</dimen> <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. --> <!-- popup_key_height x 1.2 --> @@ -49,19 +56,20 @@ to user's finger. --> <dimen name="keyboard_vertical_correction">-0.05in</dimen> - <!-- left or right padding of label alignment --> - <dimen name="key_label_horizontal_alignment_padding">4dip</dimen> - - <fraction name="key_letter_ratio">45%</fraction> - <fraction name="key_large_letter_ratio">55%</fraction> - <fraction name="key_label_ratio">29%</fraction> - <fraction name="key_hint_letter_ratio">23%</fraction> - <fraction name="key_hint_label_ratio">36%</fraction> + <fraction name="key_letter_ratio">55%</fraction> + <fraction name="key_large_letter_ratio">65%</fraction> + <fraction name="key_label_ratio">34%</fraction> + <fraction name="key_hint_letter_ratio">25%</fraction> + <fraction name="key_hint_label_ratio">44%</fraction> <fraction name="key_uppercase_letter_ratio">35%</fraction> <fraction name="key_preview_text_ratio">82%</fraction> <dimen name="key_preview_height">80sp</dimen> <dimen name="key_preview_offset">0.1in</dimen> + <dimen name="key_label_horizontal_padding">4dip</dimen> + <dimen name="key_hint_letter_padding">2dp</dimen> + <dimen name="key_uppercase_letter_padding">2dp</dimen> + <dimen name="key_preview_height_ics">80sp</dimen> <dimen name="key_preview_offset_ics">0.05in</dimen> diff --git a/java/res/values/styles.xml b/java/res/values/styles.xml index 08301be5c8..29b9d589cd 100644 --- a/java/res/values/styles.xml +++ b/java/res/values/styles.xml @@ -49,6 +49,9 @@ <item name="keyHintLabelColor">#E0E0E4E5</item> <item name="keyUppercaseLetterInactivatedColor">#66E0E4E5</item> <item name="keyUppercaseLetterActivatedColor">#CCE0E4E5</item> + <item name="keyLabelHorizontalPadding">@dimen/key_label_horizontal_padding</item> + <item name="keyHintLetterPadding">@dimen/key_hint_letter_padding</item> + <item name="keyUppercaseLetterPadding">@dimen/key_uppercase_letter_padding</item> <item name="keyPreviewLayout">@layout/key_preview</item> <item name="keyPreviewBackground">@drawable/keyboard_key_feedback</item> <item name="keyPreviewLeftBackground">@null</item> @@ -72,8 +75,8 @@ </style> <style name="PopupMiniKeyboardPanelStyle"> <item name="android:background">@drawable/keyboard_popup_panel_background</item> - <item name="android:paddingLeft">@dimen/mini_keyboard_horizontal_padding</item> - <item name="android:paddingRight">@dimen/mini_keyboard_horizontal_padding</item> + <item name="android:paddingLeft">@dimen/mini_keyboard_horizontal_edges_padding</item> + <item name="android:paddingRight">@dimen/mini_keyboard_horizontal_edges_padding</item> </style> <style name="SuggestionsStripBackgroundStyle"> <item name="android:background">@drawable/keyboard_suggest_strip</item> @@ -99,8 +102,8 @@ </style> <!-- Theme "Stone" --> <style name="Keyboard.Stone" parent="Keyboard"> - <item name="horizontalGap">@dimen/key_horizontal_gap</item> - <item name="verticalGap">@dimen/key_bottom_gap</item> + <item name="horizontalGap">@dimen/key_horizontal_gap_stone</item> + <item name="verticalGap">@dimen/key_bottom_gap_stone</item> </style> <style name="LatinKeyboard.Stone" parent="LatinKeyboard"> <item name="spacebarTextColor">#FF000000</item> @@ -126,6 +129,10 @@ <item name="keyTextStyle">bold</item> </style> <!-- Theme "Gingerbread" --> + <style name="Keyboard.Gingerbread" parent="Keyboard"> + <item name="horizontalGap">@dimen/key_horizontal_gap_gb</item> + <item name="verticalGap">@dimen/key_bottom_gap_gb</item> + </style> <style name="KeyboardView.Gingerbread" parent="KeyboardView"> <item name="android:background">@drawable/keyboard_dark_background</item> <item name="keyBackground">@drawable/btn_keyboard_key_gingerbread</item> @@ -168,9 +175,9 @@ <item name="keyBackground">@drawable/btn_keyboard_key_popup_ics</item> </style> <style name="PopupMiniKeyboardPanelStyle.IceCreamSandwich"> - <item name="android:background">@drawable/keyboard_popup_panel_background_holo</item> - <item name="android:paddingLeft">@dimen/mini_keyboard_horizontal_padding_ics</item> - <item name="android:paddingRight">@dimen/mini_keyboard_horizontal_padding_ics</item> + <item name="android:background">@drawable/btn_keyboard_key_popup_background_holo</item> + <item name="android:paddingLeft">@dimen/mini_keyboard_horizontal_edges_padding_ics</item> + <item name="android:paddingRight">@dimen/mini_keyboard_horizontal_edges_padding_ics</item> </style> <style name="SuggestionsStripBackgroundStyle.IceCreamSandwich"> <item name="android:background">@drawable/keyboard_suggest_strip_holo</item> diff --git a/java/res/values/themes-gingerbread.xml b/java/res/values/themes-gingerbread.xml index 091baa737d..60f2261535 100644 --- a/java/res/values/themes-gingerbread.xml +++ b/java/res/values/themes-gingerbread.xml @@ -16,7 +16,7 @@ <resources> <style name="KeyboardTheme.Gingerbread" parent="KeyboardIcons"> - <item name="keyboardStyle">@style/Keyboard</item> + <item name="keyboardStyle">@style/Keyboard.Gingerbread</item> <item name="latinKeyboardStyle">@style/LatinKeyboard</item> <item name="keyboardViewStyle">@style/KeyboardView.Gingerbread</item> <item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Gingerbread</item> diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java index 872fbf823b..9558853664 100644 --- a/java/src/com/android/inputmethod/keyboard/Key.java +++ b/java/src/com/android/inputmethod/keyboard/Key.java @@ -52,7 +52,6 @@ public class Key { public final int mLabelOption; public static final int LABEL_OPTION_ALIGN_LEFT = 0x01; public static final int LABEL_OPTION_ALIGN_RIGHT = 0x02; - public static final int LABEL_OPTION_ALIGN_BOTTOM = 0x04; public static final int LABEL_OPTION_ALIGN_LEFT_OF_CENTER = 0x08; private static final int LABEL_OPTION_LARGE_LETTER = 0x10; private static final int LABEL_OPTION_FONT_NORMAL = 0x20; @@ -276,9 +275,9 @@ public class Key { final KeyboardIconsSet iconsSet = mKeyboard.mIconsSet; mVisualInsetsLeft = KeyboardParser.getDimensionOrFraction(keyAttr, - R.styleable.Keyboard_Key_visualInsetsLeft, mKeyboard.getDisplayHeight(), 0); + R.styleable.Keyboard_Key_visualInsetsLeft, keyboardWidth, 0); mVisualInsetsRight = KeyboardParser.getDimensionOrFraction(keyAttr, - R.styleable.Keyboard_Key_visualInsetsRight, mKeyboard.getDisplayHeight(), 0); + R.styleable.Keyboard_Key_visualInsetsRight, keyboardWidth, 0); mPreviewIcon = iconsSet.getIcon(style.getInt( keyAttr, R.styleable.Keyboard_Key_keyIconPreview, KeyboardIconsSet.ICON_UNDEFINED)); @@ -314,6 +313,10 @@ public class Key { } } + public CharSequence getCaseAdjustedLabel() { + return mKeyboard.adjustLabelCase(mLabel); + } + public Typeface selectTypeface(Typeface defaultTypeface) { // TODO: Handle "bold" here too? if ((mLabelOption & LABEL_OPTION_FONT_NORMAL) != 0) { diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java index 20327c5b23..280c0c9d88 100644 --- a/java/src/com/android/inputmethod/keyboard/Keyboard.java +++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java @@ -19,6 +19,7 @@ package com.android.inputmethod.keyboard; import android.content.Context; import android.content.res.Resources; import android.graphics.drawable.Drawable; +import android.text.TextUtils; import android.util.Log; import com.android.inputmethod.keyboard.internal.KeyboardIconsSet; @@ -345,15 +346,23 @@ public class Keyboard { } public boolean isAlphaKeyboard() { - return mId != null && mId.isAlphabetKeyboard(); + return mId.isAlphabetKeyboard(); } public boolean isPhoneKeyboard() { - return mId != null && mId.isPhoneKeyboard(); + return mId.isPhoneKeyboard(); } public boolean isNumberKeyboard() { - return mId != null && mId.isNumberKeyboard(); + return mId.isNumberKeyboard(); + } + + public CharSequence adjustLabelCase(CharSequence label) { + if (isShiftedOrShiftLocked() && !TextUtils.isEmpty(label) && label.length() < 3 + && Character.isLowerCase(label.charAt(0))) { + return label.toString().toUpperCase(mId.mLocale); + } + return label; } // TODO: Move this function to ProximityInfo and make this private. diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardId.java b/java/src/com/android/inputmethod/keyboard/KeyboardId.java index 9c63c198cc..b2600dd3b4 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardId.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardId.java @@ -42,6 +42,8 @@ public class KeyboardId { public static final int F2KEY_MODE_SHORTCUT_IME = 2; public static final int F2KEY_MODE_SHORTCUT_IME_OR_SETTINGS = 3; + private static final int MINI_KEYBOARD_ID_MARKER = -1; + public final Locale mLocale; public final int mOrientation; public final int mWidth; @@ -112,6 +114,11 @@ public class KeyboardId { }); } + public KeyboardId cloneAsMiniKeyboard() { + return new KeyboardId("mini popup keyboard", MINI_KEYBOARD_ID_MARKER, mLocale, mOrientation, + mWidth, mMode, mAttribute, false, F2KEY_MODE_NONE, false, false, false, false); + } + public KeyboardId cloneWithNewLayout(String xmlName, int xmlId) { return new KeyboardId(xmlName, xmlId, mLocale, mOrientation, mWidth, mMode, mAttribute, mHasSettingsKey, mF2KeyMode, mClobberSettingsKey, mVoiceKeyEnabled, mHasVoiceKey, @@ -130,6 +137,10 @@ public class KeyboardId { return mXmlId; } + public boolean isMiniKeyboard() { + return mXmlId == MINI_KEYBOARD_ID_MARKER; + } + public boolean isAlphabetKeyboard() { return mXmlId == R.xml.kbd_qwerty; } diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java index 58360275dc..203cde915c 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java @@ -71,6 +71,9 @@ import java.util.WeakHashMap; * @attr ref R.styleable#KeyboardView_keyHintLetterRatio * @attr ref R.styleable#KeyboardView_keyUppercaseLetterRatio * @attr ref R.styleable#KeyboardView_keyHintLabelRatio + * @attr ref R.styleable#KeyboardView_keyLabelHorizontalPadding + * @attr ref R.styleable#KeyboardView_keyHintLetterPadding + * @attr ref R.styleable#KeyboardView_keyUppercaseLetterPadding * @attr ref R.styleable#KeyboardView_keyTextStyle * @attr ref R.styleable#KeyboardView_keyPreviewLayout * @attr ref R.styleable#KeyboardView_keyPreviewTextRatio @@ -89,7 +92,6 @@ import java.util.WeakHashMap; */ public class KeyboardView extends View implements PointerTracker.UIProxy { private static final String TAG = KeyboardView.class.getSimpleName(); - private static final boolean DEBUG_SHOW_ALIGN = LatinImeLogger.sVISUALDEBUG; private static final boolean DEBUG_KEYBOARD_GRID = false; private static final boolean ENABLE_CAPSLOCK_BY_LONGPRESS = true; @@ -102,55 +104,25 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { private static final int[] LONG_PRESSABLE_STATE_SET = { android.R.attr.state_long_pressable }; // XML attribute - private final int mKeyTextColor; - private final int mKeyTextInactivatedColor; - private final Typeface mKeyTextStyle; - private final float mKeyLetterRatio; - private final float mKeyLargeLetterRatio; - private final float mKeyLabelRatio; - private final float mKeyHintLetterRatio; - private final float mKeyUppercaseLetterRatio; - private final float mKeyHintLabelRatio; - private final int mShadowColor; - private final float mShadowRadius; - private final Drawable mKeyBackground; private final float mBackgroundDimAmount; private final float mKeyHysteresisDistance; private final float mVerticalCorrection; - private final Drawable mPreviewBackground; - private final Drawable mPreviewLeftBackground; - private final Drawable mPreviewRightBackground; - private final Drawable mPreviewSpacebarBackground; - private final int mPreviewTextColor; - private final float mPreviewTextRatio; - private final int mPreviewOffset; - private final int mPreviewHeight; private final int mPopupLayout; - private final int mKeyHintLetterColor; - private final int mKeyHintLabelColor; - private final int mKeyUppercaseLetterInactivatedColor; - private final int mKeyUppercaseLetterActivatedColor; // HORIZONTAL ELLIPSIS "...", character for popup hint. private static final String POPUP_HINT_CHAR = "\u2026"; // Main keyboard private Keyboard mKeyboard; - private int mKeyLetterSize; - private int mKeyLargeLetterSize; - private int mKeyLabelSize; - private int mKeyHintLetterSize; - private int mKeyUppercaseLetterSize; - private int mKeyHintLabelSize; + private final KeyDrawParams mKeyDrawParams; // Key preview + private final KeyPreviewDrawParams mKeyPreviewDrawParams; private final TextView mPreviewText; - private int mPreviewTextSize; private boolean mShowKeyPreviewPopup = true; private final int mDelayBeforePreview; private int mDelayAfterPreview; private ViewGroup mPreviewPlacer; - private final int[] mCoordinates = new int[2]; // Mini keyboard private PopupWindow mPopupWindow; @@ -194,16 +166,13 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { /** The canvas for the above mutable keyboard bitmap */ private Canvas mCanvas; private final Paint mPaint = new Paint(); - private final Rect mPadding = new Rect(); // This map caches key label text height in pixel as value and key label text size as map key. - private final HashMap<Integer, Integer> mTextHeightCache = new HashMap<Integer, Integer>(); + private static final HashMap<Integer, Float> sTextHeightCache = + new HashMap<Integer, Float>(); // This map caches key label text width in pixel as value and key label text size as map key. - private final HashMap<Integer, Integer> mTextWidthCache = new HashMap<Integer, Integer>(); - // Distance from horizontal center of the key, proportional to key label text height and width. - private static final float KEY_LABEL_VERTICAL_ADJUSTMENT_FACTOR_CENTER = 0.45f; - private static final float KEY_LABEL_VERTICAL_PADDING_FACTOR = 1.60f; + private static final HashMap<Integer, Float> sTextWidthCache = + new HashMap<Integer, Float>(); private static final String KEY_LABEL_REFERENCE_CHAR = "M"; - private final int mKeyLabelHorizontalPadding; private static final int MEASURESPEC_UNSPECIFIED = MeasureSpec.makeMeasureSpec( 0, MeasureSpec.UNSPECIFIED); @@ -334,6 +303,122 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { } } + private static class KeyDrawParams { + // XML attributes + public final int mKeyTextColor; + public final int mKeyTextInactivatedColor; + public final Typeface mKeyTextStyle; + public final float mKeyLabelHorizontalPadding; + public final float mKeyHintLetterPadding; + public final float mKeyUppercaseLetterPadding; + public final int mShadowColor; + public final float mShadowRadius; + public final Drawable mKeyBackground; + public final int mKeyHintLetterColor; + public final int mKeyHintLabelColor; + public final int mKeyUppercaseLetterInactivatedColor; + public final int mKeyUppercaseLetterActivatedColor; + + private final float mKeyLetterRatio; + private final float mKeyLargeLetterRatio; + private final float mKeyLabelRatio; + private final float mKeyHintLetterRatio; + private final float mKeyUppercaseLetterRatio; + private final float mKeyHintLabelRatio; + + public final Rect mPadding = new Rect(); + public int mKeyLetterSize; + public int mKeyLargeLetterSize; + public int mKeyLabelSize; + public int mKeyHintLetterSize; + public int mKeyUppercaseLetterSize; + public int mKeyHintLabelSize; + + public KeyDrawParams(TypedArray a) { + mKeyBackground = a.getDrawable(R.styleable.KeyboardView_keyBackground); + mKeyLetterRatio = getRatio(a, R.styleable.KeyboardView_keyLetterRatio); + mKeyLargeLetterRatio = getRatio(a, R.styleable.KeyboardView_keyLargeLetterRatio); + mKeyLabelRatio = getRatio(a, R.styleable.KeyboardView_keyLabelRatio); + mKeyHintLetterRatio = getRatio(a, R.styleable.KeyboardView_keyHintLetterRatio); + mKeyUppercaseLetterRatio = getRatio(a, + R.styleable.KeyboardView_keyUppercaseLetterRatio); + mKeyHintLabelRatio = getRatio(a, R.styleable.KeyboardView_keyHintLabelRatio); + mKeyLabelHorizontalPadding = a.getDimension( + R.styleable.KeyboardView_keyLabelHorizontalPadding, 0); + mKeyHintLetterPadding = a.getDimension( + R.styleable.KeyboardView_keyHintLetterPadding, 0); + mKeyUppercaseLetterPadding = a.getDimension( + R.styleable.KeyboardView_keyUppercaseLetterPadding, 0); + mKeyTextColor = a.getColor(R.styleable.KeyboardView_keyTextColor, 0xFF000000); + mKeyTextInactivatedColor = a.getColor( + R.styleable.KeyboardView_keyTextInactivatedColor, 0xFF000000); + mKeyHintLetterColor = a.getColor(R.styleable.KeyboardView_keyHintLetterColor, 0); + mKeyHintLabelColor = a.getColor(R.styleable.KeyboardView_keyHintLabelColor, 0); + mKeyUppercaseLetterInactivatedColor = a.getColor( + R.styleable.KeyboardView_keyUppercaseLetterInactivatedColor, 0); + mKeyUppercaseLetterActivatedColor = a.getColor( + R.styleable.KeyboardView_keyUppercaseLetterActivatedColor, 0); + mKeyTextStyle = Typeface.defaultFromStyle( + a.getInt(R.styleable.KeyboardView_keyTextStyle, Typeface.NORMAL)); + mShadowColor = a.getColor(R.styleable.KeyboardView_shadowColor, 0); + mShadowRadius = a.getFloat(R.styleable.KeyboardView_shadowRadius, 0f); + + mKeyBackground.getPadding(mPadding); + } + + public void updateKeyHeight(int keyHeight) { + mKeyLetterSize = (int)(keyHeight * mKeyLetterRatio); + mKeyLargeLetterSize = (int)(keyHeight * mKeyLargeLetterRatio); + mKeyLabelSize = (int)(keyHeight * mKeyLabelRatio); + mKeyHintLetterSize = (int)(keyHeight * mKeyHintLetterRatio); + mKeyUppercaseLetterSize = (int)(keyHeight * mKeyUppercaseLetterRatio); + mKeyHintLabelSize = (int)(keyHeight * mKeyHintLabelRatio); + } + } + + private static class KeyPreviewDrawParams { + // XML attributes. + public final Drawable mPreviewBackground; + public final Drawable mPreviewLeftBackground; + public final Drawable mPreviewRightBackground; + public final Drawable mPreviewSpacebarBackground; + public final int mPreviewTextColor; + public final int mPreviewOffset; + public final int mPreviewHeight; + public final Typeface mKeyTextStyle; + + private final float mPreviewTextRatio; + private final float mKeyLetterRatio; + + public int mPreviewTextSize; + public int mKeyLetterSize; + public final int[] mCoordinates = new int[2]; + + public KeyPreviewDrawParams(TypedArray a, KeyDrawParams keyDrawParams) { + mPreviewBackground = a.getDrawable(R.styleable.KeyboardView_keyPreviewBackground); + mPreviewLeftBackground = a.getDrawable( + R.styleable.KeyboardView_keyPreviewLeftBackground); + mPreviewRightBackground = a.getDrawable( + R.styleable.KeyboardView_keyPreviewRightBackground); + mPreviewSpacebarBackground = a.getDrawable( + R.styleable.KeyboardView_keyPreviewSpacebarBackground); + mPreviewOffset = a.getDimensionPixelOffset( + R.styleable.KeyboardView_keyPreviewOffset, 0); + mPreviewHeight = a.getDimensionPixelSize( + R.styleable.KeyboardView_keyPreviewHeight, 80); + mPreviewTextRatio = getRatio(a, R.styleable.KeyboardView_keyPreviewTextRatio); + mPreviewTextColor = a.getColor(R.styleable.KeyboardView_keyPreviewTextColor, 0); + + mKeyLetterRatio = keyDrawParams.mKeyLetterRatio; + mKeyTextStyle = keyDrawParams.mKeyTextStyle; + } + + public void updateKeyHeight(int keyHeight) { + mPreviewTextSize = (int)(keyHeight * mPreviewTextRatio); + mKeyLetterSize = (int)(keyHeight * mKeyLetterRatio); + } + } + public KeyboardView(Context context, AttributeSet attrs) { this(context, attrs, R.attr.keyboardViewStyle); } @@ -344,49 +429,20 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { final TypedArray a = context.obtainStyledAttributes( attrs, R.styleable.KeyboardView, defStyle, R.style.KeyboardView); - mKeyBackground = a.getDrawable(R.styleable.KeyboardView_keyBackground); + mKeyDrawParams = new KeyDrawParams(a); + mKeyPreviewDrawParams = new KeyPreviewDrawParams(a, mKeyDrawParams); mKeyHysteresisDistance = a.getDimensionPixelOffset( R.styleable.KeyboardView_keyHysteresisDistance, 0); mVerticalCorrection = a.getDimensionPixelOffset( R.styleable.KeyboardView_verticalCorrection, 0); - mPreviewTextColor = a.getColor(R.styleable.KeyboardView_keyPreviewTextColor, 0); final int previewLayout = a.getResourceId(R.styleable.KeyboardView_keyPreviewLayout, 0); if (previewLayout != 0) { mPreviewText = (TextView) LayoutInflater.from(context).inflate(previewLayout, null); - mPreviewText.setTextColor(mPreviewTextColor); } else { mPreviewText = null; mShowKeyPreviewPopup = false; } - mPreviewBackground = a.getDrawable(R.styleable.KeyboardView_keyPreviewBackground); - mPreviewLeftBackground = a.getDrawable(R.styleable.KeyboardView_keyPreviewLeftBackground); - mPreviewRightBackground = a.getDrawable(R.styleable.KeyboardView_keyPreviewRightBackground); - mPreviewSpacebarBackground = a.getDrawable( - R.styleable.KeyboardView_keyPreviewSpacebarBackground); - mPreviewOffset = a.getDimensionPixelOffset(R.styleable.KeyboardView_keyPreviewOffset, 0); - mPreviewHeight = a.getDimensionPixelSize(R.styleable.KeyboardView_keyPreviewHeight, 80); - mKeyLetterRatio = getRatio(a, R.styleable.KeyboardView_keyLetterRatio); - mKeyLargeLetterRatio = getRatio(a, R.styleable.KeyboardView_keyLargeLetterRatio); - mKeyLabelRatio = getRatio(a, R.styleable.KeyboardView_keyLabelRatio); - mKeyHintLetterRatio = getRatio(a, R.styleable.KeyboardView_keyHintLetterRatio); - mKeyUppercaseLetterRatio = getRatio(a, - R.styleable.KeyboardView_keyUppercaseLetterRatio); - mKeyHintLabelRatio = getRatio(a, R.styleable.KeyboardView_keyHintLabelRatio); - mPreviewTextRatio = getRatio(a, R.styleable.KeyboardView_keyPreviewTextRatio); - mKeyTextColor = a.getColor(R.styleable.KeyboardView_keyTextColor, 0xFF000000); - mKeyTextInactivatedColor = a.getColor( - R.styleable.KeyboardView_keyTextInactivatedColor, 0xFF000000); - mKeyHintLetterColor = a.getColor(R.styleable.KeyboardView_keyHintLetterColor, 0); - mKeyHintLabelColor = a.getColor(R.styleable.KeyboardView_keyHintLabelColor, 0); - mKeyUppercaseLetterInactivatedColor = a.getColor( - R.styleable.KeyboardView_keyUppercaseLetterInactivatedColor, 0); - mKeyUppercaseLetterActivatedColor = a.getColor( - R.styleable.KeyboardView_keyUppercaseLetterActivatedColor, 0); - mKeyTextStyle = Typeface.defaultFromStyle( - a.getInt(R.styleable.KeyboardView_keyTextStyle, Typeface.NORMAL)); mPopupLayout = a.getResourceId(R.styleable.KeyboardView_popupLayout, 0); - mShadowColor = a.getColor(R.styleable.KeyboardView_shadowColor, 0); - mShadowRadius = a.getFloat(R.styleable.KeyboardView_shadowRadius, 0f); // TODO: Use Theme (android.R.styleable.Theme_backgroundDimAmount) mBackgroundDimAmount = a.getFloat(R.styleable.KeyboardView_backgroundDimAmount, 0.5f); a.recycle(); @@ -395,15 +451,11 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { mDelayBeforePreview = res.getInteger(R.integer.config_delay_before_preview); mDelayAfterPreview = res.getInteger(R.integer.config_delay_after_preview); - mKeyLabelHorizontalPadding = (int)res.getDimension( - R.dimen.key_label_horizontal_alignment_padding); mPaint.setAntiAlias(true); mPaint.setTextAlign(Align.CENTER); mPaint.setAlpha(255); - mKeyBackground.getPadding(mPadding); - mSwipeThreshold = (int) (500 * res.getDisplayMetrics().density); // TODO: Refer to frameworks/base/core/res/res/values/config.xml mDisambiguateSwipe = res.getBoolean(R.bool.config_swipeDisambiguation); @@ -539,14 +591,8 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { mKeyDetector.setProximityThreshold(keyboard.getMostCommonKeyWidth()); mPopupPanelCache.clear(); final int keyHeight = keyboard.getRowHeight() - keyboard.getVerticalGap(); - mKeyLetterSize = (int)(keyHeight * mKeyLetterRatio); - mKeyLargeLetterSize = (int)(keyHeight * mKeyLargeLetterRatio); - mKeyLabelSize = (int)(keyHeight * mKeyLabelRatio); - mKeyHintLetterSize = (int)(keyHeight * mKeyHintLetterRatio); - mKeyUppercaseLetterSize = (int)( - keyHeight * mKeyUppercaseLetterRatio); - mKeyHintLabelSize = (int)(keyHeight * mKeyHintLabelRatio); - mPreviewTextSize = (int)(keyHeight * mPreviewTextRatio); + mKeyDrawParams.updateKeyHeight(keyHeight); + mKeyPreviewDrawParams.updateKeyHeight(keyHeight); } /** @@ -605,14 +651,6 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { return mKeyDetector.isProximityCorrectionEnabled(); } - protected CharSequence adjustCase(CharSequence label) { - if (mKeyboard.isShiftedOrShiftLocked() && label != null && label.length() < 3 - && Character.isLowerCase(label.charAt(0))) { - return label.toString().toUpperCase(mKeyboard.mId.mLocale); - } - return label; - } - @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // Round up a little @@ -663,13 +701,24 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { if (mKeyboard == null) return; + final boolean isManualTemporaryUpperCase = mKeyboard.isManualTemporaryUpperCase(); + final KeyDrawParams params = mKeyDrawParams; if (mInvalidatedKey != null && mInvalidatedKeyRect.contains(mDirtyRect)) { // Draw a single key. - onBufferDrawKey(canvas, mInvalidatedKey); + final int keyDrawX = mInvalidatedKey.mX + mInvalidatedKey.mVisualInsetsLeft + + getPaddingLeft(); + final int keyDrawY = mInvalidatedKey.mY + getPaddingTop(); + canvas.translate(keyDrawX, keyDrawY); + onBufferDrawKey(mInvalidatedKey, canvas, mPaint, params, isManualTemporaryUpperCase); + canvas.translate(-keyDrawX, -keyDrawY); } else { // Draw all keys. for (final Key key : mKeyboard.getKeys()) { - onBufferDrawKey(canvas, key); + final int keyDrawX = key.mX + key.mVisualInsetsLeft + getPaddingLeft(); + final int keyDrawY = key.mY + getPaddingTop(); + canvas.translate(keyDrawX, keyDrawY); + onBufferDrawKey(key, canvas, mPaint, params, isManualTemporaryUpperCase); + canvas.translate(-keyDrawX, -keyDrawY); } } @@ -702,58 +751,61 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { mDirtyRect.setEmpty(); } - private void onBufferDrawKey(final Canvas canvas, final Key key) { - final Paint paint = mPaint; - final Drawable keyBackground = mKeyBackground; - final Rect padding = mPadding; - final int kbdPaddingLeft = getPaddingLeft(); - final int kbdPaddingTop = getPaddingTop(); - final int keyDrawX = key.mX + key.mVisualInsetsLeft; - final int keyDrawWidth = key.mWidth - key.mVisualInsetsLeft - key.mVisualInsetsRight; - final int centerX = (keyDrawWidth + padding.left - padding.right) / 2; - final float centerY = (key.mHeight + padding.top - padding.bottom) / 2; - final int rowHeight = padding.top + key.mHeight; - final boolean isManualTemporaryUpperCase = mKeyboard.isManualTemporaryUpperCase(); - - canvas.translate(keyDrawX + kbdPaddingLeft, key.mY + kbdPaddingTop); - + private static void onBufferDrawKey(final Key key, final Canvas canvas, Paint paint, + KeyDrawParams params, boolean isManualTemporaryUpperCase) { + final boolean debugShowAlign = LatinImeLogger.sVISUALDEBUG; // Draw key background. + final int bgWidth = key.mWidth - key.mVisualInsetsLeft - key.mVisualInsetsRight + + params.mPadding.left + params.mPadding.right; + final int bgHeight = key.mHeight + params.mPadding.top + params.mPadding.bottom; + final int bgX = -params.mPadding.left; + final int bgY = -params.mPadding.top; final int[] drawableState = key.getCurrentDrawableState(); - keyBackground.setState(drawableState); - final Rect bounds = keyBackground.getBounds(); - if (keyDrawWidth != bounds.right || key.mHeight != bounds.bottom) { - keyBackground.setBounds(0, 0, keyDrawWidth, key.mHeight); + final Drawable background = params.mKeyBackground; + background.setState(drawableState); + final Rect bounds = background.getBounds(); + if (bgWidth != bounds.right || bgHeight != bounds.bottom) { + background.setBounds(0, 0, bgWidth, bgHeight); + } + canvas.translate(bgX, bgY); + background.draw(canvas); + if (debugShowAlign) { + drawRectangle(canvas, 0, 0, bgWidth, bgHeight, 0x80c00000, new Paint()); + } + canvas.translate(-bgX, -bgY); + + // Draw key top visuals. + final int keyWidth = key.mWidth; + final int keyHeight = key.mHeight; + final float centerX = keyWidth * 0.5f; + final float centerY = keyHeight * 0.5f; + + if (debugShowAlign) { + drawRectangle(canvas, 0, 0, keyWidth, keyHeight, 0x800000c0, new Paint()); } - keyBackground.draw(canvas); // Draw key label. - int positionX = centerX; + float positionX = centerX; if (key.mLabel != null) { // Switch the character to uppercase if shift is pressed - final CharSequence label = key.mLabel == null ? null : adjustCase(key.mLabel); + final CharSequence label = key.getCaseAdjustedLabel(); // For characters, use large font. For labels like "Done", use smaller font. - paint.setTypeface(key.selectTypeface(mKeyTextStyle)); - final int labelSize = key.selectTextSize(mKeyLetterSize, mKeyLargeLetterSize, - mKeyLabelSize, mKeyHintLabelSize); + paint.setTypeface(key.selectTypeface(params.mKeyTextStyle)); + final int labelSize = key.selectTextSize(params.mKeyLetterSize, + params.mKeyLargeLetterSize, params.mKeyLabelSize, params.mKeyHintLabelSize); paint.setTextSize(labelSize); - final int labelCharHeight = getLabelCharHeight(paint); - final int labelCharWidth = getLabelCharWidth(paint); + final float labelCharHeight = getCharHeight(paint); + final float labelCharWidth = getCharWidth(paint); // Vertical label text alignment. - final float baseline; - // TODO: Generalize the following calculations. - if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_BOTTOM) != 0) { - baseline = key.mHeight - labelCharHeight * KEY_LABEL_VERTICAL_PADDING_FACTOR; - } else { // Align center - baseline = centerY + labelCharHeight * KEY_LABEL_VERTICAL_ADJUSTMENT_FACTOR_CENTER; - } + final float baseline = centerY + labelCharHeight / 2; // Horizontal label text alignment if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_LEFT) != 0) { - positionX = padding.left + mKeyLabelHorizontalPadding; + positionX = (int)params.mKeyLabelHorizontalPadding; paint.setTextAlign(Align.LEFT); } else if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_RIGHT) != 0) { - positionX = keyDrawWidth - mKeyLabelHorizontalPadding - padding.right; + positionX = keyWidth - (int)params.mKeyLabelHorizontalPadding; paint.setTextAlign(Align.RIGHT); } else if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_LEFT_OF_CENTER) != 0) { // TODO: Parameterise this? @@ -763,20 +815,15 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { positionX = centerX; paint.setTextAlign(Align.CENTER); } - if (DEBUG_SHOW_ALIGN) { - final Paint line = new Paint(); - drawHorizontalLine(canvas, (int)baseline, keyDrawWidth, 0xc0008000, line); - drawVerticalLine(canvas, positionX, rowHeight, 0xc0800080, line); - } if (key.hasUppercaseLetter() && isManualTemporaryUpperCase) { - paint.setColor(mKeyTextInactivatedColor); + paint.setColor(params.mKeyTextInactivatedColor); } else { - paint.setColor(mKeyTextColor); + paint.setColor(params.mKeyTextColor); } if (key.isEnabled()) { // Set a drop shadow for the text - paint.setShadowLayer(mShadowRadius, 0, 0, mShadowColor); + paint.setShadowLayer(params.mShadowRadius, 0, 0, params.mShadowColor); } else { // Make label invisible paint.setColor(Color.TRANSPARENT); @@ -785,6 +832,11 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { // Turn off drop shadow paint.setShadowLayer(0, 0, 0, 0); + if (debugShowAlign) { + final Paint line = new Paint(); + drawHorizontalLine(canvas, baseline, keyWidth, 0xc0008000, line); + drawVerticalLine(canvas, positionX, keyHeight, 0xc0800080, line); + } } // Draw hint label. @@ -792,31 +844,44 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { final CharSequence hint = key.mHintLabel; final int hintColor; final int hintSize; - if (key.hasUppercaseLetter()) { - hintColor = isManualTemporaryUpperCase ? mKeyUppercaseLetterActivatedColor - : mKeyUppercaseLetterInactivatedColor; - hintSize = mKeyUppercaseLetterSize; - } else if (key.hasHintLabel()) { - hintColor = mKeyHintLabelColor; - hintSize = mKeyHintLabelSize; + if (key.hasHintLabel()) { + hintColor = params.mKeyHintLabelColor; + hintSize = params.mKeyHintLabelSize; paint.setTypeface(Typeface.DEFAULT); - } else { - hintColor = mKeyHintLetterColor; - hintSize = mKeyHintLetterSize; + } else if (key.hasUppercaseLetter()) { + hintColor = isManualTemporaryUpperCase + ? params.mKeyUppercaseLetterActivatedColor + : params.mKeyUppercaseLetterInactivatedColor; + hintSize = params.mKeyUppercaseLetterSize; + } else { // key.hasHintLetter() + hintColor = params.mKeyHintLetterColor; + hintSize = params.mKeyHintLetterSize; } paint.setColor(hintColor); paint.setTextSize(hintSize); - // Note: padding.right for drawX? + final float hintCharWidth = getCharWidth(paint); final float hintX, hintY; if (key.hasHintLabel()) { // TODO: Generalize the following calculations. - hintX = positionX + getLabelCharWidth(paint) * 2; - hintY = centerY + getLabelCharHeight(paint) / 2; - } else { - hintX = keyDrawWidth - getLabelCharWidth(paint); - hintY = -paint.ascent() + padding.top; + hintX = positionX + hintCharWidth * 2; + hintY = centerY + getCharHeight(paint) / 2; + paint.setTextAlign(Align.LEFT); + } else if (key.hasUppercaseLetter()) { + hintX = keyWidth - params.mKeyUppercaseLetterPadding - hintCharWidth / 2; + hintY = -paint.ascent() + params.mKeyUppercaseLetterPadding; + paint.setTextAlign(Align.CENTER); + } else { // key.hasHintLetter() + hintX = keyWidth - params.mKeyHintLetterPadding - hintCharWidth / 2; + hintY = -paint.ascent() + params.mKeyHintLetterPadding; + paint.setTextAlign(Align.CENTER); } canvas.drawText(hint, 0, hint.length(), hintX, hintY, paint); + + if (debugShowAlign) { + final Paint line = new Paint(); + drawHorizontalLine(canvas, (int)hintY, keyWidth, 0xc0808000, line); + drawVerticalLine(canvas, (int)hintX, keyHeight, 0xc0808000, line); + } } // Draw key icon. @@ -825,63 +890,67 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { final int iconWidth = icon.getIntrinsicWidth(); final int iconHeight = icon.getIntrinsicHeight(); final int iconX, alignX; - final int iconY = (key.mHeight + padding.top - padding.bottom - iconHeight) / 2; + final int iconY = (keyHeight - iconHeight) / 2; if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_LEFT) != 0) { - iconX = padding.left + mKeyLabelHorizontalPadding; + iconX = (int)params.mKeyLabelHorizontalPadding; alignX = iconX; } else if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_RIGHT) != 0) { - iconX = keyDrawWidth - padding.right - mKeyLabelHorizontalPadding - iconWidth; + iconX = keyWidth - (int)params.mKeyLabelHorizontalPadding - iconWidth; alignX = iconX + iconWidth; } else { // Align center - iconX = (keyDrawWidth + padding.left - padding.right - iconWidth) / 2; + iconX = (keyWidth - iconWidth) / 2; alignX = iconX + iconWidth / 2; } drawIcon(canvas, icon, iconX, iconY, iconWidth, iconHeight); - if (DEBUG_SHOW_ALIGN) { + + if (debugShowAlign) { final Paint line = new Paint(); - drawVerticalLine(canvas, alignX, rowHeight, 0xc0800080, line); + drawVerticalLine(canvas, alignX, keyHeight, 0xc0800080, line); drawRectangle(canvas, iconX, iconY, iconWidth, iconHeight, 0x80c00000, line); } } // Draw popup hint "..." at the bottom right corner of the key. if (key.hasPopupHint()) { - paint.setTextSize(mKeyHintLetterSize); - paint.setColor(mKeyHintLabelColor); - final int hintX = keyDrawWidth - getLabelCharWidth(paint); - // Using y-coordinate "key.mHeight - paint.descent()" draws "..." just on the bottom - // edge of the key. So we use slightly higher position by multiply descent length by 2. - final int hintY = key.mHeight - (int)paint.descent() * 2; + paint.setTextSize(params.mKeyHintLetterSize); + paint.setColor(params.mKeyHintLabelColor); + paint.setTextAlign(Align.CENTER); + final float hintX = keyWidth - params.mKeyHintLetterPadding - getCharWidth(paint) / 2; + final float hintY = keyHeight - params.mKeyHintLetterPadding; canvas.drawText(POPUP_HINT_CHAR, hintX, hintY, paint); - } - canvas.translate(-keyDrawX - kbdPaddingLeft, -key.mY - kbdPaddingTop); + if (debugShowAlign) { + final Paint line = new Paint(); + drawHorizontalLine(canvas, (int)hintY, keyWidth, 0xc0808000, line); + drawVerticalLine(canvas, (int)hintX, keyHeight, 0xc0808000, line); + } + } } // This method is currently being used only by MiniKeyboardBuilder public int getDefaultLabelSizeAndSetPaint(Paint paint) { // For characters, use large font. For labels like "Done", use small font. - final int labelSize = mKeyLabelSize; + final int labelSize = mKeyDrawParams.mKeyLabelSize; paint.setTextSize(labelSize); - paint.setTypeface(mKeyTextStyle); + paint.setTypeface(mKeyDrawParams.mKeyTextStyle); return labelSize; } - private final Rect mTextBounds = new Rect(); + private static final Rect sTextBounds = new Rect(); - private int getLabelCharHeight(Paint paint) { + private static float getCharHeight(Paint paint) { final int labelSize = (int)paint.getTextSize(); - final Integer cachedValue = mTextHeightCache.get(labelSize); + final Float cachedValue = sTextHeightCache.get(labelSize); if (cachedValue != null) return cachedValue; - paint.getTextBounds(KEY_LABEL_REFERENCE_CHAR, 0, 1, mTextBounds); - final int height = mTextBounds.height(); - mTextHeightCache.put(labelSize, height); + paint.getTextBounds(KEY_LABEL_REFERENCE_CHAR, 0, 1, sTextBounds); + final float height = sTextBounds.height(); + sTextHeightCache.put(labelSize, height); return height; } - private int getLabelCharWidth(Paint paint) { + private static float getCharWidth(Paint paint) { final int labelSize = (int)paint.getTextSize(); final Typeface face = paint.getTypeface(); final Integer key; @@ -895,13 +964,13 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { key = labelSize; } - final Integer cached = mTextWidthCache.get(key); + final Float cached = sTextWidthCache.get(key); if (cached != null) return cached; - paint.getTextBounds(KEY_LABEL_REFERENCE_CHAR, 0, 1, mTextBounds); - final int width = mTextBounds.width(); - mTextWidthCache.put(key, width); + paint.getTextBounds(KEY_LABEL_REFERENCE_CHAR, 0, 1, sTextBounds); + final float width = sTextBounds.width(); + sTextWidthCache.put(key, width); return width; } @@ -913,21 +982,21 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { canvas.translate(-x, -y); } - private static void drawHorizontalLine(Canvas canvas, int y, int w, int color, Paint paint) { + private static void drawHorizontalLine(Canvas canvas, float y, float w, int color, Paint paint) { paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(1.0f); paint.setColor(color); canvas.drawLine(0, y, w, y, paint); } - private static void drawVerticalLine(Canvas canvas, int x, int h, int color, Paint paint) { + private static void drawVerticalLine(Canvas canvas, float x, float h, int color, Paint paint) { paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(1.0f); paint.setColor(color); canvas.drawLine(x, 0, x, h, paint); } - private static void drawRectangle(Canvas canvas, int x, int y, int w, int h, int color, + private static void drawRectangle(Canvas canvas, float x, float y, float w, float h, int color, Paint paint) { paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(1.0f); @@ -997,7 +1066,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { return; mHandler.cancelAllDismissKeyPreviews(); - + final KeyPreviewDrawParams params = mKeyPreviewDrawParams; final int keyDrawX = key.mX + key.mVisualInsetsLeft; final int keyDrawWidth = key.mWidth - key.mVisualInsetsLeft - key.mVisualInsetsRight; // What we show as preview should match what we show on key top in onBufferDraw(). @@ -1005,13 +1074,13 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { // TODO Should take care of temporaryShiftLabel here. previewText.setCompoundDrawables(null, null, null, null); if (key.mLabel.length() > 1) { - previewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mKeyLetterSize); + previewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, params.mKeyLetterSize); previewText.setTypeface(Typeface.DEFAULT_BOLD); } else { - previewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mPreviewTextSize); - previewText.setTypeface(mKeyTextStyle); + previewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, params.mPreviewTextSize); + previewText.setTypeface(params.mKeyTextStyle); } - previewText.setText(adjustCase(tracker.getPreviewText(key))); + previewText.setText(key.getCaseAdjustedLabel()); } else { final Drawable previewIcon = key.getPreviewIcon(); previewText.setCompoundDrawables(null, null, null, @@ -1019,29 +1088,31 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { previewText.setText(null); } if (key.mCode == Keyboard.CODE_SPACE) { - previewText.setBackgroundDrawable(mPreviewSpacebarBackground); + previewText.setBackgroundDrawable(params.mPreviewSpacebarBackground); } else { - previewText.setBackgroundDrawable(mPreviewBackground); + previewText.setBackgroundDrawable(params.mPreviewBackground); } previewText.measure(MEASURESPEC_UNSPECIFIED, MEASURESPEC_UNSPECIFIED); final int previewWidth = Math.max(previewText.getMeasuredWidth(), keyDrawWidth + previewText.getPaddingLeft() + previewText.getPaddingRight()); - final int previewHeight = mPreviewHeight; - getLocationInWindow(mCoordinates); - int previewX = keyDrawX - (previewWidth - keyDrawWidth) / 2 + mCoordinates[0]; - final int previewY = key.mY - previewHeight + mCoordinates[1] + mPreviewOffset; - if (previewX < 0 && mPreviewLeftBackground != null) { - previewText.setBackgroundDrawable(mPreviewLeftBackground); + final int previewHeight = params.mPreviewHeight; + getLocationInWindow(params.mCoordinates); + int previewX = keyDrawX - (previewWidth - keyDrawWidth) / 2 + params.mCoordinates[0]; + final int previewY = key.mY - previewHeight + + params.mCoordinates[1] + params.mPreviewOffset; + if (previewX < 0 && params.mPreviewLeftBackground != null) { + previewText.setBackgroundDrawable(params.mPreviewLeftBackground); previewX = 0; - } else if (previewX + previewWidth > getWidth() && mPreviewRightBackground != null) { - previewText.setBackgroundDrawable(mPreviewRightBackground); + } else if (previewX + previewWidth > getWidth() && params.mPreviewRightBackground != null) { + previewText.setBackgroundDrawable(params.mPreviewRightBackground); previewX = getWidth() - previewWidth; } // Set the preview background state previewText.getBackground().setState( key.mPopupCharacters != null ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET); + previewText.setTextColor(params.mPreviewTextColor); FrameLayoutCompatUtils.placeViewAt( previewText, previewX, previewY, previewWidth, previewHeight); previewText.setVisibility(VISIBLE); diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java index 9d58f69ff5..d925b8c333 100644 --- a/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java +++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java @@ -29,6 +29,7 @@ import android.graphics.PorterDuff; import android.graphics.Rect; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; +import android.text.TextUtils; import com.android.inputmethod.keyboard.internal.SlidingLocaleDrawable; import com.android.inputmethod.latin.R; @@ -182,6 +183,15 @@ public class LatinKeyboard extends Keyboard { return mSpaceKey; } + @Override + public CharSequence adjustLabelCase(CharSequence label) { + if (isAlphaKeyboard() && isShiftedOrShiftLocked() && !TextUtils.isEmpty(label) + && label.length() < 3 && Character.isLowerCase(label.charAt(0))) { + return label.toString().toUpperCase(mId.mLocale); + } + return label; + } + private void updateSpacebarForLocale(boolean isAutoCorrection) { if (mSpaceKey == null) return; diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java index 901df6ab72..75d022b520 100644 --- a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java @@ -18,7 +18,6 @@ package com.android.inputmethod.keyboard; import android.content.Context; import android.graphics.Canvas; -import android.text.TextUtils; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; @@ -113,18 +112,6 @@ public class LatinKeyboardView extends KeyboardView { return true; } - @Override - protected CharSequence adjustCase(CharSequence label) { - LatinKeyboard keyboard = getLatinKeyboard(); - if (keyboard.isAlphaKeyboard() - && keyboard.isShiftedOrShiftLocked() - && !TextUtils.isEmpty(label) && label.length() < 3 - && Character.isLowerCase(label.charAt(0))) { - return label.toString().toUpperCase(keyboard.mId.mLocale); - } - return label; - } - /** * This function checks to see if we need to handle any sudden jumps in the pointer location * that could be due to a multi-touch being treated as a move by the firmware or hardware. diff --git a/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java b/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java index 2d6766f2d2..44f9f195cf 100644 --- a/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java +++ b/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java @@ -18,13 +18,22 @@ package com.android.inputmethod.keyboard; import android.content.Context; -import java.util.List; - public class MiniKeyboard extends Keyboard { private int mDefaultKeyCoordX; public MiniKeyboard(Context context, int xmlLayoutResId, Keyboard parentKeyboard) { - super(context, xmlLayoutResId, null, parentKeyboard.getMinWidth()); + super(context, xmlLayoutResId, parentKeyboard.mId.cloneAsMiniKeyboard(), + parentKeyboard.getMinWidth()); + // HACK: Current mini keyboard design totally relies on the 9-patch padding about horizontal + // and vertical key spacing. To keep the visual of mini keyboard as is, these hacks are + // needed to keep having the same horizontal and vertical key spacing. + setHorizontalGap(0); + setVerticalGap(parentKeyboard.getVerticalGap() / 2); + + // TODO: When we have correctly padded key background 9-patch drawables for mini keyboard, + // revert the above hacks and uncomment the following lines. + //setHorizontalGap(parentKeyboard.getHorizontalGap()); + //setVerticalGap(parentKeyboard.getVerticalGap()); } public void setDefaultCoordX(int pos) { @@ -34,19 +43,4 @@ public class MiniKeyboard extends Keyboard { public int getDefaultCoordX() { return mDefaultKeyCoordX; } - - public boolean isOneRowKeyboard() { - final List<Key> keys = getKeys(); - if (keys.size() == 0) return false; - final int edgeFlags = keys.get(0).mEdgeFlags; - // HACK: The first key of mini keyboard which was inflated from xml and has multiple rows, - // does not have both top and bottom edge flags on at the same time. On the other hand, - // the first key of mini keyboard that was created with popupCharacters must have both top - // and bottom edge flags on. - // When you want to use one row mini-keyboard from xml file, make sure that the row has - // both top and bottom edge flags set. - return (edgeFlags & Keyboard.EDGE_TOP) != 0 - && (edgeFlags & Keyboard.EDGE_BOTTOM) != 0; - - } } diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java index 8b03360bf3..6228cc8b2c 100644 --- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java +++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java @@ -686,10 +686,6 @@ public class PointerTracker { } } - public CharSequence getPreviewText(Key key) { - return key.mLabel; - } - private long mPreviousEventTime; private void printTouchEvent(String title, int x, int y, long eventTime) { diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardParser.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardParser.java index a6708171f9..3e433361a5 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardParser.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardParser.java @@ -195,6 +195,7 @@ public class KeyboardParser { private void parseKeyboardAttributes(XmlResourceParser parser) { final Keyboard keyboard = mKeyboard; + final int displayWidth = keyboard.getDisplayWidth(); final TypedArray keyboardAttr = mContext.obtainStyledAttributes( Xml.asAttributeSet(parser), R.styleable.Keyboard, R.attr.keyboardStyle, R.style.Keyboard); @@ -211,7 +212,6 @@ public class KeyboardParser { if (minKeyboardHeight < 0) { // Specified fraction was negative, so it should be calculated against display // width. - final int displayWidth = keyboard.getDisplayWidth(); minKeyboardHeight = -getDimensionOrFraction(keyboardAttr, R.styleable.Keyboard_minKeyboardHeight, displayWidth, displayWidth / 2); } @@ -219,20 +219,19 @@ public class KeyboardParser { // minKeyboardHeight. final int height = Math.max( Math.min(keyboardHeight, maxKeyboardHeight), minKeyboardHeight); - final int width = keyboard.getDisplayWidth(); + keyboard.setKeyboardHeight(height); keyboard.setKeyWidth(getDimensionOrFraction(keyboardAttr, - R.styleable.Keyboard_keyWidth, width, width / 10)); + R.styleable.Keyboard_keyWidth, displayWidth, displayWidth / 10)); keyboard.setRowHeight(getDimensionOrFraction(keyboardAttr, R.styleable.Keyboard_rowHeight, height, 50)); keyboard.setHorizontalGap(getDimensionOrFraction(keyboardAttr, - R.styleable.Keyboard_horizontalGap, width, 0)); + R.styleable.Keyboard_horizontalGap, displayWidth, 0)); keyboard.setVerticalGap(getDimensionOrFraction(keyboardAttr, R.styleable.Keyboard_verticalGap, height, 0)); keyboard.setPopupKeyboardResId(keyboardAttr.getResourceId( R.styleable.Keyboard_popupKeyboardTemplate, 0)); - keyboard.setMaxPopupKeyboardColumn(keyAttr.getInt( R.styleable.Keyboard_Key_maxPopupKeyboardColumn, 5)); @@ -352,18 +351,18 @@ public class KeyboardParser { R.styleable.Keyboard); if (keyboardAttr.hasValue(R.styleable.Keyboard_horizontalGap)) throw new IllegalAttribute(parser, "horizontalGap"); - final int defaultWidth = (row != null) ? row.mDefaultWidth : 0; + final int keyboardWidth = mKeyboard.getDisplayWidth(); final int keyWidth = getDimensionOrFraction(keyboardAttr, R.styleable.Keyboard_keyWidth, - mKeyboard.getDisplayWidth(), defaultWidth); + keyboardWidth, row.mDefaultWidth); keyboardAttr.recycle(); final TypedArray keyAttr = mResources.obtainAttributes(Xml.asAttributeSet(parser), R.styleable.Keyboard_Key); int keyXPos = KeyboardParser.getDimensionOrFraction(keyAttr, - R.styleable.Keyboard_Key_keyXPos, mKeyboard.getDisplayWidth(), mCurrentX); + R.styleable.Keyboard_Key_keyXPos, keyboardWidth, mCurrentX); if (keyXPos < 0) { // If keyXPos is negative, the actual x-coordinate will be display_width + keyXPos. - keyXPos += mKeyboard.getDisplayWidth(); + keyXPos += keyboardWidth; } checkEndTag(TAG_SPACER, parser); -- GitLab