From 7f0befe1f0e346ec6468f229f337eda32e19f6d8 Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" <takaoka@google.com> Date: Tue, 23 Nov 2010 23:59:56 -0800 Subject: [PATCH] Update tablet keyboard layout to the latest design This change introduces shiftedIcon attribute for Key which specifies icon to draw the shift key while the key is in shifted state. This change also intriduces new configurable dimension value key_label_horizontal_alignment_padding which represents horizontal padding for left or right alignment of key label. Bug: 3216592 Bug: 3201839 Change-Id: I3aa7392227ce573c404517678e6340a8d1fcb328 --- .../btn_keyboard_key_dark_normal_holo.9.png | Bin 1327 -> 1297 bytes ...tn_keyboard_key_dark_normal_off_holo.9.png | Bin 1389 -> 1507 bytes ...btn_keyboard_key_dark_normal_on_holo.9.png | Bin 1408 -> 1827 bytes .../btn_keyboard_key_dark_pressed_holo.9.png | Bin 1321 -> 1435 bytes ...n_keyboard_key_dark_pressed_off_holo.9.png | Bin 1388 -> 1604 bytes ...tn_keyboard_key_dark_pressed_on_holo.9.png | Bin 1399 -> 1924 bytes .../btn_keyboard_key_light_normal_holo.9.png | Bin 1321 -> 1393 bytes .../btn_keyboard_key_light_pressed_holo.9.png | Bin 1324 -> 1493 bytes ...btn_keyboard_key_popup_selected_holo.9.png | Bin 0 -> 1018 bytes java/res/drawable-hdpi/key_hint_at_holo.9.png | Bin 1237 -> 1530 bytes .../key_hint_at_large_holo.9.png | Bin 362 -> 1639 bytes .../key_hint_exclamation_holo.9.png | Bin 1278 -> 1229 bytes .../key_hint_exclamation_large_holo.9.png | Bin 1841 -> 1308 bytes .../key_hint_question_holo.9.png | Bin 1392 -> 1330 bytes .../key_hint_question_large_holo.9.png | Bin 671 -> 1440 bytes .../drawable-hdpi/key_hint_quote_holo.9.png | Bin 1257 -> 1180 bytes .../key_hint_quote_large_holo.9.png | Bin 1714 -> 1216 bytes .../key_hint_underline_holo.9.png | Bin 1158 -> 1132 bytes .../keyboard_background_holo.9.png | Bin 0 -> 1107 bytes ...eyboard_key_feedback_background_holo.9.png | Bin 0 -> 1004 bytes ...keyboard_popup_panel_background_holo.9.png | Bin 0 -> 4311 bytes .../sym_keyboard_shift_locked_holo.png | Bin 0 -> 1480 bytes .../btn_keyboard_key_dark_normal_holo.9.png | Bin 1327 -> 1297 bytes ...tn_keyboard_key_dark_normal_off_holo.9.png | Bin 1389 -> 1507 bytes ...btn_keyboard_key_dark_normal_on_holo.9.png | Bin 1408 -> 1827 bytes .../btn_keyboard_key_dark_pressed_holo.9.png | Bin 1321 -> 1435 bytes ...n_keyboard_key_dark_pressed_off_holo.9.png | Bin 1388 -> 1604 bytes ...tn_keyboard_key_dark_pressed_on_holo.9.png | Bin 1399 -> 1924 bytes .../btn_keyboard_key_light_normal_holo.9.png | Bin 1321 -> 1393 bytes .../btn_keyboard_key_light_pressed_holo.9.png | Bin 1324 -> 1493 bytes ...btn_keyboard_key_popup_selected_holo.9.png | Bin 0 -> 1018 bytes java/res/drawable-mdpi/hint_popup_holo.9.png | Bin 0 -> 1266 bytes java/res/drawable-mdpi/key_hint_at_holo.9.png | Bin 1237 -> 1516 bytes .../key_hint_at_large_holo.9.png | Bin 362 -> 1639 bytes .../key_hint_exclamation_holo.9.png | Bin 1278 -> 1229 bytes .../key_hint_exclamation_large_holo.9.png | Bin 1841 -> 1308 bytes .../key_hint_question_holo.9.png | Bin 1392 -> 1330 bytes .../key_hint_question_large_holo.9.png | Bin 671 -> 1440 bytes .../drawable-mdpi/key_hint_quote_holo.9.png | Bin 1257 -> 1180 bytes .../key_hint_quote_large_holo.9.png | Bin 1714 -> 1216 bytes .../key_hint_underline_holo.9.png | Bin 1158 -> 1132 bytes .../key_hint_underline_large_holo.9.png | Bin 362 -> 1160 bytes .../keyboard_background_holo.9.png | Bin 0 -> 1084 bytes ...eyboard_key_feedback_background_holo.9.png | Bin 0 -> 1004 bytes ...rd_key_feedback_more_background_holo.9.png | Bin 0 -> 4445 bytes ...keyboard_popup_panel_background_holo.9.png | Bin 0 -> 4311 bytes .../sym_keyboard_delete_holo.png | Bin 0 -> 1464 bytes .../drawable-mdpi/sym_keyboard_num0_holo.png | Bin 0 -> 1759 bytes .../drawable-mdpi/sym_keyboard_num1_holo.png | Bin 0 -> 1268 bytes .../drawable-mdpi/sym_keyboard_num2_holo.png | Bin 0 -> 2403 bytes .../drawable-mdpi/sym_keyboard_num3_holo.png | Bin 0 -> 2143 bytes .../drawable-mdpi/sym_keyboard_num4_holo.png | Bin 0 -> 2063 bytes .../drawable-mdpi/sym_keyboard_num5_holo.png | Bin 0 -> 2025 bytes .../drawable-mdpi/sym_keyboard_num6_holo.png | Bin 0 -> 2502 bytes .../drawable-mdpi/sym_keyboard_num7_holo.png | Bin 0 -> 2527 bytes .../drawable-mdpi/sym_keyboard_num8_holo.png | Bin 0 -> 2226 bytes .../drawable-mdpi/sym_keyboard_num9_holo.png | Bin 0 -> 2696 bytes .../sym_keyboard_numbpound_holo.png | Bin 0 -> 1548 bytes .../sym_keyboard_numbstar_holo.png | Bin 0 -> 1414 bytes .../sym_keyboard_return_holo.png | Bin 0 -> 1417 bytes .../drawable-mdpi/sym_keyboard_shift_holo.png | Bin 0 -> 1681 bytes .../drawable-mdpi/sym_keyboard_shift_lock.png | Bin 3188 -> 0 bytes .../sym_keyboard_shift_locked_holo.png | Bin 0 -> 1480 bytes .../sym_keyboard_smiley_holo.png | Bin 0 -> 1479 bytes .../drawable-mdpi/sym_keyboard_space_holo.png | Bin 0 -> 1194 bytes .../btn_keyboard_key_honeycomb_popup.xml | 21 +++ .../keyboard_key_feedback_honeycomb.xml | 21 +++ .../keyboard_popup_honeycomb.xml | 41 +++++ java/res/layout/input_honeycomb.xml | 4 +- java/res/layout/key_preview_honeycomb.xml | 29 ++++ java/res/layout/keyboard_popup_honeycomb.xml | 41 +++++ java/res/values-xlarge/dimens.xml | 14 +- java/res/values/attrs.xml | 2 + java/res/values/dimens.xml | 2 + java/res/xml-xlarge/kbd_key_styles.xml | 149 +++++++++++++++++ java/res/xml-xlarge/kbd_number.xml | 23 +-- java/res/xml-xlarge/kbd_numkey_styles.xml | 150 +++++++++++++++++ java/res/xml-xlarge/kbd_phone.xml | 72 +++------ java/res/xml-xlarge/kbd_phone_symbols.xml | 72 +++------ java/res/xml-xlarge/kbd_qwerty.xml | 14 +- java/res/xml-xlarge/kbd_qwerty_row1.xml | 12 +- java/res/xml-xlarge/kbd_qwerty_row2.xml | 11 +- java/res/xml-xlarge/kbd_qwerty_row3.xml | 14 +- java/res/xml-xlarge/kbd_qwerty_row4.xml | 22 +-- java/res/xml-xlarge/kbd_symbols.xml | 49 ++---- java/res/xml-xlarge/kbd_symbols_shift.xml | 48 ++---- java/res/xml/kbd_key_styles.xml | 2 + java/res/xml/kbd_numkey_styles.xml | 150 +++++++++++++++++ java/res/xml/kbd_phone.xml | 112 +------------ java/res/xml/kbd_phone_symbols.xml | 40 +---- .../inputmethod/latin/BaseKeyboard.java | 16 ++ .../inputmethod/latin/BaseKeyboardParser.java | 6 +- .../inputmethod/latin/BaseKeyboardView.java | 151 +++++++++++++----- .../android/inputmethod/latin/KeyStyles.java | 3 +- .../inputmethod/latin/KeyboardSwitcher.java | 2 + .../inputmethod/latin/LatinKeyboard.java | 10 +- 96 files changed, 870 insertions(+), 433 deletions(-) create mode 100644 java/res/drawable-hdpi/btn_keyboard_key_popup_selected_holo.9.png create mode 100644 java/res/drawable-hdpi/keyboard_background_holo.9.png create mode 100644 java/res/drawable-hdpi/keyboard_key_feedback_background_holo.9.png create mode 100644 java/res/drawable-hdpi/keyboard_popup_panel_background_holo.9.png create mode 100644 java/res/drawable-hdpi/sym_keyboard_shift_locked_holo.png create mode 100644 java/res/drawable-mdpi/btn_keyboard_key_popup_selected_holo.9.png create mode 100644 java/res/drawable-mdpi/hint_popup_holo.9.png create mode 100644 java/res/drawable-mdpi/keyboard_background_holo.9.png create mode 100644 java/res/drawable-mdpi/keyboard_key_feedback_background_holo.9.png create mode 100644 java/res/drawable-mdpi/keyboard_key_feedback_more_background_holo.9.png create mode 100644 java/res/drawable-mdpi/keyboard_popup_panel_background_holo.9.png create mode 100644 java/res/drawable-mdpi/sym_keyboard_delete_holo.png create mode 100644 java/res/drawable-mdpi/sym_keyboard_num0_holo.png create mode 100644 java/res/drawable-mdpi/sym_keyboard_num1_holo.png create mode 100644 java/res/drawable-mdpi/sym_keyboard_num2_holo.png create mode 100644 java/res/drawable-mdpi/sym_keyboard_num3_holo.png create mode 100644 java/res/drawable-mdpi/sym_keyboard_num4_holo.png create mode 100644 java/res/drawable-mdpi/sym_keyboard_num5_holo.png create mode 100644 java/res/drawable-mdpi/sym_keyboard_num6_holo.png create mode 100644 java/res/drawable-mdpi/sym_keyboard_num7_holo.png create mode 100644 java/res/drawable-mdpi/sym_keyboard_num8_holo.png create mode 100644 java/res/drawable-mdpi/sym_keyboard_num9_holo.png create mode 100644 java/res/drawable-mdpi/sym_keyboard_numbpound_holo.png create mode 100644 java/res/drawable-mdpi/sym_keyboard_numbstar_holo.png create mode 100644 java/res/drawable-mdpi/sym_keyboard_return_holo.png create mode 100644 java/res/drawable-mdpi/sym_keyboard_shift_holo.png delete mode 100644 java/res/drawable-mdpi/sym_keyboard_shift_lock.png create mode 100644 java/res/drawable-mdpi/sym_keyboard_shift_locked_holo.png create mode 100644 java/res/drawable-mdpi/sym_keyboard_smiley_holo.png create mode 100644 java/res/drawable-mdpi/sym_keyboard_space_holo.png create mode 100644 java/res/drawable/btn_keyboard_key_honeycomb_popup.xml create mode 100644 java/res/drawable/keyboard_key_feedback_honeycomb.xml create mode 100644 java/res/layout-xlarge/keyboard_popup_honeycomb.xml create mode 100644 java/res/layout/key_preview_honeycomb.xml create mode 100644 java/res/layout/keyboard_popup_honeycomb.xml create mode 100644 java/res/xml-xlarge/kbd_key_styles.xml create mode 100644 java/res/xml-xlarge/kbd_numkey_styles.xml create mode 100644 java/res/xml/kbd_numkey_styles.xml diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_holo.9.png index bc0a03fc1ea14e3683383663df28d12457f82e69..c89f7385ae069d398e7a9075247579f0a51c9077 100644 GIT binary patch delta 602 zcmZ3_HIYlPGr-TCmrII^fq{Y7)59eQNXvmR2OE&IHdwc4qvBsi1tW8F14m;^M-xLM zV>1gwLrY5&XGcd%O9KlxLrZfL!^w6`G77G)Zic2#Zf>p?#-@gbE^dx4F6NF-PA2BA z#-^6eZbp-<5Q<!JD%!@B5MylYVs2;*vcSj$n{`SG#U(+hX;vxu$)&lec_p4Mwn`Pb z1$rr&DOLoXTEy&BpQF2PHUk5rqo<2wNX4xu;b*xH8SuneJzuzJ`QH<Kb`9%aADvtw z`@`cN>&F$sA!gAh95=5!eeI+Rw|vjKv)k3qPUktb>B}xYh6}S7cJn^m$@^kg;gdtJ z9_d~euAXnRF-~|(!RoTZu@4h_1Dkg*@m3L87aOBny`y52?#4HUb0$gGCtse^&vtBD zzph9gmw3%GGx@1g6eh3)x4KSJ$-e)cUt%}cm)$15;Z?ft7M9(susBle8|CgH=z1~i zeWsGx-7Kle0UR5{Uo$Q1iR)SvvFf;R<<$LNYcnP|oY<6eO!epmUkgk78AZJAJxg;Z z2p^8$`78U<Nt1VlGWk2yIS&`KUy9H4w#?9;>E4|pciUsx$*YV_Vx64lZg;ihF`R2t zDqQTkXr15$+xtuBRImQ*Kgn$AWbMk#%?C4&v1fj(+u%`C?Cf8E=}p%W8GlALhPj3Y Vd^e{uC;^iTgQu&X%Q~loCIFgP-n9S# delta 632 zcmbQpwVq3{Gr-TCmrII^fq{Y7)59eQNJ|5;I0qY${3T|hw^8vgqk@~cxtpP(xru?f zk%5_op`nGdp^1yJshfp`iL-&3qtj$NCK&}YM>i8!b5}Q4Lkpl17dJ;!b0bF!H%C_& z14~Oc3)jh22t}?q6>Vcmh{3SV!r9Ey(ZbZx$;s5j!p%}ip|~U{HO(p|Ke;qFHLt|e z#a5{zw?Ho?GsOx+FS=8Un4Rhu2Tby0U|@{*ba4!+xRvzh|9^Ytl?@Xo3a)r-uYB^? z1s!3=Bu2JZjr<OO*k-3{@oZr(cVOY3qRge#Ah!A6pP$C;9_-9JABjl(6Oy=+ee>qc z<qR+H2Yik{tn-*%@c#b#^YI&#Tz^ec^_Ga+U+25cchRCnj|>eBBLxKo&&0&U)Z2p8 zHVMkK%(t(%d-?RK>X(Oy*}D$=Iyf{W-rkn`zM``7Y@*}IrZo?Mh81)-=qcS^lz)Gp zVZ#~5neB6$F6uh_KT?TqnX~KS+2lj%l1mdlM11@HK7LhHTb`V-#-kU{jGq|gRj@wZ z;M-eaY-(95t2u4&<HwJMe|>o=yyL{eS{8=0jI-OH6u3=ENJ&eJlNAwR(R0z%ZE<|Y za5lPq?J~Bj=709r{Y~0i|G$pYK=dcmQP-1Od1jQyGwa@3vtq@K!^e)XtvYYV_)&Y; zwJR@j1vnL+EnK7;-|&NV9UH$FcUO#b!PY$tOgs!C?Wcasoh3OFn3xzmUHx3vIVCg! E0A?BN(EtDd diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off_holo.9.png index 3f2fc0002dfa974a4d942095883e0c4955de4ca3..1fbb15ea5a36494465531f23b650af0a4de183f7 100644 GIT binary patch delta 814 zcmaFM^_W|+Gr-TCmrII^fq{Y7)59eQNV@~EJO>+)+?so#b)({6Mg=2ta|1_XOGgt! zBV#iQLqkhT6K6+9OG^U_H$zKv6T``NOfm{aPA*R7E~c)o7RKg=hAwW7E-vPdPEID~ zuEwU8&TdANs}PD@a4Ooyln`TV>|$<c46?w;1e<kA3dJQsscBXz`N^fZsd*)yF1AV) zxdnPDnJHETom#}~RR5$`<0k_Hldz|YV@SoVH?z+A9dZyjzWa96J{7eKYHiIQ51e#2 z*wd{ZcX;}R)d$%P>{!|T=hQIdt4(oOB<5s4w{c=Zrgyfq^J%|N>GqfO=Em>7J(uy> z?|oC+4UZKlOiSJ4ESYQ^)>jag>UNwjiHGsI{lh62CmjfMP_M}8{Nq-?Ja@umR=>3= z0f!WH|1mAEb1}}C$9B%Jv6DrFjs3cW>4oEtysw_KvOQ?jnc(>~cXQb_g%;re-jMr2 z!X+19mb^=etXp0g<?-<AV)+;RKSTLnh<6)U927oR8e6YnG-bho`R-q`<>ze36phI@ zQTX?&GH$cUZ}DS3AD(lqn!KWvz5eh7m4XtB4{J-_7u?_9a;T&EuxjE&wFgHIMxNC@ z#?slL?mj{AvesTrrPPUUPkyv~K7Z+{%LnY*&04C9O@E)s+J5_dTjHH3wG;o=#dlRp z-q@zg%hr77VaBX)E*nGc*mZpDkU73>=Hrh)#F8de-_VqHtxNjw>mvV`_9lPL+)dfS z^;7%Zlq)S{!j@gmTzoYvbKUECy3<bw2QZ&o{own-x#0=7PFBcWNnI1%ncJ89=YU<- z=dY8`?nsTi9&(?v?WLOKs#W{e?5^SG^`6A-E50~eXQOW|-`C`p-rBxJ8r@l2vzqof z$Zx)x!?Zc^-s`Vx^0vQrb$zNdf3ng1;+}?}RHk}kpC=Q9_gp-(p8pVw4CC|r4=>nD mbnU%y;GFr(jrW;&7!qq9PS`N#&u(BAVDNPHb6Mw<&;$U%6Hy%i delta 695 zcmaFN{gz9yGr-TCmrII^fq{Y7)59eQNJ|5;I0qY${3T|hw^8vgqk@~cxtpP(xru?f zk%5_op`nGdp^1yJshfp`iL-&3qtj$NCK&}YM<CzW(a6=%0;t5r&C%4{$kD>h(bdJk z($dYsb#fI#ks(e++n5q!Fs!q1HnViJFm-ftGBvSqvs6+jE(uCavr5TNF3nBNEAe!( zRjSA>&`ZfovBJ=c?$jb?r}{;6j_5NmFwXUKaSW-rbtmj>R<naZT>YemEAmc9<68GQ z-*?pTsQNgedLc{I%j73F+&?IIRBJww{l(WBldXF&!_#BcMq_WKG*6w*Oby8yv21tW z-~KC;KJE19Id8ILjvw4K=XRy6a~a>diH9Ru{_X61GwILVy$==im}S`&^3J5yZ<ae_ zE+A!kfO*2Nl~=QD5B=GDgg-n*i|_KwFZVw0iN0RyDbZGK{Bl=b$?m(>#|v3JC;jsN zQ=qCm)xdL7_~}iz0!6M~^Sx|hB*EjhNhf~o5|PvTI%3^T9A#U~FQynNb~IN!<w-kv zL*)L<6?5+D$i=&cUH``)IW3i4HTh%3pMrXK>&TtQ=1%KTpWQpv-t_kCih1gbG%iWr z_r1KOsCoayUJ=*K<ApxneAxj<J9BTlzWHs}sJC$<M}bCM=HolFdYTk|%=K#*ySU3$ zqLATzW$^N2b&JnE|9q^#qNYJ-SDVwS$Hr5*{H0hJCHs$?=%p}vhK8!PC0>}E(DPN~ zgp)#*jiK-6`#EMC=O29_@Ba468`&pJf8I2x#6Ng{ThAujd_}F~w!3@kSR@!sf4+X1 U^<AV7m=+m4UHx3vIVCg!0Q0901poj5 diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on_holo.9.png index 9e77015ea58dae63db43568404dfcc0c1769a18a..e4469c6dc396191be1467c9d304644705e8526f3 100644 GIT binary patch delta 1136 zcmZqRUd*T18Q|y6%O%Cdz`(%k>ERLtq}_p7o`VfYZq2>Wx>4~jqk@sSxq+jxrK5?V zk+GSDp`oRviL;}lrKN#|o1vw-iQ!~BCK&}ICnr|}V;2Kg3uALbLl-wk7Z-C!Cnpng zS7TF4XE&qCRd7YlZa5WfV@ilIHg+*LGzM8<WP;5)C57UWpwu+0l>Fq<+|;}hPZwLI zirfOdl*|+>f=(@BcB<c>!+VK=fjQXI#WAGf)|;ra*}{$@^~RfbpUg`R&d%1pB__H> zRCKQhOTJd!9aonR{vULj*!BN0%CT-#_piD%S>D{<A)uv;bzy6lQ*^fdC6n22&Yk<E zwmWls=By)WL6=SV>wIRUq<{PSZLj(Jy}Tc5<wH0WUG!YCBK@yQX}Hw4`iWfO%xp0Y z5nMcLPMh$SMK)%&d$qP_xm{fKr+3|nTq)Njt~)s5x}VPQb@S4k^ycglnbjvdHDwsC z?VptVcEg9HQ0d}pXKVkI9{*$Y`N5Ru>AP$18*hLA@@S6Rqy7Ew_kK;S_+Pub<=!3( zeT}xx4O|t*g?pbrR4+>|keGMeXGT5u-;!vjd;70Azxtf@Co4bXyg>F24cBwCxaDf| ztm}WM?74GpiOAy%oE5!Qu`68sj;aX6t}HL&IcFB!F!5Kx#yi0)c~*Mx9g~>5JHbrY zQm#E>#_qRwJ}nH5zB*avW%O2&^s{-Ex@lP&HlpfD2OlpmVOV%D=1N7g2(u!C3kS#Z z`fXF@=;lW%aP~Yr#?~NsT<|>4GFFwf6O=!xa}}^3ILW&Bd26JXawOlfJL{HJZ(H>^ zCaPOS?H=2N7aVTNZl73O`=Saq+1<!&cq-x`_S_{*)_g~}UQXl{H@<61m;W}Oey{HK zaE{jYOA}>`84JF9ZYd5>I_|{1t6X=34Clj@is|(U9QU%e<nF4edoH}ou|L`M*W_@w z{QeEcBPQ>0Fpmgv?7K5HGqh46K<t<r>+!Zd^())2xW5W5{4Zqaes7ziea(O4B%d?( z+3_d(-g;ZxpW~R%uTXyXN2rm`=dVf`6E{luGzndqp0wg(Lt4?#ots={vF*@vUo3c_ zmH$#1*Mo@@>)oxYFK%Qg@%x!@Qb+aIlXW)^^2c6#xl(zq`Q_S^r(3=5Xs$bD{)*+= z+WE$I-$Uj{Rf*5vynpNMcW31EjNW=!9W#!P-YW4*Xwglntzy1=tM^^DnfA&%Zp&|L zy^mJM?)z*tR1el~Dx2*bcWv%ef6b|j3g1<DbI&U%G2z<f#V0IP+H1+?{jBUL+nc^0 zf$D;<g`+)vEKh58e3IMr)=zl$`AL=4Jxk}#Kl89#MEgnUMt<gH23wYRNU+;@u2@<6 zbJ@MczYO$mJFk0o)#vqFXYZ)c%I-P;gDTqoH{B3aGJdk3iHBi+|6kiMB|}kQA;RG4 L>gTe~DWM4flEvM& delta 714 zcmZ3?*TAjV8Q|y6%O%Cdz`(%k>ERLtq@{saoP!NW{t`3M+o<@LQNhjJ+|AI?+{D1# z$iU3P(9pu!(8R^q)Xl=e#M!{i(P^?BlZ=9yqnnAVxtp=8p#@Nhi<_gVxsjuVo1?3X zfu*IJh3n)hgd!uHincK	&xw;cRB<XkqH;<Ya1M;by6%P+Ss}nr4-fpIn-onpfiK zVyje<TcDScnPP>Z7u~5v%ue+dGj)N!WZdBC;uunK>&~=|{)Zeyj@|#-AhjT%lXsnp zTGpd?uY4XgaWi*M?o=%NxPQXMvr`+7yhu9q=2hMzHMKQayk@#0+*`iJGDqk+ICUTS zaN_P$)i1wg<=21j+p&)OGn*odeDTRU=L<LR${6YBnaIqaoDlt?{Nt%*Clms2)VDlX zks6sA({FILO`zU=b-qjBo+De$FNC*mFqv&N_gv)KFzc0Js~4=wN|>}r<7Uvxk|-Uq zOdGlNJYTLZ?48%zmT2?j^Ut1TnG0(tr%Jy1S`|EL$=`)j1^<i79G7e?aBp;6mdSKE zvFab!v&5Rt^SqzJ&DX1+X=?5L&%8OedZ9smoPR?7olA8y|Mx`eN{4TgO5b;-X1%bI zo{Our#=5fk4(As=_~MxmVLa6<wIud?pN!qLNoF$fHoc!#f6}X&U82NMYGZr<*vT2a zQ!c%BTKGVAQ6hihvgWGoldVi&o4?H4E}d&4^*qA0z3uOc1(828oo`n*>OYr@I%oWB z?ftWkLjIEu@vY%zpCGW!(4XO8<f3Y=rgud<V^qbuH`XnC{39Z3`Lp*5vn?iZw-`v@ oTNYb!EHA*3^KxFCJrfVZd8rp~Fa5vm3{0L3p00i_>zopr0AVm0`Tzg` diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_holo.9.png index b3ac506addd8d7ce2fa12a8c4853eba255cfc06a..f574a38c95a3ae226152345a9bc2a6618f64ffa6 100644 GIT binary patch delta 741 zcmZ3<HJe+pGr-TCmrII^fq{Y7)59eQNXvmR2OE&IHdwc4qvBsi1tW8F14m;^M-xLM zV>1gwLrY5&XGcd%O9KlxLrZfL!^w6`G73gcE+#Gp25znv#^#2GE^dx4F6NF-PA2BA z#-^6eZbp-<5Q<!JD%!@B5MylYVs2;*vcSj$n{`SG#U(+hX;vxu$)&lec_p4Mwn`Pb z1$rr&DOLoXTEy&BAD^>dhk=3dw5N+>NX4xu;og3S4Fr1cPT9s15WF$ruvN^$SE@xk zDtrws0@ZwtM}#_k^)CA6T@d9q(+P@N=^N$PBN-knvUA(#g_*4tmpnR+zkN=BR_SE% zJS<ee$t67~wMT2N)U2|wG=bd>=M|$QRWhcA)v#RKR@crN5!3dg{>m*qrJarM8bU19 zLUZzCEv^Yp)}6DGQ}@Y@j;zaBoWCyRq;o1o>^l%t6Lyes_UR+K%r71H-`_viZ@FFa z8=skXdXGh~zg{iJ*Z%#(ug=L6F2)I`FOCuq@m1I>-G6+#>$lCf-`ce$Ry04k#St&e zZCX^C{<!iU_YYIq;~O=WX5Fk$I^#9T<wS;!RIlEG%$1VwWou^4Rc=<{XcBhpy1nvx z;2*Yqe)D`@f2vTwA#WI$TODcmGd{Za<&;-fPJI6>DRW%Q^pc5a;A)eJeybTZ=SogF z9mU-}xAvlClag&iLrka5+2+@~{4I|d`1^HfT=z0!Z$9`n#pq+=)#s;zj%|x?%rbE} z`Nv>_`=*pxT79{(LiVDb-zIhN9=Wq%Z)*0&-WAU*7Vp|{=3UDizrx-lpZD1GWhwNY znzH@Tw3lyo?K!)snYA`B^QnYOxBYK!<^M}&s;vCb`dRk?!`UhO_a-NLv;tEugQu&X J%Q~loCIA71BccER delta 626 zcmbQuy^>3@Gr-TCmrII^fq{Y7)59eQNJ|5;I0qY${3T|hw^8vgqk@~cxtpP(xru?f zk%5_op`nGdp^1yJshfp`iL-&3qtj$NCK&}YM>iK!Gh;VbLkpl17dJ;!b0bF!H%C_& z14~Oc3)jh22t}?q6>Vcmh{3SV!r9Ey(ZbZx$;s5j!p%}ip|~U{HO(p|Ke;qFHLt|e z#a5{zw?Ho?GsOx+FS=8Un4Rh`)*Mh_U|@{&ba4!+xRvzh|9^Ytl?@Xo3a)r-uYB^? z1s!3=Bu2JZjr<OO*k-3{@oZr(cVOY3qRge#Ah!A6pP$C;9_-9JABjl(6Oy=+ee>qc z<qR+H2Yik{tn-*%@c#b#^Y^!8X8-!dJ6q!3zFPNfzK0GuJ!)jEi>#}=cP1t#rrs8) z)>u*d*YEH7FIHWBt+9!N#o?FZvxYOyV(E_0{`~&#|Kjp;|AcJ~4FW$`K00j8Ho;Qi z^Mqi7U8yfT=cIH`2sYnU>GMNpu?Uac=>|cs(9;*rCNsIp+^uPgImWv_L1x=Z!Te=v z%hxF%-BfO4W8)ORuZB_Fatgx&%Y@GpWX_d$2=$yfb7uA3yK^Le{HV~}#IZy^h3~?i z(i>S>0kwz!zrL=2?f3Wh(;0#%>IcM3i8<X+`Q7xwqO)CHUA8$nISYRAgzVbCDBHL9 z9@|6)R&!C^pG-&e3rs5lq5_`WYFPc0RUm<3%Bs_c7}{<x1tuc~Pgg&ebxsLQ0Q$`D A8~^|S diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off_holo.9.png index 66138edecacf83f3f375a7c21ea779a2a7284f0e..af525376351667338ebe9271aee015f7488a7b8b 100644 GIT binary patch delta 912 zcmaFEb%aN;Gr-TCmrII^fq{Y7)59eQNV@~EJO>+)+?so#b)({6Mg=2ta|1_XOGgt! zBV#iQLqkhT6K6+9OG^U_H$zKv6T``NOfm{aPOe7AZjNrQ7RKg=hAwW7E-vPdPEID~ zuEwU8&TdANs}PD@aVpxzln`TV>|$<c46?w;1e<kA3dJQsscBXz`N^fZsd*)yF1AV) zxdnPDnJHETom#}~RR8Stu0;$COhAo}Ar-gYM0xhzau8XoC2id5$g;%aP6PLb2W)Sw zUwc@(EYaBeGWOa|hi_|R8f?3cOwv|Z=%L7S&?2|s=Fj_6CI-ujx1~LP=o!DxXxrD< zKl@WxJg<BrwqVMk#Wue#r9XJ6YIU;ez?_)hd$L6?dK4Yh-x<+g=<8bVaVvpy=c%Gq z3aOLo{xIH*b@H2?!q5Ga<#cCf+;$(o-W2Jr8bt<wMUDOZ0zZ7viC$?WBzk?*hqIh4 zY!Tu|1Rt+(Njddois%uE=7SFo7wz2hc+P%LE#q0s{$^~A>VN$4hp`WTlZNEdhB*b> zy10(G?Z00iu{P}e<ww?M(>}jWF{=Nm!O?Xlrs{;1Qf$`dn|r?gT^Ho|ZF00+v7gRq zr493}XWY|1k$9o3Aa>#<|0g@vMGL3B{I11WwmSL2$33rhZhIx8In&**uS;g5?*!#T zMHzn1@4}`}E?zzNfQgdF({-z!r1j()&P|>>;fvMr^OvW*OWGo-UKH}|@wL}q^Iw1c zC0j2Ru>DAZ1<#bf;l_z)`yNlYm{C$ZNvijla$x?<T|4+?)t?n;Y_%`7nya5+YCrjn z+6w!1%-5Zh-l(@%uTH<cX!A{<*?!B9{;Y{>+a6)=yLs3B_whHk#kT(5u=o1GrzQfj z_w0Vn=Htq+IQIFVAd5HKoW~Pnds{aherPaZb<oMKx%Ey9Kisv}da0D~;`Bvti}sEB zA1-I|JbEDW{<!6el&M}zWji?I5+vI`?!Nuj?rYWF+TC}jIiI@xU&=q^U8!8#$@LFd z4K+D#N~#~@i(V&FyiHO)y?Px-Ov;oQty&7FPwbDLyK;h|M|hBz(4?f5S$qCOSN42U m6uY!xZ{bOM$A4S~q6`KKe4_KVBnAL88H1;*pUXO@geCyd(}+C) delta 694 zcmX@Y^M*^YGr-TCmrII^fq{Y7)59eQNJ|5;I0qY${3T|hw^8vgqk@~cxtpP(xru?f zk%5_op`nGdp^1yJshfp`iL-&3qtj$NCK&}YM>jV|S4T%zLkpl17dJ;!b0bF!ppc7! zrKOvN>*OkkA{SFL6EmEOwlO8dU|472Y-Z_bVe07QWNKpJW~ro5ToRO;W|fkkT$-Dj zSK{ent5lI&pqG-FVuhg>-Kj;)PW2+pW=0GQjB`9)978H@CH?vT-=2A8!^DY#E8f~G zpZs+}N0>2*k?mC@zr!E4*{NDQTbRooSh%Msb15~5ZT|P?r!l(+JM+#*A`<_EB(7xN zym@mu!^`^tpW_efJZ2ZXzrX(c{Vkc<zkcz~mbkaC)_t4rp+ioO8X4;%>+0^EiHV7+ zw*{&-R@DCW`+NS2RaakYY~o;X_~rPl;f%9by5qAyzrXvxxV+pyVOv9kz|WPB4qLNL zuvGXwA=qG7>I=^~Dcuu-&39G${Lon}!XtOOLC`Do^o6s@Os+C_YuaLt@vcvh*|t(J zf0^6**A6r1%$&*T)BNP$zrV*D*4wG1+_aXHldE5-AHT1mTc+f|sZ*yOB;<2Gm$#^x z^YHuo`w_ZKvzX2JPd@C?IC$dBnLW4eo}Jm)-#>lP1Ll|PGnq~DWw*_e3c3H`|F5sz zU;q96t$HBj$?u1U*#jfGegT8!@agILlK1x4_dgPz;Lpm+DtYASQOSzRO2;;5?!w0F z4&TyTU60C{S(}+nU<-KpuWOyDX_d4KlgOQrEl;=w_8++Vz%kQtVm9--Y2pqIj10mb XULJb>Xm2(!DKdDv`njxgN@xNA1)US| diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on_holo.9.png index 7c80300e9e0c9431f799e1d240217ff2dfd99ba6..541cf5c4a370db0de873e7bbe9ddfe32f539bc6f 100644 GIT binary patch delta 1234 zcmey))xxjX8Q|y6%O%Cdz`(%k>ERLtq}_p7o`VfYZq2>Wx>4~jqk@sSxq+jxrK5?V zk+GSDp`oRviL;}lrKN#|o1vw-iQ!~BCK&}ICl@Dk7c(PQ3uALbLl-wk7Z-C!Cnpng zS7TF4XE&qCRR~3fI2CPUN{BHwb}=_J23cTag3UT5h2oN+)HJJ<{N&Qy)VvZ;7h9!@ z+ycFn%oHnvPAy_~sy}znUxR^xd5fouV@SoVH&J)JMFK_k#~W|n{Z3`wva~KyNk=yU zk4ayG_Ok8$s^IeFo;Ux#2>(Er3-bj+t~lGW?fo`I)l*T?<tF>2l`mJlz5eFRxjWUn z%k4{I%8!@WXI!@}n6Y#7^qH3XtIz$MTb-u(TxN>1Ld&BtnQ2x0l^Rd$=YG2H+;h<H z{r1V?2N#sJ=A|3`Y`1J&b8WUn<lTwSO*p?c|C+w!!jZBAnasQW5B(GmV4m@)?0NIz z=DWI8h6O5rGk43#=yo4g+opBOBR+iIuVd-%zkJhoPW?D#eVDF$fNAZL(#j3L?_GI# zVZ%#Dmyb0CTt=6l9J>49$epvs=kv?!V`lxnRC{Y%fcM&_#ThwUUw8aev#fd=dF9u~ zUr+W)Z)Cb$V_9$~C)7aD{^t$T4+&FZ{(rq$zAr9m`RemErC<9>|9|Sd|9;Pm?j4_e zA1WP)ytVto+XDes@0b`H3g3#Im=csA!4~mj9dBgGzm4fEP9B}?OP9A6uL@va=IqC$ z{9UVltJcoeRFSMhdh72peqmXv$Xl>2VY|=l1&XdV>}Cl!Do-!k!(_ag@#rQ6mDzza zKl{2IP?79-a&pu2m))Uk%VXvq$W36LpuoF`Beb>asiO+>B`asHTcs_x7%U=Fx4gQs zrjk!Pi|2@$nvLemm}{I%uUTI5-cYeh>D2`X0ftZ!&iXE{%MDLmm=c#;Y~Tq@S2e2& zSXt_4H9aAZbGJ<Y$~(M%7hNwFXxu5hP-SiY)>@l;#iVfOiXOFjZAZl3KkChVe=_Ob z;)!+%DvTa8CHb}5OXM~kYl-!i3!d@DIp6c?-?!K8c<;}uzfpasVr7O+(6kFp3C+tZ zjM&aSS@!A8+6tHYTZ(TdmgWAOw{FhnmAbnG<b%_d^uHWEQju=)G4Vj+Njbh1cbZMp z%RgTFJjF(J-QtipR!J(#9GvV*43g8zH^()-2ye`_R=Omypl7-C6C;_7u(?cGyG_jd zyjmIBIr;wN<Xf3;jJMx@<93bWy+`)b<m1v7_AdA7TszgT$h-5qSG|Sd%V<x(mxkGD zQx*lz{WN8MvD>w7{fW;P%nI==Hd*oQ59iO{$+Eu^jJDjI;B}&??%c_zva2ugu3vD= zSJQaym&1VvHqN=q@l-8wj*_^A&!4nxm6VrR>u)}?&-&>py_(5jn)QFNtPSB?+H)>j zlteHc3*H=2!RvKVLMYiKGOPDYxM7f`qp#1=T^DS9n6!??96ac?xpGIuxs_55|5vu` z6)M_ivM)L}Q1P&i_RrTMB8OKW%dXMZzkY19+%4(bKh;mfGqN#!+1uP<b6<`RSWGc^ My85}Sb4q9e0D`_8I{*Lx delta 705 zcmZqS|IVe@8Q|y6%O%Cdz`(%k>ERLtq@{saoP!NW{t`3M+o<@LQNhjJ+|AI?+{D1# z$iU3P(9pu!(8R^q)Xl=e#M!{i(P^?BlZ=9yqnnGVnTfHhp#@Nhi<_gVxsjuVo1?3X zfu*IJh3n)hgd!uHincK	&xw;cRB<XkqH;<Ya1M;by6%P+Ss}nr4-fpIn-onpfiK zVyje<TcDScnPP>Z7u~5v%ue--w!Z(wz`(fN)5S5Q;?|w8vtEZC1m>OHrrGjuqSn`_ zk7_^o7QJxf5&bC1BDm)Tcg4Gl%Qr-LAD#Wcn&aM)xU07UZeO@`C1oyW=;fulCM#X7 zHdxP8{aicy=E-vgiYz`_J%%O1IZ5`NIgIX7%hY*g-XA^@_Tc@K&Sf6=BbIP>F0Q|u z_g&(v-K?7e57tY(S{<QN*0}5X@%6Qnmu9>wu~MIU>g~hQolIYMNzTxmd~tJi<>M0u zWjmH-w%XPCe%$}W;@rX1jUrtgEq^%MKm2(uxc}j<b@y`2_C7C(;-4qVE6f2DmDHJh zQq#_GqW$hvn^c*|h@bW;6$^q@Cw~;N+A*`Xe&+wa+3O9?<(l>VUHLR>d4c$jTc5YQ z)_8Cu(4Sq^`0>Xbd6Cn~pPpEhW%lI!ySg`@eyZKbE!7ZwR8g_7cXMNI;koYH(b5xq z)SO!T|8TN@^g66%dUf`c+}jtkwpMjTZn<3~w^!=9lk}}el0MJnq8>5Y9X*~O5y2&t z!&|bCPb%8&7|Vq{Us>YUDqi%}o36cLmDksvyzkp*hGp$!k6cvXKk>++k4CE=O1@ao hWYqI&&ps9jhUIcEc6QEg{s~N#44$rjF6*2UngBWcA`<`r diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_normal_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_normal_holo.9.png index 737de397b4871d5b36ea031b6ec67e826849c52f..0ad025c90c60cb4478cab32f179d9f944f38a47f 100644 GIT binary patch delta 699 zcmZ3<^^r@lGr-TCmrII^fq{Y7)59eQNXr4S4F?;LEDYhAzftioqk@sSxq+jxrK5?V zk+GSDp`oRviL;}lrKN#|o1vw-iQ!~BCK&}2LsN4jCsQX^3rk}|Ll-wk7Z-C!Cnpng zS7TF4XE&qCRR~3nI2CPUN{BJGFtY$^cXhHbGQnn@l0tDwP->c0N`7)_ZfahMr;Dvp zMQ(v!N@j``L8lfmJJsjOgg;<lU|i_w;uunK>rJGi*AWAeT%)AuBX#0?&l+48h^gWc z4A;9;%{aZOqT5J)M)VFN<sj)9M_7U+vTprbHh1L<{wbN(_LYC%@2#<_pK;BKOSZ?* zICk@boyiTydF0NTq%qq$9y#*vKvw3~)prEf820%1v;^=98*n){COXwyGOjLsGx^Bf z=dw}JXQx~atG>48SA#IW_Q|ZRyM&!$G?(h_xl;I#kKw#);GNm0^}h@J&JL@6mK8Kv zXZmS&=BnODq7O3n#@)C05Vkn++sCBccjJ;+OE-3Fek)9guv~rqvdPzDQ&N8_Z(DsV zxpD9FT*Khdb<GU_Uq$(b$oIc8oLN8d*p|5-kN5BHKY2Ap@6-$~j;%^3Vp#snKbu;w za^9&l<NMSzr5weX=YF;ay}A?Uq4`@%dp^fzBcEehr#FS?s4;v<vMW;zF^|<VpM5rW z-t&I7&)cuHo+&pwcI=jA?SXyg?ya<(bynxuJN-rP;+~yrG!xgI&HwmvL{-D<XXP&@ zL^y<ZbMor6<*7ehm~$aID4c1={`xiBJ~r6Ke_!)7pg8d9t@U2J)+;4m|0R~dFlnt& V@@zHNZ@~1(;OXk;vd$@?2>_5I6o&u+ delta 626 zcmey!wUSG*Gr-TCmrII^fq{Y7)59eQNJ|5;I0qY${3T|hw^8vgqk@~cxtpP(xru?f zk%5_op`nGdp^1yJshfp`iL-&3qtj$NCK&}YM>i8!b5|!<Lkpl17dJ;!b0bF!H%C_& z14~Oc3)jh22t|%K6>Vcmh{3SV!r9Ey(ZbZx$;s5j!p%}ip|~U{HO(p|Ke;qFHLt|e z#a5{zw?Ho?GsOx+FS=8Un4RjSMO6717#JfxT^vIyZrz!7(W}Klq%FN9+;NI;=FPm; zxTDt0idAh2O?g#4d*A4868Kcel&|gV%yKcn+MOq@{VuC}bQ1rW9%GCD%Z<~Y$=uqe zE15MVXvVcm2R~cf(3~P{G`H6A=N&d{_4@Sn5odp$6Vhfle|poN)^9?)Rtr9=f4||1 z|Eg7X4!`fdKE8hgYnW@`oz}z(Sr$gmNiH)|BCnnLyhr+aX{zt#YkTW-HtJt3t$q6Y zpN4?cId|DB$;Z=kmS;+7pWgKDripK2#H?j3r2+k46XcHV{*fT?`tF{2Tlmec{p05` zD+!WVum13u?3?p9tl#aJ_Az5`;roSRou$s@37zX+hs}F_cdGF*hvk=(?dIg^EY>;Q z-}hMHuz_1+f!(Wyd!M&?^nOeW483a8wW#{TB5sNJu0s#r9Al{3m|MM8gX@^_p1byZ zQY(MTJmHyM?c~AtG&lUv=82A-LS?CO_DnnsTlSqkm}IMK1WZN@p00i_>zopr0EIyA AdH?_b diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_pressed_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_pressed_holo.9.png index 3dcd8323d67c35a27678f0702a4b68999fc4392a..c0403f0bdfe11e486cc8ad4cd401f97bf58ab627 100644 GIT binary patch delta 800 zcmZ3(b(LGOGr-TCmrII^fq{Y7)59eQNXr4S4F?;LEDYhAzftioqk@sSxq+jxrK5?V zk+GSDp`oRviL;}lrKN#|o1vw-iQ!~BCK&}ICnr|}V`pbq3uALbLl-wk7Z-C!Cnpng zS7TF4XE&qCRR~2+I2CPUN{BHwb}=_J23cTag3UT5h2oN+)HJJ<{N&Qy)VvZ;7h9!@ z+ycFn%oHnvPAy_~s(*Vb;V=UO6RW3-V@SoVH#7J99|{mS9xwe?;ew00vJX$oNyn_D zq(><+J~1UlMUyVNs>}LZ@e~&qp8JFS5C5D96)qk>KOQz=wRR>x(~WiWMS>shb&rlZ z_$0PyXWQ<3&+qR2#}R&XTdq)ui0i?Z+k{@k>`yp+;{1j>{psuPJF(U?Pia2+Q)fj} zYY0;#V@%`8Ne`cJa%)twG4Jwr5;>4xRUf>#?NiaJo^NhSC-$CVIlQoS!*V50>z@3X z1(q&X%@*=sVEeZE>`DzbWA50dV-}Sw*5Bav<6f|RS)_gI-E%3|CePUsp5b^sSbc-^ zg-kb}ZQNnDTVC92lyjKeWbw+{rTz`;o5u^5ta_38<OFxg`Qvf#EUtdm+q7f%)jhTw z100#cUfawLo#b)GkXi7$ZO>z?9}Er0ue~siQ&kq?oR)xr9uzWNwm+%N$Ub-9zuRHu z=?b}h@t41bTsC<vX1ndJ|MxY`>bi$d_;dZa=6{qq?X2dD`lbCzTrLLFm{z-PzwW(y zdf->VH<nuzI~MOVKJxCcURAE?RH;P&?=N;_3UjVc=->FLJWOdzc~^;BS9FX0zN)lF z?-u*8B_B-L4bGT`zS_Mi^Zi}zE{Cjyh%>i2`;tOJp6nC8cYKXu9mj=za~^*+Ji@yC z@MYE)d*T(gyt)@0pKwk!>EE;F>+2sd<{R1T&(UXOV@O}KE${A?ElR*d&*16m=d#Wz Gp$Pym>^;T+ delta 629 zcmcc0y@pG%Gr-TCmrII^fq{Y7)59eQNJ|5;I0qY${3T|hw^8vgqk@~cxtpP(xru?f zk%5_op`nGdp^1yJshfp`iL-&3qtj$NCK&}YM<CzW(b3h=0;t5r&C%4{$kD>h(bdJk z($dYsb#fI#ktI$=+n5q!Fs!q1HnViJFm-ftGBvSqvs6+jE(uCavr5TNF3nBNEAe!( zRjSA>&`ZfovBJ=c?$jb?r+S9Xxlb4v7-KwL978H@CH?vT-=2A8!^DY#E8f~GpZs+} zN0>2*k?mC@zr!E4*{NDQTbRooSh%Msb15~5ZT|P?r!l(+JM+#*A`<_EB(7xNym@mu z!^`^tpW_efJZ2ZXzrX&xec7LqUl$jvOWM``^4aEFQ?uvMwQJ8J!=^1e6B83tZwpjw ztf>9#_xJo43!9H?Y~o;X_~rPl;f%9by5qAyzrXvxc)dM8VcV81Iya};*8ZBon8J6$ z=7~s8o@AFA5KPi_GGjh$Q!_1)i>*KP0LRi*sV|-xHY)Yy**WVyZVNZyyM3j@JUBSZ zQt|Y?!h!;hzdt@Q$2<vOYIxRgw)ta~Bd4IM#LSs9!=)uMj0=j20#XD$>`%xnsC>QQ z>Xik*+Wuc(AHU}N`}_Kg%ar05?9kXbjq&rl>;<l~MMXucZ``=y@b#v;LY?dNSyFp> zl^BoMglu`jEwKN<)d!B5juW$)*G&_5XkcWRV|#j)(y6m<z?8(`>FVdQ&MBb@0My&- A_W%F@ diff --git a/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_holo.9.png new file mode 100644 index 0000000000000000000000000000000000000000..4a77ffb97f736ea09a3562d019124f21f63afb17 GIT binary patch literal 1018 zcmbVLJ#W)M7&a7zQmImrSYSH2f&qx_vz<7$YAVN0Xe3;!G!hvYxY(D*YV9-UD{(tj zY;635iVX>|BL+YW2#JrKKfwqCQaLAaVTc&8WZ#G1=Xsy^>&e#U?d7E_OM)OQcQ(8( zUl;g$ezC&8pI`lW&X>!q)o0se$i|3b!3oI#gHDWga2KQS;NeHS#zDiV*JpkIjuntt zLWPZ#$0<h(!rFSCqF@&@Fu*%eVvFBjzY#$c+Ty*MulT8pN72S1#oLFQz2I;+Fhg<u z7Ff$IP7q^;KpyWUnU&k(gxBKx;#wBL#DwkI;#5@M-vTb77}O-C8Yp!I)S(15-7t)s zKvke3E2<3DDl{xjwG;)+9+7*a;n3=O?U^rrvc(Z&sU^$f@mLyb5}`XXG)=SMP}M58 zsAdNVLwPmHR!asCX90~;7Lf!LjA%ginJsdq(-7j+_fLtFY?dgVGC4=73?)U5<07t! zb;i2*kBqt2S??glau;W0p9Z`h!_^YZbN6pYg&|jC-K7yP3fl8Xupi@ubv#?-f21%9 zE!8j-M>8EAs#?7PdHA~PIHsvI+R!v~SaQt6>agy#T%*})m>Ps$+wnZZX*PAErPWNg zt(MqMk};G7xbz!wzcZ}!Ppsuqj2NLkLiWlI*cuT=vJpvvyIli53ZkSq7v-5o>tPx_ z!eN_|7)<hOMRWXXje3I%ZZ#XKK0od$HvFHQ$y|(FG{;}fQeN>6EVieu&kv`=gA+b6 zl#j-x`_EqRvAW*zoL>HI@blzkePQM3!nKumPb(LX(qrMqhjX7$82<WtRC#+=I8za> VzF$0E{36g|8au5`?`8AB<KGBtIMV<C literal 0 HcmV?d00001 diff --git a/java/res/drawable-hdpi/key_hint_at_holo.9.png b/java/res/drawable-hdpi/key_hint_at_holo.9.png index 2b8520a92e487e9488921e0bf5b31f854c8b9677..e7ce4b065b7c977dcb170ac4ff180e0c18c39442 100644 GIT binary patch delta 837 zcmcc0`HNezGr-TCmrII^fq{Y7)59eQNJ{{*3<n#KtbSJiZlmH~Mg=2ta|1_XOGgt! zBV#iQLqkhT6K6+9OG^U_H$zKv6T``NOfm{aPHskSmIltQ7RKg=hAwW7E-vPdPEID~ zuEwU8&TdANs}PEua4Ooyln`TV>|$<c46?w;1e<kA3dJQsscBXz`N^fZsd*)yF1AV) zxdnPDnJHETom#}~RKM)4Pz(bDla{B8V@SoVEn%HSvkgS1OjwYRWIg%Zlbp~0?_X6e zn`0JSBcSJ5ySkzMMoeK-TFya_s^jnWsqZjsD?G=W-1GS7=Jw!ob9xN~b{uw-6RJ;k z_<Zc(gq-LElc(=f*!Q&0&)R!+qKpE=x8H?NwU^p7UAn7ZG|$rMNqKnvbWhz5W%b-k zTaJa-&rhASO!2LwLR(1Sn~j=t4_^FPvu$qMLd!EOT9b4$H$ShRSm8NI@?NXJ$C|2X zQ`{o9?(2PQoZBP5)|_$eQPUk(#v3mFuZTD!pxRTvdtX&$MNB2jW%1?%6M7$u2;V<% zw)^gsZQTdHFFw6q+|{;wnbiYP6V-Yau4DDO(<blHSk@s{Z7_MW=d|Z8%^rnq^X~d7 zy<U8)=Wv5lrmTXNOJ#kvaHwG0<OLI)BI34O%L@+AC`s6|?aqUOIV$t+zOcyTJb2Gz z?&LVlYy7j=-U`p#wLHORatQl(rAJ5J#oGO?Y%X0m<*e8e{*wo$+|pZhIN+3a)~)|L zBkJ2Sr?p<S)95|1?T^E;X3uFs&t@o|?*6>9Xz86tqJ9jbiSifcO!vC%@^9D53v5>z zC(f?fzw@3ctCQ&g{*G(y-yJ72-#(ylepQFS-hw$jd+*gKuxxF3!F#goZpxn3p*LP% zc6xkD<5tea7fqYQUO5NOP096LxBjN=)~pco!i4*_*S)TCEO;N6(fneCp4B^+%Tpbt zU1HfP<W-i(&3v=B?SAY@`M-Kn=NnUJeZDC3A$X(g4TYcejBE@FUIuchoL|#{IfKE| L)z4*}Q$iB}Hq&14 delta 542 zcmeyxeU($OGr-TCmrII^fq{Y7)59eQNQ(op1P2?C6s$=r-KhANQNhjJ+|AI?+{D1# z$iU3P(9pu!(8R^q)Xl=e#M!{i(P^?BlZ=9ylaYb5p|hi_p#@Nhi<_gVxsjuVo1?3X zfu*IJh3n)hgd$6vincK	&xw;cRB<XkqH;<Ya1M;by6%P+Ss}nr4-fpIn-onpfiK zVyje<TcDScnPP>Z7u~5v%ue-u;i`oU42-OvE{-7;x2}X9<ZU+KDG}hlAQ+*jUBc#; zz-q<R6X2E+p1@+{6xk?vskpS?Lzkm9pwpvWR_9#bM%l-E#glu)1s7MHni?o&nUGra z;MCWNR<iY-f95=iYJBeNy)UigoTz|q0Q>st2We~PE>>nQ<TPZ`(w>mHIJEvwe~HZ8 zY3v4um&8)$y|218Tcb!IlEZtEwE=_pEbn*gH%@%rZoKe#eGr$w@%w)ZRfOgp3eta3 z)1f-Q*~2>Qj7#k0Co9&QUs}KLs8@w1<Ekazw-&B>*cW<<%}@Gh8hiF*F&9(m6KpSU zl}Pp8`7q1d?y`NRr{fx#?yH+pd<=K+DewGwIJ#c{b9lk5-t7#`4DD>m=a*b<yaJ4J N22WQ%mvv4FO#pVkwvYe- diff --git a/java/res/drawable-hdpi/key_hint_at_large_holo.9.png b/java/res/drawable-hdpi/key_hint_at_large_holo.9.png index ff56845f88b7b5ae555a019d12f5038cc136a198..3e8db989c3ebe31f7f5675ea3b844a7f91701708 100644 GIT binary patch literal 1639 zcmbVMeM}Q)7(ZYNHmiUlQ|H`SKR2cA^}EFaZI9YIN(%+nAlp28S2&?}r9ElEk0F{V zsB;L@X|$p-Mn_<Zg{e%~fGB2uj1Nbqvc-uIQ>7XhZj0isVBP*8{;^B$-uHRm=l6TQ zugs9VipiME004lg)xfFrI-7pyg-xZu8wNfdqL(>TqKPt+7Rrg(F+hQm*%+v`A~{$p zhM+|SSFn`;5Msg8Oq5BNBr}s%HsaS|yR0@E4FD_ST{gs=hf!cQmV*;=manOW1>&fj z^`TJ5)!9^7F0LuIW5(j-G;?vDS&Fja<G__J8BJitC<Js_^9hH{C1;KE%ILlSn8O0c zRj52UYr-j$&H$=NI|d5b+!!-g#05nV8{!MZV(|))$A!2YE{_B8Vj!`M&y#Vv;LC?a zTeG7USt_i4X^WQRtXzt+$v7OR)5&)7*`z&(14*S)KL?K&Lu<r1iU<mE#So5#0R|Xz znC-ZY!bt-3Ga}jKdP>fsJ)H=_YSZan5fhG=iK0`+aUnJi#O89WR)1XM+72oe``3+0 zwH;|iHjI;sImq>PGhGkM!T^}g-Rlkc6=`o|dOJ=R1<8j=^Li^rP+C~dqHowJj>>pq zF;~HtDg+RZFOooX_yUzeA(e6^YDg*;Kmm?Pu}ZZ{saEh3C44ai!D<Bzixo<xK%B@I zN>yrJ0IMY&6hfG>fL+{gcLEE&7AsTPF@z%RX(X8+=m0}5Ns*3R(gv!GLQsd8al$YA z%QF!zjM?!*3{~4nD>$BC89s@9J|7lCe1D`o!Q^pIVA21RGY;(x$KM?PX_mkd-GTn? ztJbH5SHpu5^u*Zd(Ri~reFgvo@7KbLG}kRpMpI#TLd4D0_4jh}Tcu^!YFgz(PeQka z+rs5T1^PH}<Z;l*@uee2#k2NwKnpJWI>NPA`*v-NPAsodc?Od*I)|<wzUZ`|cZ=Lh zwmlZ;X1bcaM~7E<qNWD-HdJjdi^mPa;R#o{9gQ9J=$!k{%kveDiySPxysR1Cr;li_ zddN%Kx(vuY`)JiOZ~keYBzfnkNc{FT$<NGt{da#Iifn1MUeX4=UyVK<Jce+hzrpn( zDP3FKEkA^Y7#iv~nb^?<J0p#aL1Eq1z~EbLDbKqa!xJiz*}moXyCP#NLcHC7J=^Uq zs_k@Tcisw(YueRa%~;obBr|l!jO*{-9F23knVEZ+1V^3QUH6o6{?7g@`J?+rdxy_w z<vbmmPDuLS2&)aTxr2mBTc!-g*N**ov$!wOb1u>nyrChhc3o6SPl@};dvSH?^^DWM z>}soSE$9;o5~}p`dtwg>GtYeCJMh^P=8Zb9s1nGU<@SpD<0%($`^J6sM=!2M{rRBg z)WP;YSh`2r`LSWgvtC?kZu|CvY(6tWs;QhiFy<RR@%QFO68&PJY^deJsr0qb2j}}7 z8g$-35<c@XXR~S3kvw?K?@5)yQb9(hrk~k=3_th@WIXZEm$p3Pk|4Yy1qe!S-?V*T z=5^1svfnUyw4!9~I|*AiXuy`~nmhVE-UcV)>AbeO{HNu_EF!BWK^R@(-W<80Sk=4d zL3`B{MU3X_W!9#wi}$L(KXWlG^7AD|!G*>``Pmgc(-;-*9CY|LWi+G@_)6xTB)Sqx zQT~BAPs(Wc);pJjPJVfKQ2JHG^w@^BLrbTGo$%C2oO?HpTwAm8<K7p;XBRhA#Fa!T lck}?TDfGJ<#k56Z3@%{t8VUy?rP=@M*Cr;zb;`A+{{TH}Zwmkb literal 362 zcmV-w0hRuVP)<h;3K|Lk000e1NJLTq001KZ001Ni1^@s61Kfk*0003oNkl<Zc-rlj z&25B0425Z7TcCw)AuVhR+rqRkEu@x|z`%hEKN3Q~9l?>4^SrSmv|1^bodHGjq$dV5 zl0R(olO#W)Bq}N@Dk`Wb!bBLaFlAX@vMl>#=Xp+5RS{z3oFk3%9<MM+lCqJs1H=~_ zNpE@`@tekZ4+9Oua0v#(0EfUhkwS<&06tnI{*A+SnkM^p7yw+K63%R$54K!0Y>qSd zIF9ar!$=YZ_)suj?`CP=CL0PS-Bro#OsL?UE#u{9W=;ho3A8n7UDvj4TiY}ZVcp@_ z>AA!l&(X3h?|-yqKp&OC+8p{h;5$^9q9~4qVWISft0L{Pec#&`b7e3m#yiZ@{HSR6 z2A+e%pk?=UU7eV4PJD!Ctj)G<;b7v=RfIVs44ttu<k^4f8|(u^szt%ST>t<807*qo IM6N<$f}p9KkN^Mx diff --git a/java/res/drawable-hdpi/key_hint_exclamation_holo.9.png b/java/res/drawable-hdpi/key_hint_exclamation_holo.9.png index 7230fb92a7d35371daa538a622e481b2b64cebe5..0e2d3545ec7f5688a9591a8ee53fb55287dd6c5b 100644 GIT binary patch delta 534 zcmeyzd6rYLGr-TCmrII^fq{Y7)59eQNJ{{*3<n#KtbSJiZlmH~Mg=2ta|1_XOGgt! zBV#iQLqkhT6K6+9OG^U_H$zKv6T``NOfm{aPOfIg<`!nI7RKg=hAwW7E-vPdPEID~ zuEwU8&TdANs}PDzaVpxzln`TV>|$<c46?w;1e<kA3dJQsscBXz`N^fZsd*)yF1AV) zxdnPDnJHETom#}~RIe_k(+l+9Ur!gukcwMZLUXyB3<U1w2D4}%Jz)3ce|?m^P?t~Z zifyZfIRy_IZ`;uPa$!$(<-BS>fj|ZZF2#nL>uS5rIr!Z=y&v8*v8~yXc0*~uXhHO? z!(6)`uVJ!OU@CZ@mG<mWfsRtLkH@~CSNrZi-TqGAD)ZuO4ik09=k@k;n%7LN`q$%H z+*G;zr4rK?oryt<u5*3L{r0k2f@PchovSL7t+stRbLq&2_Xe$eZYs4wdLHX`PUZ={ zd|>IGbuXM}<-97D;r5$-Lt;v(Y~+y%d_T`QPGd+rQ{L)0+oRCxHRIwpB5cKCe>X&( zzIn1ZBkO;dmYCcESE&Qh3=g`lNt?T6e^WicV00w1`OrE^c3@C2c)I$ztaD0e0sz`C BylDUc delta 583 zcmX@h`HxevGr-TCmrII^fq{Y7)59eQNQ(op1P2?C6s$=r-KhANQNhjJ+|AI?+{D1# z$iU3P(9pu!(8R^q)Xl=e#M!{i(P^?BlZ=9ylcBk*fw`-zp#@Nhi<_gVxsjuVo1?3X zfu*IJh3n)hgd!K5incK	&xw;cRB<XkqH;<Ya1M;by6%P+Ss}nr4-fpIn-onpfiK zVyje<TcDScnPP>Z7u~5v%ue-R-kWJLFfi(Qx;TbZ+}acBnAc*!v*qTJ`#0}@DYyN^ zQWv1Yx2N&&x+4qQbB_wnT2g4bW|5g{q+r&`76HR~7Rl{%i;tY?>xj7L9o0JVCBy0$ z4#A%^=JwSm*40EMJrg}rFSD&!vQmU~)!NbuR&fVyy~1Lq6};Daz6!@2u-hwL-?O_& zFMCzytmpgQFJJdM?r+Rv>-VhU4VP`sADT5Sb!US5(F2t-$F=<?$}{>kdiTlx;*(6a z`_S9f=zqCna_81E*7BW>L9S2Q5-Z|Mxi!-^_iu~z2;}?3xsK81u=xM^zM_GXDr2vw z>mS{|EjPaFiOkjSZ=<q*E9;hpM=^x4UiH~IZ9n4<&#C|SZeI|7<jST^TN=GS&CHJ# zbL{72{+AVHSafL5jk}V};R%P`V@hT6%K80TENeLp7?z38`Vv*L_&6|aFnGH9xvX<a GXaWG#4b-3j diff --git a/java/res/drawable-hdpi/key_hint_exclamation_large_holo.9.png b/java/res/drawable-hdpi/key_hint_exclamation_large_holo.9.png index 0152ce21b63d58b62875506b8fb62f2193d80a92..75a450c872f25608bf8670bb811579a11db7ca37 100644 GIT binary patch delta 674 zcmdnUH;2ouGr-TCmrII^fq{Y7)59eQNJ{{*3<n#KtbSJi4oFFsxJHx&=ckpFCl;kL zIHu$$r7C#lCZ?wbr6#6S7M@JC*{FAevEIns+`!S;($U1w$k@!n(9qJ-#M#l&($c`f z&Ct@^#8640BDcWT*UBY7ximL5uf)^ERtYGgmy(%cW#r^$<YsAT;%Z@RZfNM@=IG*L z?&#!XV(w~eYU%7|1k>x8S6q^qmz)aIn~BgXX^czr<ata93dY7R=7z=~_ZXRAbKPV) zW*G%SUYH!k>{P$uL)AP621XxG7srr_TUWxo^9~sZe7(UU_NSSpdz~c%`vZoUW$iCh zs~Y4Qn77>S>JN$H&=D|Pm;PjmhG@#FBO-3IQj*jwzwI%f++gU&&>-l<a4dCpNxFa> zkGNiI`sxP<-Lp1ne%j64ruo|Rb>nWki2KpkciI?SYS!mJe`amHUZcXvIkFd4-4{RI zd9BK)!)vb%&#&`&e&W6pOPn$y<abt_dOE?m$VWTy)!QsBug0VQ^)An5u(;G4lvm3b zFz@%?52lhU*bd%l-L=N+*eTwehZAfL`&B<X=Cv|q%d~9K%)?<DPi9}g<F(FpckJWr zy_H8A{dRx7vgZ2aoz8)LD?+o@EPneW<BWvt<1aCR45v1;%=m9p(&hb-LHy#;&!3V_ zeKfhA{+@Z_hYWknq>ZWO#`l{w^4aSdPn@!PcIQm!#r2DJ?~V)MY3N}1z&2se&C~r8 fMFncO4H!<nE1W2O;MithdSmc(^>bP0l+XkK84dl5 delta 1188 zcmbQkwUJM+Gr-TCmrII^fq{Y7)59eQNGk)e3I`jIWWLk<5J)i=2e~^jtUD+3a--V~ zMg=!>b2mdna}xt|BLg!FLqiK^LlYNcQ#T6>6K4Z6N2kelOfm{)PKM^L2Ij7=h8932 zE^dyd=0=VdZjP=l29}m?7Os=45Q<!ID%!@B5QAZzg|nHZqlKxXlar~5g`1_4LUBn@ zYMNC_esXDUYF>$_i>*>cZh>A(W{MStUUa7xF+0_Nd2gl#^rd2nYeY$Kep*R+Vo@rC zdr@LRMrN{eeqLE>QAui%f`(^aNotN}dHXL(V8Hlzx;TbZ%y}~7ymywP$nob{-wrRo z9`CtR=#Ix~p=ee`)?KgUU$hIxZr5wgc)BWd%8h<k0i|3ero~Dfb>dq+IuvfP>J}}| zyZfs4dHtE$g5A|yuWx=`y{A#1r~KWWp9SY;TBhqwOr7a4IkmZOfzeE!gXt^0mIl4m z_RQRKQRZLYrRx1wJWu9Eu?q9B{nwMY7xivgdpmnkRh8G&^UtGYjJ4!{?@zEh@?t-0 zu-4QQKYv!5E_?Oz>C>mD4J`I6p85RQ*ieFpDaS-_Zdc3C`k$2#R~uA(FcUrYwv0PD zIeAHhj+y+kmoGbW^74fC#+?_x(#+!{yP#~D8J}v`q6w#;&f+(=v-6u_`o)JMA;qZK z$7ilgkg>$<v)2UskN0|edmsDywe<6=SF1EdxH9>i#b3RA`E%p$-PXmGm6nswraj%g zd-w5|FJHQ+scwm4Kk%Y{pLE+XwgVlvZ{NOj^k{2~fw{T)?}r5y^2c%(=!qP7VcPie z-8-@C*RCyDyjc0=zkhN2_U*ejf7Yx^GHtsKJS>QqHhsEtdwaWL%g$Z9tY*xaW7A;B z&YyEuhuI)WX(9)ck3iyq*l32$tjT3(6W^5W-mzhWK+CN5Lv!ZN&Gq&1$>6JZE}wig z%k=QX_xEq!{AfHwv?21Rfbso(vo(5d=9ry5cdjaE<rMZrg+?_-HO^$QvTG$-Y|NPl zpA_x1sjaP@ckrO&&F7z06L)9xHSb)`E3{0|VGT1gb67*+ufKKf`T6UeUpx07vY2~L zuORTjlP4+-?f2fkeJeNTK(&s&sr<4Sz54LqI@#P0=4ts@&E<1Y6ge;>u&Hs!rM-Li zUTr;S`od~Ib8~Ij`3o+byH^(H<>gfr78XhfEuG_|W?XRg<c8d{&3h^hw2q3dPv@}- zkaQ3iUY~jEpGEfZBtxNIx0l>n(|(%pM7aIfl)6D+nu@3Bv#(!8^XD+-WX4_p;I)45 zGJoxQTMg^dfHJODr-yeRWoYWW+PGsqck|mHKO(OB?vd|w`Ef32O}*#brkdnr=C$5y zW3Kz&`1Sku$rmp)uAVs2ktDBkS%8iE(=E%Gxb@#<d#V_&+Z^Cuc~HYMGbWesUyQ@_ zdZ}lRWg|{YtCkD@%}(7I5tTo4mRkLCk>s|o?QLxu2W0$#neYF9W`-ThABo;c4!#QH OGI+ZBxvX<aXaWGDb^8<m diff --git a/java/res/drawable-hdpi/key_hint_question_holo.9.png b/java/res/drawable-hdpi/key_hint_question_holo.9.png index 088550f5bffbd8e657e4f13715e510b37f028ccb..84bf78fd419c7783fe35c830d0b2fea5a600d502 100644 GIT binary patch delta 636 zcmeyswTVlyGr-TCmrII^fq{Y7)59eQNJ{{*3<n#KtbSJiZlmH~Mg=2ta|1_XOGgt! zBV#iQLqkhT6K6+9OG^U_H$zKv6T``NOfm{aPOdIS=B9?O7RKg=hAwW7E-vPdPEID~ zuEwU8&TdANs}PC|a4Ooyln`TV>|$<c46?w;1e<kA3dJQsscBXz`N^fZsd*)yF1AV) zxdnPDnJHETom#}~RR7T3_XGn2W0I$fV@SoVEuruIn+*isZgr59vj34Bz3Bh{|EY8M zjFYceXe58jneD{ExtO)eQ}e^adtdjK+d8-~F?et={@qs+u$!4vU{`?`llu~R#T74u zMZU4<mGEV>mYro<pnRa}<VuERkIt{pFVi_4;w8D-KP`aKZ_ekU+VcA9ZLTLYr6d~e zFWM1y^0L}azRnp_obF_N@D7t_Huz(7OzY`OtFA@L{*&at#+rC?D^9YMn!#6pXHDxZ z*XQ+r|NNS!n;Lwx{FGjO{8mw;vbaOba`(LXti76j;gqhohimUHEfzbFH$UCCXzk(4 zWx;V??=GJ_rdWUYWT9Z!l*v5zJ?mwzubcbEiaFuH^P)GqzU}JnVe1GyRheilam>#l zcJlM~{)o&CLF#?3p{eVdPq8xSzR$G}Sba3&tDV$^XP2z6n!c@+*Ux-l{9@&MoezRL zUrQ7$Ogneti`0XI=|vR`i%lF17-k$=y*Z-egZ=@AKF(=NpFRxu2ux25p00i_>zoo8 Fn*c*P^K$?I delta 698 zcmdnQ^?^&VGr-TCmrII^fq{Y7)59eQNQ(op1P2?C6s$=r-KhANQNhjJ+|AI?+{D1# z$iU3P(9pu!(8R^q)Xl=e#M!{i(P^?BlZ=9ylc9@|ft#tTp#@Nhi<_gVxsjuVo1?3X zfu*IJh3n)hgd!81incK	&xw;cRB<XkqH;<Ya1M;by6%P+Ss}nr4-fpIn-onpfiK zVyje<TcDScnPP>Z7u~5v%ue;uQvF967#J6Lx;TbZ+}abm*YB`_z_wm#mZ=j?O%e=s zdUYv%0e?VeFMC2tdfUS2BN7KESoU97=^ScU@^VsmL+=XaWY4VP@VTnOcht6Us>ka2 zJvv{0|8Gn7TFK`z#>Xt~UDs^VN$2fI;O#o%eYfOK_w%!tgG5%y<*DBC+otAPuT@^u zDXOu3@8T5!{TaOpTqV6?=k=`}@;=^b*#1J=S)QqWV(e^<e=gmO^Zk~8e_QrDjH7Vj zlwUrVOH5?=l&u_OCk5~=n5%R8-n7$Cz2`lDzwf<0t7C!Z?;mlTrk&C}Z2bxTj{WMB zJ&%9hQ^&rf$UWIFXX}q|4(A>ITJ*ga>#lE|cm6r&n)8nS1{aU+WtGvDY0o@eE$SM$ z|N3j&^<k^88}Q^mi1e#@U2Az=?MvSF>Q*z)NrEmDgnsPe+EIKa$Z}hURDYH%qw%UK zJl|GsQWLWFDil7LV^+<u&;HoskERy`J0}@MnUp?a^YB`^>QZ2<*yUf#{!YC+b80&G zS<dO-?N52Fi=2LLiu|2-ALdyud!%15z4%3C?tee=9VUt9A6Gvv+tL2O!Y2Jb6Ay!q X_qE9f=9TLKlOuzttDnm{r-UW|!m12| diff --git a/java/res/drawable-hdpi/key_hint_question_large_holo.9.png b/java/res/drawable-hdpi/key_hint_question_large_holo.9.png index 8a9dffbe2739819015a648aa2b1fa1aab96397a6..d1e9fda0696e8088d2ad2bedbb418c9763d4c275 100644 GIT binary patch literal 1440 zcmeAS@N?(olHy`uVBq!ia0vp^5<o1&!3HF&pVhwuQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{&CLn2Bde0{8v^K<nQL2C3WatnaE85nHrD+&^mvr|hH zl2X$%^K6yg@7}MZkeOnu6mIHk;9KCFnvv;IRg@ZB<rk7%m7Q#vqGWHUU{hfQG$1#% zBvGLvHz%*ys=`(YY_1iM4HDK@QUEI{$+lI3I4Z(7K*2e`C{@8!&p<cXz|26w%uvtJ z*u>o2Tt~skz|cV7z)0WFNY~KZ%Gk)tz(4^Clz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdpzyaD(%Tp#cR9GX09g0)0b01O41wkiWpHi%Wu15zfG>x;Uh=AXPso zwK%`DC>a<ZY05Coz_7z_5lA7>HCFybnZQU%%yG$2F3nBNEAe!(RRYTBrDUd98JU|K zI2v0zniv`xn^_nFy>H^|=xAwaVBuzHX>MW&GXtw$CpSwYOH)f%3uALbLl-wk7Z-C! zCnpngS7TF4XE!65UeCPZlEl2^RG7V)AbTNtE%55KaxO|uEXgkl$<NP$rGS8p{F40Q zjQj!x=U`I>-^Aq1JP;ogJrLizq!wkCrKY$Q<>xAZ!`CVki~YvNF6M^DAfFnUVD~pf zZwfhKrVn(CJ}7Y@B^H<vFa?5`@T3pqz%x&39x%rg0kg)}%_o7`lJSD4i(^Q|tutZX zeuokS{{5d8B;qML)xBgTd%}CpnAO!cUo+aYv0q@`FrB%8;m+e@;%hHXaH^QTzjWD5 zDV2a<8#*V~{FTp5|2H!~E$W>G-{U#fJ%)Xs_ltG9of8tU*>OZ@nn>Ivj<ZP}lfEi6 ztY|QCU_7xUol&h}qCP+4p~VwFg*LTSF;q*Qd~I{X>8b4IXt^G@^liD}39)6#rz@R9 zuSO-B-)~CgyU_dSAYa?ZrEBjWDn9Q0?tAggH>GvamlN|QnJ=_CARe?y=X$F^t%UR@ z6-i^ozJyp;{`SWoJ?CYbK040jZ6vg#FhJ)@;+pes&FA00eRaP_FyjjbwuY74f2P&U z`9CLM+WZWw?pe#4;?6yK6l%V%;Z5-Ol1X0zZr#tmWE?if>ckH9>%HFomLCesBebr) zu&a7;WM#_H($t-w<V0iEcpVd1s`%F6d1O?eT;}~4(OCvldp5l++%VzLvt4DfN0|S0 zGi&VVS#>X%b@9W*J893&EFOPe%_I}^;8?|@wm-)ntL5z$6DenoX8yWxTKqfrhYp`- z-Mg~MYs&8)sXJHtn-{RDyqfXSa{aHmQ-`HKxTr;}=F;{O)BU9Q@2a_FC9|I39QCvV jm*<@57gQ1WFP6X{$hW!ka-gOwsLb?q^>bP0l+XkKJwgxH literal 671 zcmV;Q0$}}#P)<h;3K|Lk000e1NJLTq001KZ001Ni1^@s61Kfk*0007JNkl<Zc-rlj zJ!>LS6oz$1jmE6OK^X!TTP=uKI4M-nLPV`B1#Lpw6e6;n&6-NoLJ<^2`vt+$&qf@- z%f&yiKOz6%?m6xiZZxnPH{&MYffp|0;C(pfJ!g(e^*e~_9OpR4InJ>SH6sqhzaVb! zy<>uWI2gQ0L!|>5s4kiF1@jJfBoz6ZjPMi!WdvPQnHiZtdMYgfWwTjMF_>5^rYjbU z#zv!YjjGjZW>hYhGsDFvgTd76;m`Gx$>iH|x%`P*EEZ(7T0OzDr%tEy)$Mkh1VPwA z@c_>&1!G93(+0S>Je$qr@pvo`hr`-@KHsd@>kWdHN+l^0iAdB-8i3a*24l0?43Z?3 zL9)x`lKp;vt=sKx0B!@BB2YRh8jUIr!!v$B<K9>-mK%@9^SRgSeV<OJD3Zx!f&dt# zCRYrGW4Z}FAtn+DvE6PzK#2&d-|zo0nM?xwCeT)YTh9<e4q(ursZ>gAHk+a>%Ma+4 zR;xvl$)vI{dqWS~Rcp0cui*0FXfz69M!>`}lt=dYd|znROmqOgd26%f+GYk}z$cH8 z5frJ{>!ENs9HN8oa%Wy8Ch!3a=*sDIKHlEmqKMsY4?*b;V6eor%*w(z91g+j^$O75 zRy;$?qfb83@?6leD*B<^!ib`11izG_L}l7V_h8g}+Rj=k^~qocgTXVHcszbm81?QV zoWl8hzEr7HO4VwW6bgmAKp=2O2cm{Cuc9zKvr4f0%(E{wv&;N{7@RFfbkVC}IA-J9 zc|*sX`6CD2t6^T+gZK5X`|rnvIYqob81f!7Llo8@;};tR6gToL%Ul2e002ovPDHLk FV1i5GHNF4< diff --git a/java/res/drawable-hdpi/key_hint_quote_holo.9.png b/java/res/drawable-hdpi/key_hint_quote_holo.9.png index 51dcfac990ce9ab42f757f4f6a55290af64fb801..9d5a88bbfaab56805e1b40b1a37da91b4e89a520 100644 GIT binary patch delta 484 zcmaFKIfqlRGr-TCmrII^fq{Y7)59eQNJ{{*3<n#KtbSJiZlmH~Mg=2ta|1_XOGgt! zBV#iQLqkhT6K6+9OG^U_H$zKv6T``NOfm{aPOdIS=BB2u7RKg=hAwW7E-vPdPEID~ zuEwU8&TdANs}PDza4Ooyln`TV>|$<c46?w;1e<kA3dJQsscBXz`N^fZsd*)yF1AV) zxdnPDnJHETom#}~R3FLws~_mUGoCJvAr-gYOikoIq#)4t{#;h`B7WAt|Kr84@N;D4 zO;`V|kfb$B;9=wJ_XXc`=Iv85W>zv{Sny@P?3R0iQY|$Wj*oAgSbFrzkKilc_=AF9 zUg_97YvboN91e^T9Q&p)<ZOEVcHiaCHeU5IZSB`)#nf8PFA3!pOH0iZI~X=g<#TE2 zL|-NAHi3A>Smpz!3pX)Oo#kW|nsVyS#LFKy)Yn}IbU0IQaM)?lX_HjZf2TELx9~f8 z{#d?d5wq0-=6_5Ied$rg4AUec@@6b%xX;AHQ1UJ2$<afuxj>IGc)I$ztaD0e0s!pj Brf>iN delta 562 zcmbQk`I1wyGr-TCmrII^fq{Y7)59eQNQ(op1P2?C6s$=r-KhANQNhjJ+|AI?+{D1# z$iU3P(9pu!(8R^q)Xl=e#M!{i(P^?BlZ=9ylcBk*fw`Hhp#@Nhi<_gVxsjuVo1?3X zfu*IJh3n)hgd$U%incK	&xw;cRB<XkqH;<Ya1M;by6%P+Ss}nr4-fpIn-onpfiK zVyje<TcDScnPP>Z7u~5v%ue+hKf3NSFfdAbx;TbZ+<Fqak*~=>;O#>}H6ix8gN+CI z6E64{d=UP@u5RC)Z?xvrt7nH+881xF?yC?oSa9X2x0h$;ecQPB^$spv3?7=S-)c{N z*unl(!RD#K1-oU_9;=_Zd-@XJW4VgWCta9Jw(uR1OYq;K*2%iY_j1{(2`o35>unzA zpLlTKfarHqb!pwx%r>VtxlU3!zDcKi-~026HExN!ZuGhQCFf@SriHxT`hAbr%AWZA zN1*NDtrZ2P2c{dcuRE>#t^6cI-j-|TE>|1{)~s4(Wtc3b)R}c%_*#vc$@imo#Lu3! zvc0A2bpDuZQ4IID$1}LU1^pM_DYdx%N%6)B=Kr>D+reJ{?%|OKF)jO;UMjci%~X!& mi-{>Un7Dj5-{M`|1`H)$d0&bjt~vuu1`M9AelF{r5}E*xP|u72 diff --git a/java/res/drawable-hdpi/key_hint_quote_large_holo.9.png b/java/res/drawable-hdpi/key_hint_quote_large_holo.9.png index 6514e0bf7f587a56376658957fd9beba16bf8d25..49154a7370e23fde63789c7b1b58bb9be16bfc77 100644 GIT binary patch delta 582 zcmdnQdw|oeGr-TCmrII^fq{Y7)59eQNJ{{*3<n#KtbSJi4oFFsxJHx&=ckpFCl;kL zIHu$$r7C#lCZ?wbr6#6S7M@JC*{FAevEIns+`!S;($U1w$k@!n(9qJ-#M#l&($c`f z&Ct@^#8640BDcWT*UBY7ximL5uf)^ERtYGgmy(%cW#r^$X=G{Y;%Z@RZfNM@=IG*L z?&#!XV(w~eYU%7|1k>x8S6q^qmz)aIn~BgX>5NPB<ata93dY7R=7z=~_ZXRAbKPV) zW*G%SUYH!k>{NgFjHx3qR6cmRIEGZ*O8WEvzdf_E^5c3oHa0hb*|!=vy^M`6Ff_=V zJK~UhfJrGs(By@qOSHT|0Ry|hW~ZO~7n&ITm%dkVK-fm%Fl*-r)f1EWcPL5D=XY3_ zQuXcA)VK5Z*V{TW$-H^<`Tw7v%8h5lg~fL9@^;!UImT$*@#A~_|NSf%rnf2Z81c;I z5B=Rf$0Mz6nE~epC%0pVZ~XB1=(LH|CxBV?piJ7c&o_QJe3<+wg{x=H=Ng+k?S&ue zC(iEL(J*6n!(D~z^@qYk9(cRn->{@|(kBK*d7j=wc~_bOx!rUn#Kam-aVso~tz=o6 k8T5#eJIJkpftlg7K(hXeseBGkfxc((boFyt=akR{09=a59RL6T delta 1060 zcmX@WxrtY=Gr-TCmrII^fq{Y7)59eQNGk)e3I`jIWWLk<5J)i=2e~^jtUD+3a--V~ zMg=!>b2mdna}xt|BLg!FLqiK^LlYNcQ#T6>6K4Z6N2kelOfm{)PKM^L2Igk2h8932 zE^dyd=0=VdZjP=l29}m?7Os=45Q<E3D%!@B5QAZzg|nHZqlKxXlar~5g`1_4LUBn@ zYMNC_esXDUYF>$_i>*>cZh>A(W{MStUUa7xF+0_3{OGz5^rd2nYeY$Kep*R+Vo@rC zdr@LRMrN{eeqLE>QAui%f`(^aNotN}dHXL(1_q|Ho-U3d6?5LqF!V4AlsRyJZq%~* z^Zaft%F~nI!IC(;HTuCDrH<g1Xx&Lo3!I#rlRSBS`Esq)A~F{Qb+A5C;Ly{3bU}T` ztJ?qHchn1iuAbR?{bOwnf8F!l<?qkU|Nejf|CJ}+mMLf0+*}bc<@8g5^PgKjR@l6} zyg>H<3z<T`T)9I=5s!F_PChs*?^JZU!}prOL*K<09gZeVyzu(#lc|;Olm4eZnXqu} zgPr2pX0s>9M78)W|C}mW^Djnn{q=5f3FZyl2U?sIpRG1p@}d5c+P2%dTQ+ZQ_EEdM zJY`Lo_U7HYyMO)tSCleu{`^3-$&NfGjxLNVSi%^;imYbx3iMik-B@2=|MWzllQO)R zHZx_gd|^;eU?^eA3Y18RIGNJp_W0Djd-K#LdSqOBxy4SbyYRyEzW#pR<;$1vs<2si z`~LlK=gA>$F*UWdwQv8_|G5*WAtG}%YwG#5&FnvG{xNK_|Mug@iTJp<PYR!fQ#?*M zxNXdl4C6T8bu{T>TztH{_EfJeF?yff-QE2JiVpp=J+TMq+Hl1hm420}8*k>^3R)?$ z_G;F}-Mg*rggPzOuUj{VpP&D`!M9hRf9`W_YdM)?mObg@6X7SPFP}VlQop|9^VtH6 zJ(Xo;$Cd}J6tel~ZScN*$EGExB$qPO39oHPY|D@K{dC%)X;E))@5@!IMLwr5d$4l( zG0%(5TxXnE)24+remqjOw=ZIvsP=~~Gm_d)E@trjnj^)-_Tt&Iw#F!>LtGkZ0>@9< zRAlMLw_U6MzKFZ$ue8zPiygO?J6iv{SZ_JmvVLyQn?x%c8<&F#6MQCpJ@-KWP@{uG zkYvon{QUfj1r~Gko26^QCz|+(i;H_K4O$qs+SJ}>houbPmc4s@3wFj_vE#i}cx%Sp zyn5x&bxh~~&0w0Q+kCKIuVnY#^QTX2oArV1eSwU--Bgjps2}HiOyj)Lirr#Lf0Slt jcXP=60cQ38|Ct$%a)iB=nC)5z%nJ;ju6{1-oD!M<Wx2&E diff --git a/java/res/drawable-hdpi/key_hint_underline_holo.9.png b/java/res/drawable-hdpi/key_hint_underline_holo.9.png index fef1b63697a0c457ee6763a2dfe053c56c5b8798..8d83cf93875481e13e47d52f81f9ed98525c16cb 100644 GIT binary patch delta 436 zcmZqUe8ZvG8Q|y6%O%Cdz`(%k>ERLtq$Pk@hJy`ARzItMw^8vgqk@sSxq+jxrK5?V zk+GSDp`oRviL;}lrKN#|o1vw-iQ!~BCK&}ICs!9Eb5l!K3uALbLl-wk7Z-C!Cnpng zS7TF4XE&qCRR~2EI2CPUN{BHwb}=_J23cTag3UT5h2oN+)HJJ<{N&Qy)VvZ;7h9!@ z+ycFn%oHnvPAy_~s`uKj$`17398VX=kcwMxruy==7;v=Szr3qpedl-k+d9XLSGb<s zF>A@R5NY!XU(y|aa!qj(Wb|ZoxNEO_cBhc2i~hX@n^@*%wLG(T;VWohmieHj@T4xL znOBqb0!P5yh*yku_jmfs<=rloYJb||(aGLnSf<(f_IlQI@9%oEdM!;|JX$@X(+pJl zC1rPh?%Kq*XVQCSlgr0fuq{}6$NQ-U<2xoEhP9_PEFLw@pA2*;gQu&X%Q~loCIDeK BivR!s delta 462 zcmaFE(Z;FR8Q|y6%O%Cdz`(%k>ERLtq{V?)f`bi63f82RZdClssNiO9?q+CcZen0= zWMF1tXlUVVXyRgQ>SkeK;%s2%=rq}mNk+lU$;i^t)Y8?}&;qE$#m&*w+{n?w&C%7x zz|zvq!gX>LLXitjMcbGXVlb?;a5l4av@msaaxyisaI;iWC@u*~O|weLPcF?(%`5SA zu~n+bEznEJOtHeyi|*7SW~cgH$$9EP|84VhaSW-r^(OQn?_mX=FM?_>)^9ct0iiFK zMZ2_@FLM&}T&%S+h|}9Wz@_i8$hm|xrUNc4Gv7!0&0oNL>SE*5)El?^=4<@-FZ#*c zuG?HQVZNQHb-4Jfj|P$FMfWIr{pH%29k4pp~~3e_z$<4&rxhI~9cCpaPYCzD~2 z*K~nHXX_>u?>i>({%o6VVfWt4tG1oe_F8>!lJ}FU*bndi=%0RGzI5Y(s&mn|l&x6e gzqa)iRdE?G#Qya%YCoP(4fFzor>mdKI;Vst0DM55J^%m! diff --git a/java/res/drawable-hdpi/keyboard_background_holo.9.png b/java/res/drawable-hdpi/keyboard_background_holo.9.png new file mode 100644 index 0000000000000000000000000000000000000000..1eeb9e5cce4e525d39cc087aec54b696201145af GIT binary patch literal 1107 zcmbVMNoW&M7)~un7itwLqF%-+>OnJWlIaXd>m-xdh>2~IV#JG+nU`irX6ejpljcxd zz~$h<lSglEh2lX_E4Z9o@Sq@y;z1FV;&u_LBCT(-R1cvC=kosl&HsJ>{?3df_x5yc z>GF6yJ@H{Fh0b=5r)_7)S|pWnKX;*HGmK_o+RVeUYy*#|nmK^Qb$J}5fUHhWJOV)k z%4?Y{%qI2=im4N_YeQ6Y3!y!p;84Yql_G#x4vcF?2>*8bE{<tx2tVjgPzfsn3fgeh z2I*=tqg0Cuui`_4Sg;}>0v$jZtLP=e5h@|P#w#G%y(V$2W&(>LydG3GF@i-*8(@Bd z@+wq-!U8lwvp$aFc4G`hQzXTZG~=Z?fn@}W!WtiryxD4ANJ+7VFQkR=0)&=8lI3!l zD6@oVkCQad^DYO&c#(zInKqzY@fuEllR*NGVrv%EOapTn<(xSQLpX}Go`P;A5-Y@p z(<l@w8Cj7nk|rop*WJ8o)(%X8zhShrb~4izAXC6GCv64wBj4WyquQ<R$TdXK2nTEp zHAOB-rZTAm1IDEgj{Xp;rV0$lQ6kHWKAK?z12jtC7ZF9Crv_p)&-v&kM=NYJ8l(N; zSU5Vs`e|B<iIT*L;joX3vVJ}iW185w;Xv6?K+~^={5G)Ss#qan0~wlj#xzUK2^cAu z&~yr>g+<bSEFmkJ;p%RC>e))b)~0|OvrQeV)mPA3_-9#(qggjo#@9OUI#&Iknvp0N z(jAU}hNXFhCeRgEMjt6F%L5FwF*aI_=UV3*v{onLl9;Ky{(Sz~x}#V}^vcJji%ZKd zlkwgc9}agtd3)@OaeC8KU*8@gedDqIVB^E?!p(V|EEY~}|IvGI+t&7l_2r)SMS9=a z?oW55&apM;ZoQiuoh@DH8#?r=EhbJ~U;I6>aCxlv*I<ZB1>b)i4epp<zCTQD$X*T4 dj?P@WgkFlLCsW1m)xeCq=J9A!nhPH}{s(s~W!?Y) literal 0 HcmV?d00001 diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_background_holo.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_background_holo.9.png new file mode 100644 index 0000000000000000000000000000000000000000..571f3aa3715d409cb70f88a9325da9830b89890a GIT binary patch literal 1004 zcmbVLJ#W)M7`9XiN~;Q15W~q`7>IpmJMo9=M*c`>BwVUAf-Fcl_NB2}`^@=5+)juI z_%Uou3|(PhK}?MN0VX8GQqD<S7@`hXvhTz1^Ssad_2yvz!Pdr|4M7mLdV7AKuWQx2 zevN-0-+O<~m)oo}WQSzTW+BCb6O$1Jy)-<+eH_N8&p+WE4j3ncAsYq{t%#&jSlLKr znsc-u?6k`~jE*q_BYc!(w)o@2xd@Wj7N0Z&7~~$FBztERAD-<GqO;@3jK%gY*eNYe zkYW~sGCj!(tF*;Auf_M(wJd_U2|KpMg{Wb006ao5XiBgV!4?E9Bq3GPb^Sh2Ac8Vf zWTZ5ZZmEg|Ay_^l_eSHf)%UwgU;Jc?6UK5&mS?k>G*cx)k7Q(;X2qc>4Q|mWPBRvk zjjY(N8GKwsG|5>)GEgywBQj;S$dxWaNb?}LB+iOuqIk;WGR$QpK{-vUxaQUc>*K#N zR$3Q>(;UlvT#zY^cs<73HJIn_YDbkJS7SY*2`@@`;*)5a;*9ltTjYPFIEgJq*P)}D zj)oMqWgs5D<~fdOLZgdJT|+g;Dy)Va7n+9CF-#R9zw7wE?zpa|chsiob(I?1%L*1| z5w86v-0u==UWv6libF=|fRK~A0}dvHkzzt};2kzW5JpK>ovZRJqV+LNUf{S(Nebrq zwUQP7RikBa!5!C7wAFDhu<`%oOy*+bsyY5?mimf!V70w$eSWwc9-Q%sp?oxcU;nwu z$Lem+cLwFR(XWe(_S&tNH=yUb-*3JZUJL6``22BwS9<#8Yc+qp&c6T7efH`P6p}L5 literal 0 HcmV?d00001 diff --git a/java/res/drawable-hdpi/keyboard_popup_panel_background_holo.9.png b/java/res/drawable-hdpi/keyboard_popup_panel_background_holo.9.png new file mode 100644 index 0000000000000000000000000000000000000000..c33d6642941bbc3cb4cf9c153476ae3aa054f6b7 GIT binary patch literal 4311 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 literal 0 HcmV?d00001 diff --git a/java/res/drawable-hdpi/sym_keyboard_shift_locked_holo.png b/java/res/drawable-hdpi/sym_keyboard_shift_locked_holo.png new file mode 100644 index 0000000000000000000000000000000000000000..c432bf4a33b318e98f8dfb4687288862775c1d18 GIT binary patch literal 1480 zcmeAS@N?(olHy`uVBq!ia0vp^W<YGi!3HFC?|JS9Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{&CLn2Bde0{8v^K<nQL2C3WatnaEfri;v6eK2Rr<N!r zrKV@**($x?y<bToGsRXZ+|<{=x4=0yBh#a*C^fjsFC@7tJJ~Wt$=*)EroswnKyGSD zqC!P(PF}H9g{>0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWfo`&anSp|tp`M|! ziMhGCj)IYap@F`Ek-njkuA#Y=v5}R5fdUjL0c|TvNwW%aaf8|g<k>1^l#~=$>Fbx5 zm+O@q>*W`v>l<2HT7t|lGSUUA&@HaaD@m--%_~-hnc$LIoLrPyP?DLSrvNfBF)6>a z#8wIDQivCF3w(Xy2Imz+0}2>q`W1-<`i6Q2`nkCve}PpOmjtCEoPkw!aY$uBs(w&v zaeir0GB7^Ulwq2IVTa!$kV2qqto(~IfsvA!<C33Tnwy$e;^|_m1eDQB$xN{_GB-DH zG`4g!F*GtZvoHjD-^AI`(bCeu!p+dq+{6%O23EaJE+#Gp2Ij67#^#2GE^dx4F6NF- zPA2BA#-^6eZbmS@o_WP3iFwJXFncpW_CoZU;ni#9T$Gwvl3x^(pPvIu0Rb8LCHch} z`2`Bj!KMnniOHFHAU-I1Aii};Ey^rQO>ryA&s6}2uT>@%`;CoV%ngk}J~cAI?r(_R z6mr5$ALtl;P~t#JEHEKp3Is9XNgv38XP(qNV2&vQW(}i<x1$&s7=L)WIEGZ*dNX6U z7qg>CTlsMd&c+m8C7pvxzAYgygO+%UzR_v!T{?FvN7C{|2g5%&*2q>%t4@tPQ6=`T z)zN9wY}?J#3;6!%7+Y`ew=914s4eluo5h;x{=NrTd=N;B_1QDdu+y9?Tvtu5^W+YS zDBW;E+2+gQiRBKz6xXhL)fIR<*J19&dmq;--hX9Opc`u<dPjfOQn{DBFHi8k_n5y# z_0sB9XJ%wO%$@Yi!}`a$iR&kpt!7Ab`q}W|-_(y2-rsI{%+|g5zTr#J`=x3B)=L{l zd2KLbyLoWdr|na|2d-<bdTZ2lG+^TFy%TnEzAg>C_qZ*%=iPM`TScyA8|7Y^THXyZ zbTAcQndkXe_V&xg``oJ6DjoD$;eJWsaRggNJF8!6OP8M@{}RQ^mn0VLjS91v%BZ!f z+F#1h{gvRY(8vdunoN0CL|?jbDKNk1+tiE8O%05b?oLpfmd_^qCD|>m%pmuT;q@h% ze&3I3{_6hjb(V8k@8^4>FO{B0|6~2tdwynnOv1<1FOy8PUvMU;eVNOlbF$WFz2(CE zP5rWLb@LXzG1q)BW25T2PmRHASUneB+Eb~s(6{W6!H@M?dn!e;nA8%O(ym+F7ww;v zH!u27<;%33iHYmE1NKibR?9|;1bBqZv1epsi233C>8W_*2T<AS>FVdQ&MBb@0E?p? ArT_o{ literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_holo.9.png index bc0a03fc1ea14e3683383663df28d12457f82e69..c89f7385ae069d398e7a9075247579f0a51c9077 100644 GIT binary patch delta 602 zcmZ3_HIYlPGr-TCmrII^fq{Y7)59eQNXvmR2OE&IHdwc4qvBsi1tW8F14m;^M-xLM zV>1gwLrY5&XGcd%O9KlxLrZfL!^w6`G77G)Zic2#Zf>p?#-@gbE^dx4F6NF-PA2BA z#-^6eZbp-<5Q<!JD%!@B5MylYVs2;*vcSj$n{`SG#U(+hX;vxu$)&lec_p4Mwn`Pb z1$rr&DOLoXTEy&BpQF2PHUk5rqo<2wNX4xu;b*xH8SuneJzuzJ`QH<Kb`9%aADvtw z`@`cN>&F$sA!gAh95=5!eeI+Rw|vjKv)k3qPUktb>B}xYh6}S7cJn^m$@^kg;gdtJ z9_d~euAXnRF-~|(!RoTZu@4h_1Dkg*@m3L87aOBny`y52?#4HUb0$gGCtse^&vtBD zzph9gmw3%GGx@1g6eh3)x4KSJ$-e)cUt%}cm)$15;Z?ft7M9(susBle8|CgH=z1~i zeWsGx-7Kle0UR5{Uo$Q1iR)SvvFf;R<<$LNYcnP|oY<6eO!epmUkgk78AZJAJxg;Z z2p^8$`78U<Nt1VlGWk2yIS&`KUy9H4w#?9;>E4|pciUsx$*YV_Vx64lZg;ihF`R2t zDqQTkXr15$+xtuBRImQ*Kgn$AWbMk#%?C4&v1fj(+u%`C?Cf8E=}p%W8GlALhPj3Y Vd^e{uC;^iTgQu&X%Q~loCIFgP-n9S# delta 632 zcmbQpwVq3{Gr-TCmrII^fq{Y7)59eQNJ|5;I0qY${3T|hw^8vgqk@~cxtpP(xru?f zk%5_op`nGdp^1yJshfp`iL-&3qtj$NCK&}YM>i8!b5}Q4Lkpl17dJ;!b0bF!H%C_& z14~Oc3)jh22t}?q6>Vcmh{3SV!r9Ey(ZbZx$;s5j!p%}ip|~U{HO(p|Ke;qFHLt|e z#a5{zw?Ho?GsOx+FS=8Un4Rhu2Tby0U|@{*ba4!+xRvzh|9^Ytl?@Xo3a)r-uYB^? z1s!3=Bu2JZjr<OO*k-3{@oZr(cVOY3qRge#Ah!A6pP$C;9_-9JABjl(6Oy=+ee>qc z<qR+H2Yik{tn-*%@c#b#^YI&#Tz^ec^_Ga+U+25cchRCnj|>eBBLxKo&&0&U)Z2p8 zHVMkK%(t(%d-?RK>X(Oy*}D$=Iyf{W-rkn`zM``7Y@*}IrZo?Mh81)-=qcS^lz)Gp zVZ#~5neB6$F6uh_KT?TqnX~KS+2lj%l1mdlM11@HK7LhHTb`V-#-kU{jGq|gRj@wZ z;M-eaY-(95t2u4&<HwJMe|>o=yyL{eS{8=0jI-OH6u3=ENJ&eJlNAwR(R0z%ZE<|Y za5lPq?J~Bj=709r{Y~0i|G$pYK=dcmQP-1Od1jQyGwa@3vtq@K!^e)XtvYYV_)&Y; zwJR@j1vnL+EnK7;-|&NV9UH$FcUO#b!PY$tOgs!C?Wcasoh3OFn3xzmUHx3vIVCg! E0A?BN(EtDd diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png index 3f2fc0002dfa974a4d942095883e0c4955de4ca3..1fbb15ea5a36494465531f23b650af0a4de183f7 100644 GIT binary patch delta 814 zcmaFM^_W|+Gr-TCmrII^fq{Y7)59eQNV@~EJO>+)+?so#b)({6Mg=2ta|1_XOGgt! zBV#iQLqkhT6K6+9OG^U_H$zKv6T``NOfm{aPA*R7E~c)o7RKg=hAwW7E-vPdPEID~ zuEwU8&TdANs}PD@a4Ooyln`TV>|$<c46?w;1e<kA3dJQsscBXz`N^fZsd*)yF1AV) zxdnPDnJHETom#}~RR5$`<0k_Hldz|YV@SoVH?z+A9dZyjzWa96J{7eKYHiIQ51e#2 z*wd{ZcX;}R)d$%P>{!|T=hQIdt4(oOB<5s4w{c=Zrgyfq^J%|N>GqfO=Em>7J(uy> z?|oC+4UZKlOiSJ4ESYQ^)>jag>UNwjiHGsI{lh62CmjfMP_M}8{Nq-?Ja@umR=>3= z0f!WH|1mAEb1}}C$9B%Jv6DrFjs3cW>4oEtysw_KvOQ?jnc(>~cXQb_g%;re-jMr2 z!X+19mb^=etXp0g<?-<AV)+;RKSTLnh<6)U927oR8e6YnG-bho`R-q`<>ze36phI@ zQTX?&GH$cUZ}DS3AD(lqn!KWvz5eh7m4XtB4{J-_7u?_9a;T&EuxjE&wFgHIMxNC@ z#?slL?mj{AvesTrrPPUUPkyv~K7Z+{%LnY*&04C9O@E)s+J5_dTjHH3wG;o=#dlRp z-q@zg%hr77VaBX)E*nGc*mZpDkU73>=Hrh)#F8de-_VqHtxNjw>mvV`_9lPL+)dfS z^;7%Zlq)S{!j@gmTzoYvbKUECy3<bw2QZ&o{own-x#0=7PFBcWNnI1%ncJ89=YU<- z=dY8`?nsTi9&(?v?WLOKs#W{e?5^SG^`6A-E50~eXQOW|-`C`p-rBxJ8r@l2vzqof z$Zx)x!?Zc^-s`Vx^0vQrb$zNdf3ng1;+}?}RHk}kpC=Q9_gp-(p8pVw4CC|r4=>nD mbnU%y;GFr(jrW;&7!qq9PS`N#&u(BAVDNPHb6Mw<&;$U%6Hy%i delta 695 zcmaFN{gz9yGr-TCmrII^fq{Y7)59eQNJ|5;I0qY${3T|hw^8vgqk@~cxtpP(xru?f zk%5_op`nGdp^1yJshfp`iL-&3qtj$NCK&}YM<CzW(a6=%0;t5r&C%4{$kD>h(bdJk z($dYsb#fI#ks(e++n5q!Fs!q1HnViJFm-ftGBvSqvs6+jE(uCavr5TNF3nBNEAe!( zRjSA>&`ZfovBJ=c?$jb?r}{;6j_5NmFwXUKaSW-rbtmj>R<naZT>YemEAmc9<68GQ z-*?pTsQNgedLc{I%j73F+&?IIRBJww{l(WBldXF&!_#BcMq_WKG*6w*Oby8yv21tW z-~KC;KJE19Id8ILjvw4K=XRy6a~a>diH9Ru{_X61GwILVy$==im}S`&^3J5yZ<ae_ zE+A!kfO*2Nl~=QD5B=GDgg-n*i|_KwFZVw0iN0RyDbZGK{Bl=b$?m(>#|v3JC;jsN zQ=qCm)xdL7_~}iz0!6M~^Sx|hB*EjhNhf~o5|PvTI%3^T9A#U~FQynNb~IN!<w-kv zL*)L<6?5+D$i=&cUH``)IW3i4HTh%3pMrXK>&TtQ=1%KTpWQpv-t_kCih1gbG%iWr z_r1KOsCoayUJ=*K<ApxneAxj<J9BTlzWHs}sJC$<M}bCM=HolFdYTk|%=K#*ySU3$ zqLATzW$^N2b&JnE|9q^#qNYJ-SDVwS$Hr5*{H0hJCHs$?=%p}vhK8!PC0>}E(DPN~ zgp)#*jiK-6`#EMC=O29_@Ba468`&pJf8I2x#6Ng{ThAujd_}F~w!3@kSR@!sf4+X1 U^<AV7m=+m4UHx3vIVCg!0Q0901poj5 diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png index 9e77015ea58dae63db43568404dfcc0c1769a18a..e4469c6dc396191be1467c9d304644705e8526f3 100644 GIT binary patch delta 1136 zcmZqRUd*T18Q|y6%O%Cdz`(%k>ERLtq}_p7o`VfYZq2>Wx>4~jqk@sSxq+jxrK5?V zk+GSDp`oRviL;}lrKN#|o1vw-iQ!~BCK&}ICnr|}V;2Kg3uALbLl-wk7Z-C!Cnpng zS7TF4XE&qCRd7YlZa5WfV@ilIHg+*LGzM8<WP;5)C57UWpwu+0l>Fq<+|;}hPZwLI zirfOdl*|+>f=(@BcB<c>!+VK=fjQXI#WAGf)|;ra*}{$@^~RfbpUg`R&d%1pB__H> zRCKQhOTJd!9aonR{vULj*!BN0%CT-#_piD%S>D{<A)uv;bzy6lQ*^fdC6n22&Yk<E zwmWls=By)WL6=SV>wIRUq<{PSZLj(Jy}Tc5<wH0WUG!YCBK@yQX}Hw4`iWfO%xp0Y z5nMcLPMh$SMK)%&d$qP_xm{fKr+3|nTq)Njt~)s5x}VPQb@S4k^ycglnbjvdHDwsC z?VptVcEg9HQ0d}pXKVkI9{*$Y`N5Ru>AP$18*hLA@@S6Rqy7Ew_kK;S_+Pub<=!3( zeT}xx4O|t*g?pbrR4+>|keGMeXGT5u-;!vjd;70Azxtf@Co4bXyg>F24cBwCxaDf| ztm}WM?74GpiOAy%oE5!Qu`68sj;aX6t}HL&IcFB!F!5Kx#yi0)c~*Mx9g~>5JHbrY zQm#E>#_qRwJ}nH5zB*avW%O2&^s{-Ex@lP&HlpfD2OlpmVOV%D=1N7g2(u!C3kS#Z z`fXF@=;lW%aP~Yr#?~NsT<|>4GFFwf6O=!xa}}^3ILW&Bd26JXawOlfJL{HJZ(H>^ zCaPOS?H=2N7aVTNZl73O`=Saq+1<!&cq-x`_S_{*)_g~}UQXl{H@<61m;W}Oey{HK zaE{jYOA}>`84JF9ZYd5>I_|{1t6X=34Clj@is|(U9QU%e<nF4edoH}ou|L`M*W_@w z{QeEcBPQ>0Fpmgv?7K5HGqh46K<t<r>+!Zd^())2xW5W5{4Zqaes7ziea(O4B%d?( z+3_d(-g;ZxpW~R%uTXyXN2rm`=dVf`6E{luGzndqp0wg(Lt4?#ots={vF*@vUo3c_ zmH$#1*Mo@@>)oxYFK%Qg@%x!@Qb+aIlXW)^^2c6#xl(zq`Q_S^r(3=5Xs$bD{)*+= z+WE$I-$Uj{Rf*5vynpNMcW31EjNW=!9W#!P-YW4*Xwglntzy1=tM^^DnfA&%Zp&|L zy^mJM?)z*tR1el~Dx2*bcWv%ef6b|j3g1<DbI&U%G2z<f#V0IP+H1+?{jBUL+nc^0 zf$D;<g`+)vEKh58e3IMr)=zl$`AL=4Jxk}#Kl89#MEgnUMt<gH23wYRNU+;@u2@<6 zbJ@MczYO$mJFk0o)#vqFXYZ)c%I-P;gDTqoH{B3aGJdk3iHBi+|6kiMB|}kQA;RG4 L>gTe~DWM4flEvM& delta 714 zcmZ3?*TAjV8Q|y6%O%Cdz`(%k>ERLtq@{saoP!NW{t`3M+o<@LQNhjJ+|AI?+{D1# z$iU3P(9pu!(8R^q)Xl=e#M!{i(P^?BlZ=9yqnnAVxtp=8p#@Nhi<_gVxsjuVo1?3X zfu*IJh3n)hgd!uHincK	&xw;cRB<XkqH;<Ya1M;by6%P+Ss}nr4-fpIn-onpfiK zVyje<TcDScnPP>Z7u~5v%ue+dGj)N!WZdBC;uunK>&~=|{)Zeyj@|#-AhjT%lXsnp zTGpd?uY4XgaWi*M?o=%NxPQXMvr`+7yhu9q=2hMzHMKQayk@#0+*`iJGDqk+ICUTS zaN_P$)i1wg<=21j+p&)OGn*odeDTRU=L<LR${6YBnaIqaoDlt?{Nt%*Clms2)VDlX zks6sA({FILO`zU=b-qjBo+De$FNC*mFqv&N_gv)KFzc0Js~4=wN|>}r<7Uvxk|-Uq zOdGlNJYTLZ?48%zmT2?j^Ut1TnG0(tr%Jy1S`|EL$=`)j1^<i79G7e?aBp;6mdSKE zvFab!v&5Rt^SqzJ&DX1+X=?5L&%8OedZ9smoPR?7olA8y|Mx`eN{4TgO5b;-X1%bI zo{Our#=5fk4(As=_~MxmVLa6<wIud?pN!qLNoF$fHoc!#f6}X&U82NMYGZr<*vT2a zQ!c%BTKGVAQ6hihvgWGoldVi&o4?H4E}d&4^*qA0z3uOc1(828oo`n*>OYr@I%oWB z?ftWkLjIEu@vY%zpCGW!(4XO8<f3Y=rgud<V^qbuH`XnC{39Z3`Lp*5vn?iZw-`v@ oTNYb!EHA*3^KxFCJrfVZd8rp~Fa5vm3{0L3p00i_>zopr0AVm0`Tzg` diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_holo.9.png index b3ac506addd8d7ce2fa12a8c4853eba255cfc06a..f574a38c95a3ae226152345a9bc2a6618f64ffa6 100644 GIT binary patch delta 741 zcmZ3<HJe+pGr-TCmrII^fq{Y7)59eQNXvmR2OE&IHdwc4qvBsi1tW8F14m;^M-xLM zV>1gwLrY5&XGcd%O9KlxLrZfL!^w6`G73gcE+#Gp25znv#^#2GE^dx4F6NF-PA2BA z#-^6eZbp-<5Q<!JD%!@B5MylYVs2;*vcSj$n{`SG#U(+hX;vxu$)&lec_p4Mwn`Pb z1$rr&DOLoXTEy&BAD^>dhk=3dw5N+>NX4xu;og3S4Fr1cPT9s15WF$ruvN^$SE@xk zDtrws0@ZwtM}#_k^)CA6T@d9q(+P@N=^N$PBN-knvUA(#g_*4tmpnR+zkN=BR_SE% zJS<ee$t67~wMT2N)U2|wG=bd>=M|$QRWhcA)v#RKR@crN5!3dg{>m*qrJarM8bU19 zLUZzCEv^Yp)}6DGQ}@Y@j;zaBoWCyRq;o1o>^l%t6Lyes_UR+K%r71H-`_viZ@FFa z8=skXdXGh~zg{iJ*Z%#(ug=L6F2)I`FOCuq@m1I>-G6+#>$lCf-`ce$Ry04k#St&e zZCX^C{<!iU_YYIq;~O=WX5Fk$I^#9T<wS;!RIlEG%$1VwWou^4Rc=<{XcBhpy1nvx z;2*Yqe)D`@f2vTwA#WI$TODcmGd{Za<&;-fPJI6>DRW%Q^pc5a;A)eJeybTZ=SogF z9mU-}xAvlClag&iLrka5+2+@~{4I|d`1^HfT=z0!Z$9`n#pq+=)#s;zj%|x?%rbE} z`Nv>_`=*pxT79{(LiVDb-zIhN9=Wq%Z)*0&-WAU*7Vp|{=3UDizrx-lpZD1GWhwNY znzH@Tw3lyo?K!)snYA`B^QnYOxBYK!<^M}&s;vCb`dRk?!`UhO_a-NLv;tEugQu&X J%Q~loCIA71BccER delta 626 zcmbQuy^>3@Gr-TCmrII^fq{Y7)59eQNJ|5;I0qY${3T|hw^8vgqk@~cxtpP(xru?f zk%5_op`nGdp^1yJshfp`iL-&3qtj$NCK&}YM>iK!Gh;VbLkpl17dJ;!b0bF!H%C_& z14~Oc3)jh22t}?q6>Vcmh{3SV!r9Ey(ZbZx$;s5j!p%}ip|~U{HO(p|Ke;qFHLt|e z#a5{zw?Ho?GsOx+FS=8Un4Rh`)*Mh_U|@{&ba4!+xRvzh|9^Ytl?@Xo3a)r-uYB^? z1s!3=Bu2JZjr<OO*k-3{@oZr(cVOY3qRge#Ah!A6pP$C;9_-9JABjl(6Oy=+ee>qc z<qR+H2Yik{tn-*%@c#b#^Y^!8X8-!dJ6q!3zFPNfzK0GuJ!)jEi>#}=cP1t#rrs8) z)>u*d*YEH7FIHWBt+9!N#o?FZvxYOyV(E_0{`~&#|Kjp;|AcJ~4FW$`K00j8Ho;Qi z^Mqi7U8yfT=cIH`2sYnU>GMNpu?Uac=>|cs(9;*rCNsIp+^uPgImWv_L1x=Z!Te=v z%hxF%-BfO4W8)ORuZB_Fatgx&%Y@GpWX_d$2=$yfb7uA3yK^Le{HV~}#IZy^h3~?i z(i>S>0kwz!zrL=2?f3Wh(;0#%>IcM3i8<X+`Q7xwqO)CHUA8$nISYRAgzVbCDBHL9 z9@|6)R&!C^pG-&e3rs5lq5_`WYFPc0RUm<3%Bs_c7}{<x1tuc~Pgg&ebxsLQ0Q$`D A8~^|S diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png index 66138edecacf83f3f375a7c21ea779a2a7284f0e..af525376351667338ebe9271aee015f7488a7b8b 100644 GIT binary patch delta 912 zcmaFEb%aN;Gr-TCmrII^fq{Y7)59eQNV@~EJO>+)+?so#b)({6Mg=2ta|1_XOGgt! zBV#iQLqkhT6K6+9OG^U_H$zKv6T``NOfm{aPOe7AZjNrQ7RKg=hAwW7E-vPdPEID~ zuEwU8&TdANs}PD@aVpxzln`TV>|$<c46?w;1e<kA3dJQsscBXz`N^fZsd*)yF1AV) zxdnPDnJHETom#}~RR8Stu0;$COhAo}Ar-gYM0xhzau8XoC2id5$g;%aP6PLb2W)Sw zUwc@(EYaBeGWOa|hi_|R8f?3cOwv|Z=%L7S&?2|s=Fj_6CI-ujx1~LP=o!DxXxrD< zKl@WxJg<BrwqVMk#Wue#r9XJ6YIU;ez?_)hd$L6?dK4Yh-x<+g=<8bVaVvpy=c%Gq z3aOLo{xIH*b@H2?!q5Ga<#cCf+;$(o-W2Jr8bt<wMUDOZ0zZ7viC$?WBzk?*hqIh4 zY!Tu|1Rt+(Njddois%uE=7SFo7wz2hc+P%LE#q0s{$^~A>VN$4hp`WTlZNEdhB*b> zy10(G?Z00iu{P}e<ww?M(>}jWF{=Nm!O?Xlrs{;1Qf$`dn|r?gT^Ho|ZF00+v7gRq zr493}XWY|1k$9o3Aa>#<|0g@vMGL3B{I11WwmSL2$33rhZhIx8In&**uS;g5?*!#T zMHzn1@4}`}E?zzNfQgdF({-z!r1j()&P|>>;fvMr^OvW*OWGo-UKH}|@wL}q^Iw1c zC0j2Ru>DAZ1<#bf;l_z)`yNlYm{C$ZNvijla$x?<T|4+?)t?n;Y_%`7nya5+YCrjn z+6w!1%-5Zh-l(@%uTH<cX!A{<*?!B9{;Y{>+a6)=yLs3B_whHk#kT(5u=o1GrzQfj z_w0Vn=Htq+IQIFVAd5HKoW~Pnds{aherPaZb<oMKx%Ey9Kisv}da0D~;`Bvti}sEB zA1-I|JbEDW{<!6el&M}zWji?I5+vI`?!Nuj?rYWF+TC}jIiI@xU&=q^U8!8#$@LFd z4K+D#N~#~@i(V&FyiHO)y?Px-Ov;oQty&7FPwbDLyK;h|M|hBz(4?f5S$qCOSN42U m6uY!xZ{bOM$A4S~q6`KKe4_KVBnAL88H1;*pUXO@geCyd(}+C) delta 694 zcmX@Y^M*^YGr-TCmrII^fq{Y7)59eQNJ|5;I0qY${3T|hw^8vgqk@~cxtpP(xru?f zk%5_op`nGdp^1yJshfp`iL-&3qtj$NCK&}YM>jV|S4T%zLkpl17dJ;!b0bF!ppc7! zrKOvN>*OkkA{SFL6EmEOwlO8dU|472Y-Z_bVe07QWNKpJW~ro5ToRO;W|fkkT$-Dj zSK{ent5lI&pqG-FVuhg>-Kj;)PW2+pW=0GQjB`9)978H@CH?vT-=2A8!^DY#E8f~G zpZs+}N0>2*k?mC@zr!E4*{NDQTbRooSh%Msb15~5ZT|P?r!l(+JM+#*A`<_EB(7xN zym@mu!^`^tpW_efJZ2ZXzrX(c{Vkc<zkcz~mbkaC)_t4rp+ioO8X4;%>+0^EiHV7+ zw*{&-R@DCW`+NS2RaakYY~o;X_~rPl;f%9by5qAyzrXvxxV+pyVOv9kz|WPB4qLNL zuvGXwA=qG7>I=^~Dcuu-&39G${Lon}!XtOOLC`Do^o6s@Os+C_YuaLt@vcvh*|t(J zf0^6**A6r1%$&*T)BNP$zrV*D*4wG1+_aXHldE5-AHT1mTc+f|sZ*yOB;<2Gm$#^x z^YHuo`w_ZKvzX2JPd@C?IC$dBnLW4eo}Jm)-#>lP1Ll|PGnq~DWw*_e3c3H`|F5sz zU;q96t$HBj$?u1U*#jfGegT8!@agILlK1x4_dgPz;Lpm+DtYASQOSzRO2;;5?!w0F z4&TyTU60C{S(}+nU<-KpuWOyDX_d4KlgOQrEl;=w_8++Vz%kQtVm9--Y2pqIj10mb XULJb>Xm2(!DKdDv`njxgN@xNA1)US| diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png index 7c80300e9e0c9431f799e1d240217ff2dfd99ba6..541cf5c4a370db0de873e7bbe9ddfe32f539bc6f 100644 GIT binary patch delta 1234 zcmey))xxjX8Q|y6%O%Cdz`(%k>ERLtq}_p7o`VfYZq2>Wx>4~jqk@sSxq+jxrK5?V zk+GSDp`oRviL;}lrKN#|o1vw-iQ!~BCK&}ICl@Dk7c(PQ3uALbLl-wk7Z-C!Cnpng zS7TF4XE&qCRR~3fI2CPUN{BHwb}=_J23cTag3UT5h2oN+)HJJ<{N&Qy)VvZ;7h9!@ z+ycFn%oHnvPAy_~sy}znUxR^xd5fouV@SoVH&J)JMFK_k#~W|n{Z3`wva~KyNk=yU zk4ayG_Ok8$s^IeFo;Ux#2>(Er3-bj+t~lGW?fo`I)l*T?<tF>2l`mJlz5eFRxjWUn z%k4{I%8!@WXI!@}n6Y#7^qH3XtIz$MTb-u(TxN>1Ld&BtnQ2x0l^Rd$=YG2H+;h<H z{r1V?2N#sJ=A|3`Y`1J&b8WUn<lTwSO*p?c|C+w!!jZBAnasQW5B(GmV4m@)?0NIz z=DWI8h6O5rGk43#=yo4g+opBOBR+iIuVd-%zkJhoPW?D#eVDF$fNAZL(#j3L?_GI# zVZ%#Dmyb0CTt=6l9J>49$epvs=kv?!V`lxnRC{Y%fcM&_#ThwUUw8aev#fd=dF9u~ zUr+W)Z)Cb$V_9$~C)7aD{^t$T4+&FZ{(rq$zAr9m`RemErC<9>|9|Sd|9;Pm?j4_e zA1WP)ytVto+XDes@0b`H3g3#Im=csA!4~mj9dBgGzm4fEP9B}?OP9A6uL@va=IqC$ z{9UVltJcoeRFSMhdh72peqmXv$Xl>2VY|=l1&XdV>}Cl!Do-!k!(_ag@#rQ6mDzza zKl{2IP?79-a&pu2m))Uk%VXvq$W36LpuoF`Beb>asiO+>B`asHTcs_x7%U=Fx4gQs zrjk!Pi|2@$nvLemm}{I%uUTI5-cYeh>D2`X0ftZ!&iXE{%MDLmm=c#;Y~Tq@S2e2& zSXt_4H9aAZbGJ<Y$~(M%7hNwFXxu5hP-SiY)>@l;#iVfOiXOFjZAZl3KkChVe=_Ob z;)!+%DvTa8CHb}5OXM~kYl-!i3!d@DIp6c?-?!K8c<;}uzfpasVr7O+(6kFp3C+tZ zjM&aSS@!A8+6tHYTZ(TdmgWAOw{FhnmAbnG<b%_d^uHWEQju=)G4Vj+Njbh1cbZMp z%RgTFJjF(J-QtipR!J(#9GvV*43g8zH^()-2ye`_R=Omypl7-C6C;_7u(?cGyG_jd zyjmIBIr;wN<Xf3;jJMx@<93bWy+`)b<m1v7_AdA7TszgT$h-5qSG|Sd%V<x(mxkGD zQx*lz{WN8MvD>w7{fW;P%nI==Hd*oQ59iO{$+Eu^jJDjI;B}&??%c_zva2ugu3vD= zSJQaym&1VvHqN=q@l-8wj*_^A&!4nxm6VrR>u)}?&-&>py_(5jn)QFNtPSB?+H)>j zlteHc3*H=2!RvKVLMYiKGOPDYxM7f`qp#1=T^DS9n6!??96ac?xpGIuxs_55|5vu` z6)M_ivM)L}Q1P&i_RrTMB8OKW%dXMZzkY19+%4(bKh;mfGqN#!+1uP<b6<`RSWGc^ My85}Sb4q9e0D`_8I{*Lx delta 705 zcmZqS|IVe@8Q|y6%O%Cdz`(%k>ERLtq@{saoP!NW{t`3M+o<@LQNhjJ+|AI?+{D1# z$iU3P(9pu!(8R^q)Xl=e#M!{i(P^?BlZ=9yqnnGVnTfHhp#@Nhi<_gVxsjuVo1?3X zfu*IJh3n)hgd!uHincK	&xw;cRB<XkqH;<Ya1M;by6%P+Ss}nr4-fpIn-onpfiK zVyje<TcDScnPP>Z7u~5v%ue--w!Z(wz`(fN)5S5Q;?|w8vtEZC1m>OHrrGjuqSn`_ zk7_^o7QJxf5&bC1BDm)Tcg4Gl%Qr-LAD#Wcn&aM)xU07UZeO@`C1oyW=;fulCM#X7 zHdxP8{aicy=E-vgiYz`_J%%O1IZ5`NIgIX7%hY*g-XA^@_Tc@K&Sf6=BbIP>F0Q|u z_g&(v-K?7e57tY(S{<QN*0}5X@%6Qnmu9>wu~MIU>g~hQolIYMNzTxmd~tJi<>M0u zWjmH-w%XPCe%$}W;@rX1jUrtgEq^%MKm2(uxc}j<b@y`2_C7C(;-4qVE6f2DmDHJh zQq#_GqW$hvn^c*|h@bW;6$^q@Cw~;N+A*`Xe&+wa+3O9?<(l>VUHLR>d4c$jTc5YQ z)_8Cu(4Sq^`0>Xbd6Cn~pPpEhW%lI!ySg`@eyZKbE!7ZwR8g_7cXMNI;koYH(b5xq z)SO!T|8TN@^g66%dUf`c+}jtkwpMjTZn<3~w^!=9lk}}el0MJnq8>5Y9X*~O5y2&t z!&|bCPb%8&7|Vq{Us>YUDqi%}o36cLmDksvyzkp*hGp$!k6cvXKk>++k4CE=O1@ao hWYqI&&ps9jhUIcEc6QEg{s~N#44$rjF6*2UngBWcA`<`r diff --git a/java/res/drawable-mdpi/btn_keyboard_key_light_normal_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_light_normal_holo.9.png index 737de397b4871d5b36ea031b6ec67e826849c52f..0ad025c90c60cb4478cab32f179d9f944f38a47f 100644 GIT binary patch delta 699 zcmZ3<^^r@lGr-TCmrII^fq{Y7)59eQNXr4S4F?;LEDYhAzftioqk@sSxq+jxrK5?V zk+GSDp`oRviL;}lrKN#|o1vw-iQ!~BCK&}2LsN4jCsQX^3rk}|Ll-wk7Z-C!Cnpng zS7TF4XE&qCRR~3nI2CPUN{BJGFtY$^cXhHbGQnn@l0tDwP->c0N`7)_ZfahMr;Dvp zMQ(v!N@j``L8lfmJJsjOgg;<lU|i_w;uunK>rJGi*AWAeT%)AuBX#0?&l+48h^gWc z4A;9;%{aZOqT5J)M)VFN<sj)9M_7U+vTprbHh1L<{wbN(_LYC%@2#<_pK;BKOSZ?* zICk@boyiTydF0NTq%qq$9y#*vKvw3~)prEf820%1v;^=98*n){COXwyGOjLsGx^Bf z=dw}JXQx~atG>48SA#IW_Q|ZRyM&!$G?(h_xl;I#kKw#);GNm0^}h@J&JL@6mK8Kv zXZmS&=BnODq7O3n#@)C05Vkn++sCBccjJ;+OE-3Fek)9guv~rqvdPzDQ&N8_Z(DsV zxpD9FT*Khdb<GU_Uq$(b$oIc8oLN8d*p|5-kN5BHKY2Ap@6-$~j;%^3Vp#snKbu;w za^9&l<NMSzr5weX=YF;ay}A?Uq4`@%dp^fzBcEehr#FS?s4;v<vMW;zF^|<VpM5rW z-t&I7&)cuHo+&pwcI=jA?SXyg?ya<(bynxuJN-rP;+~yrG!xgI&HwmvL{-D<XXP&@ zL^y<ZbMor6<*7ehm~$aID4c1={`xiBJ~r6Ke_!)7pg8d9t@U2J)+;4m|0R~dFlnt& V@@zHNZ@~1(;OXk;vd$@?2>_5I6o&u+ delta 626 zcmey!wUSG*Gr-TCmrII^fq{Y7)59eQNJ|5;I0qY${3T|hw^8vgqk@~cxtpP(xru?f zk%5_op`nGdp^1yJshfp`iL-&3qtj$NCK&}YM>i8!b5|!<Lkpl17dJ;!b0bF!H%C_& z14~Oc3)jh22t|%K6>Vcmh{3SV!r9Ey(ZbZx$;s5j!p%}ip|~U{HO(p|Ke;qFHLt|e z#a5{zw?Ho?GsOx+FS=8Un4RjSMO6717#JfxT^vIyZrz!7(W}Klq%FN9+;NI;=FPm; zxTDt0idAh2O?g#4d*A4868Kcel&|gV%yKcn+MOq@{VuC}bQ1rW9%GCD%Z<~Y$=uqe zE15MVXvVcm2R~cf(3~P{G`H6A=N&d{_4@Sn5odp$6Vhfle|poN)^9?)Rtr9=f4||1 z|Eg7X4!`fdKE8hgYnW@`oz}z(Sr$gmNiH)|BCnnLyhr+aX{zt#YkTW-HtJt3t$q6Y zpN4?cId|DB$;Z=kmS;+7pWgKDripK2#H?j3r2+k46XcHV{*fT?`tF{2Tlmec{p05` zD+!WVum13u?3?p9tl#aJ_Az5`;roSRou$s@37zX+hs}F_cdGF*hvk=(?dIg^EY>;Q z-}hMHuz_1+f!(Wyd!M&?^nOeW483a8wW#{TB5sNJu0s#r9Al{3m|MM8gX@^_p1byZ zQY(MTJmHyM?c~AtG&lUv=82A-LS?CO_DnnsTlSqkm}IMK1WZN@p00i_>zopr0EIyA AdH?_b diff --git a/java/res/drawable-mdpi/btn_keyboard_key_light_pressed_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_light_pressed_holo.9.png index 3dcd8323d67c35a27678f0702a4b68999fc4392a..c0403f0bdfe11e486cc8ad4cd401f97bf58ab627 100644 GIT binary patch delta 800 zcmZ3(b(LGOGr-TCmrII^fq{Y7)59eQNXr4S4F?;LEDYhAzftioqk@sSxq+jxrK5?V zk+GSDp`oRviL;}lrKN#|o1vw-iQ!~BCK&}ICnr|}V`pbq3uALbLl-wk7Z-C!Cnpng zS7TF4XE&qCRR~2+I2CPUN{BHwb}=_J23cTag3UT5h2oN+)HJJ<{N&Qy)VvZ;7h9!@ z+ycFn%oHnvPAy_~s(*Vb;V=UO6RW3-V@SoVH#7J99|{mS9xwe?;ew00vJX$oNyn_D zq(><+J~1UlMUyVNs>}LZ@e~&qp8JFS5C5D96)qk>KOQz=wRR>x(~WiWMS>shb&rlZ z_$0PyXWQ<3&+qR2#}R&XTdq)ui0i?Z+k{@k>`yp+;{1j>{psuPJF(U?Pia2+Q)fj} zYY0;#V@%`8Ne`cJa%)twG4Jwr5;>4xRUf>#?NiaJo^NhSC-$CVIlQoS!*V50>z@3X z1(q&X%@*=sVEeZE>`DzbWA50dV-}Sw*5Bav<6f|RS)_gI-E%3|CePUsp5b^sSbc-^ zg-kb}ZQNnDTVC92lyjKeWbw+{rTz`;o5u^5ta_38<OFxg`Qvf#EUtdm+q7f%)jhTw z100#cUfawLo#b)GkXi7$ZO>z?9}Er0ue~siQ&kq?oR)xr9uzWNwm+%N$Ub-9zuRHu z=?b}h@t41bTsC<vX1ndJ|MxY`>bi$d_;dZa=6{qq?X2dD`lbCzTrLLFm{z-PzwW(y zdf->VH<nuzI~MOVKJxCcURAE?RH;P&?=N;_3UjVc=->FLJWOdzc~^;BS9FX0zN)lF z?-u*8B_B-L4bGT`zS_Mi^Zi}zE{Cjyh%>i2`;tOJp6nC8cYKXu9mj=za~^*+Ji@yC z@MYE)d*T(gyt)@0pKwk!>EE;F>+2sd<{R1T&(UXOV@O}KE${A?ElR*d&*16m=d#Wz Gp$Pym>^;T+ delta 629 zcmcc0y@pG%Gr-TCmrII^fq{Y7)59eQNJ|5;I0qY${3T|hw^8vgqk@~cxtpP(xru?f zk%5_op`nGdp^1yJshfp`iL-&3qtj$NCK&}YM<CzW(b3h=0;t5r&C%4{$kD>h(bdJk z($dYsb#fI#ktI$=+n5q!Fs!q1HnViJFm-ftGBvSqvs6+jE(uCavr5TNF3nBNEAe!( zRjSA>&`ZfovBJ=c?$jb?r+S9Xxlb4v7-KwL978H@CH?vT-=2A8!^DY#E8f~GpZs+} zN0>2*k?mC@zr!E4*{NDQTbRooSh%Msb15~5ZT|P?r!l(+JM+#*A`<_EB(7xNym@mu z!^`^tpW_efJZ2ZXzrX&xec7LqUl$jvOWM``^4aEFQ?uvMwQJ8J!=^1e6B83tZwpjw ztf>9#_xJo43!9H?Y~o;X_~rPl;f%9by5qAyzrXvxc)dM8VcV81Iya};*8ZBon8J6$ z=7~s8o@AFA5KPi_GGjh$Q!_1)i>*KP0LRi*sV|-xHY)Yy**WVyZVNZyyM3j@JUBSZ zQt|Y?!h!;hzdt@Q$2<vOYIxRgw)ta~Bd4IM#LSs9!=)uMj0=j20#XD$>`%xnsC>QQ z>Xik*+Wuc(AHU}N`}_Kg%ar05?9kXbjq&rl>;<l~MMXucZ``=y@b#v;LY?dNSyFp> zl^BoMglu`jEwKN<)d!B5juW$)*G&_5XkcWRV|#j)(y6m<z?8(`>FVdQ&MBb@0My&- A_W%F@ diff --git a/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_holo.9.png new file mode 100644 index 0000000000000000000000000000000000000000..4a77ffb97f736ea09a3562d019124f21f63afb17 GIT binary patch literal 1018 zcmbVLJ#W)M7&a7zQmImrSYSH2f&qx_vz<7$YAVN0Xe3;!G!hvYxY(D*YV9-UD{(tj zY;635iVX>|BL+YW2#JrKKfwqCQaLAaVTc&8WZ#G1=Xsy^>&e#U?d7E_OM)OQcQ(8( zUl;g$ezC&8pI`lW&X>!q)o0se$i|3b!3oI#gHDWga2KQS;NeHS#zDiV*JpkIjuntt zLWPZ#$0<h(!rFSCqF@&@Fu*%eVvFBjzY#$c+Ty*MulT8pN72S1#oLFQz2I;+Fhg<u z7Ff$IP7q^;KpyWUnU&k(gxBKx;#wBL#DwkI;#5@M-vTb77}O-C8Yp!I)S(15-7t)s zKvke3E2<3DDl{xjwG;)+9+7*a;n3=O?U^rrvc(Z&sU^$f@mLyb5}`XXG)=SMP}M58 zsAdNVLwPmHR!asCX90~;7Lf!LjA%ginJsdq(-7j+_fLtFY?dgVGC4=73?)U5<07t! zb;i2*kBqt2S??glau;W0p9Z`h!_^YZbN6pYg&|jC-K7yP3fl8Xupi@ubv#?-f21%9 zE!8j-M>8EAs#?7PdHA~PIHsvI+R!v~SaQt6>agy#T%*})m>Ps$+wnZZX*PAErPWNg zt(MqMk};G7xbz!wzcZ}!Ppsuqj2NLkLiWlI*cuT=vJpvvyIli53ZkSq7v-5o>tPx_ z!eN_|7)<hOMRWXXje3I%ZZ#XKK0od$HvFHQ$y|(FG{;}fQeN>6EVieu&kv`=gA+b6 zl#j-x`_EqRvAW*zoL>HI@blzkePQM3!nKumPb(LX(qrMqhjX7$82<WtRC#+=I8za> VzF$0E{36g|8au5`?`8AB<KGBtIMV<C literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/hint_popup_holo.9.png b/java/res/drawable-mdpi/hint_popup_holo.9.png new file mode 100644 index 0000000000000000000000000000000000000000..f3ab2448126dfdf850bbfaee4b34256d9c0459eb GIT binary patch literal 1266 zcmeAS@N?(olHy`uVBq!ia0vp^5<o1&!3HF&pVhwuQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{&CLn2Bde0{8v^K<nQL2C3WatnaE85nHrD+&^mvr|hH zl2X$%^K6yg@7}MZkeOnu6mIHk;9KCFnvv;IRg@ZB<rk7%m7Q#vqGWHUU{hfQG$1#% zBvGLvHz%*ys=`(YY_1iM4HDK@QUEI{$+lI3I4Z(7K*2e`C{@8!&p<cXz|26w%uvtJ z*u>o2Tt~skz|cV7z)0WFNY~KZ%Gk)tz(4^Clz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdpzyaD(%Tp#cR9GX09g0)0b01O41wkiWpHi%Wu15zfG>x;Uh=AXPso zwK%`DC>a<ZY05Coz_7z_5lA7>HCFybnZQU%%yG$2F3nBNEAe!(RRYTBrDUd98JU|K zI2v0zniv`xn^_nFy>H^|=xAwaVBuzHX>MW&GXtAm6C(oyGe<{LR|`vHLqiugM;8}! zM<*u}b5~<iOJ_GDm|oAk;*!L?<W!iwnLvA?dQI@^wQ?>>O)SYT3dzsUfu(?ejQo=P z;*9(P1?ON>1>eNv%sdbu6g?2%x}+9mmZhe+73JqDfWy}+6N~-E7G@Se2fI317@1)A zH$-m=Ibo&`bc{YIaUdlYm=G`pf|&5659GizPih`8#}omx#-ASrh71ghN}eu`Ar-gY zgn8#5GT`ak{plKmVP|{GkzQr@JnK)Z%kRuzcp$(!j`d<o&0Oo!6({xH>P}m;D_*F+ zPxhqR(kTi`sx1mPQn@oj|A?jvD-`%!s|GIo5$ZBe+&@I8?|`5Mllub>uh;BinHjYg zXKlE*^_rw`&t0Ay{^6TVW|zGSQ2XArz~=_5?&a;S`+nZ)fAsq6U1hFilRv7<$oef$ zlc-(4VdeeTb$iOJ3I(UJrmu3`#qs=C+h&(jPpfv%X6)uW-Wrm{*P46ipR&g#S6R#d z$G=ADCh7dCRm>4jv{@^W-Ed`Vf<lpn{FmxPvquW05z_m3nYhcYnR?{7e%mP)_b%*2 z?&p_BXBc!U3Hz5VyV&|;LCW9Y#X3{fbW~3~U!8L>;JZKqLygANhwjG7Cqbo<r>mdK II;Vst06Pb=a{vGU literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/key_hint_at_holo.9.png b/java/res/drawable-mdpi/key_hint_at_holo.9.png index 2b8520a92e487e9488921e0bf5b31f854c8b9677..54ec524bea6b75c774c37bc7d9dd562833bc5d40 100644 GIT binary patch delta 823 zcmcc0`G#AuGr-TCmrII^fq{Y7)59eQNJ{{*3<n#KtbSJiZlmH~Mg=2ta|1_XOGgt! zBV#iQLqkhT6K6+9OG^U_H$zKv6T``NOfm|t1}^5t29D;g7M5;?hAwW7E-vPdPEID~ zuEwU8&TdANs}PFJa4Ooyln`U=Xl4P_?&@S=WP;5)C57UWpwu+0l>Fq<+|;}hPZwLI zirfOdl*|+>f=(@BcB;Rh=HSf0z$D}8;uunK>r7~O-fRPrqc;LLe1l4Z<Zs{l|9@R> z?xmd7ZgNwmzrFkThTu{a#n_2yoRUYjp5Oa?PPXydt;Z!U&wFmTr~ZpTS=v1Y=FZ>u z4kQai%@Uo%bl_XS%D12M7_J2`Hg~9HD3h|a(N)q+_4s)3oqF=p^Oawp*8kFa&t%D# zU>5(UPOLIeMTGr$W>m=gplt~ZyJq-Zd#rNNSAd~|c}vCl`k;T4o(tC$pWFQMht2lc z74QCAojy19TH>ylqhItlXMZ&mpZR9L?K!m*LbL1l?yRe<iE44VJkzac#j)?N14X8; zKAYzA(57$Emsgil->$lGo&8K;vgU*v^?#1%*sXe1)srLGJoA8CYUo6sJqM(!_`h}C zkkgasc5DsNatk~0>EGwvR~a5|g}N5zyEK+IeLJ~9+(A3_%fUxF=beS${BB*Eu-!9w za<f@Z@Dl4i{&Q9-^DdSyvyE{~53O2#^Uw43;W5{PW@RZ>&F9+kwd}3fVa@1kAzy0E z{JZKm`NYV~aZ8e}O?Z4yiCa<Y%!a2=kA|>0t@+3)5a4=exk>o7%&sHx+oac)%TL(x z^X}WT%d{s{HEeAOtL@_|K5%f}y3Pr<-~V2^eXmY{WpBe9)0<^C@BO(En7A&$*;nCG z$<||z;<w{6_&jTaw#_X*)%y9>3b*pfY|pHDm|9u>eYM$<SEgzmkeklB{9Z<`!{3YH w&mNS2s^@y3W63gs`Gx9@YBtrg|F{eoJYM<zPqeFM1m*<>Pgg&ebxsLQ0Pwe25C8xG delta 542 zcmaFEeU($OGr-TCmrII^fq{Y7)59eQNQ(op1P2?C6s$=r-KhANQNhjJ+|AI?+{D1# z$iU3P(9pu!(8R^q)Xl=e#M!{i(P^?BlZ=9ylaYb5p|hi_p#@Nhi<_gVxsjuVo1?3X zfu*IJh3n)hgd$6vincK	&xw;cRB<XkqH;<Ya1M;by6%P+Ss}nr4-fpIn-onpfiK zVyje<TcDScnPP>Z7u~5v%ue-u;i`oU42-OvE{-7;x2}X9<ZU+KDG}hlAQ+*jUBc#; zz-q<R6X2E+p1@+{6xk?vskpS?Lzkm9pwpvWR_9#bM%l-E#glu)1s7MHni?o&nUGra z;MCWNR<iY-f95=iYJBeNy)UigoTz|q0Q>st2We~PE>>nQ<TPZ`(w>mHIJEvwe~HZ8 zY3v4um&8)$y|218Tcb!IlEZtEwE=_pEbn*gH%@%rZoKe#eGr$w@%w)ZRfOgp3eta3 z)1f-Q*~2>Qj7#k0Co9&QUs}KLs8@w1<Ekazw-&B>*cW<<%}@Gh8hiF*F&9(m6KpSU zl}Pp8`7q1d?y`NRr{fx#?yH+pd<=K+DewGwIJ#c{b9lk5-t7#`4DD>m=a*b<yaJ4J N22WQ%mvv4FO#oRNwt@fv diff --git a/java/res/drawable-mdpi/key_hint_at_large_holo.9.png b/java/res/drawable-mdpi/key_hint_at_large_holo.9.png index ff56845f88b7b5ae555a019d12f5038cc136a198..ae7b6454382095fc32fa3b1d31f1b7ad6d2d4a45 100644 GIT binary patch literal 1639 zcmeAS@N?(olHy`uVBq!ia0vp^5<o1&!3HF&pVhwuQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{&CLn2Bde0{8v^K<nQL2C3WatnaE85nHrD+&^mvr|hH zl2X$%^K6yg@7}MZkeOnu6mIHk;9KCFnvv;IRg@ZB<rk7%m7Q#vqGWHUU{hfQG$1#% zBvGLvHz%*ys=`(YY_1iM4HDK@QUEI{$+lI3I4Z(7K*2e`C{@8!&p<cXz|26w%uvtJ z*u>o2Tt~skz|cV7z)0WFNY~KZ%Gk)tz(4^Clz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdpzyaD(%Tp#cR9GX09g0)0b01O41wkiWpHi%Wu15zfG>x;Uh=AXPso zwK%`DC>a<ZY05Coz_7z_5lA7>HCFybnZQU%%yG$2F3nBNEAe!(RRYTBrDUd98JU|K zI2v0zniv`xn^_nFy>H^|=xAwaVBuzHX>MW&GXtAmR|7W}Lkn{gR|`uwLqiugM;8}! zM<*u}b5~<iOJ_GDm|oAk;*!L?<W!iwnLvA?dX4ewwQ?>>O)SYT3dzsUfu(?ejQo=P z;*9(P1?ON>1>eNv%sdbu6g?2%x}+9mmZhe+73JqDfWy}+6N~-Ej%F4>2fI317@1)A zH$-m=Ibo&`bc{YIaUdlYm=G`pf|&5659GizPih`8#}omxhUAK=2@DKO(>+}rLn>}< z3EN$C*+Jy$I+f$+Z?w!j@+|bB-1i^MhuC+t%YEOWE-z5^gQ4n@@UIKAyWE$|nDEhh zQ>y2k&5^0s4sA+RyESum=$75z@7O-Sr@dK$!{k`Rf=sEypJVy;(w8kY5U{u&B**q| ziQ`!zho*&--%dz9;q!E_x0&+n$(7ofUIMifb*3wH7~U)mX)a~BkZ#`d<GSnn3!nF> zz0JRqm+)rF>t8nyH~$s>$+cZlja8$0(!KescNx##yR5d<#j}0a!!`jPhpC_56|M|8 zpvyMNh*4m<qujamznX7teJs<c7JL2vbnm0WFI{-n^e?|`UMFC}et4p5w)~TuKh=1( z7CigCv$RFy;h(^-4<7$?U9Xv;<j{7z;NIEv&GBxNPe$L0Kb^Yy?cd+kI}+tN1;W`M z++i`D#Ke8BKI)ry`NkItQFl0u8~4uIoi~+9K<dJ0<D<ueRNWc#%pV)9_)xQ-l~>^D zWcIDw&Pc7DaK4l`_J3RY{qNGA40&DWzrTJYZ)H<D=XsLx^ZBZ*iNCT|slBec81##a z;ibZ)>)&qOQ_e3fwvkgPo1hkY=G*(zZNKUsR{FCtbjt0Ex~{ch#=<-As#J{lPWxmE z9@npnC_7=gNcWVFuxXP?Sd_;b-Xn_=CE^W(m&v>fJvA*;;`j-Th6b%i`+PsoJhMfx z^ZvxDGa(J3r3}396dMm&DHPh<t_!`tc2RF$SV&7*>go^XTe(7#8DC0@2`;*BX}>f$ zS(78nF~BwR_Qb2!A*_B^x&<C4n7A#@&itP?t<}m=@zUp(oL#==tf8tuWd)e8`bu$3 z=*hfw!R_Y#@SXll3&P6$&RtycVM(z1s~YKsjH$&(cW!^VI6voSXY8N%=ciq9`^DhI oaV&^A;o`gU>CHkNe?=1*SPuu3eUO}22`c(MUHx3vIVCg!03LdADgXcg literal 362 zcmV-w0hRuVP)<h;3K|Lk000e1NJLTq001KZ001Ni1^@s61Kfk*0003oNkl<Zc-rlj z&25B0425Z7TcCw)AuVhR+rqRkEu@x|z`%hEKN3Q~9l?>4^SrSmv|1^bodHGjq$dV5 zl0R(olO#W)Bq}N@Dk`Wb!bBLaFlAX@vMl>#=Xp+5RS{z3oFk3%9<MM+lCqJs1H=~_ zNpE@`@tekZ4+9Oua0v#(0EfUhkwS<&06tnI{*A+SnkM^p7yw+K63%R$54K!0Y>qSd zIF9ar!$=YZ_)suj?`CP=CL0PS-Bro#OsL?UE#u{9W=;ho3A8n7UDvj4TiY}ZVcp@_ z>AA!l&(X3h?|-yqKp&OC+8p{h;5$^9q9~4qVWISft0L{Pec#&`b7e3m#yiZ@{HSR6 z2A+e%pk?=UU7eV4PJD!Ctj)G<;b7v=RfIVs44ttu<k^4f8|(u^szt%ST>t<807*qo IM6N<$f}p9KkN^Mx diff --git a/java/res/drawable-mdpi/key_hint_exclamation_holo.9.png b/java/res/drawable-mdpi/key_hint_exclamation_holo.9.png index 7230fb92a7d35371daa538a622e481b2b64cebe5..0e2d3545ec7f5688a9591a8ee53fb55287dd6c5b 100644 GIT binary patch delta 534 zcmeyzd6rYLGr-TCmrII^fq{Y7)59eQNJ{{*3<n#KtbSJiZlmH~Mg=2ta|1_XOGgt! zBV#iQLqkhT6K6+9OG^U_H$zKv6T``NOfm{aPOfIg<`!nI7RKg=hAwW7E-vPdPEID~ zuEwU8&TdANs}PDzaVpxzln`TV>|$<c46?w;1e<kA3dJQsscBXz`N^fZsd*)yF1AV) zxdnPDnJHETom#}~RIe_k(+l+9Ur!gukcwMZLUXyB3<U1w2D4}%Jz)3ce|?m^P?t~Z zifyZfIRy_IZ`;uPa$!$(<-BS>fj|ZZF2#nL>uS5rIr!Z=y&v8*v8~yXc0*~uXhHO? z!(6)`uVJ!OU@CZ@mG<mWfsRtLkH@~CSNrZi-TqGAD)ZuO4ik09=k@k;n%7LN`q$%H z+*G;zr4rK?oryt<u5*3L{r0k2f@PchovSL7t+stRbLq&2_Xe$eZYs4wdLHX`PUZ={ zd|>IGbuXM}<-97D;r5$-Lt;v(Y~+y%d_T`QPGd+rQ{L)0+oRCxHRIwpB5cKCe>X&( zzIn1ZBkO;dmYCcESE&Qh3=g`lNt?T6e^WicV00w1`OrE^c3@C2c)I$ztaD0e0sz`C BylDUc delta 583 zcmX@h`HxevGr-TCmrII^fq{Y7)59eQNQ(op1P2?C6s$=r-KhANQNhjJ+|AI?+{D1# z$iU3P(9pu!(8R^q)Xl=e#M!{i(P^?BlZ=9ylcBk*fw`-zp#@Nhi<_gVxsjuVo1?3X zfu*IJh3n)hgd!K5incK	&xw;cRB<XkqH;<Ya1M;by6%P+Ss}nr4-fpIn-onpfiK zVyje<TcDScnPP>Z7u~5v%ue-R-kWJLFfi(Qx;TbZ+}acBnAc*!v*qTJ`#0}@DYyN^ zQWv1Yx2N&&x+4qQbB_wnT2g4bW|5g{q+r&`76HR~7Rl{%i;tY?>xj7L9o0JVCBy0$ z4#A%^=JwSm*40EMJrg}rFSD&!vQmU~)!NbuR&fVyy~1Lq6};Daz6!@2u-hwL-?O_& zFMCzytmpgQFJJdM?r+Rv>-VhU4VP`sADT5Sb!US5(F2t-$F=<?$}{>kdiTlx;*(6a z`_S9f=zqCna_81E*7BW>L9S2Q5-Z|Mxi!-^_iu~z2;}?3xsK81u=xM^zM_GXDr2vw z>mS{|EjPaFiOkjSZ=<q*E9;hpM=^x4UiH~IZ9n4<&#C|SZeI|7<jST^TN=GS&CHJ# zbL{72{+AVHSafL5jk}V};R%P`V@hT6%K80TENeLp7?z38`Vv*L_&6|aFnGH9xvX<a GXaWG#4b-3j diff --git a/java/res/drawable-mdpi/key_hint_exclamation_large_holo.9.png b/java/res/drawable-mdpi/key_hint_exclamation_large_holo.9.png index 0152ce21b63d58b62875506b8fb62f2193d80a92..75a450c872f25608bf8670bb811579a11db7ca37 100644 GIT binary patch delta 674 zcmdnUH;2ouGr-TCmrII^fq{Y7)59eQNJ{{*3<n#KtbSJi4oFFsxJHx&=ckpFCl;kL zIHu$$r7C#lCZ?wbr6#6S7M@JC*{FAevEIns+`!S;($U1w$k@!n(9qJ-#M#l&($c`f z&Ct@^#8640BDcWT*UBY7ximL5uf)^ERtYGgmy(%cW#r^$<YsAT;%Z@RZfNM@=IG*L z?&#!XV(w~eYU%7|1k>x8S6q^qmz)aIn~BgXX^czr<ata93dY7R=7z=~_ZXRAbKPV) zW*G%SUYH!k>{P$uL)AP621XxG7srr_TUWxo^9~sZe7(UU_NSSpdz~c%`vZoUW$iCh zs~Y4Qn77>S>JN$H&=D|Pm;PjmhG@#FBO-3IQj*jwzwI%f++gU&&>-l<a4dCpNxFa> zkGNiI`sxP<-Lp1ne%j64ruo|Rb>nWki2KpkciI?SYS!mJe`amHUZcXvIkFd4-4{RI zd9BK)!)vb%&#&`&e&W6pOPn$y<abt_dOE?m$VWTy)!QsBug0VQ^)An5u(;G4lvm3b zFz@%?52lhU*bd%l-L=N+*eTwehZAfL`&B<X=Cv|q%d~9K%)?<DPi9}g<F(FpckJWr zy_H8A{dRx7vgZ2aoz8)LD?+o@EPneW<BWvt<1aCR45v1;%=m9p(&hb-LHy#;&!3V_ zeKfhA{+@Z_hYWknq>ZWO#`l{w^4aSdPn@!PcIQm!#r2DJ?~V)MY3N}1z&2se&C~r8 fMFncO4H!<nE1W2O;MithdSmc(^>bP0l+XkK84dl5 delta 1188 zcmbQkwUJM+Gr-TCmrII^fq{Y7)59eQNGk)e3I`jIWWLk<5J)i=2e~^jtUD+3a--V~ zMg=!>b2mdna}xt|BLg!FLqiK^LlYNcQ#T6>6K4Z6N2kelOfm{)PKM^L2Ij7=h8932 zE^dyd=0=VdZjP=l29}m?7Os=45Q<!ID%!@B5QAZzg|nHZqlKxXlar~5g`1_4LUBn@ zYMNC_esXDUYF>$_i>*>cZh>A(W{MStUUa7xF+0_Nd2gl#^rd2nYeY$Kep*R+Vo@rC zdr@LRMrN{eeqLE>QAui%f`(^aNotN}dHXL(V8Hlzx;TbZ%y}~7ymywP$nob{-wrRo z9`CtR=#Ix~p=ee`)?KgUU$hIxZr5wgc)BWd%8h<k0i|3ero~Dfb>dq+IuvfP>J}}| zyZfs4dHtE$g5A|yuWx=`y{A#1r~KWWp9SY;TBhqwOr7a4IkmZOfzeE!gXt^0mIl4m z_RQRKQRZLYrRx1wJWu9Eu?q9B{nwMY7xivgdpmnkRh8G&^UtGYjJ4!{?@zEh@?t-0 zu-4QQKYv!5E_?Oz>C>mD4J`I6p85RQ*ieFpDaS-_Zdc3C`k$2#R~uA(FcUrYwv0PD zIeAHhj+y+kmoGbW^74fC#+?_x(#+!{yP#~D8J}v`q6w#;&f+(=v-6u_`o)JMA;qZK z$7ilgkg>$<v)2UskN0|edmsDywe<6=SF1EdxH9>i#b3RA`E%p$-PXmGm6nswraj%g zd-w5|FJHQ+scwm4Kk%Y{pLE+XwgVlvZ{NOj^k{2~fw{T)?}r5y^2c%(=!qP7VcPie z-8-@C*RCyDyjc0=zkhN2_U*ejf7Yx^GHtsKJS>QqHhsEtdwaWL%g$Z9tY*xaW7A;B z&YyEuhuI)WX(9)ck3iyq*l32$tjT3(6W^5W-mzhWK+CN5Lv!ZN&Gq&1$>6JZE}wig z%k=QX_xEq!{AfHwv?21Rfbso(vo(5d=9ry5cdjaE<rMZrg+?_-HO^$QvTG$-Y|NPl zpA_x1sjaP@ckrO&&F7z06L)9xHSb)`E3{0|VGT1gb67*+ufKKf`T6UeUpx07vY2~L zuORTjlP4+-?f2fkeJeNTK(&s&sr<4Sz54LqI@#P0=4ts@&E<1Y6ge;>u&Hs!rM-Li zUTr;S`od~Ib8~Ij`3o+byH^(H<>gfr78XhfEuG_|W?XRg<c8d{&3h^hw2q3dPv@}- zkaQ3iUY~jEpGEfZBtxNIx0l>n(|(%pM7aIfl)6D+nu@3Bv#(!8^XD+-WX4_p;I)45 zGJoxQTMg^dfHJODr-yeRWoYWW+PGsqck|mHKO(OB?vd|w`Ef32O}*#brkdnr=C$5y zW3Kz&`1Sku$rmp)uAVs2ktDBkS%8iE(=E%Gxb@#<d#V_&+Z^Cuc~HYMGbWesUyQ@_ zdZ}lRWg|{YtCkD@%}(7I5tTo4mRkLCk>s|o?QLxu2W0$#neYF9W`-ThABo;c4!#QH OGI+ZBxvX<aXaWGDb^8<m diff --git a/java/res/drawable-mdpi/key_hint_question_holo.9.png b/java/res/drawable-mdpi/key_hint_question_holo.9.png index 088550f5bffbd8e657e4f13715e510b37f028ccb..84bf78fd419c7783fe35c830d0b2fea5a600d502 100644 GIT binary patch delta 636 zcmeyswTVlyGr-TCmrII^fq{Y7)59eQNJ{{*3<n#KtbSJiZlmH~Mg=2ta|1_XOGgt! zBV#iQLqkhT6K6+9OG^U_H$zKv6T``NOfm{aPOdIS=B9?O7RKg=hAwW7E-vPdPEID~ zuEwU8&TdANs}PC|a4Ooyln`TV>|$<c46?w;1e<kA3dJQsscBXz`N^fZsd*)yF1AV) zxdnPDnJHETom#}~RR7T3_XGn2W0I$fV@SoVEuruIn+*isZgr59vj34Bz3Bh{|EY8M zjFYceXe58jneD{ExtO)eQ}e^adtdjK+d8-~F?et={@qs+u$!4vU{`?`llu~R#T74u zMZU4<mGEV>mYro<pnRa}<VuERkIt{pFVi_4;w8D-KP`aKZ_ekU+VcA9ZLTLYr6d~e zFWM1y^0L}azRnp_obF_N@D7t_Huz(7OzY`OtFA@L{*&at#+rC?D^9YMn!#6pXHDxZ z*XQ+r|NNS!n;Lwx{FGjO{8mw;vbaOba`(LXti76j;gqhohimUHEfzbFH$UCCXzk(4 zWx;V??=GJ_rdWUYWT9Z!l*v5zJ?mwzubcbEiaFuH^P)GqzU}JnVe1GyRheilam>#l zcJlM~{)o&CLF#?3p{eVdPq8xSzR$G}Sba3&tDV$^XP2z6n!c@+*Ux-l{9@&MoezRL zUrQ7$Ogneti`0XI=|vR`i%lF17-k$=y*Z-egZ=@AKF(=NpFRxu2ux25p00i_>zoo8 Fn*c*P^K$?I delta 698 zcmdnQ^?^&VGr-TCmrII^fq{Y7)59eQNQ(op1P2?C6s$=r-KhANQNhjJ+|AI?+{D1# z$iU3P(9pu!(8R^q)Xl=e#M!{i(P^?BlZ=9ylc9@|ft#tTp#@Nhi<_gVxsjuVo1?3X zfu*IJh3n)hgd!81incK	&xw;cRB<XkqH;<Ya1M;by6%P+Ss}nr4-fpIn-onpfiK zVyje<TcDScnPP>Z7u~5v%ue;uQvF967#J6Lx;TbZ+}abm*YB`_z_wm#mZ=j?O%e=s zdUYv%0e?VeFMC2tdfUS2BN7KESoU97=^ScU@^VsmL+=XaWY4VP@VTnOcht6Us>ka2 zJvv{0|8Gn7TFK`z#>Xt~UDs^VN$2fI;O#o%eYfOK_w%!tgG5%y<*DBC+otAPuT@^u zDXOu3@8T5!{TaOpTqV6?=k=`}@;=^b*#1J=S)QqWV(e^<e=gmO^Zk~8e_QrDjH7Vj zlwUrVOH5?=l&u_OCk5~=n5%R8-n7$Cz2`lDzwf<0t7C!Z?;mlTrk&C}Z2bxTj{WMB zJ&%9hQ^&rf$UWIFXX}q|4(A>ITJ*ga>#lE|cm6r&n)8nS1{aU+WtGvDY0o@eE$SM$ z|N3j&^<k^88}Q^mi1e#@U2Az=?MvSF>Q*z)NrEmDgnsPe+EIKa$Z}hURDYH%qw%UK zJl|GsQWLWFDil7LV^+<u&;HoskERy`J0}@MnUp?a^YB`^>QZ2<*yUf#{!YC+b80&G zS<dO-?N52Fi=2LLiu|2-ALdyud!%15z4%3C?tee=9VUt9A6Gvv+tL2O!Y2Jb6Ay!q X_qE9f=9TLKlOuzttDnm{r-UW|!m12| diff --git a/java/res/drawable-mdpi/key_hint_question_large_holo.9.png b/java/res/drawable-mdpi/key_hint_question_large_holo.9.png index 8a9dffbe2739819015a648aa2b1fa1aab96397a6..d1e9fda0696e8088d2ad2bedbb418c9763d4c275 100644 GIT binary patch literal 1440 zcmeAS@N?(olHy`uVBq!ia0vp^5<o1&!3HF&pVhwuQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{&CLn2Bde0{8v^K<nQL2C3WatnaE85nHrD+&^mvr|hH zl2X$%^K6yg@7}MZkeOnu6mIHk;9KCFnvv;IRg@ZB<rk7%m7Q#vqGWHUU{hfQG$1#% zBvGLvHz%*ys=`(YY_1iM4HDK@QUEI{$+lI3I4Z(7K*2e`C{@8!&p<cXz|26w%uvtJ z*u>o2Tt~skz|cV7z)0WFNY~KZ%Gk)tz(4^Clz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdpzyaD(%Tp#cR9GX09g0)0b01O41wkiWpHi%Wu15zfG>x;Uh=AXPso zwK%`DC>a<ZY05Coz_7z_5lA7>HCFybnZQU%%yG$2F3nBNEAe!(RRYTBrDUd98JU|K zI2v0zniv`xn^_nFy>H^|=xAwaVBuzHX>MW&GXtw$CpSwYOH)f%3uALbLl-wk7Z-C! zCnpngS7TF4XE!65UeCPZlEl2^RG7V)AbTNtE%55KaxO|uEXgkl$<NP$rGS8p{F40Q zjQj!x=U`I>-^Aq1JP;ogJrLizq!wkCrKY$Q<>xAZ!`CVki~YvNF6M^DAfFnUVD~pf zZwfhKrVn(CJ}7Y@B^H<vFa?5`@T3pqz%x&39x%rg0kg)}%_o7`lJSD4i(^Q|tutZX zeuokS{{5d8B;qML)xBgTd%}CpnAO!cUo+aYv0q@`FrB%8;m+e@;%hHXaH^QTzjWD5 zDV2a<8#*V~{FTp5|2H!~E$W>G-{U#fJ%)Xs_ltG9of8tU*>OZ@nn>Ivj<ZP}lfEi6 ztY|QCU_7xUol&h}qCP+4p~VwFg*LTSF;q*Qd~I{X>8b4IXt^G@^liD}39)6#rz@R9 zuSO-B-)~CgyU_dSAYa?ZrEBjWDn9Q0?tAggH>GvamlN|QnJ=_CARe?y=X$F^t%UR@ z6-i^ozJyp;{`SWoJ?CYbK040jZ6vg#FhJ)@;+pes&FA00eRaP_FyjjbwuY74f2P&U z`9CLM+WZWw?pe#4;?6yK6l%V%;Z5-Ol1X0zZr#tmWE?if>ckH9>%HFomLCesBebr) zu&a7;WM#_H($t-w<V0iEcpVd1s`%F6d1O?eT;}~4(OCvldp5l++%VzLvt4DfN0|S0 zGi&VVS#>X%b@9W*J893&EFOPe%_I}^;8?|@wm-)ntL5z$6DenoX8yWxTKqfrhYp`- z-Mg~MYs&8)sXJHtn-{RDyqfXSa{aHmQ-`HKxTr;}=F;{O)BU9Q@2a_FC9|I39QCvV jm*<@57gQ1WFP6X{$hW!ka-gOwsLb?q^>bP0l+XkKJwgxH literal 671 zcmV;Q0$}}#P)<h;3K|Lk000e1NJLTq001KZ001Ni1^@s61Kfk*0007JNkl<Zc-rlj zJ!>LS6oz$1jmE6OK^X!TTP=uKI4M-nLPV`B1#Lpw6e6;n&6-NoLJ<^2`vt+$&qf@- z%f&yiKOz6%?m6xiZZxnPH{&MYffp|0;C(pfJ!g(e^*e~_9OpR4InJ>SH6sqhzaVb! zy<>uWI2gQ0L!|>5s4kiF1@jJfBoz6ZjPMi!WdvPQnHiZtdMYgfWwTjMF_>5^rYjbU z#zv!YjjGjZW>hYhGsDFvgTd76;m`Gx$>iH|x%`P*EEZ(7T0OzDr%tEy)$Mkh1VPwA z@c_>&1!G93(+0S>Je$qr@pvo`hr`-@KHsd@>kWdHN+l^0iAdB-8i3a*24l0?43Z?3 zL9)x`lKp;vt=sKx0B!@BB2YRh8jUIr!!v$B<K9>-mK%@9^SRgSeV<OJD3Zx!f&dt# zCRYrGW4Z}FAtn+DvE6PzK#2&d-|zo0nM?xwCeT)YTh9<e4q(ursZ>gAHk+a>%Ma+4 zR;xvl$)vI{dqWS~Rcp0cui*0FXfz69M!>`}lt=dYd|znROmqOgd26%f+GYk}z$cH8 z5frJ{>!ENs9HN8oa%Wy8Ch!3a=*sDIKHlEmqKMsY4?*b;V6eor%*w(z91g+j^$O75 zRy;$?qfb83@?6leD*B<^!ib`11izG_L}l7V_h8g}+Rj=k^~qocgTXVHcszbm81?QV zoWl8hzEr7HO4VwW6bgmAKp=2O2cm{Cuc9zKvr4f0%(E{wv&;N{7@RFfbkVC}IA-J9 zc|*sX`6CD2t6^T+gZK5X`|rnvIYqob81f!7Llo8@;};tR6gToL%Ul2e002ovPDHLk FV1i5GHNF4< diff --git a/java/res/drawable-mdpi/key_hint_quote_holo.9.png b/java/res/drawable-mdpi/key_hint_quote_holo.9.png index 51dcfac990ce9ab42f757f4f6a55290af64fb801..9d5a88bbfaab56805e1b40b1a37da91b4e89a520 100644 GIT binary patch delta 484 zcmaFKIfqlRGr-TCmrII^fq{Y7)59eQNJ{{*3<n#KtbSJiZlmH~Mg=2ta|1_XOGgt! zBV#iQLqkhT6K6+9OG^U_H$zKv6T``NOfm{aPOdIS=BB2u7RKg=hAwW7E-vPdPEID~ zuEwU8&TdANs}PDza4Ooyln`TV>|$<c46?w;1e<kA3dJQsscBXz`N^fZsd*)yF1AV) zxdnPDnJHETom#}~R3FLws~_mUGoCJvAr-gYOikoIq#)4t{#;h`B7WAt|Kr84@N;D4 zO;`V|kfb$B;9=wJ_XXc`=Iv85W>zv{Sny@P?3R0iQY|$Wj*oAgSbFrzkKilc_=AF9 zUg_97YvboN91e^T9Q&p)<ZOEVcHiaCHeU5IZSB`)#nf8PFA3!pOH0iZI~X=g<#TE2 zL|-NAHi3A>Smpz!3pX)Oo#kW|nsVyS#LFKy)Yn}IbU0IQaM)?lX_HjZf2TELx9~f8 z{#d?d5wq0-=6_5Ied$rg4AUec@@6b%xX;AHQ1UJ2$<afuxj>IGc)I$ztaD0e0s!pj Brf>iN delta 562 zcmbQk`I1wyGr-TCmrII^fq{Y7)59eQNQ(op1P2?C6s$=r-KhANQNhjJ+|AI?+{D1# z$iU3P(9pu!(8R^q)Xl=e#M!{i(P^?BlZ=9ylcBk*fw`Hhp#@Nhi<_gVxsjuVo1?3X zfu*IJh3n)hgd$U%incK	&xw;cRB<XkqH;<Ya1M;by6%P+Ss}nr4-fpIn-onpfiK zVyje<TcDScnPP>Z7u~5v%ue+hKf3NSFfdAbx;TbZ+<Fqak*~=>;O#>}H6ix8gN+CI z6E64{d=UP@u5RC)Z?xvrt7nH+881xF?yC?oSa9X2x0h$;ecQPB^$spv3?7=S-)c{N z*unl(!RD#K1-oU_9;=_Zd-@XJW4VgWCta9Jw(uR1OYq;K*2%iY_j1{(2`o35>unzA zpLlTKfarHqb!pwx%r>VtxlU3!zDcKi-~026HExN!ZuGhQCFf@SriHxT`hAbr%AWZA zN1*NDtrZ2P2c{dcuRE>#t^6cI-j-|TE>|1{)~s4(Wtc3b)R}c%_*#vc$@imo#Lu3! zvc0A2bpDuZQ4IID$1}LU1^pM_DYdx%N%6)B=Kr>D+reJ{?%|OKF)jO;UMjci%~X!& mi-{>Un7Dj5-{M`|1`H)$d0&bjt~vuu1`M9AelF{r5}E*xP|u72 diff --git a/java/res/drawable-mdpi/key_hint_quote_large_holo.9.png b/java/res/drawable-mdpi/key_hint_quote_large_holo.9.png index 6514e0bf7f587a56376658957fd9beba16bf8d25..49154a7370e23fde63789c7b1b58bb9be16bfc77 100644 GIT binary patch delta 582 zcmdnQdw|oeGr-TCmrII^fq{Y7)59eQNJ{{*3<n#KtbSJi4oFFsxJHx&=ckpFCl;kL zIHu$$r7C#lCZ?wbr6#6S7M@JC*{FAevEIns+`!S;($U1w$k@!n(9qJ-#M#l&($c`f z&Ct@^#8640BDcWT*UBY7ximL5uf)^ERtYGgmy(%cW#r^$X=G{Y;%Z@RZfNM@=IG*L z?&#!XV(w~eYU%7|1k>x8S6q^qmz)aIn~BgX>5NPB<ata93dY7R=7z=~_ZXRAbKPV) zW*G%SUYH!k>{NgFjHx3qR6cmRIEGZ*O8WEvzdf_E^5c3oHa0hb*|!=vy^M`6Ff_=V zJK~UhfJrGs(By@qOSHT|0Ry|hW~ZO~7n&ITm%dkVK-fm%Fl*-r)f1EWcPL5D=XY3_ zQuXcA)VK5Z*V{TW$-H^<`Tw7v%8h5lg~fL9@^;!UImT$*@#A~_|NSf%rnf2Z81c;I z5B=Rf$0Mz6nE~epC%0pVZ~XB1=(LH|CxBV?piJ7c&o_QJe3<+wg{x=H=Ng+k?S&ue zC(iEL(J*6n!(D~z^@qYk9(cRn->{@|(kBK*d7j=wc~_bOx!rUn#Kam-aVso~tz=o6 k8T5#eJIJkpftlg7K(hXeseBGkfxc((boFyt=akR{09=a59RL6T delta 1060 zcmX@WxrtY=Gr-TCmrII^fq{Y7)59eQNGk)e3I`jIWWLk<5J)i=2e~^jtUD+3a--V~ zMg=!>b2mdna}xt|BLg!FLqiK^LlYNcQ#T6>6K4Z6N2kelOfm{)PKM^L2Igk2h8932 zE^dyd=0=VdZjP=l29}m?7Os=45Q<E3D%!@B5QAZzg|nHZqlKxXlar~5g`1_4LUBn@ zYMNC_esXDUYF>$_i>*>cZh>A(W{MStUUa7xF+0_3{OGz5^rd2nYeY$Kep*R+Vo@rC zdr@LRMrN{eeqLE>QAui%f`(^aNotN}dHXL(1_q|Ho-U3d6?5LqF!V4AlsRyJZq%~* z^Zaft%F~nI!IC(;HTuCDrH<g1Xx&Lo3!I#rlRSBS`Esq)A~F{Qb+A5C;Ly{3bU}T` ztJ?qHchn1iuAbR?{bOwnf8F!l<?qkU|Nejf|CJ}+mMLf0+*}bc<@8g5^PgKjR@l6} zyg>H<3z<T`T)9I=5s!F_PChs*?^JZU!}prOL*K<09gZeVyzu(#lc|;Olm4eZnXqu} zgPr2pX0s>9M78)W|C}mW^Djnn{q=5f3FZyl2U?sIpRG1p@}d5c+P2%dTQ+ZQ_EEdM zJY`Lo_U7HYyMO)tSCleu{`^3-$&NfGjxLNVSi%^;imYbx3iMik-B@2=|MWzllQO)R zHZx_gd|^;eU?^eA3Y18RIGNJp_W0Djd-K#LdSqOBxy4SbyYRyEzW#pR<;$1vs<2si z`~LlK=gA>$F*UWdwQv8_|G5*WAtG}%YwG#5&FnvG{xNK_|Mug@iTJp<PYR!fQ#?*M zxNXdl4C6T8bu{T>TztH{_EfJeF?yff-QE2JiVpp=J+TMq+Hl1hm420}8*k>^3R)?$ z_G;F}-Mg*rggPzOuUj{VpP&D`!M9hRf9`W_YdM)?mObg@6X7SPFP}VlQop|9^VtH6 zJ(Xo;$Cd}J6tel~ZScN*$EGExB$qPO39oHPY|D@K{dC%)X;E))@5@!IMLwr5d$4l( zG0%(5TxXnE)24+remqjOw=ZIvsP=~~Gm_d)E@trjnj^)-_Tt&Iw#F!>LtGkZ0>@9< zRAlMLw_U6MzKFZ$ue8zPiygO?J6iv{SZ_JmvVLyQn?x%c8<&F#6MQCpJ@-KWP@{uG zkYvon{QUfj1r~Gko26^QCz|+(i;H_K4O$qs+SJ}>houbPmc4s@3wFj_vE#i}cx%Sp zyn5x&bxh~~&0w0Q+kCKIuVnY#^QTX2oArV1eSwU--Bgjps2}HiOyj)Lirr#Lf0Slt jcXP=60cQ38|Ct$%a)iB=nC)5z%nJ;ju6{1-oD!M<Wx2&E diff --git a/java/res/drawable-mdpi/key_hint_underline_holo.9.png b/java/res/drawable-mdpi/key_hint_underline_holo.9.png index fef1b63697a0c457ee6763a2dfe053c56c5b8798..8d83cf93875481e13e47d52f81f9ed98525c16cb 100644 GIT binary patch delta 436 zcmZqUe8ZvG8Q|y6%O%Cdz`(%k>ERLtq$Pk@hJy`ARzItMw^8vgqk@sSxq+jxrK5?V zk+GSDp`oRviL;}lrKN#|o1vw-iQ!~BCK&}ICs!9Eb5l!K3uALbLl-wk7Z-C!Cnpng zS7TF4XE&qCRR~2EI2CPUN{BHwb}=_J23cTag3UT5h2oN+)HJJ<{N&Qy)VvZ;7h9!@ z+ycFn%oHnvPAy_~s`uKj$`17398VX=kcwMxruy==7;v=Szr3qpedl-k+d9XLSGb<s zF>A@R5NY!XU(y|aa!qj(Wb|ZoxNEO_cBhc2i~hX@n^@*%wLG(T;VWohmieHj@T4xL znOBqb0!P5yh*yku_jmfs<=rloYJb||(aGLnSf<(f_IlQI@9%oEdM!;|JX$@X(+pJl zC1rPh?%Kq*XVQCSlgr0fuq{}6$NQ-U<2xoEhP9_PEFLw@pA2*;gQu&X%Q~loCIDeK BivR!s delta 462 zcmaFE(Z;FR8Q|y6%O%Cdz`(%k>ERLtq{V?)f`bi63f82RZdClssNiO9?q+CcZen0= zWMF1tXlUVVXyRgQ>SkeK;%s2%=rq}mNk+lU$;i^t)Y8?}&;qE$#m&*w+{n?w&C%7x zz|zvq!gX>LLXitjMcbGXVlb?;a5l4av@msaaxyisaI;iWC@u*~O|weLPcF?(%`5SA zu~n+bEznEJOtHeyi|*7SW~cgH$$9EP|84VhaSW-r^(OQn?_mX=FM?_>)^9ct0iiFK zMZ2_@FLM&}T&%S+h|}9Wz@_i8$hm|xrUNc4Gv7!0&0oNL>SE*5)El?^=4<@-FZ#*c zuG?HQVZNQHb-4Jfj|P$FMfWIr{pH%29k4pp~~3e_z$<4&rxhI~9cCpaPYCzD~2 z*K~nHXX_>u?>i>({%o6VVfWt4tG1oe_F8>!lJ}FU*bndi=%0RGzI5Y(s&mn|l&x6e gzqa)iRdE?G#Qya%YCoP(4fFzor>mdKI;Vst0DM55J^%m! diff --git a/java/res/drawable-mdpi/key_hint_underline_large_holo.9.png b/java/res/drawable-mdpi/key_hint_underline_large_holo.9.png index d584dad3d268405a5a38b435039da053ce6afe76..8d83b62773f9fc22c1b5e21fd324ef58852b84cb 100644 GIT binary patch literal 1160 zcmbVMO=#0l9M4v*Iu$B1@nb?rK}2lxxn_y0Gi@5J*g3j_MMX`M*EVkXFnP1t{F+nH zfd>^u(Sw2@;z2zM3Odw-ASxadc2QKslV5o7AkLR<ogRh<1Ic^;_x``%|2xB7o$Kc} zEp5UuY<_lwoJZ?o^tQ|nqwl^Chd!ZY3Ct8>w_S!c)diTO+a-W!O|=5@K-K&AJO=F; z7AhNsA}r=MiJEQ3)j%iin+`%_SbK->s9FzzcnMStD@lC5bC19cJxOe7%~3fg4XVb5 z0T*-+bQZLM9!=1Rj<tBZFCqdHKo$4RUdt2xBr(n_qJ3~o68N|Z>`4+6P8D-qc-nRW z-WsQ38kL~%1RbYYj_3K+I787CNiihN#Ase*8Ihv!$%jDJT)iyjWo6P9l9EIfLPsRY zTCEnZv2ok2khCBO0SCjxkVeewx1j3BEH7GTkb$SUh64@T!UIONWcR@&fjpfE!E|!D zDPqf;OcY8P>8lP&$0^b@gSf`EJ(vf7+?ZC|EA%^n%mdHvb2U_ta<mRcx%;=FKoNN( zZgve+6t!2jwLTMAFe@hsbQ9MNU1WHkl2}3FXogL+(I|W_ElGkvwJEf~b99|!T5L*5 zrxYQRX=8bsmK8~sc`23R_zc@Bq!p%)%~~E*Ee+J|8i8E|WP}9uPpp`BfeLN6VB5X* z4(O`d(DtgfgQvS&@tmp|Rv-uEnTS>fuCW*Biffzrcz#7=8v86O^E4Yo%5c-iJ%QE# zCubybh76kHuV$$qp$-hTQ>~ALso?<@niv<2#?9tOFVI-s&dO53A1(bH8|w%~qwfxd z!(k<IaddFbMwWSw4YoXexK6v@NK_YaA0=-0$hDbQ7M<8iom_M)a<X!ywEYbq8EZUy z?tKwsibrR!|JCsJ)$P?Im4-FP{cmqUqVpBa?mQi77UuOm+3fDW|K;=Rj&0kUelg6! z8F_r}`8_Xp`>U4iSh*s6cPQMfoE?5P>(Z$ML!m+9$C|{0;jbgluYEsuc;;oNu{8Q9 jbmnSyQ)po%x^A!mE4NU~IpM<f;NOtVbjmkUyM}%P0z7oA literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^%0R5b!3HFm?=(LIQjEnx?oJHr&dIz4auiEkBT9nv z(@M${i&7cfixLYmGLxP2^U6|-N>YmyG(7W4QgbxR+kZ&{6@T}1aSW-L^JcmsSF?dg z+v1H2oBEvG%H3m+NLOg3m-j!Cl=<Sf-qZI9@3N~+SEqeH?Cw-^@VrWsks14gXU3;j z9#m2(j+EqjI=yJ+bheWRZtAH#<~g~;$!Oh#9&MG!Twvy(Ej`OW@Wu$PIS|-e-qO?V z^2WFI(Y_`JQ@dHe?;F{iHd?58+9)J<$;wq)+iH#VdPMA<j?HUakQ;sT``$UrI1L_K z*xgQ)Sn%2^^7_`4w9;A2ZhkqrKU&Q<c;&npF;~XyCzX7^swSy)_ax3g)BS&1>g*eP z{>%yxluWw9A9(ip?JbVaR<ld2Q`y`jf9AFg(9i$>Gc&}=ZE4l<U;+gmgQu&X%Q~lo FCIB){m<Rv> diff --git a/java/res/drawable-mdpi/keyboard_background_holo.9.png b/java/res/drawable-mdpi/keyboard_background_holo.9.png new file mode 100644 index 0000000000000000000000000000000000000000..13cb0a07192125b1cb72db7bbf6a20736b703fbc GIT binary patch literal 1084 zcmbVMO=#0l94}1DHk^nEq6c|o;6ZG@+ccrIq)lrJW-D#M;%RB}x`s6$Ca*TzrDGyv zpu*I<f=9)xhcTQ-=Rpv>h<Nlg5b+{{t1tbS9?A{|lK1}a{eQpzcect4*XCv~%tj)S zxl&Q7;B^YW_ot)y>pk2%hnMpxUq@A^iMpBxBeLN%AShYdGOR$&SiSWYrZA{!*6OIP zUYB&oBDGM53@jI;Bau`la5a4eBG7=#rky6f?Yt&{X{3o8ag|ox9Bi4zH4j$T7Haz1 ziY^*N<|;@95+<-9(m-IfZC?t~#DG`A`|y||z(579q=}(Zb+rs~jt4=Uq+>drph1Em z8IBhO;R;}BhNftiV%QiXNE|ECG#EVuw&od4siG7{wy=~YS_rukMRmJfvdfW<w@fjj zD25y?8^angf7M1>5VQUHF@pkq-7{TeIyMLywT9C{X##sX48d|$^@!N^M~T8IqXNyP z7?P$eD~xNP?V}3(>&8TFzqaZ^sseqd<LS5_&G|7H=k9nzp(6H1TJ%g@6s@f|ddGq` zDk*6K-;joBNUR{xGAGJB!*YovgTv=@vMh>pvcQM}&x|=HVex$~DaP4+Qp_=oQjirz zkh57{$a8TqS7683lI<hS*5TN$iS3TC%&}N0=RplQUd?gZ;|?gd9OU>d#|61+9H^RZ z+MyhlXBe#lJ@Ym+3Z7$uL4GB3f_+X*B(cN!Y?9?C$34Uv|C2KcJ41!d@lUgik8lTu z+oRUU!qM<R8&8afN8|49#c*ERB}J|UpBg{={mj(q^_ff2X<GhDKXv!^-<;S<72o#` z_6y?t=8s-k+T7m$o>70_d2!HRI`yjm_~x%CO%kx55Btv^J>NQcnZ0+o_`p=6AA7S^ pYWK{CexHB0&X>*>J70Ryb^J@1`N3t98%86X=Td$_d6`|>_yZ4ATMGaH literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_background_holo.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_background_holo.9.png new file mode 100644 index 0000000000000000000000000000000000000000..571f3aa3715d409cb70f88a9325da9830b89890a GIT binary patch literal 1004 zcmbVLJ#W)M7`9XiN~;Q15W~q`7>IpmJMo9=M*c`>BwVUAf-Fcl_NB2}`^@=5+)juI z_%Uou3|(PhK}?MN0VX8GQqD<S7@`hXvhTz1^Ssad_2yvz!Pdr|4M7mLdV7AKuWQx2 zevN-0-+O<~m)oo}WQSzTW+BCb6O$1Jy)-<+eH_N8&p+WE4j3ncAsYq{t%#&jSlLKr znsc-u?6k`~jE*q_BYc!(w)o@2xd@Wj7N0Z&7~~$FBztERAD-<GqO;@3jK%gY*eNYe zkYW~sGCj!(tF*;Auf_M(wJd_U2|KpMg{Wb006ao5XiBgV!4?E9Bq3GPb^Sh2Ac8Vf zWTZ5ZZmEg|Ay_^l_eSHf)%UwgU;Jc?6UK5&mS?k>G*cx)k7Q(;X2qc>4Q|mWPBRvk zjjY(N8GKwsG|5>)GEgywBQj;S$dxWaNb?}LB+iOuqIk;WGR$QpK{-vUxaQUc>*K#N zR$3Q>(;UlvT#zY^cs<73HJIn_YDbkJS7SY*2`@@`;*)5a;*9ltTjYPFIEgJq*P)}D zj)oMqWgs5D<~fdOLZgdJT|+g;Dy)Va7n+9CF-#R9zw7wE?zpa|chsiob(I?1%L*1| z5w86v-0u==UWv6libF=|fRK~A0}dvHkzzt};2kzW5JpK>ovZRJqV+LNUf{S(Nebrq zwUQP7RikBa!5!C7wAFDhu<`%oOy*+bsyY5?mimf!V70w$eSWwc9-Q%sp?oxcU;nwu z$Lem+cLwFR(XWe(_S&tNH=yUb-*3JZUJL6``22BwS9<#8Yc+qp&c6T7efH`P6p}L5 literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_more_background_holo.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_more_background_holo.9.png new file mode 100644 index 0000000000000000000000000000000000000000..94756b717124dbdf1adcdd4d13a9ef119d2bca81 GIT binary patch literal 4445 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 Q=ZA;6v6az7k_YF10IPkJmH+?% literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/keyboard_popup_panel_background_holo.9.png b/java/res/drawable-mdpi/keyboard_popup_panel_background_holo.9.png new file mode 100644 index 0000000000000000000000000000000000000000..c33d6642941bbc3cb4cf9c153476ae3aa054f6b7 GIT binary patch literal 4311 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 literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/sym_keyboard_delete_holo.png b/java/res/drawable-mdpi/sym_keyboard_delete_holo.png new file mode 100644 index 0000000000000000000000000000000000000000..1141ddd8308469d1c5a233d075c9cf659ac7de5d GIT binary patch literal 1464 zcmeAS@N?(olHy`uVBq!ia0vp^W<YGi!3HFC?|JS9Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{&CLn2Bde0{8v^K<nQL2C3WatnaEfri;v6eK2Rr<N!r zrKV@**($x?y<bToGsRXZ+|<{=x4=0yBh#a*C^fjsFC@7tJJ~Wt$=*)EroswnKyGSD zqC!P(PF}H9g{>0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWfo`&anSp|tp`M|! ziMhGCj)IYap@F`Ek-njkuA#Y=v5}R5fdUjL0c|TvNwW%aaf8|g<k>1^l#~=$>Fbx5 zm+O@q>*W`v>l<2HT7t|lGSUUA&@HaaD@m--%_~-hnc$LIoLrPyP?DLSrvNfBF)6>a z#8wIDQivCF3w(Xy2Imz+0}2>q`W1-<`i6Q2`nkCve}PpOmjtCEoPkw!aY$uBs(w&v zaeir0GB7^Ulwq2IVTa!$kV2qqto(~IfsvA!<C33Tnwy$e;^|_m1eDQB$xN{_GB-DH zG`4g!F*GtZvoHjD-^AI`(bCeu!p+dq+{6%O23EaJ&Q5MlP6n<P#^#2GE^dx4F6NF- zPA2BA#-^6eZbmS@o_WP3iFwJXFncpW_JZ{~y5ZGp<y@4SSdw29lAoUgO925H`6c<q z8TkbY&cUV%zKO}1c_2P0dLX`aNiE7OOHFYr%Fk5*hp$y87W<8jUCa%QK|VDy!R~K} z-V}1eOdseNeNf^+N-QuTU<w2=;YlCJfoGo7JYbF~0%na_vCei342&;4T^vIyZoRo- z?|s-og6%`tWxuYj7Z2D41>Ma9SzNmm_+(iM!(3dBI0^v8zA*3DrclSsu9@fbm#OcO zy-T3?<KlwW=@YJ~?9EQDh^xqGD>$oPzVo!|>s@(jy;D_t3=VN9BM}=^4#+HFKUw<W z*45T}<@X+US$q<I316{{KQa6M-2U!au3=UjzZ{-TsJSqqt9h1tmuKCvU6(qzxKDG3 zC^Eegj&#>jJZF2|FwBo5WWIy0dqy?;PUm+Mb5pi(u3FN6l{aR?-DIJy5`s&!+_uL% zf140JzxW(WmcYynwj!!tjnk60tko+Deo$s>(W=FLh0!QU_?fF{RE9lAy6DsG4&EVw z=Nr^sN!|Qj>72oOHR8C)gOBUwPDeUaR_i5iUfz_@`>uM^hxkzc{=G{4Z=;UaeaZK< zXJ6*!_mX+u%}tl|Zgkt}NgwjOB2cuXeQC1rb8~I2JDU&8m2#0)I{a(q?G2sWQOC2G z$|Z%xTR!<|gcY2<XA^aFr*A;7l>4?Lt7G@hwa#$2|FCM=#H$={;}s?|YDAj<DnE0@ zO00}sw=nob6jPbnM6nkJhd*&ydLFLR;V7T8ZGA{lgxa@czdPsi?|S5`rOv<q&sES( iBC!RTm~ru!Xad9RCGR%d284=&%2H2PKbLh*2~7Z7w*TS) literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/sym_keyboard_num0_holo.png b/java/res/drawable-mdpi/sym_keyboard_num0_holo.png new file mode 100644 index 0000000000000000000000000000000000000000..39f19a48775f450635bada50b8dec94062a6a1bc GIT binary patch literal 1759 zcmbVNYfuwc6iz?^g&<l*g{o_yYOP6j^CTG}gd{+!;gLj(Rg{n{AwsfovyvEUTYOEW zRxL^kVh}4RGKwfL;y{X6)KbtYSZzTRp*$<aVtCA0v>OoHAB;b`GrRYmd(Zcs_w4?t zh%nMjpP2*#fg}kR$?#Qyzl+^m@b9HUZauy%#KbX}97(`TN)#pt)JQxGNOVdKEQ6Km z9oy>QKmx%zL92+tVx((%Dnv(BI&`RJodHJ^2!TOngHn|QV?aEt(dzl+fy!z!pjGq9 zAF-sM)F6Ztwc!>NmRlkeDoc`zt0o7n1_I4IoInR-O2Dj3)*E?dK6#v%hwmN7G%_%* zf+g|E6HdiQqW~d-!T^g3QdA%t1lSN2VlX)z&MJToLLd#K(;zwp;_w)B9tZ-jA2MzY zRVVOdqR`j2aEVVrPoMl+dAR1<@Wpc)#)<#HVybUFpspcr@PF{PQJH~LL7h+v}% z)fzA@q6Zv|%6Mcu#wX*RPK2N{NTqLx^~TqU!c#^wD-AS=3et2sM_l9DMob3(>&BGY zM#T;TOq0PzWIL+D>yh9$3C45xc0&$D+#6mbs>O?<Oco)k?K)VGNkn`yenVAj)jT?f z0}2>i0TZG#*Z~k8K2s<VaJgVWD8%J3p-GM@u_2-mj)=_`2QWAgBnlOXL>xg#2$Lgb zu(-ld`XpAOH)2Y?3ZAs9b=aN2vfhg22~k*yA*cdDk|#SLDiOgDV<KVzgmM-jRjRal zhwLcNM6@Cp)uzDeP!!Pt<N4)jr?Agph&T|#5h<NHb=(tJ_5aBk4R?m-Xpa9h%j6N> zfsXB)*2jf6!vpK_i9zwvNI5o&;1f4XA`&Rf%}=v$>6?SSZt7I>LZJtfcudsZ$dDCh znm-TkzbNyxm3_Ou&-WRjN|67^^5jnHbC-VpoCn9h@Nvp7*fv^LbDD8Ki+WISxFR#Q zKitndmDJUp{i=c5p3HuyV!CEd*wwUs&A+p{YOi+K(-U^*w8;-5j68CMOK!}ZI@Pm{ zo+<pi1z#;pUwiVmKdVYKrQZoR%pK~d46XTa-Sl0pPolC{Y?5`Fyb`)Kmzh3?g05Bc za4*zf+SK}U_f~)6gEsG*y|b8mBfube^NVBT`hnrWEAj=NHHcFct-)*W;``GA={D;L z_G)xmBe-%^Lzcg_HvZzu&@-vYbnE)Wthn^`USO#`j+L<(DhiI4ceMK2+`itJ8<~;c zT+<XXly^9&Mxp7NAHAj5*iLLc@;sQ<Vm)<#=#X&P$9^;JrP1jJE-f#QY=wHe9<FMk zmI6+oYc9N@^DNA7$+Nk?7qwisls6wMEvbB-xo_Dz%LxBA#pT(lzfzmpD%X%>3yi&l zg3ia{!m;IjRVilzz(&L4qox<J@U0%HcxQqAGHL1cC>p8h9QDWj@FF%f2kG8rt2WI| z;gg)BG|_phBXWQEvW4Z=r5<$2?|j$(B1iLbk8`Z<*Cd~cL8l<&tj){|n~8V4dqx)e zmbKYd5X&X^>?EGnY8%c?Sz|dka>RbOgD6IOaz3e}Sw)hfQrFboX<gYt15QACAF-hQ z8ugoLy`CppM~=IXrPukM^d8G{sRRdxT;cGrr{Z~g+%s*p1YOAkm$=)z)ArV$DeUPg za=X5wM7y(?@yl>$V0G%)19wus{}uk(*?0Ka_EuqIz5XbB^WW?+!y@bGqphD24$q6+ z`p46Zx#x)I8;sv~lv#|mcPW(ebt?O8-_Z=$)46N?A2pd9lvLOB_c>0t?lGE&A^m}e zGm>H~P7NIok0e_q(fVtHq=Yh$axfxuiAPw(()16060^^<7K~P#v0_&RkXIDBB~doJ zZ`+<6B3vL)Hv7F?(&(IqrUpm1-$+CAUY#HFjw3u)czjBVy`ggaawOsiQE^Dzu73cZ C3#_vM literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/sym_keyboard_num1_holo.png b/java/res/drawable-mdpi/sym_keyboard_num1_holo.png new file mode 100644 index 0000000000000000000000000000000000000000..40c82a7f42d863672a98855c65c2e406424d0cc0 GIT binary patch literal 1268 zcmeAS@N?(olHy`uVBq!ia0vp^5<o1+!3HGF^zJ<cQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{&CLn2Bde0{8v^K<nQL2C3WatnaE85nHrD+&^mvr|hH zl2X$%^K6yg@7}MZkeOnu6mIHk;9KCFnvv;IRg@ZB<rk7%m7Q#vqGWHUU{hfQG$1#% zBvGLvHz%*ys=`(YY_1iM4HDK@QUEI{$+lI3I4Z(7K*2e`C{@8!&p<cXz|26w%uvtJ z*u>o2Tt~skz|cV7z)0WFNY~KZ%Gk)tz(4^Clz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdpzyaD(%Tp#cR9GX09g0)0b01O41wkiWpHi%Wu15zfG>x;Uh=AXPso zwK%`DC>a<ZY05Coz_7z_5lA7>HCFybnZQU%%yG$2F3nBNEAe!(RRYTBrDUd98JU|K zI2v0zniv`xn^_nFy>H^|=xAwaVBuzHX>MW&GXtw$Cs!k5Hz#9P3uALbLl-wk7Z-C! zCnpngS7TF4XE!65UeCPZlEl2^RG7V)AbTNtjqvKVaxO|uEXgkl$<NP$rGS8p{F40Q zjQj!x=U`I>-^Aq1JP;ogJrLizq!wkCrKY$Q<>xAZ!`CVki~YvNF6M^DAfFnUVD~pf zZwfhKrVn(CJ}7Y@B^H<vFa?5`@T3pqz%x&39x%rg0kcM}66*&B21XT67srr_TS<TZ z|F>t>WfW%aWjw2!pco{pEU;PeV?Fan`>e<VyhmST?Pva2?WHTglH@1w_~>i%Z3WUh zE%ZMYHNQ#u;c-HJhfYG9)VXgzUx)wWm$xtd`}_ZWc27H|jDv{^XSt5pdv0YAxyGch zGd%zP%fCN<ZWf*~<?9O3lM07j6C6K%zP^5@gPOhRWKI5#icgPH%`SWp^=PYK(#EP_ z#;$SZ|G&SpdBszbq7I!oV>4AstRd(yf5Ma6Cr=)9FdR2AE}p$+iHoJFv6P0!j3X_r zdV7C=xaj54@LzFjch`Q0Ka3sqj=cX}yB9s;7uer;s&Ij*V2JLUe?4N?7mM`>a7%ES zL_auc-dFQUs^fof65|;myDc(*xucf+S$Ktg@kARQ9R>~qhIrnnV{G3auLG4sp00i_ I>zopr0G*StBme*a literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/sym_keyboard_num2_holo.png b/java/res/drawable-mdpi/sym_keyboard_num2_holo.png new file mode 100644 index 0000000000000000000000000000000000000000..0f444b76bacd7e95f4a1bd493e94ea4559ac7535 GIT binary patch literal 2403 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 literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/sym_keyboard_num3_holo.png b/java/res/drawable-mdpi/sym_keyboard_num3_holo.png new file mode 100644 index 0000000000000000000000000000000000000000..e4c5bee3a31d3bbd89ca291c0af7cca830ea9933 GIT binary patch literal 2143 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 literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/sym_keyboard_num4_holo.png b/java/res/drawable-mdpi/sym_keyboard_num4_holo.png new file mode 100644 index 0000000000000000000000000000000000000000..68404aa43f56fcd8ca4a146db97e5ad66b3225b1 GIT binary patch literal 2063 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 F{{VtrGp_&u literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/sym_keyboard_num5_holo.png b/java/res/drawable-mdpi/sym_keyboard_num5_holo.png new file mode 100644 index 0000000000000000000000000000000000000000..dfa3b89258832260eabb11856ba2fadad8a10837 GIT binary patch literal 2025 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 V9TS`Wsu)!Hdb;|#taD0e0sxHb6Yl^3 literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/sym_keyboard_num6_holo.png b/java/res/drawable-mdpi/sym_keyboard_num6_holo.png new file mode 100644 index 0000000000000000000000000000000000000000..1827d540992cab3cf8256aeacdc913a7c216e54e GIT binary patch literal 2502 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 literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/sym_keyboard_num7_holo.png b/java/res/drawable-mdpi/sym_keyboard_num7_holo.png new file mode 100644 index 0000000000000000000000000000000000000000..2488b7f91ec15ca06ab0c226698a6b4061d3db5a GIT binary patch literal 2527 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 G>VE*eA{!_G literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/sym_keyboard_num8_holo.png b/java/res/drawable-mdpi/sym_keyboard_num8_holo.png new file mode 100644 index 0000000000000000000000000000000000000000..3f60df194b0eb35d9024dcd04e6b48c2a395618a GIT binary patch literal 2226 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 S9{QTU2)4Tq>xNr+#(w~b{Fo{L literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/sym_keyboard_num9_holo.png b/java/res/drawable-mdpi/sym_keyboard_num9_holo.png new file mode 100644 index 0000000000000000000000000000000000000000..71c5dfc6e7cc874286f3f79c9dea4204e7126f69 GIT binary patch literal 2696 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 U<Hq(}ru5&?-kL<nvh)c52jGs1*Z=?k literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/sym_keyboard_numbpound_holo.png b/java/res/drawable-mdpi/sym_keyboard_numbpound_holo.png new file mode 100644 index 0000000000000000000000000000000000000000..a9866bbac93f4173ddf408b0770e1a44d61d2200 GIT binary patch literal 1548 zcmeAS@N?(olHy`uVBq!ia0vp^5<o1+!3HGF^zJ<cQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{&CLn2Bde0{8v^K<nQL2C3WatnaE85nHrD+&^mvr|hH zl2X$%^K6yg@7}MZkeOnu6mIHk;9KCFnvv;IRg@ZB<rk7%m7Q#vqGWHUU{hfQG$1#% zBvGLvHz%*ys=`(YY_1iM4HDK@QUEI{$+lI3I4Z(7K*2e`C{@8!&p<cXz|26w%uvtJ z*u>o2Tt~skz|cV7z)0WFNY~KZ%Gk)tz(4^Clz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdpzyaD(%Tp#cR9GX09g0)0b01O41wkiWpHi%Wu15zfG>x;Uh=AXPso zwK%`DC>a<ZY05Coz_7z_5lA7>HCFybnZQU%%yG$2F3nBNEAe!(RRYTBrDUd98JU|K zI2v0zniv`xn^_nFy>H^|=xAwaVBuzHX>MW&GXtw$XG23%M<-KP3uALbLl-wk7Z-C! zCnpngS7TF4XE!65UeCPZlEl2^RG7V)AbTNtP4McqaxO|uEXgkl$<NP$rGS8p{F40Q zjQj!x=U`I>-^Aq1JP;ogJrLizq!wkCrKY$Q<>xAZ!`CVki~YvNF6M^DAfFnUVD~pf zZwfhKrVn(CJ}7Y@B^H<vFa?5`@T3pqz%x&39x%rg0kekUf&Li`3`{njE{-7;x88)k z_I>OiaE$*=3xnOg^}#`mnhct(3WfjQv&#lB1aUbmVz7F^&U%4Sb_Q3EN1uC>kOlk0 zHG9vjOIw?`@t~X1CC}}bQs#Er-hWeLJU_YM-12?JGlTE%`B%%ZJ3;7jg)N)+2TSf+ zL5crb2bdy4KkseW`NW!e_j%@x_Li|<HF@?He7PgicgyGM{MA?6_?r`zrTSkV+P-g7 z4dZNfGY#$s9sS4mKh!^VW8<2sneUhy<on#-wtTiNU`?>T)yXwk=V0ZeD^rt8GcSr; zv)rG?FMUk);X(m+v$VWb!VU(Ja)%A{PSo<gH1?f8;e86@&0Akr)iL{2ac`b_Fz;RU z+AoZ!gBU*V_+BEwrLcQxarJh7N86rvE9H-RuFKEkUyyQkORYq9qkrB1o%_m~9BjD~ z1azZ>QesR0&sn+V^qOPWo{7bksau`=!cv^^GH5wt)8Ajuj;;H^IycY#&9qe6#K;$2 zUxa2>-OpxO%~$1aFhMSbMgB?YM2>ftIFC-9q|>z7B2Va&G*^JH#jB9C&NNr{4!zFD zJ7Tw;Tle^n+sPM;!+hh`JuNsBqV+sLDKh`Y?Gug+l5$>>y^D;mEV-O{+b-PErSpW# zbEZ8y|2{B@7+lnycS*YN&+dQDQS}OcxxAgO7mKl%O!_@5X3xdhhRJ7nI$vb#FY-Tn z?o_tBUrKYz|A)7Ax>J5;EqNPJ7^`{GbJCU<J_*<MoKaa_8KHMWLGi{0od%|v>XT(B se&5hM)7`b{Ipd%Ik4+;R!Wr2ZcIy5}liT$3AgFxyboFyt=akR{0KEP>A^-pY literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/sym_keyboard_numbstar_holo.png b/java/res/drawable-mdpi/sym_keyboard_numbstar_holo.png new file mode 100644 index 0000000000000000000000000000000000000000..ba4ea88e877f870326a78636b5816220d8d04cff GIT binary patch literal 1414 zcmeAS@N?(olHy`uVBq!ia0vp^5<o1+!3HGF^zJ<cQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{&CLn2Bde0{8v^K<nQL2C3WatnaE85nHrD+&^mvr|hH zl2X$%^K6yg@7}MZkeOnu6mIHk;9KCFnvv;IRg@ZB<rk7%m7Q#vqGWHUU{hfQG$1#% zBvGLvHz%*ys=`(YY_1iM4HDK@QUEI{$+lI3I4Z(7K*2e`C{@8!&p<cXz|26w%uvtJ z*u>o2Tt~skz|cV7z)0WFNY~KZ%Gk)tz(4^Clz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdpzyaD(%Tp#cR9GX09g0)0b01O41wkiWpHi%Wu15zfG>x;Uh=AXPso zwK%`DC>a<ZY05Coz_7z_5lA7>HCFybnZQU%%yG$2F3nBNEAe!(RRYTBrDUd98JU|K zI2v0zniv`xn^_nFy>H^|=xAwaVBuzHX>MW&GXtw$X9Gt=a|35r3uALbLl-wk7Z-C! zCnpngS7TF4XE!65UeCPZlEl2^RG7V)AbTNto$%_laxO|uEXgkl$<NP$rGS8p{F40Q zjQj!x=U`I>-^Aq1JP;ogJrLizq!wkCrKY$Q<>xAZ!`CVki~YvNF6M^DAfFnUVD~pf zZwfhKrVn(CJ}7Y@B^H<vFa?5`@T3pqz%x&39x%rg0kg&}bNze<2F7ikE{-7;x88*M z`W<o*(R(Wr)p(`hqU=0}Z+d$g-^Eri=N;g+VVLJ2{7vrQ5#|S+1`>@dEZPRTTfW*> zELL8q+q>blO1zbQ{yy{f+h;0pOsVAyz4`gZZl-Atev5aqN4yDgl$;QKyO^OlR^x=y z&jJ&>(&wK~6**sz_ihiHeeTZxV+@{CG@noJdu=9YG5!1_iwKTP$2!H!Tc$m)?3&?S z?yq5HeBij5n8HiJ0}G6m9~H8D<oT<K)%c!V<iS17X>Q(nHvM%gSN-CsFf87wUeK?U z^x@j;`#<*8v+cNG@^;~j^X7+=ghW%gIVN~)6yG1osbBX`S(GI#MCVHH>#Iw@iA7rU z37=T=Rq0Em=e-yFZC53q`)=`=FsrSwHb!sjwH<8?a_Nlf2Vb6VdwfTza&}zKLpj#) zeTTQNW!Agp^n7nLJNIgf;|WYs+Wc%+FD{Q2kK<704?f`XwMro6q1ft(9qt_aoj<G( zXuHMX9h5P{h;JKnZ2I%$->=!4`Bv^wX)9&cS@Fd8b6-@O@YO#?iuN+SfAWr~a8Bx9 zaab)#K|F3+OsDIU%d-T3>SWGZw*O3s<0^&F4T&|}1`KbOZ@=SSIw=!WGJ3lDxvX<a GXaWG*_3)nn literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/sym_keyboard_return_holo.png b/java/res/drawable-mdpi/sym_keyboard_return_holo.png new file mode 100644 index 0000000000000000000000000000000000000000..f64c731607181962a14a9ee21743ad149b8d8d85 GIT binary patch literal 1417 zcmeAS@N?(olHy`uVBq!ia0vp^W<YGi!3HFC?|JS9Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{&CLn2Bde0{8v^K<nQL2C3WatnaEfri;v6eK2Rr<N!r zrKV@**($x?y<bToGsRXZ+|<{=x4=0yBh#a*C^fjsFC@7tJJ~Wt$=*)EroswnKyGSD zqC!P(PF}H9g{>0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWfo`&anSp|tp`M|! ziMhGCj)IYap@F`Ek-njkuA#Y=v5}R5fdUjL0c|TvNwW%aaf8|g<k>1^l#~=$>Fbx5 zm+O@q>*W`v>l<2HT7t|lGSUUA&@HaaD@m--%_~-hnc$LIoLrPyP?DLSrvNfBF)6>a z#8wIDQivCF3w(Xy2Imz+0}2>q`W1-<`i6Q2`nkCve}PpOmjtCEoPkw!aY$uBs(w&v zaeir0GB7^Ulwq2IVTa!$kV2qqto(~IfsvA!<C33Tnwy$e;^|_m1eDQB$xN{_GB-DH zG`4g!F*GtZvoHjD-^AI`(bCeu!p+dq+{6%O23EaJ&Q5Mlj?S(Y#^#2GE^dx4F6NF- zPA2BA#-^6eZbmS@o_WP3iFwJXFncpW_BuJ67&)7o;ni#9T$Gwvl3x^(pPvIu0Rb8L zCHch}`2`Bj!KMnniOHFHAU-I1Aii};Ey^rQO>ryA&s6}2uT>@%`;CoV%ngk}J~cAI z?r(_R6mr5$ALtl;P~t#JEHEKp3Is9XNgv38XP(qNV2&vQW{n9iBTg_dFz)npaSW-r z^=8&Vufq-^uEM^nr-rc<s_Xq_`pZ!Glz&J0YB8=w@{j#k3LiQZT&%z7`&}<YL?_qu z9=pB)&(<ZGPHAnw9|%NcEKAQ*GoESYciDt%<FrK%-AN*gC5~#i8FmHsz?n~1E;&-X z)q%O^U^z$9q$=q(FJ8ZiXuY#(o2snD>*`Ar=Ra6}#yc?RR=`Ztg4B~!W0kI&EK!>J zW{T;tC&jOCP5AQ2ZU-B?TXJYf***0O;mfv77x7uS)M?VCor)o)M=ST2Z#ochi`jO= z%g?cep_f-GFZDXI$4hhljJcOIExuGX>1i+3oqlAK<-yZa{t0KlNZI`&;?-^qwNf5G zr>MLAUw?4O9aw)pY2(-KH23#yLAxIa<(#iPw^+(XWy<%+Y}ZKD`UcJlw)6-0K7QGB z_3xP@XG|k+d%b6Rb7ta=)!qIVRxW?}v@S=o(cB>9p!8fewuNshQ(m6@`iE)Pta~ag zXXi}3S9#{ku64`8pK#vt$zM>kecjUVlI#P1@6UOyFFU!TWxtGR>A^b}`X=pO_9meA ur(W9nsJ6>$KJ$+*5;%q)kk?=NH!w2rDaVzwwu<zC3P(>@KbLh*2~7Y>_Xgzv literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/sym_keyboard_shift_holo.png b/java/res/drawable-mdpi/sym_keyboard_shift_holo.png new file mode 100644 index 0000000000000000000000000000000000000000..b7d62136de3f9563caf34ab4f115cdb2be3205d4 GIT binary patch literal 1681 zcmbVNX;2eq7><a9QSg?EQdxrs%)n+hcNQWhSt1z;*g$E#C`+;lD@itP7L%ZWjTCBC ztWyy@P^8uB=+tS|dLZIKJ&JX(j#UJu)>4n*@Ia9`)Na6NXUh1)op1NM-sgGm+12xs z=L8R*G@Qj^1*;QLEi;RlH!d)M`NrH<*DzBkouH#rNh9sRD4ZoXkXbmOwqPb)i(>}Y z(u;T;i#60pr0Hm#CJE7#77+8wfKH2zK{I6WP8+7r!D%21HxX7Dr>mxp0}uuo=M$j@ z(%6)EHj$V|;i-AaY5Kezz0|;op9RD@5r)8m(-`2in5}liDdY6>BFx%*%;f<6B6N<7 zGhmcXGY?Rb6b=YMC`J#7AV36zFkc`Ri=zP^1Vdbi$Ax(@uo&U<5C{TZKO9CIWiTRI zRP|aHvy*YMY1)QxxekW|bnrovGI3$4RO;p6@nRT>7`w|#W6l_>J;KL;;&wen*l2>Z z0$xTei_E2E9LCZC7c4f7<_)pc{yI=h$hc0-#)UzMYq5C!>X)|DTKugUgG$@eTsEAm z#qDG+rDyVCjPQY(*u7hkSCFv=NudZPDVP~0^|=<@N~=*Bhq(a_gaP4+#gLpYl?z}V zUnGGU_XSG1Tq=bmDp)EOz&?&au?kdxLXaXs!WY9Zs*<CqSgueA#0h+%RH@?muxhKF z#;khWr<d^R9l*-piA9tYj?pBQMv`V<1<cDPY0{oe+5ly$5YS+H!s^|7(=*^Lic`cg z+@PXJ3(y~5gcw9WpO1=RzSmQpU~s<&u!i@E8J97J>n)D|6pQbOsX*`YP3be6H_d}v znU0~D*0>iLn8RZEomQjrH0RCsin_U5<rB}h_N+aiO{@-?npgscY-<T?*;fAwI7+vt zmuo#kKV0&|Ps;O(2h-dVI#ObYyj8z<ZVA|-T@+om3EkO<eqE4ql09l_k@!T<mJ@ee ze>Ajp9_s;j^mJ~o={b|WZ$i*Fn==zNr^hF~9lT*788daATUI`4oY*}IDOoU|eUM*$ zp@6e#-E85W&DZv3H-n=ej_fWaO565=tDs$@G-n@}<~$H}f9Z-14p+oiAy0qZzg8Dn zWtBHyVkaG$KLrjq4oOm!1%71SmuhfDX(X+gpyyUm26XuOhy|+(c-%gH7RnyG|5Uv6 zqVVIa-thZlx`Xrl`i!pC&t~*4!bYDC+gNE_*cjCCN|Ca2T)>)fXRh7ff%R3BlDkVi zw^oWmhYfYd8U4+W-_7oc3ue-%JX=@XZayTKQgtrWf4lNvblpmkq_4e;U;K=JCjYy- z%btTPW@Rn!EpV&%m>R<xwgv@#S~Yjbgh0uNmt_&T^475C$9|@<ingQ0e}CR3q|q-X z-T783S@=(AUeu|3O&MU+HZ==BS{zc;71O=Cq-6;^(p3KE3Fn3KJLb<iwoJ3ty4Q`^ z!)~m8)S(D}Q8RgC(Y`0sZ<Ie)y$ESKIVOL1z>J9B^Rv}2q8qngXs#vPGkcRoidP#Y zxnZ+ot1pjzxnaZgSlzVe70Vlce3bv!c=M4f;MK^K!kP|cS3<$&zGJn#C$8h`>s?)7 zT4~es;a9JYJW1>>tFUyexw4;XNQ}$s)YFIAk*(<=`RhF%_p+ClGMbTxhBE)cg6YQE z;se5TQ?}K=@35+cxY1BKXK`4e8_YRZQfX}4wB&gB+1NuL>?TTeyLM#e{ah)0ntMPp z#&LIT=x=Oe{bgCZz0;FfrAoS9;g0&>Slm=NB!HD9_^NfX<MA)vpM*Lg8U0?7>HZgY CUxkqX literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/sym_keyboard_shift_lock.png b/java/res/drawable-mdpi/sym_keyboard_shift_lock.png deleted file mode 100644 index 244179c2def030160df47d4cf1a1b94bb0e498e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3188 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 a(B}X!ahV3Re~vi-0000<MNUMnLSTZAS?Txy diff --git a/java/res/drawable-mdpi/sym_keyboard_shift_locked_holo.png b/java/res/drawable-mdpi/sym_keyboard_shift_locked_holo.png new file mode 100644 index 0000000000000000000000000000000000000000..c432bf4a33b318e98f8dfb4687288862775c1d18 GIT binary patch literal 1480 zcmeAS@N?(olHy`uVBq!ia0vp^W<YGi!3HFC?|JS9Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{&CLn2Bde0{8v^K<nQL2C3WatnaEfri;v6eK2Rr<N!r zrKV@**($x?y<bToGsRXZ+|<{=x4=0yBh#a*C^fjsFC@7tJJ~Wt$=*)EroswnKyGSD zqC!P(PF}H9g{>0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWfo`&anSp|tp`M|! ziMhGCj)IYap@F`Ek-njkuA#Y=v5}R5fdUjL0c|TvNwW%aaf8|g<k>1^l#~=$>Fbx5 zm+O@q>*W`v>l<2HT7t|lGSUUA&@HaaD@m--%_~-hnc$LIoLrPyP?DLSrvNfBF)6>a z#8wIDQivCF3w(Xy2Imz+0}2>q`W1-<`i6Q2`nkCve}PpOmjtCEoPkw!aY$uBs(w&v zaeir0GB7^Ulwq2IVTa!$kV2qqto(~IfsvA!<C33Tnwy$e;^|_m1eDQB$xN{_GB-DH zG`4g!F*GtZvoHjD-^AI`(bCeu!p+dq+{6%O23EaJE+#Gp2Ij67#^#2GE^dx4F6NF- zPA2BA#-^6eZbmS@o_WP3iFwJXFncpW_CoZU;ni#9T$Gwvl3x^(pPvIu0Rb8LCHch} z`2`Bj!KMnniOHFHAU-I1Aii};Ey^rQO>ryA&s6}2uT>@%`;CoV%ngk}J~cAI?r(_R z6mr5$ALtl;P~t#JEHEKp3Is9XNgv38XP(qNV2&vQW(}i<x1$&s7=L)WIEGZ*dNX6U z7qg>CTlsMd&c+m8C7pvxzAYgygO+%UzR_v!T{?FvN7C{|2g5%&*2q>%t4@tPQ6=`T z)zN9wY}?J#3;6!%7+Y`ew=914s4eluo5h;x{=NrTd=N;B_1QDdu+y9?Tvtu5^W+YS zDBW;E+2+gQiRBKz6xXhL)fIR<*J19&dmq;--hX9Opc`u<dPjfOQn{DBFHi8k_n5y# z_0sB9XJ%wO%$@Yi!}`a$iR&kpt!7Ab`q}W|-_(y2-rsI{%+|g5zTr#J`=x3B)=L{l zd2KLbyLoWdr|na|2d-<bdTZ2lG+^TFy%TnEzAg>C_qZ*%=iPM`TScyA8|7Y^THXyZ zbTAcQndkXe_V&xg``oJ6DjoD$;eJWsaRggNJF8!6OP8M@{}RQ^mn0VLjS91v%BZ!f z+F#1h{gvRY(8vdunoN0CL|?jbDKNk1+tiE8O%05b?oLpfmd_^qCD|>m%pmuT;q@h% ze&3I3{_6hjb(V8k@8^4>FO{B0|6~2tdwynnOv1<1FOy8PUvMU;eVNOlbF$WFz2(CE zP5rWLb@LXzG1q)BW25T2PmRHASUneB+Eb~s(6{W6!H@M?dn!e;nA8%O(ym+F7ww;v zH!u27<;%33iHYmE1NKibR?9|;1bBqZv1epsi233C>8W_*2T<AS>FVdQ&MBb@0E?p? ArT_o{ literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/sym_keyboard_smiley_holo.png b/java/res/drawable-mdpi/sym_keyboard_smiley_holo.png new file mode 100644 index 0000000000000000000000000000000000000000..a123d4cdf6454aaf9b253a9e09cec95ac09ce78a GIT binary patch literal 1479 zcmeAS@N?(olHy`uVBq!ia0vp^W<YGi!3HFC?|JS9Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{&CLn2Bde0{8v^K<nQL2C3WatnaEfri;v6eK2Rr<N!r zrKV@**($x?y<bToGsRXZ+|<{=x4=0yBh#a*C^fjsFC@7tJJ~Wt$=*)EroswnKyGSD zqC!P(PF}H9g{>0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWfo`&anSp|tp`M|! ziMhGCj)IYap@F`Ek-njkuA#Y=v5}R5fdUjL0c|TvNwW%aaf8|g<k>1^l#~=$>Fbx5 zm+O@q>*W`v>l<2HT7t|lGSUUA&@HaaD@m--%_~-hnc$LIoLrPyP?DLSrvNfBF)6>a z#8wIDQivCF3w(Xy2Imz+0}2>q`W1-<`i6Q2`nkCve}PpOmjtCEoPkw!aY$uBs(w&v zaeir0GB7^Ulwq2IVTa!$kV2qqto(~IfsvA!<C33Tnwy$e;^|_m1eDQB$xN{_GB-DH zG`4g!F*GtZvoHjD-^AI`(bCeu!p+dq+{6%O1~$D;uI7f87G_4S7RHu_hAwW7E-vPd zPEID~uEwU8&Td99y`Fi+C5d^-sW5vpf%Zc68sgP!<y@4SSdw29lAoUgO925H`6c<q z8TkbY&cUV%zKO}1c_2P0dLX`aNiE7OOHFYr%Fk5*hp$y87W<7Y%q)Noc6G8aGQsX| zh~5-(!b~6N7=2LUKuRnyAz%swG2uxc$bn~`)I4C0DFSAVE&OJo3=E9lJzX3_DsH`* z<?naMLF8EXHh~EmdOjuj{14*z7HmJTSNsEmoWpk@dKLG5$ML=IOxhX(Jmz}tQ;Szy znrL{8asTu^d&*|C{XF~I+~mq9oBnHoW{XTk8##Rvn1p8>U{N!GGq?2|ssC|TcX4On z?@Ox2R&neb_!e+wKKPeC^<a|261Qr%cDMB(BAMQ^PEY2oNao)bXq4V|l)vD<X;stf zwF2Gktv8klco)R8nYZq3wl%J5NS}1!z^o0=-Q*K0=NuL5+Ii8g^4$zG4UG*+%l&1e zpEb_eb8Y#A9;Yu66Tf`#J3FCxjVx1jqi?O4$^6j5p1b?n+(hLzBwO#0yHwG2p(ik< ziDC8ve$$mX(bXwmF3qfVZcTQ0oEty!$?ksN1!1qAOr2^Ml$&r|I41qcMDFx=yM^l< zo43vlnj66PRs72)t5*5&6FMpzT4t?_eIs0Sy6xF^<8r^hZ!etODtXH>VBrbY263yk zH#*kk=l^_@T<E#aCR}GrYkE-Cvx}B_tc=?@cl+O~TFks&yYz<K8{KE=`wrB!Ci%4< z`nKXaSN_NI(>QiUeAzN_{hk$-zpgu+eW6#mPD4PRo6B+e6Bi@SkL_uE9W8y%k*=k` zW0r<9AMLEYDI@8+U!&?TQt-o=H}<pr7EEBMIG3qy%~!kzRJ3}!`njxgN@xNATw)hC literal 0 HcmV?d00001 diff --git a/java/res/drawable-mdpi/sym_keyboard_space_holo.png b/java/res/drawable-mdpi/sym_keyboard_space_holo.png new file mode 100644 index 0000000000000000000000000000000000000000..d1ef4414e8fb185ca965a58ead33e651855ab4b8 GIT binary patch literal 1194 zcmbVMTWHfz819&eOg9u%bRvZ8ZP@14E=^b+ZPRL*-AY$oQJiMU=^EBtOitHqD2g&f zAAIu73*v(lr<+43=<vc6b$gl!bJQC?DBjQq1<@BhS=Z^q*n@%Ood2Bv`~G{5C0e#r zSJhUzT(0WaRw0Sj2J|*ATZ+E!SFtg)tcQ^_Y|}HaAez7xl=V)4#Z<8iB!MXR?wbIO zE>~qnNu^;rzKxf3)gwAO9$PgK8j&^GhA4Fdh;@Q4MGN3x$L`{oA_wqxU!05^VUSg} z_L-oquO%h*bxWL#H*LlmZ5|P*0E(Ec<}{191Nba2kM_<nfn&2OuseX4oJz+NSXeg! z=JSwliEJRT2FgP*UY2DyVKhmR1W6MV?WS0sp?Q+T<{lhbGvy4Q6ryvskQBhP5E?u| z6bc1Tf$`{O7eR3x=Wx)p8)>+$UJZ)2TeIrQ3<9tuQ!${TYna0*cItT;z>%k=5L6=` zpC{I=xkRCq5w>U$l!qi#)ro6X+k#2(*Np|WtyHf8h$OJ|yeXl2Wa`Rbl)J?ZIf}>| zzSUGvQN)~}OL-M&FeU_WbmNf~nWtHn3^H8MOVLb&pF-h#!@(fOk^U&fv0kdou^=`S z4n;#DZ^X~A6eUE1g1`om%tja=7mm_pY)rGDs7at~S8?o?u*{-ZK5POJ>SjvUbL9?5 zWOb-pS>3?GZ9Xh6N{Z&lPI*ev3cyr)fE+b-6`Rd3uPk7nVFZ?9oJeW!!f}_d^8e(F zK+X_ObNtgR<s;OA&UU`_kuX0zKtmH_qS5FWAE`lORg4M2lwJHh-CQ+JuI_(x{m!|I z{;3GpbLPbElQlvl@#OoGFWB+^3r7-@2j8r$-TC-Yb!_?9+Z#I9+&ffJxpc)ka_=IW zJ-+1H$p>feH@CjMu%8|tNxhr&UViqjV{&`%!1#_;^+QL^i50u*uQh$ED75sexyBj0 zy=VGnTV|%nkG9vJdS0}1zp|%q<?G<^AgsJ{W8>g?^~3vhSNH!&Ki&6w;3ItTyJPBr mkiT{AXZw<}H{H8OU6ro)FURap4~<LC-y;@j5r#s05B~vJ3yop` literal 0 HcmV?d00001 diff --git a/java/res/drawable/btn_keyboard_key_honeycomb_popup.xml b/java/res/drawable/btn_keyboard_key_honeycomb_popup.xml new file mode 100644 index 0000000000..87e952c60f --- /dev/null +++ b/java/res/drawable/btn_keyboard_key_honeycomb_popup.xml @@ -0,0 +1,21 @@ +<?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"> + <item android:state_pressed="true" + android:drawable="@drawable/btn_keyboard_key_popup_selected_holo" /> + <item android:drawable="@drawable/btn_keyboard_key_light_popup_normal" /> +</selector> diff --git a/java/res/drawable/keyboard_key_feedback_honeycomb.xml b/java/res/drawable/keyboard_key_feedback_honeycomb.xml new file mode 100644 index 0000000000..dd9b53e463 --- /dev/null +++ b/java/res/drawable/keyboard_key_feedback_honeycomb.xml @@ -0,0 +1,21 @@ +<?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"> + <item android:state_long_pressable="true" + android:drawable="@drawable/keyboard_key_feedback_more_background" /> + <item android:drawable="@drawable/keyboard_key_feedback_background_holo" /> +</selector> diff --git a/java/res/layout-xlarge/keyboard_popup_honeycomb.xml b/java/res/layout-xlarge/keyboard_popup_honeycomb.xml new file mode 100644 index 0000000000..50e91f7ea7 --- /dev/null +++ b/java/res/layout-xlarge/keyboard_popup_honeycomb.xml @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:background="@drawable/keyboard_popup_panel_background_holo" + android:paddingLeft="44dip" + android:paddingRight="32dip" + > + <com.android.inputmethod.latin.BaseKeyboardView + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" + android:id="@+id/BaseKeyboardView" + android:layout_alignParentBottom="true" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@color/latinkeyboard_transparent" + + latin:keyBackground="@drawable/btn_keyboard_key_honeycomb_popup" + latin:keyHysteresisDistance="0dip" + latin:verticalCorrection="@dimen/mini_keyboard_vertical_correction" + /> +</LinearLayout> diff --git a/java/res/layout/input_honeycomb.xml b/java/res/layout/input_honeycomb.xml index 7bc0df4272..79eb7be964 100644 --- a/java/res/layout/input_honeycomb.xml +++ b/java/res/layout/input_honeycomb.xml @@ -27,9 +27,11 @@ android:layout_height="wrap_content" android:paddingTop="@dimen/keyboard_top_padding" android:paddingBottom="@dimen/keyboard_bottom_padding" - android:background="@drawable/keyboard_dark_background" + android:background="@drawable/keyboard_background_holo" android:textStyle="bold" latin:keyBackground="@drawable/btn_keyboard_key_honeycomb" + latin:keyPreviewLayout="@layout/key_preview_honeycomb" + latin:popupLayout="@layout/keyboard_popup_honeycomb" latin:keyTextStyle="bold" /> diff --git a/java/res/layout/key_preview_honeycomb.xml b/java/res/layout/key_preview_honeycomb.xml new file mode 100644 index 0000000000..a90fe55885 --- /dev/null +++ b/java/res/layout/key_preview_honeycomb.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<TextView xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="wrap_content" + android:layout_height="80sp" + android:textSize="40sp" + android:textColor="@color/latinkeyboard_key_color_white" + android:minWidth="24dip" + android:gravity="center" + android:background="@drawable/keyboard_key_feedback_honeycomb" + /> diff --git a/java/res/layout/keyboard_popup_honeycomb.xml b/java/res/layout/keyboard_popup_honeycomb.xml new file mode 100644 index 0000000000..63b5353813 --- /dev/null +++ b/java/res/layout/keyboard_popup_honeycomb.xml @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:background="@drawable/keyboard_popup_panel_background_holo" + android:paddingLeft="24dip" + android:paddingRight="24dip" + > + <com.android.inputmethod.latin.BaseKeyboardView + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" + android:id="@+id/BaseKeyboardView" + android:layout_alignParentBottom="true" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@color/latinkeyboard_transparent" + + latin:keyBackground="@drawable/btn_keyboard_key_honeycomb_popup" + latin:keyHysteresisDistance="0dip" + latin:verticalCorrection="@dimen/mini_keyboard_vertical_correction" + /> +</LinearLayout> diff --git a/java/res/values-xlarge/dimens.xml b/java/res/values-xlarge/dimens.xml index 1162a31722..58fea4edf6 100644 --- a/java/res/values-xlarge/dimens.xml +++ b/java/res/values-xlarge/dimens.xml @@ -21,22 +21,24 @@ <resources> <!-- key_height + key_bottom_gap = popup_key_height --> <dimen name="key_height">13.0mm</dimen> - <dimen name="key_bottom_gap">2.0mm</dimen> + <dimen name="key_bottom_gap">1.5mm</dimen> <dimen name="key_horizontal_gap">2.0mm</dimen> <dimen name="popup_key_height">15.0mm</dimen> <dimen name="keyboard_top_padding">1.0mm</dimen> <dimen name="keyboard_bottom_padding">1.0mm</dimen> - <!-- key_height x 1.6 --> - <dimen name="key_preview_height">20.8mm</dimen> + <!-- key_height x 1.0 --> + <dimen name="key_preview_height">13.0mm</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> <!-- popup_key_height x -1.0 --> <dimen name="mini_keyboard_vertical_correction">-13.0mm</dimen> - <dimen name="key_text_size">0.175in</dimen> - <dimen name="key_label_text_size">0.110in</dimen> - <dimen name="key_preview_text_size_large">0.245in</dimen> + <dimen name="key_text_size">24dip</dimen> + <dimen name="key_label_text_size">18dip</dimen> + <dimen name="key_preview_text_size_large">24dip</dimen> + <!-- left or right padding for of label alignment --> + <dimen name="key_label_horizontal_alignment_padding">18dip</dimen> <dimen name="candidate_strip_height">46dip</dimen> </resources> diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml index 28ea6fcccf..ee4ec05177 100644 --- a/java/res/values/attrs.xml +++ b/java/res/values/attrs.xml @@ -126,6 +126,8 @@ <attr name="manualTemporaryUpperCaseHintIcon" format="reference" /> <!-- The key style to specify a set of key attributes defined by <key_style/> --> <attr name="keyStyle" format="string" /> + <!-- Shift key icon for shifted state --> + <attr name="shiftedIcon" format="reference" /> </declare-styleable> <declare-styleable name="BaseKeyboard_Row"> diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml index 0073835fda..f29bc4d113 100644 --- a/java/res/values/dimens.xml +++ b/java/res/values/dimens.xml @@ -37,6 +37,8 @@ <dimen name="key_text_size">0.13in</dimen> <dimen name="key_label_text_size">0.083in</dimen> <dimen name="key_preview_text_size_large">40sp</dimen> + <!-- left or right padding for of label alignment --> + <dimen name="key_label_horizontal_alignment_padding">0.13in</dimen> <dimen name="key_preview_offset">0.000in</dimen> <!-- We use "inch", not "dip" because this value tries dealing with physical distance related to user's finger. --> diff --git a/java/res/xml-xlarge/kbd_key_styles.xml b/java/res/xml-xlarge/kbd_key_styles.xml new file mode 100644 index 0000000000..0643bc3446 --- /dev/null +++ b/java/res/xml-xlarge/kbd_key_styles.xml @@ -0,0 +1,149 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <!-- Functional key styles --> + <switch> + <case + latin:colorScheme="white" + > + <key-style + latin:styleName="functionalKeyStyle" + latin:isModifier="true" /> + <key-style + latin:styleName="shiftKeyStyle" + latin:codes="@integer/key_shift" + latin:keyIcon="@drawable/sym_keyboard_shift_holo" + latin:shiftedIcon="@drawable/sym_keyboard_shift_locked_holo" + latin:iconPreview="@drawable/sym_keyboard_feedback_shift" + latin:parentStyle="functionalKeyStyle" + latin:isSticky="true" /> + <key-style + latin:styleName="deleteKeyStyle" + latin:codes="@integer/key_delete" + latin:keyIcon="@drawable/sym_keyboard_delete_holo" + latin:iconPreview="@drawable/sym_keyboard_feedback_delete" + latin:parentStyle="functionalKeyStyle" + latin:isRepeatable="true" /> + <key-style + latin:styleName="returnKeyStyle" + latin:codes="@integer/key_return" + latin:keyIcon="@drawable/sym_keyboard_return_holo" + latin:iconPreview="@drawable/sym_keyboard_feedback_return" + latin:parentStyle="functionalKeyStyle" /> + 1 + <key-style + latin:styleName="spaceKeyStyle" + latin:codes="@integer/key_space" + latin:keyIcon="@drawable/sym_keyboard_space_holo" + latin:iconPreview="@drawable/sym_keyboard_feedback_space" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="nonSpecialBackgroundSpaceKeyStyle" + latin:codes="@integer/key_space" + latin:keyIcon="@drawable/sym_keyboard_space_holo" + latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> + <key-style + latin:styleName="smileyKeyStyle" + latin:codes="0" + latin:keyIcon="@drawable/sym_keyboard_smiley_holo" + latin:keyOutputText=";-) " + latin:keyHintIcon="@drawable/hint_popup_holo" + latin:popupKeyboard="@xml/popup_smileys" /> + </case> + <case + latin:colorScheme="black" + > + <key-style + latin:styleName="functionalKeyStyle" /> + <key-style + latin:styleName="shiftKeyStyle" + latin:codes="@integer/key_shift" + latin:keyIcon="@drawable/sym_bkeyboard_shift" + latin:shiftedIcon="@drawable/sym_bkeyboard_shift_locked" + latin:iconPreview="@drawable/sym_keyboard_feedback_shift" + latin:parentStyle="functionalKeyStyle" + latin:isSticky="true" /> + <key-style + latin:styleName="deleteKeyStyle" + latin:codes="@integer/key_delete" + latin:keyIcon="@drawable/sym_bkeyboard_delete" + latin:iconPreview="@drawable/sym_keyboard_feedback_delete" + latin:parentStyle="functionalKeyStyle" + latin:isRepeatable="true" /> + <key-style + latin:styleName="returnKeyStyle" + latin:codes="@integer/key_return" + latin:keyIcon="@drawable/sym_bkeyboard_return" + latin:iconPreview="@drawable/sym_keyboard_feedback_return" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="spaceKeyStyle" + latin:codes="@integer/key_space" + latin:keyIcon="@drawable/sym_bkeyboard_space" + latin:iconPreview="@drawable/sym_keyboard_feedback_space" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="nonSpecialBackgroundSpaceKeyStyle" + latin:codes="@integer/key_space" + latin:keyIcon="@drawable/sym_bkeyboard_space" + latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> + <key-style + latin:styleName="smileyKeyStyle" + latin:keyLabel=";-)" + latin:keyOutputText=";-) " + latin:keyHintIcon="@drawable/hint_popup_holo" + latin:popupKeyboard="@xml/popup_smileys" /> + </case> + </switch> + <key-style + latin:styleName="tabKeyStyle" + latin:codes="@integer/key_tab" + latin:keyLabel="@string/label_tab_key" + latin:keyLabelOption="fontNormal" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="toSymbolKeyStyle" + latin:codes="@integer/key_switch_alpha_symbol" + latin:keyLabel="@string/label_to_symbol_key" + latin:keyLabelOption="fontNormal" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="toAlphaKeyStyle" + latin:codes="@integer/key_switch_alpha_symbol" + latin:keyLabel="@string/label_to_alpha_key" + latin:keyLabelOption="fontNormal" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="moreKeyStyle" + latin:codes="@integer/key_shift" + latin:keyLabel="@string/label_more_key" + latin:keyLabelOption="fontNormal" + latin:parentStyle="functionalKeyStyle" + latin:isSticky="true" /> + <key-style + latin:styleName="comKeyStyle" + latin:keyLabel=".com" + latin:keyLabelOption="fontNormal" + latin:keyHintIcon="@drawable/hint_popup_holo" + latin:popupKeyboard="@xml/popup_domains" /> +</merge> diff --git a/java/res/xml-xlarge/kbd_number.xml b/java/res/xml-xlarge/kbd_number.xml index dd251ea9fb..f5f4fbc8aa 100644 --- a/java/res/xml-xlarge/kbd_number.xml +++ b/java/res/xml-xlarge/kbd_number.xml @@ -25,13 +25,13 @@ latin:verticalGap="@dimen/key_bottom_gap" latin:keyHeight="@dimen/key_height" > + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> <!-- This row is intentionally not marked as a top row --> <Row> <Key - latin:codes="@integer/key_tab" - latin:keyLabel="@string/label_tab_key" - latin:keyLabelOption="fontNormal|alignLeft|alignBottom" - latin:isModifier="true" + latin:keyStyle="tabKeyStyle" + latin:keyLabelOption="alignLeft" latin:keyEdgeFlags="left" /> <Spacer latin:horizontalGap="4.458%p" /> @@ -55,12 +55,8 @@ <Spacer latin:horizontalGap="9.360%p" /> <Key - latin:codes="@integer/key_delete" - latin:keyLabel="@string/label_backspace_key" - latin:keyLabelOption="fontNormal|alignRight|alignBottom" + latin:keyStyle="deleteKeyStyle" latin:keyWidth="9.804%p" - latin:isModifier="true" - latin:isRepeatable="true" latin:keyEdgeFlags="right" /> </Row> <Row> @@ -86,11 +82,8 @@ <Spacer latin:horizontalGap="4.458%p" /> <Key - latin:codes="@integer/key_return" - latin:keyLabel="@string/label_return_key" - latin:keyLabelOption="fontNormal|alignRight|alignBottom" + latin:keyStyle="returnKeyStyle" latin:keyWidth="14.706%p" - latin:isModifier="true" latin:keyEdgeFlags="right" /> </Row> <Row> @@ -125,9 +118,7 @@ <Spacer latin:horizontalGap="16.406%p" /> <Key - latin:codes="@integer/key_space" - latin:keyIcon="@drawable/sym_keyboard_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" + latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle" latin:keyWidth="24.127%p" /> <Spacer latin:horizontalGap="4.458%p" /> diff --git a/java/res/xml-xlarge/kbd_numkey_styles.xml b/java/res/xml-xlarge/kbd_numkey_styles.xml new file mode 100644 index 0000000000..adf45a8610 --- /dev/null +++ b/java/res/xml-xlarge/kbd_numkey_styles.xml @@ -0,0 +1,150 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:colorScheme="white" + > + <key-style + latin:styleName="num0KeyStyle" + latin:codes="48" + latin:keyIcon="@drawable/sym_keyboard_num0_holo" /> + <key-style + latin:styleName="num1KeyStyle" + latin:codes="49" + latin:keyIcon="@drawable/sym_keyboard_num1_holo" /> + <key-style + latin:styleName="num2KeyStyle" + latin:codes="50" + latin:keyIcon="@drawable/sym_keyboard_num2_holo" /> + <key-style + latin:styleName="num3KeyStyle" + latin:codes="51" + latin:keyIcon="@drawable/sym_keyboard_num3_holo" /> + <key-style + latin:styleName="num4KeyStyle" + latin:codes="52" + latin:keyIcon="@drawable/sym_keyboard_num4_holo" /> + <key-style + latin:styleName="num5KeyStyle" + latin:codes="53" + latin:keyIcon="@drawable/sym_keyboard_num5_holo" /> + <key-style + latin:styleName="num6KeyStyle" + latin:codes="54" + latin:keyIcon="@drawable/sym_keyboard_num6_holo" /> + <key-style + latin:styleName="num7KeyStyle" + latin:codes="55" + latin:keyIcon="@drawable/sym_keyboard_num7_holo" /> + <key-style + latin:styleName="num8KeyStyle" + latin:codes="56" + latin:keyIcon="@drawable/sym_keyboard_num8_holo" /> + <key-style + latin:styleName="num9KeyStyle" + latin:codes="57" + latin:keyIcon="@drawable/sym_keyboard_num9_holo" /> + <key-style + latin:styleName="numStarKeyStyle" + latin:codes="42" + latin:keyIcon="@drawable/sym_keyboard_numbstar_holo" /> + <key-style + latin:styleName="numPoundKeyStyle" + latin:codes="35" + latin:keyIcon="@drawable/sym_keyboard_numbpound_holo" /> + <key-style + latin:styleName="numAltKeyStyle" + latin:codes="@integer/key_switch_alpha_symbol" + latin:keyIcon="@drawable/sym_keyboard_numalt" + latin:iconPreview="@drawable/sym_keyboard_feedback_numalt" /> + <key-style + latin:styleName="numSpaceKeyStyle" + latin:codes="@integer/key_space" + latin:keyIcon="@drawable/sym_keyboard_space_holo" + latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> + </case> + <case + latin:colorScheme="black" + > + <key-style + latin:styleName="num0KeyStyle" + latin:codes="48" + latin:keyIcon="@drawable/sym_bkeyboard_num0" /> + <key-style + latin:styleName="num1KeyStyle" + latin:codes="49" + latin:keyIcon="@drawable/sym_bkeyboard_num1" /> + <key-style + latin:styleName="num2KeyStyle" + latin:codes="50" + latin:keyIcon="@drawable/sym_bkeyboard_num2" /> + <key-style + latin:styleName="num3KeyStyle" + latin:codes="51" + latin:keyIcon="@drawable/sym_bkeyboard_num3" /> + <key-style + latin:styleName="num4KeyStyle" + latin:codes="52" + latin:keyIcon="@drawable/sym_bkeyboard_num4" /> + <key-style + latin:styleName="num5KeyStyle" + latin:codes="53" + latin:keyIcon="@drawable/sym_bkeyboard_num5" /> + <key-style + latin:styleName="num6KeyStyle" + latin:codes="54" + latin:keyIcon="@drawable/sym_bkeyboard_num6" /> + <key-style + latin:styleName="num7KeyStyle" + latin:codes="55" + latin:keyIcon="@drawable/sym_bkeyboard_num7" /> + <key-style + latin:styleName="num8KeyStyle" + latin:codes="56" + latin:keyIcon="@drawable/sym_bkeyboard_num8" /> + <key-style + latin:styleName="num9KeyStyle" + latin:codes="57" + latin:keyIcon="@drawable/sym_bkeyboard_num9" /> + <key-style + latin:styleName="numStarKeyStyle" + latin:codes="42" + latin:keyIcon="@drawable/sym_bkeyboard_numstar" /> + <key-style + latin:styleName="numPoundKeyStyle" + latin:codes="35" + latin:keyIcon="@drawable/sym_bkeyboard_numpound" /> + <key-style + latin:styleName="numAltKeyStyle" + latin:codes="@integer/key_switch_alpha_symbol" + latin:keyIcon="@drawable/sym_bkeyboard_numalt" + latin:iconPreview="@drawable/sym_keyboard_feedback_numalt" /> + <key-style + latin:styleName="numSpaceKeyStyle" + latin:codes="@integer/key_space" + latin:keyIcon="@drawable/sym_bkeyboard_space" + latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> + </case> + </switch> +</merge> diff --git a/java/res/xml-xlarge/kbd_phone.xml b/java/res/xml-xlarge/kbd_phone.xml index 842c74bf55..483b022a52 100644 --- a/java/res/xml-xlarge/kbd_phone.xml +++ b/java/res/xml-xlarge/kbd_phone.xml @@ -25,13 +25,15 @@ latin:verticalGap="@dimen/key_bottom_gap" latin:keyHeight="@dimen/key_height" > + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <include + latin:keyboardLayout="@xml/kbd_numkey_styles" /> <!-- This row is intentionally not marked as a top row --> <Row> <Key - latin:codes="@integer/key_tab" - latin:keyLabel="@string/label_tab_key" - latin:keyLabelOption="fontNormal|alignLeft|alignBottom" - latin:isModifier="true" + latin:keyStyle="tabKeyStyle" + latin:keyLabelOption="alignLeft" latin:keyEdgeFlags="left" /> <!-- To match one character label size with "Tab", I placed spaces around the char '-' and '+'. --> @@ -48,32 +50,22 @@ <Spacer latin:horizontalGap="8.479%p" /> <Key - latin:codes="49" - latin:keyIcon="@drawable/sym_keyboard_num1" /> + latin:keyStyle="num1KeyStyle" /> <Key - latin:codes="50" - latin:keyIcon="@drawable/sym_keyboard_num2" /> + latin:keyStyle="num2KeyStyle" /> <Key - latin:codes="51" - latin:keyIcon="@drawable/sym_keyboard_num3" /> + latin:keyStyle="num3KeyStyle" /> <Spacer - latin:horizontalGap="4.458%p" /> + latin:horizontalGap="9.360%p" /> <Key - latin:codes="@integer/key_delete" - latin:keyLabel="@string/label_backspace_key" - latin:keyLabelOption="fontNormal|alignRight|alignBottom" - latin:keyWidth="14.706%p" - latin:isModifier="true" - latin:isRepeatable="true" + latin:keyStyle="deleteKeyStyle" + latin:keyWidth="9.804%p" latin:keyEdgeFlags="right" /> </Row> <Row> <Key - latin:codes="@integer/key_shift" - latin:keyLabel="@string/label_more_key" - latin:keyLabelOption="fontNormal|alignLeft|alignBottom" - latin:isModifier="true" - latin:isSticky="true" + latin:keyStyle="moreKeyStyle" + latin:keyLabelOption="alignLeft" latin:keyEdgeFlags="left" /> <!-- To match one character label size with "More", I placed spaces around the char ',' and '.'. --> @@ -90,22 +82,16 @@ <Spacer latin:horizontalGap="8.479%p" /> <Key - latin:codes="52" - latin:keyIcon="@drawable/sym_keyboard_num4" /> + latin:keyStyle="num4KeyStyle" /> <Key - latin:codes="53" - latin:keyIcon="@drawable/sym_keyboard_num5" /> + latin:keyStyle="num5KeyStyle" /> <Key - latin:codes="54" - latin:keyIcon="@drawable/sym_keyboard_num6" /> + latin:keyStyle="num6KeyStyle" /> <Spacer latin:horizontalGap="4.458%p" /> <Key - latin:codes="@integer/key_return" - latin:keyLabel="@string/label_return_key" - latin:keyLabelOption="fontNormal|alignRight|alignBottom" + latin:keyStyle="returnKeyStyle" latin:keyWidth="14.706%p" - latin:isModifier="true" latin:keyEdgeFlags="right" /> </Row> <Row> @@ -126,14 +112,11 @@ <Spacer latin:horizontalGap="8.479%p" /> <Key - latin:codes="55" - latin:keyIcon="@drawable/sym_keyboard_num7" /> + latin:keyStyle="num7KeyStyle" /> <Key - latin:codes="56" - latin:keyIcon="@drawable/sym_keyboard_num8" /> + latin:keyStyle="num8KeyStyle" /> <Key - latin:codes="57" - latin:keyIcon="@drawable/sym_keyboard_num9" /> + latin:keyStyle="num9KeyStyle" /> <!-- There is an empty area bellow the "Enter" key and right of the "9" key. To ignore the touch event on the area, "9" is intentionally not marked as a right edge key. --> </Row> @@ -144,21 +127,16 @@ <Spacer latin:horizontalGap="20.427%p" /> <Key - latin:codes="@integer/key_space" - latin:keyIcon="@drawable/sym_keyboard_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" + latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle" latin:keyWidth="16.085%p" /> <Spacer latin:horizontalGap="8.479%p" /> <Key - latin:codes="42" - latin:keyIcon="@drawable/sym_keyboard_numstar" /> + latin:keyStyle="numStarKeyStyle" /> <Key - latin:codes="48" - latin:keyIcon="@drawable/sym_keyboard_num0" /> + latin:keyStyle="num0KeyStyle" /> <Key - latin:codes="35" - latin:keyIcon="@drawable/sym_keyboard_numpound" /> + latin:keyStyle="numPoundKeyStyle" /> <!-- There is an empty area bellow the "Enter" key and right of the "#" key. To ignore the touch event on the area, "#" is intentionally not marked as a right edge key. --> </Row> diff --git a/java/res/xml-xlarge/kbd_phone_symbols.xml b/java/res/xml-xlarge/kbd_phone_symbols.xml index 9ba60ed858..09eb403c86 100644 --- a/java/res/xml-xlarge/kbd_phone_symbols.xml +++ b/java/res/xml-xlarge/kbd_phone_symbols.xml @@ -25,13 +25,15 @@ latin:verticalGap="@dimen/key_bottom_gap" latin:keyHeight="@dimen/key_height" > + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <include + latin:keyboardLayout="@xml/kbd_numkey_styles" /> <!-- This row is intentionally not marked as a top row --> <Row> <Key - latin:codes="@integer/key_tab" - latin:keyLabel="@string/label_tab_key" - latin:keyLabelOption="fontNormal|alignLeft|alignBottom" - latin:isModifier="true" + latin:keyStyle="tabKeyStyle" + latin:keyLabelOption="alignLeft" latin:keyEdgeFlags="left" /> <Spacer latin:horizontalGap="4.458%p" /> @@ -52,32 +54,22 @@ <Spacer latin:horizontalGap="4.458%p" /> <Key - latin:codes="49" - latin:keyIcon="@drawable/sym_keyboard_num1" /> + latin:keyStyle="num1KeyStyle" /> <Key - latin:codes="50" - latin:keyIcon="@drawable/sym_keyboard_num2" /> + latin:keyStyle="num2KeyStyle" /> <Key - latin:codes="51" - latin:keyIcon="@drawable/sym_keyboard_num3" /> + latin:keyStyle="num3KeyStyle" /> <Spacer - latin:horizontalGap="4.458%p" /> + latin:horizontalGap="9.360%p" /> <Key - latin:codes="@integer/key_delete" - latin:keyLabel="@string/label_backspace_key" - latin:keyLabelOption="fontNormal|alignRight|alignBottom" - latin:keyWidth="14.706%p" - latin:isModifier="true" - latin:isRepeatable="true" + latin:keyStyle="deleteKeyStyle" + latin:keyWidth="9.804%p" latin:keyEdgeFlags="right" /> </Row> <Row> <Key - latin:codes="@integer/key_shift" - latin:keyLabel="@string/label_more_key" - latin:keyLabelOption="fontNormal|alignLeft|alignBottom" - latin:isModifier="true" - latin:isSticky="true" + latin:keyStyle="moreKeyStyle" + latin:keyLabelOption="alignLeft" latin:keyEdgeFlags="left" /> <Spacer latin:horizontalGap="4.458%p" /> @@ -98,22 +90,16 @@ <Spacer latin:horizontalGap="4.458%p" /> <Key - latin:codes="52" - latin:keyIcon="@drawable/sym_keyboard_num4" /> + latin:keyStyle="num4KeyStyle" /> <Key - latin:codes="53" - latin:keyIcon="@drawable/sym_keyboard_num5" /> + latin:keyStyle="num5KeyStyle" /> <Key - latin:codes="54" - latin:keyIcon="@drawable/sym_keyboard_num6" /> + latin:keyStyle="num6KeyStyle" /> <Spacer latin:horizontalGap="4.458%p" /> <Key - latin:codes="@integer/key_return" - latin:keyLabel="@string/label_return_key" - latin:keyLabelOption="fontNormal|alignRight|alignBottom" + latin:keyStyle="returnKeyStyle" latin:keyWidth="14.706%p" - latin:isModifier="true" latin:keyEdgeFlags="right" /> </Row> <Row> @@ -138,14 +124,11 @@ <Spacer latin:horizontalGap="4.458%p" /> <Key - latin:codes="55" - latin:keyIcon="@drawable/sym_keyboard_num7" /> + latin:keyStyle="num7KeyStyle" /> <Key - latin:codes="56" - latin:keyIcon="@drawable/sym_keyboard_num8" /> + latin:keyStyle="num8KeyStyle" /> <Key - latin:codes="57" - latin:keyIcon="@drawable/sym_keyboard_num9" /> + latin:keyStyle="num9KeyStyle" /> <!-- There is an empty area bellow the "Enter" key and right of the "9" key. To ignore the touch event on the area, "9" is intentionally not marked as a right edge key. --> </Row> @@ -156,21 +139,16 @@ <Spacer latin:horizontalGap="16.406%p" /> <Key - latin:codes="@integer/key_space" - latin:keyIcon="@drawable/sym_keyboard_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" + latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle" latin:keyWidth="24.127%p" /> <Spacer latin:horizontalGap="4.458%p" /> <Key - latin:codes="42" - latin:keyIcon="@drawable/sym_keyboard_numstar" /> + latin:keyStyle="numStarKeyStyle" /> <Key - latin:codes="48" - latin:keyIcon="@drawable/sym_keyboard_num0" /> + latin:keyStyle="num0KeyStyle" /> <Key - latin:codes="35" - latin:keyIcon="@drawable/sym_keyboard_numpound" /> + latin:keyStyle="numPoundKeyStyle" /> <!-- There is an empty area bellow the "Enter" key and right of the "#" key. To ignore the touch event on the area, "#" is intentionally not marked as a right edge key. --> </Row> diff --git a/java/res/xml-xlarge/kbd_qwerty.xml b/java/res/xml-xlarge/kbd_qwerty.xml index b45060497a..6f6877b0bf 100644 --- a/java/res/xml-xlarge/kbd_qwerty.xml +++ b/java/res/xml-xlarge/kbd_qwerty.xml @@ -24,8 +24,14 @@ latin:verticalGap="@dimen/key_bottom_gap" latin:keyHeight="@dimen/key_height" > - <include latin:keyboardLayout="@xml/kbd_qwerty_row1" /> - <include latin:keyboardLayout="@xml/kbd_qwerty_row2" /> - <include latin:keyboardLayout="@xml/kbd_qwerty_row3" /> - <include latin:keyboardLayout="@xml/kbd_qwerty_row4" /> + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row1" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row2" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row3" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row4" /> </Keyboard> diff --git a/java/res/xml-xlarge/kbd_qwerty_row1.xml b/java/res/xml-xlarge/kbd_qwerty_row1.xml index eca24b6e15..1596867928 100644 --- a/java/res/xml-xlarge/kbd_qwerty_row1.xml +++ b/java/res/xml-xlarge/kbd_qwerty_row1.xml @@ -26,11 +26,9 @@ latin:keyWidth="8.272%p" > <Key - latin:codes="@integer/key_tab" - latin:keyLabel="@string/label_tab_key" - latin:keyLabelOption="fontNormal|alignLeft|alignBottom" + latin:keyStyle="tabKeyStyle" + latin:keyLabelOption="alignLeft" latin:keyWidth="7.949%p" - latin:isModifier="true" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="q" @@ -73,12 +71,8 @@ latin:popupKeyboard="@xml/kbd_popup_template" latin:popupCharacters="@string/alternates_for_p" /> <Key - latin:codes="@integer/key_delete" - latin:keyIcon="@drawable/sym_keyboard_delete" - latin:iconPreview="@drawable/sym_keyboard_feedback_delete" + latin:keyStyle="deleteKeyStyle" latin:keyWidth="9.331%p" - latin:isModifier="true" - latin:isRepeatable="true" latin:keyEdgeFlags="right" /> </Row> </merge> diff --git a/java/res/xml-xlarge/kbd_qwerty_row2.xml b/java/res/xml-xlarge/kbd_qwerty_row2.xml index 8dfb488858..2b9be10abb 100644 --- a/java/res/xml-xlarge/kbd_qwerty_row2.xml +++ b/java/res/xml-xlarge/kbd_qwerty_row2.xml @@ -25,11 +25,9 @@ latin:keyWidth="8.157%p" > <Key - latin:codes="@integer/key_switch_alpha_symbol" - latin:keyLabel="@string/label_to_symbol_key" - latin:keyLabelOption="fontNormal|alignLeft|alignBottom" + latin:keyStyle="toSymbolKeyStyle" + latin:keyLabelOption="alignLeft" latin:keyWidth="11.167%p" - latin:isModifier="true" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="a" @@ -60,11 +58,8 @@ latin:popupKeyboard="@xml/kbd_popup_template" latin:popupCharacters="@string/alternates_for_l" /> <Key - latin:codes="@integer/key_return" - latin:keyLabel="@string/label_return_key" - latin:keyLabelOption="fontNormal|alignRight|alignBottom" + latin:keyStyle="returnKeyStyle" latin:keyWidth="15.750%p" - latin:isModifier="true" latin:keyEdgeFlags="right" /> </Row> </merge> diff --git a/java/res/xml-xlarge/kbd_qwerty_row3.xml b/java/res/xml-xlarge/kbd_qwerty_row3.xml index c26dcc4104..209ef213d8 100644 --- a/java/res/xml-xlarge/kbd_qwerty_row3.xml +++ b/java/res/xml-xlarge/kbd_qwerty_row3.xml @@ -25,12 +25,8 @@ latin:keyWidth="8.042%p" > <Key - latin:codes="@integer/key_shift" - latin:keyLabel="@string/label_shift_key" - latin:keyLabelOption="fontNormal|alignLeft|alignBottom" + latin:keyStyle="shiftKeyStyle" latin:keyWidth="15.192%p" - latin:isModifier="true" - latin:isSticky="true" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="z" @@ -81,12 +77,8 @@ </default> </switch> <Key - latin:codes="@integer/key_shift" - latin:keyLabel="@string/label_shift_key" - latin:keyLabelOption="fontNormal|alignRight|alignBottom" - latin:keyWidth="12.430%p" - latin:isModifier="true" - latin:isSticky="true" + latin:keyStyle="shiftKeyStyle" + latin:keyWidth="12.530%p" latin:keyEdgeFlags="right" /> </Row> </merge> diff --git a/java/res/xml-xlarge/kbd_qwerty_row4.xml b/java/res/xml-xlarge/kbd_qwerty_row4.xml index 8b31ec6fa6..7b9049a8ec 100644 --- a/java/res/xml-xlarge/kbd_qwerty_row4.xml +++ b/java/res/xml-xlarge/kbd_qwerty_row4.xml @@ -32,10 +32,7 @@ latin:mode="email" > <Key - latin:keyLabel=".com" - latin:keyOutputText=".com" - latin:keyHintIcon="@drawable/hint_popup" - latin:popupKeyboard="@xml/popup_domains" /> + latin:keyStyle="comKeyStyle" /> <Key latin:keyLabel="\@" /> </case> @@ -44,18 +41,12 @@ latin:mode="url" > <Key - latin:keyLabel=".com" - latin:keyOutputText=".com" - latin:keyHintIcon="@drawable/hint_popup" - latin:popupKeyboard="@xml/popup_domains" + latin:keyStyle="comKeyStyle" latin:keyWidth="16.084%p" /> </case> <default> <Key - latin:keyLabel=":-)" - latin:keyOutputText=":-)" - latin:keyHintIcon="@drawable/hint_popup" - latin:popupKeyboard="@xml/popup_smileys" /> + latin:keyStyle="smileyKeyStyle" /> <Key latin:keyLabel="/" latin:manualTemporaryUpperCaseCode="64" @@ -66,11 +57,8 @@ </default> </switch> <Key - latin:codes="@integer/key_space" - latin:keyIcon="@drawable/sym_keyboard_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" - latin:keyWidth="37.454%p" - latin:isModifier="true" /> + latin:keyStyle="spaceKeyStyle" + latin:keyWidth="37.454%p" /> <switch> <case latin:mode="email" diff --git a/java/res/xml-xlarge/kbd_symbols.xml b/java/res/xml-xlarge/kbd_symbols.xml index 317c32b810..7197115d68 100644 --- a/java/res/xml-xlarge/kbd_symbols.xml +++ b/java/res/xml-xlarge/kbd_symbols.xml @@ -24,16 +24,16 @@ latin:verticalGap="@dimen/key_bottom_gap" latin:keyHeight="@dimen/key_height" > + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> <!-- This row is intentionally not marked as a top row --> <Row latin:keyWidth="8.272%p" > <Key - latin:codes="@integer/key_tab" - latin:keyLabel="@string/label_tab_key" - latin:keyLabelOption="fontNormal|alignLeft|alignBottom" + latin:keyStyle="tabKeyStyle" + latin:keyLabelOption="alignLeft" latin:keyWidth="7.949%p" - latin:isModifier="true" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="1" @@ -70,23 +70,17 @@ latin:popupKeyboard="@xml/kbd_popup_template" latin:popupCharacters="â¿âˆ…" /> <Key - latin:codes="@integer/key_delete" - latin:keyIcon="@drawable/sym_keyboard_delete" - latin:iconPreview="@drawable/sym_keyboard_feedback_delete" + latin:keyStyle="deleteKeyStyle" latin:keyWidth="9.331%p" - latin:isModifier="true" - latin:isRepeatable="true" latin:keyEdgeFlags="right" /> </Row> <Row latin:keyWidth="8.157%p" > <Key - latin:codes="@integer/key_switch_alpha_symbol" - latin:keyLabel="@string/label_to_alpha_key" - latin:keyLabelOption="fontNormal|alignLeft|alignBottom" + latin:keyStyle="toAlphaKeyStyle" + latin:keyLabelOption="alignLeft" latin:keyWidth="11.167%p" - latin:isModifier="true" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="#" /> @@ -121,23 +115,17 @@ latin:popupKeyboard="@xml/kbd_popup_template" latin:popupCharacters="]}>" /> <Key - latin:codes="@integer/key_return" - latin:keyLabel="@string/label_return_key" - latin:keyLabelOption="fontNormal|alignRight|alignBottom" + latin:keyStyle="returnKeyStyle" latin:keyWidth="15.750%p" - latin:isModifier="true" latin:keyEdgeFlags="right" /> </Row> <Row latin:keyWidth="8.042%p" > <Key - latin:codes="@integer/key_shift" - latin:keyLabel="@string/label_more_key" - latin:keyLabelOption="fontNormal|alignLeft|alignBottom" + latin:keyStyle="moreKeyStyle" + latin:keyLabelOption="alignLeft" latin:keyWidth="15.192%p" - latin:isModifier="true" - latin:isSticky="true" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="<" @@ -166,13 +154,9 @@ latin:popupKeyboard="@xml/kbd_popup_template" latin:popupCharacters="¿" /> <Key - latin:codes="@integer/key_shift" - latin:keyLabel="@string/label_more_key" - latin:keyLabelOption="fontNormal|alignRight|alignBottom" - latin:iconPreview="@drawable/sym_keyboard_feedback_shift" - latin:keyWidth="12.430%p" - latin:isModifier="true" - latin:isSticky="true" + latin:keyStyle="moreKeyStyle" + latin:keyLabelOption="alignRight" + latin:keyWidth="12.530%p" latin:keyEdgeFlags="right" /> </Row> <!-- This row is intentionally not marked as a bottom row --> @@ -186,11 +170,8 @@ <Key latin:keyLabel="\@" /> <Key - latin:codes="@integer/key_space" - latin:keyIcon="@drawable/sym_keyboard_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" - latin:keyWidth="37.454%p" - latin:isModifier="true" /> + latin:keyStyle="spaceKeyStyle" + latin:keyWidth="37.454%p" /> <Key latin:keyLabel=""" latin:popupKeyboard="@xml/kbd_popup_template" diff --git a/java/res/xml-xlarge/kbd_symbols_shift.xml b/java/res/xml-xlarge/kbd_symbols_shift.xml index 603b36b4ee..4742967326 100644 --- a/java/res/xml-xlarge/kbd_symbols_shift.xml +++ b/java/res/xml-xlarge/kbd_symbols_shift.xml @@ -24,16 +24,16 @@ latin:verticalGap="@dimen/key_bottom_gap" latin:keyHeight="@dimen/key_height" > + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> <!-- This row is intentionally not marked as a top row --> <Row latin:keyWidth="8.272%p" > <Key - latin:codes="@integer/key_tab" - latin:keyLabel="@string/label_tab_key" - latin:keyLabelOption="fontNormal|alignLeft|alignBottom" + latin:keyStyle="tabKeyStyle" + latin:keyLabelOption="alignLeft" latin:keyWidth="7.949%p" - latin:isModifier="true" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="~" /> @@ -60,23 +60,17 @@ <Key latin:keyLabel="}" /> <Key - latin:codes="@integer/key_delete" - latin:keyIcon="@drawable/sym_keyboard_delete" - latin:iconPreview="@drawable/sym_keyboard_feedback_delete" + latin:keyStyle="deleteKeyStyle" latin:keyWidth="9.331%p" - latin:isModifier="true" - latin:isRepeatable="true" latin:keyEdgeFlags="right" /> </Row> <Row latin:keyWidth="8.157%p" > <Key - latin:codes="@integer/key_switch_alpha_symbol" - latin:keyLabel="@string/label_to_alpha_key" - latin:keyLabelOption="fontNormal|alignLeft|alignBottom" + latin:keyStyle="toAlphaKeyStyle" + latin:keyLabelOption="alignLeft" latin:keyWidth="11.167%p" - latin:isModifier="true" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="£" /> @@ -101,23 +95,17 @@ <Key latin:keyLabel="]" /> <Key - latin:codes="@integer/key_return" - latin:keyLabel="@string/label_return_key" - latin:keyLabelOption="fontNormal|alignRight|alignBottom" + latin:keyStyle="returnKeyStyle" latin:keyWidth="15.750%p" - latin:isModifier="true" latin:keyEdgeFlags="right" /> </Row> <Row latin:keyWidth="8.042%p" > <Key - latin:codes="@integer/key_shift" - latin:keyLabel="@string/label_more_key" - latin:keyLabelOption="fontNormal|alignLeft|alignBottom" + latin:keyStyle="moreKeyStyle" + latin:keyLabelOption="alignLeft" latin:keyWidth="15.192%p" - latin:isModifier="true" - latin:isSticky="true" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="©" /> @@ -142,12 +130,9 @@ <Key latin:keyLabel="¿" /> <Key - latin:codes="@integer/key_shift" - latin:keyLabel="@string/label_more_key" - latin:keyLabelOption="fontNormal|alignRight|alignBottom" - latin:keyWidth="12.430%p" - latin:isModifier="true" - latin:isSticky="true" + latin:keyStyle="moreKeyStyle" + latin:keyLabelOption="alignRight" + latin:keyWidth="12.530%p" latin:keyEdgeFlags="right" /> </Row> <!-- This row is intentionally not marked as a bottom row --> @@ -157,10 +142,7 @@ <Spacer latin:horizontalGap="32.488%p" /> <Key - latin:codes="@integer/key_space" - latin:keyIcon="@drawable/sym_keyboard_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" - latin:keyWidth="37.454%p" - latin:isModifier="true" /> + latin:keyStyle="spaceKeyStyle" + latin:keyWidth="37.454%p" /> </Row> </Keyboard> diff --git a/java/res/xml/kbd_key_styles.xml b/java/res/xml/kbd_key_styles.xml index b80bb9ff4f..9dd166a411 100644 --- a/java/res/xml/kbd_key_styles.xml +++ b/java/res/xml/kbd_key_styles.xml @@ -33,6 +33,7 @@ latin:styleName="shiftKeyStyle" latin:codes="@integer/key_shift" latin:keyIcon="@drawable/sym_keyboard_shift" + latin:shiftedIcon="@drawable/sym_keyboard_shift_locked" latin:iconPreview="@drawable/sym_keyboard_feedback_shift" latin:parentStyle="functionalKeyStyle" latin:isSticky="true" /> @@ -109,6 +110,7 @@ latin:styleName="shiftKeyStyle" latin:codes="@integer/key_shift" latin:keyIcon="@drawable/sym_bkeyboard_shift" + latin:shiftedIcon="@drawable/sym_bkeyboard_shift_locked" latin:iconPreview="@drawable/sym_keyboard_feedback_shift" latin:parentStyle="functionalKeyStyle" latin:isSticky="true" /> diff --git a/java/res/xml/kbd_numkey_styles.xml b/java/res/xml/kbd_numkey_styles.xml new file mode 100644 index 0000000000..006476db27 --- /dev/null +++ b/java/res/xml/kbd_numkey_styles.xml @@ -0,0 +1,150 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 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. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:colorScheme="white" + > + <key-style + latin:styleName="num0KeyStyle" + latin:codes="48" + latin:keyIcon="@drawable/sym_keyboard_num0" /> + <key-style + latin:styleName="num1KeyStyle" + latin:codes="49" + latin:keyIcon="@drawable/sym_keyboard_num1" /> + <key-style + latin:styleName="num2KeyStyle" + latin:codes="50" + latin:keyIcon="@drawable/sym_keyboard_num2" /> + <key-style + latin:styleName="num3KeyStyle" + latin:codes="51" + latin:keyIcon="@drawable/sym_keyboard_num3" /> + <key-style + latin:styleName="num4KeyStyle" + latin:codes="52" + latin:keyIcon="@drawable/sym_keyboard_num4" /> + <key-style + latin:styleName="num5KeyStyle" + latin:codes="53" + latin:keyIcon="@drawable/sym_keyboard_num5" /> + <key-style + latin:styleName="num6KeyStyle" + latin:codes="54" + latin:keyIcon="@drawable/sym_keyboard_num6" /> + <key-style + latin:styleName="num7KeyStyle" + latin:codes="55" + latin:keyIcon="@drawable/sym_keyboard_num7" /> + <key-style + latin:styleName="num8KeyStyle" + latin:codes="56" + latin:keyIcon="@drawable/sym_keyboard_num8" /> + <key-style + latin:styleName="num9KeyStyle" + latin:codes="57" + latin:keyIcon="@drawable/sym_keyboard_num9" /> + <key-style + latin:styleName="numStarKeyStyle" + latin:codes="42" + latin:keyIcon="@drawable/sym_keyboard_numstar" /> + <key-style + latin:styleName="numPoundKeyStyle" + latin:codes="35" + latin:keyIcon="@drawable/sym_keyboard_numpound" /> + <key-style + latin:styleName="numAltKeyStyle" + latin:codes="@integer/key_switch_alpha_symbol" + latin:keyIcon="@drawable/sym_keyboard_numalt" + latin:iconPreview="@drawable/sym_keyboard_feedback_numalt" /> + <key-style + latin:styleName="numSpaceKeyStyle" + latin:codes="@integer/key_space" + latin:keyIcon="@drawable/sym_keyboard_space" + latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> + </case> + <case + latin:colorScheme="black" + > + <key-style + latin:styleName="num0KeyStyle" + latin:codes="48" + latin:keyIcon="@drawable/sym_bkeyboard_num0" /> + <key-style + latin:styleName="num1KeyStyle" + latin:codes="49" + latin:keyIcon="@drawable/sym_bkeyboard_num1" /> + <key-style + latin:styleName="num2KeyStyle" + latin:codes="50" + latin:keyIcon="@drawable/sym_bkeyboard_num2" /> + <key-style + latin:styleName="num3KeyStyle" + latin:codes="51" + latin:keyIcon="@drawable/sym_bkeyboard_num3" /> + <key-style + latin:styleName="num4KeyStyle" + latin:codes="52" + latin:keyIcon="@drawable/sym_bkeyboard_num4" /> + <key-style + latin:styleName="num5KeyStyle" + latin:codes="53" + latin:keyIcon="@drawable/sym_bkeyboard_num5" /> + <key-style + latin:styleName="num6KeyStyle" + latin:codes="54" + latin:keyIcon="@drawable/sym_bkeyboard_num6" /> + <key-style + latin:styleName="num7KeyStyle" + latin:codes="55" + latin:keyIcon="@drawable/sym_bkeyboard_num7" /> + <key-style + latin:styleName="num8KeyStyle" + latin:codes="56" + latin:keyIcon="@drawable/sym_bkeyboard_num8" /> + <key-style + latin:styleName="num9KeyStyle" + latin:codes="57" + latin:keyIcon="@drawable/sym_bkeyboard_num9" /> + <key-style + latin:styleName="numStarKeyStyle" + latin:codes="42" + latin:keyIcon="@drawable/sym_bkeyboard_numstar" /> + <key-style + latin:styleName="numPoundKeyStyle" + latin:codes="35" + latin:keyIcon="@drawable/sym_bkeyboard_numpound" /> + <key-style + latin:styleName="numAltKeyStyle" + latin:codes="@integer/key_switch_alpha_symbol" + latin:keyIcon="@drawable/sym_bkeyboard_numalt" + latin:iconPreview="@drawable/sym_keyboard_feedback_numalt" /> + <key-style + latin:styleName="numSpaceKeyStyle" + latin:codes="@integer/key_space" + latin:keyIcon="@drawable/sym_bkeyboard_space" + latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> + </case> + </switch> +</merge> diff --git a/java/res/xml/kbd_phone.xml b/java/res/xml/kbd_phone.xml index c9b1ad6314..7e146ed69d 100644 --- a/java/res/xml/kbd_phone.xml +++ b/java/res/xml/kbd_phone.xml @@ -27,116 +27,8 @@ > <include latin:keyboardLayout="@xml/kbd_key_styles" /> - <switch> - <case - latin:colorScheme="white" - > - <key-style - latin:styleName="num0KeyStyle" - latin:codes="48" - latin:keyIcon="@drawable/sym_keyboard_num0" /> - <key-style - latin:styleName="num1KeyStyle" - latin:codes="49" - latin:keyIcon="@drawable/sym_keyboard_num1" /> - <key-style - latin:styleName="num2KeyStyle" - latin:codes="50" - latin:keyIcon="@drawable/sym_keyboard_num2" /> - <key-style - latin:styleName="num3KeyStyle" - latin:codes="51" - latin:keyIcon="@drawable/sym_keyboard_num3" /> - <key-style - latin:styleName="num4KeyStyle" - latin:codes="52" - latin:keyIcon="@drawable/sym_keyboard_num4" /> - <key-style - latin:styleName="num5KeyStyle" - latin:codes="53" - latin:keyIcon="@drawable/sym_keyboard_num5" /> - <key-style - latin:styleName="num6KeyStyle" - latin:codes="54" - latin:keyIcon="@drawable/sym_keyboard_num6" /> - <key-style - latin:styleName="num7KeyStyle" - latin:codes="55" - latin:keyIcon="@drawable/sym_keyboard_num7" /> - <key-style - latin:styleName="num8KeyStyle" - latin:codes="56" - latin:keyIcon="@drawable/sym_keyboard_num8" /> - <key-style - latin:styleName="num9KeyStyle" - latin:codes="57" - latin:keyIcon="@drawable/sym_keyboard_num9" /> - <key-style - latin:styleName="numAltKeyStyle" - latin:codes="@integer/key_switch_alpha_symbol" - latin:keyIcon="@drawable/sym_keyboard_numalt" - latin:iconPreview="@drawable/sym_keyboard_feedback_numalt" /> - <key-style - latin:styleName="numSpaceKeyStyle" - latin:codes="@integer/key_space" - latin:keyIcon="@drawable/sym_keyboard_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> - </case> - <case - latin:colorScheme="black" - > - <key-style - latin:styleName="num0KeyStyle" - latin:codes="48" - latin:keyIcon="@drawable/sym_bkeyboard_num0" /> - <key-style - latin:styleName="num1KeyStyle" - latin:codes="49" - latin:keyIcon="@drawable/sym_bkeyboard_num1" /> - <key-style - latin:styleName="num2KeyStyle" - latin:codes="50" - latin:keyIcon="@drawable/sym_bkeyboard_num2" /> - <key-style - latin:styleName="num3KeyStyle" - latin:codes="51" - latin:keyIcon="@drawable/sym_bkeyboard_num3" /> - <key-style - latin:styleName="num4KeyStyle" - latin:codes="52" - latin:keyIcon="@drawable/sym_bkeyboard_num4" /> - <key-style - latin:styleName="num5KeyStyle" - latin:codes="53" - latin:keyIcon="@drawable/sym_bkeyboard_num5" /> - <key-style - latin:styleName="num6KeyStyle" - latin:codes="54" - latin:keyIcon="@drawable/sym_bkeyboard_num6" /> - <key-style - latin:styleName="num7KeyStyle" - latin:codes="55" - latin:keyIcon="@drawable/sym_bkeyboard_num7" /> - <key-style - latin:styleName="num8KeyStyle" - latin:codes="56" - latin:keyIcon="@drawable/sym_bkeyboard_num8" /> - <key-style - latin:styleName="num9KeyStyle" - latin:codes="57" - latin:keyIcon="@drawable/sym_bkeyboard_num9" /> - <key-style - latin:styleName="numAltKeyStyle" - latin:codes="@integer/key_switch_alpha_symbol" - latin:keyIcon="@drawable/sym_bkeyboard_numalt" - latin:iconPreview="@drawable/sym_keyboard_feedback_numalt" /> - <key-style - latin:styleName="numSpaceKeyStyle" - latin:codes="@integer/key_space" - latin:keyIcon="@drawable/sym_bkeyboard_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> - </case> - </switch> + <include + latin:keyboardLayout="@xml/kbd_numkey_styles" /> <Row latin:rowEdgeFlags="top" > diff --git a/java/res/xml/kbd_phone_symbols.xml b/java/res/xml/kbd_phone_symbols.xml index 0d6d0e4071..1bb4bac74a 100644 --- a/java/res/xml/kbd_phone_symbols.xml +++ b/java/res/xml/kbd_phone_symbols.xml @@ -27,44 +27,8 @@ > <include latin:keyboardLayout="@xml/kbd_key_styles" /> - <switch> - <case - latin:colorScheme="white" - > - <key-style - latin:styleName="numStarKeyStyle" - latin:codes="42" - latin:keyIcon="@drawable/sym_keyboard_numstar" - latin:keyEdgeFlags="left" /> - <key-style - latin:styleName="numPoundKeyStyle" - latin:codes="35" - latin:keyIcon="@drawable/sym_keyboard_numpound" /> - <key-style - latin:styleName="numSpaceKeyStyle" - latin:codes="@integer/key_space" - latin:keyIcon="@drawable/sym_keyboard_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> - </case> - <case - latin:colorScheme="black" - > - <key-style - latin:styleName="numStarKeyStyle" - latin:codes="42" - latin:keyIcon="@drawable/sym_bkeyboard_numstar" - latin:keyEdgeFlags="left" /> - <key-style - latin:styleName="numPoundKeyStyle" - latin:codes="35" - latin:keyIcon="@drawable/sym_bkeyboard_numpound" /> - <key-style - latin:styleName="numSpaceKeyStyle" - latin:codes="@integer/key_space" - latin:keyIcon="@drawable/sym_bkeyboard_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> - </case> - </switch> + <include + latin:keyboardLayout="@xml/kbd_numkey_styles" /> <Row latin:rowEdgeFlags="top" > diff --git a/java/src/com/android/inputmethod/latin/BaseKeyboard.java b/java/src/com/android/inputmethod/latin/BaseKeyboard.java index 485cc3153f..00ed453c4e 100644 --- a/java/src/com/android/inputmethod/latin/BaseKeyboard.java +++ b/java/src/com/android/inputmethod/latin/BaseKeyboard.java @@ -28,11 +28,14 @@ import android.content.res.TypedArray; import android.content.res.XmlResourceParser; import android.graphics.drawable.Drawable; import android.text.TextUtils; +import android.util.Log; import android.util.Xml; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * Loads an XML description of a keyboard and stores the attributes of the keys. A keyboard @@ -86,6 +89,9 @@ public class BaseKeyboard { /** List of shift keys in this keyboard */ private final List<Key> mShiftKeys = new ArrayList<Key>(); + /** List of shift keys and its shifted state icon */ + private final HashMap<Key, Drawable> mShiftedIcons = new HashMap<Key, Drawable>(); + /** Total height of the keyboard, including the padding and keys */ private int mTotalHeight; @@ -340,6 +346,10 @@ public class BaseKeyboard { manualTemporaryUpperCaseCode = style.getInt(a, R.styleable.BaseKeyboard_Key_manualTemporaryUpperCaseCode, 0); text = style.getText(a, R.styleable.BaseKeyboard_Key_keyOutputText); + final Drawable shiftedIcon = style.getDrawable(a, + R.styleable.BaseKeyboard_Key_shiftedIcon); + if (shiftedIcon != null) + keyboard.getShiftedIcons().put(this, shiftedIcon); if (codes == null && !TextUtils.isEmpty(label)) { codes = new int[] { label.charAt(0) }; @@ -622,6 +632,10 @@ public class BaseKeyboard { return mShiftKeys; } + public Map<Key, Drawable> getShiftedIcons() { + return mShiftedIcons; + } + private void computeNearestNeighbors() { // Round-up so we don't have any pixels outside the grid mCellWidth = (getMinWidth() + GRID_WIDTH - 1) / GRID_WIDTH; @@ -686,8 +700,10 @@ public class BaseKeyboard { mTotalWidth = parser.getMaxRowWidth(); mTotalHeight = parser.getTotalHeight(); } catch (XmlPullParserException e) { + Log.w(TAG, "keyboard XML parse error: " + e); throw new IllegalArgumentException(e); } catch (IOException e) { + Log.w(TAG, "keyboard XML parse error: " + e); throw new RuntimeException(e); } } diff --git a/java/src/com/android/inputmethod/latin/BaseKeyboardParser.java b/java/src/com/android/inputmethod/latin/BaseKeyboardParser.java index 621e875bff..38b2a1b57c 100644 --- a/java/src/com/android/inputmethod/latin/BaseKeyboardParser.java +++ b/java/src/com/android/inputmethod/latin/BaseKeyboardParser.java @@ -174,6 +174,7 @@ public class BaseKeyboardParser { keyboard.setVerticalGap(getDimensionOrFraction(a, R.styleable.BaseKeyboard_verticalGap, height, 0)); a.recycle(); + if (DEBUG_TAG) Log.d(TAG, "id=" + keyboard.mId); } private void parseKeyboardContent(XmlResourceParser parser, List<Key> keys) @@ -310,6 +311,7 @@ public class BaseKeyboardParser { checkEndTag(TAG_INCLUDE, parser); if (keyboardLayout == 0) throw new ParseException("No keyboardLayout attribute in <include/>", parser); + if (DEBUG_TAG) Log.d(TAG, String.format(" keyboardLayout=0x%08x", keyboardLayout)); parseMerge(mResources.getLayout(keyboardLayout), row, keys); } } @@ -560,10 +562,10 @@ public class BaseKeyboardParser { } private static String debugInteger(TypedArray a, int index, String name) { - return a.hasValue(index) ? name + "=" + a.getInt(index, 0) : ""; + return a.hasValue(index) ? " " + name + "=" + a.getInt(index, 0) : ""; } private static String debugBoolean(TypedArray a, int index, String name) { - return a.hasValue(index) ? name + "=" + a.getBoolean(index, false) : ""; + return a.hasValue(index) ? " " + name + "=" + a.getBoolean(index, false) : ""; } } diff --git a/java/src/com/android/inputmethod/latin/BaseKeyboardView.java b/java/src/com/android/inputmethod/latin/BaseKeyboardView.java index 129ff81a1c..954f264bdd 100644 --- a/java/src/com/android/inputmethod/latin/BaseKeyboardView.java +++ b/java/src/com/android/inputmethod/latin/BaseKeyboardView.java @@ -71,6 +71,7 @@ import java.util.WeakHashMap; public class BaseKeyboardView extends View implements PointerTracker.UIProxy { private static final String TAG = "BaseKeyboardView"; private static final boolean DEBUG = false; + private static final boolean DEBUG_SHOW_ALIGN = false; private static final boolean DEBUG_KEYBOARD_GRID = false; public static final int COLOR_SCHEME_WHITE = 0; @@ -252,17 +253,15 @@ public class BaseKeyboardView extends View implements PointerTracker.UIProxy { private final Rect mClipRegion = new Rect(0, 0, 0, 0); // 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>(); - // 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 final float KEY_LABEL_VERTICAL_ADJUSTMENT_FACTOR_CENTER = 0.55f; private final float KEY_LABEL_VERTICAL_PADDING_FACTOR = 1.60f; - private final float KEY_LABEL_HORIZONTAL_PADDING_FACTOR = 0.80f; private final String KEY_LABEL_REFERENCE_CHAR = "H"; private final int KEY_LABEL_OPTION_ALIGN_LEFT = 1; private final int KEY_LABEL_OPTION_ALIGN_RIGHT = 2; private final int KEY_LABEL_OPTION_ALIGN_BOTTOM = 8; private final int KEY_LABEL_OPTION_FONT_NORMAL = 16; + private final int mKeyLabelHorizontalPadding; private final UIHandler mHandler = new UIHandler(); @@ -514,6 +513,8 @@ public class BaseKeyboardView extends View implements PointerTracker.UIProxy { mPreviewPopup.setAnimationStyle(R.style.KeyPreviewAnimation); 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); mMiniKeyboardParent = this; mMiniKeyboardPopup = new PopupWindow(context); @@ -818,44 +819,22 @@ public class BaseKeyboardView extends View implements PointerTracker.UIProxy { canvas.translate(key.x + kbdPaddingLeft, key.y + kbdPaddingTop); keyBackground.draw(canvas); + final int rowHeight = padding.top + key.height; boolean drawHintIcon = true; // Draw key label if (label != null) { // For characters, use large font. For labels like "Done", use small font. - final int labelSize; - if (label.length() > 1 && key.codes.length < 2) { - labelSize = mLabelTextSize; - if ((key.labelOption & KEY_LABEL_OPTION_FONT_NORMAL) != 0) { - paint.setTypeface(Typeface.DEFAULT); - } else { - paint.setTypeface(Typeface.DEFAULT_BOLD); - } - } else { - labelSize = mKeyTextSize; - paint.setTypeface(mKeyTextStyle); - } - paint.setTextSize(labelSize); - - Integer labelHeightValue = mTextHeightCache.get(labelSize); - final int labelCharHeight; - final int labelCharWidth; - if (labelHeightValue != null) { - labelCharHeight = labelHeightValue; - labelCharWidth = mTextWidthCache.get(labelSize); - } else { - Rect textBounds = new Rect(); - paint.getTextBounds(KEY_LABEL_REFERENCE_CHAR, 0, 1, textBounds); - labelCharHeight = textBounds.height(); - labelCharWidth = textBounds.width(); - mTextHeightCache.put(labelSize, labelCharHeight); - mTextWidthCache.put(labelSize, labelCharWidth); - } + final int labelSize = getLabelSizeAndSetPaint(label, key, paint); + final int labelCharHeight = getLabelCharHeight(labelSize, paint); // Vertical label text alignment. final float baseline; if ((key.labelOption & KEY_LABEL_OPTION_ALIGN_BOTTOM) != 0) { baseline = key.height - + labelCharHeight * KEY_LABEL_VERTICAL_PADDING_FACTOR; + if (DEBUG_SHOW_ALIGN) + drawHorizontalLine(canvas, (int)baseline, key.width, 0xc0008000, + new Paint()); } else { // Align center final float centerY = (key.height + padding.top - padding.bottom) / 2; baseline = centerY @@ -864,16 +843,20 @@ public class BaseKeyboardView extends View implements PointerTracker.UIProxy { // Horizontal label text alignment final int positionX; if ((key.labelOption & KEY_LABEL_OPTION_ALIGN_LEFT) != 0) { - positionX = (int)( - labelCharWidth * KEY_LABEL_HORIZONTAL_PADDING_FACTOR + padding.left); + positionX = mKeyLabelHorizontalPadding + padding.left; paint.setTextAlign(Align.LEFT); + if (DEBUG_SHOW_ALIGN) + drawVerticalLine(canvas, positionX, rowHeight, 0xc0800080, new Paint()); } else if ((key.labelOption & KEY_LABEL_OPTION_ALIGN_RIGHT) != 0) { - positionX = (int)(key.width - - labelCharWidth * KEY_LABEL_HORIZONTAL_PADDING_FACTOR - padding.right); + positionX = key.width - mKeyLabelHorizontalPadding - padding.right; paint.setTextAlign(Align.RIGHT); + if (DEBUG_SHOW_ALIGN) + drawVerticalLine(canvas, positionX, rowHeight, 0xc0808000, new Paint()); } else { positionX = (key.width + padding.left - padding.right) / 2; paint.setTextAlign(Align.CENTER); + if (DEBUG_SHOW_ALIGN && label.length() > 1) + drawVerticalLine(canvas, positionX, rowHeight, 0xc0008080, new Paint()); } // Set a drop shadow for the text paint.setShadowLayer(mShadowRadius, 0, 0, mShadowColor); @@ -883,21 +866,44 @@ public class BaseKeyboardView extends View implements PointerTracker.UIProxy { } // Draw key icon if (key.label == null && key.icon != null) { - int drawableWidth = key.icon.getIntrinsicWidth(); - int drawableHeight = key.icon.getIntrinsicHeight(); - int drawableX = (key.width + padding.left - padding.right - drawableWidth) / 2; - int drawableY = (key.height + padding.top - padding.bottom - drawableHeight) / 2; + final int drawableWidth = key.icon.getIntrinsicWidth(); + final int drawableHeight = key.icon.getIntrinsicHeight(); + final int drawableX; + final int drawableY = ( + key.height + padding.top - padding.bottom - drawableHeight) / 2; + if ((key.labelOption & KEY_LABEL_OPTION_ALIGN_LEFT) != 0) { + drawableX = padding.left + mKeyLabelHorizontalPadding; + if (DEBUG_SHOW_ALIGN) + drawVerticalLine(canvas, drawableX, rowHeight, 0xc0800080, new Paint()); + } else if ((key.labelOption & KEY_LABEL_OPTION_ALIGN_RIGHT) != 0) { + drawableX = key.width - padding.right - mKeyLabelHorizontalPadding + - drawableWidth; + if (DEBUG_SHOW_ALIGN) + drawVerticalLine(canvas, drawableX + drawableWidth, rowHeight, + 0xc0808000, new Paint()); + } else { // Align center + drawableX = (key.width + padding.left - padding.right - drawableWidth) / 2; + if (DEBUG_SHOW_ALIGN) + drawVerticalLine(canvas, drawableX + drawableWidth / 2, rowHeight, + 0xc0008080, new Paint()); + } drawIcon(canvas, key.icon, drawableX, drawableY, drawableWidth, drawableHeight); + if (DEBUG_SHOW_ALIGN) + drawRectangle(canvas, drawableX, drawableY, drawableWidth, drawableHeight, + 0x80c00000, new Paint()); } if (key.hintIcon != null && drawHintIcon) { - int drawableWidth = key.width; - int drawableHeight = key.height; - int drawableX = 0; - int drawableY = HINT_ICON_VERTICAL_ADJUSTMENT_PIXEL; + final int drawableWidth = key.width; + final int drawableHeight = key.height; + final int drawableX = 0; + final int drawableY = HINT_ICON_VERTICAL_ADJUSTMENT_PIXEL; Drawable icon = (isManualTemporaryUpperCase && key.manualTemporaryUpperCaseHintIcon != null) ? key.manualTemporaryUpperCaseHintIcon : key.hintIcon; drawIcon(canvas, icon, drawableX, drawableY, drawableWidth, drawableHeight); + if (DEBUG_SHOW_ALIGN) + drawRectangle(canvas, drawableX, drawableY, drawableWidth, drawableHeight, + 0x80c0c000, new Paint()); } canvas.translate(-key.x - kbdPaddingLeft, -key.y - kbdPaddingTop); } @@ -945,13 +951,70 @@ public class BaseKeyboardView extends View implements PointerTracker.UIProxy { mDirtyRect.setEmpty(); } - private void drawIcon(Canvas canvas, Drawable icon, int x, int y, int width, int height) { + private int getLabelSizeAndSetPaint(CharSequence label, Key key, Paint paint) { + // For characters, use large font. For labels like "Done", use small font. + final int labelSize; + if (label.length() > 1 && key.codes.length < 2) { + labelSize = mLabelTextSize; + if ((key.labelOption & KEY_LABEL_OPTION_FONT_NORMAL) != 0) { + paint.setTypeface(Typeface.DEFAULT); + } else { + paint.setTypeface(Typeface.DEFAULT_BOLD); + } + } else { + labelSize = mKeyTextSize; + paint.setTypeface(mKeyTextStyle); + } + paint.setTextSize(labelSize); + return labelSize; + } + + private int getLabelCharHeight(int labelSize, Paint paint) { + Integer labelHeightValue = mTextHeightCache.get(labelSize); + final int labelCharHeight; + if (labelHeightValue != null) { + labelCharHeight = labelHeightValue; + } else { + Rect textBounds = new Rect(); + paint.getTextBounds(KEY_LABEL_REFERENCE_CHAR, 0, 1, textBounds); + labelCharHeight = textBounds.height(); + mTextHeightCache.put(labelSize, labelCharHeight); + } + return labelCharHeight; + } + + private static void drawIcon(Canvas canvas, Drawable icon, int x, int y, int width, + int height) { canvas.translate(x, y); icon.setBounds(0, 0, width, height); icon.draw(canvas); canvas.translate(-x, -y); } + private static void drawHorizontalLine(Canvas canvas, int y, int 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) { + 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, + Paint paint) { + paint.setStyle(Paint.Style.STROKE); + paint.setStrokeWidth(1.0f); + paint.setColor(color); + canvas.translate(x, y); + canvas.drawRect(0, 0, w, h, paint); + canvas.translate(-x, -y); + } + public void setForeground(boolean foreground) { mInForeground = foreground; } diff --git a/java/src/com/android/inputmethod/latin/KeyStyles.java b/java/src/com/android/inputmethod/latin/KeyStyles.java index e53e351a3c..fceede7c3d 100644 --- a/java/src/com/android/inputmethod/latin/KeyStyles.java +++ b/java/src/com/android/inputmethod/latin/KeyStyles.java @@ -104,7 +104,7 @@ public class KeyStyles { try { values[count++] = Integer.parseInt(st.nextToken()); } catch (NumberFormatException nfe) { - Log.e(TAG, "Error parsing integer CSV " + value); + Log.w(TAG, "Error parsing integer CSV " + value); } } return values; @@ -163,6 +163,7 @@ public class KeyStyles { readDrawable(a, R.styleable.BaseKeyboard_Key_keyIcon); readDrawable(a, R.styleable.BaseKeyboard_Key_iconPreview); readDrawable(a, R.styleable.BaseKeyboard_Key_keyHintIcon); + readDrawable(a, R.styleable.BaseKeyboard_Key_shiftedIcon); readResourceId(a, R.styleable.BaseKeyboard_Key_popupKeyboard); readBoolean(a, R.styleable.BaseKeyboard_Key_isModifier); readBoolean(a, R.styleable.BaseKeyboard_Key_isSticky); diff --git a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java index 58958b6108..b08b97a810 100644 --- a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java +++ b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java @@ -691,9 +691,11 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha ).inflate(THEMES[newLayout], null); tryGC = false; } catch (OutOfMemoryError e) { + Log.w(TAG, "load keyboard failed: " + e); tryGC = LatinIMEUtil.GCUtils.getInstance().tryGCOrWait( mLayoutId + "," + newLayout, e); } catch (InflateException e) { + Log.w(TAG, "load keyboard failed: " + e); tryGC = LatinIMEUtil.GCUtils.getInstance().tryGCOrWait( mLayoutId + "," + newLayout, e); } diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboard.java b/java/src/com/android/inputmethod/latin/LatinKeyboard.java index c6e9116804..cae0b10b3e 100644 --- a/java/src/com/android/inputmethod/latin/LatinKeyboard.java +++ b/java/src/com/android/inputmethod/latin/LatinKeyboard.java @@ -37,6 +37,7 @@ import android.view.ViewConfiguration; import java.util.HashMap; import java.util.List; import java.util.Locale; +import java.util.Map; public class LatinKeyboard extends BaseKeyboard { @@ -45,7 +46,6 @@ public class LatinKeyboard extends BaseKeyboard { private static final int OPACITY_FULLY_OPAQUE = 255; private static final int SPACE_LED_LENGTH_PERCENT = 80; - private final Drawable mShiftedIcon; private Drawable mShiftLockPreviewIcon; private final HashMap<Key, Drawable> mNormalShiftIcons = new HashMap<Key, Drawable>(); private Drawable mSpaceIcon; @@ -89,11 +89,9 @@ public class LatinKeyboard extends BaseKeyboard { mContext = context; mRes = res; if (id.mColorScheme == BaseKeyboardView.COLOR_SCHEME_BLACK) { - mShiftedIcon = res.getDrawable(R.drawable.sym_bkeyboard_shift_locked); mSpaceBarTextShadowColor = res.getColor( R.color.latinkeyboard_bar_language_shadow_black); } else { // default color scheme is BaseKeyboardView.COLOR_SCHEME_WHITE - mShiftedIcon = res.getDrawable(R.drawable.sym_keyboard_shift_locked); mSpaceBarTextShadowColor = res.getColor( R.color.latinkeyboard_bar_language_shadow_white); } @@ -132,9 +130,10 @@ public class LatinKeyboard extends BaseKeyboard { } public boolean setShiftLocked(boolean newShiftLockState) { + final Map<Key, Drawable> shiftedIcons = getShiftedIcons(); for (final Key key : getShiftKeys()) { key.on = newShiftLockState; - key.icon = newShiftLockState ? mShiftedIcon : mNormalShiftIcons.get(key); + key.icon = newShiftLockState ? shiftedIcons.get(key) : mNormalShiftIcons.get(key); } mShiftState.setShiftLocked(newShiftLockState); return true; @@ -149,11 +148,12 @@ public class LatinKeyboard extends BaseKeyboard { if (getShiftKeys().size() == 0) return super.setShifted(newShiftState); + final Map<Key, Drawable> shiftedIcons = getShiftedIcons(); for (final Key key : getShiftKeys()) { if (!newShiftState && !mShiftState.isShiftLocked()) { key.icon = mNormalShiftIcons.get(key); } else if (newShiftState && !mShiftState.isShiftedOrShiftLocked()) { - key.icon = mShiftedIcon; + key.icon = shiftedIcons.get(key); } } return mShiftState.setShifted(newShiftState); -- GitLab