From 8a6dc34b2c77d9a0bbcddbb32da0aff506057de5 Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Fri, 4 Oct 2024 01:08:45 +0200 Subject: [PATCH] Add combining diacritics keys Co-authored-by: Anastazius Kaejatidarjan --- assets/special_font.ttf | Bin 10504 -> 14652 bytes res/values-cs/strings.xml | 1 + res/values-de/strings.xml | 1 + res/values-es/strings.xml | 1 + res/values-fa/strings.xml | 1 + res/values-fr/strings.xml | 1 + res/values-it/strings.xml | 1 + res/values-ja/strings.xml | 1 + res/values-ko/strings.xml | 1 + res/values-lv/strings.xml | 1 + res/values-pl/strings.xml | 1 + res/values-pt/strings.xml | 1 + res/values-ro/strings.xml | 1 + res/values-ru/strings.xml | 1 + res/values-tr/strings.xml | 1 + res/values-uk/strings.xml | 1 + res/values-vi/strings.xml | 1 + res/values-zh-rCN/strings.xml | 1 + res/values/strings.xml | 1 + srcs/juloo.keyboard2/KeyValue.java | 26 +++++++++++ .../prefs/ExtraKeysPreference.java | 39 +++++++++++++++++ srcs/special_font/150.svg | 41 ++++++++++++++++++ srcs/special_font/151.svg | 41 ++++++++++++++++++ srcs/special_font/152.svg | 41 ++++++++++++++++++ srcs/special_font/153.svg | 41 ++++++++++++++++++ srcs/special_font/154.svg | 41 ++++++++++++++++++ srcs/special_font/155.svg | 41 ++++++++++++++++++ srcs/special_font/156.svg | 41 ++++++++++++++++++ srcs/special_font/157.svg | 41 ++++++++++++++++++ srcs/special_font/158.svg | 41 ++++++++++++++++++ srcs/special_font/159.svg | 39 +++++++++++++++++ srcs/special_font/15A.svg | 40 +++++++++++++++++ srcs/special_font/15B.svg | 39 +++++++++++++++++ srcs/special_font/15C.svg | 35 +++++++++++++++ srcs/special_font/15D.svg | 35 +++++++++++++++ srcs/special_font/15E.svg | 39 +++++++++++++++++ srcs/special_font/15F.svg | 35 +++++++++++++++ srcs/special_font/160.svg | 35 +++++++++++++++ srcs/special_font/161.svg | 35 +++++++++++++++ srcs/special_font/162.svg | 35 +++++++++++++++ 40 files changed, 819 insertions(+) create mode 100644 srcs/special_font/150.svg create mode 100644 srcs/special_font/151.svg create mode 100644 srcs/special_font/152.svg create mode 100644 srcs/special_font/153.svg create mode 100644 srcs/special_font/154.svg create mode 100644 srcs/special_font/155.svg create mode 100644 srcs/special_font/156.svg create mode 100644 srcs/special_font/157.svg create mode 100644 srcs/special_font/158.svg create mode 100644 srcs/special_font/159.svg create mode 100644 srcs/special_font/15A.svg create mode 100644 srcs/special_font/15B.svg create mode 100644 srcs/special_font/15C.svg create mode 100644 srcs/special_font/15D.svg create mode 100644 srcs/special_font/15E.svg create mode 100644 srcs/special_font/15F.svg create mode 100644 srcs/special_font/160.svg create mode 100644 srcs/special_font/161.svg create mode 100644 srcs/special_font/162.svg diff --git a/assets/special_font.ttf b/assets/special_font.ttf index eb07561df6d4f6506fc66f2d7c964aed4ff6004f..ad676f51d418f6c9117de39bd8a8ab380f282562 100644 GIT binary patch delta 4561 zcmeAO+EY}|z{tSBz{AkMz|7#_AFOX=<`Troz`*Fiz`&4@oSRtC@vz&4fr04^0|Vo; z50V!|Nk>EGcZ`1FfcH1q~}zoRmTcfF)*EF&W|k^LwO0|Nsih)~JMEs3nSrYuy+z`(eIfq_vaCqFqcIXIt> zfq`WQ0|Ud9+{B6khPe#u85kHf7#J87@)C1X6Dk$`7#K`U7#Nr&3-XIgWWDlT85qn0 z7#NtIfIY*=!0@>JuEE3`{_LJ$0nf>LjIxZZlYJQN7#~jVX8c;u=^7B92guKoEV%LTo_y#+!)*$JT@CKvolUM zXDL<_ND(+9s3+Jb_)5q{Xq&K#aFg&C5kHYFqEezQqA$c8#Ab3q&&}Y% zAi(&OS($-_frCMSL6|{=L54wrL7hRHL7%~tfq{|T*j$}m)Yz1rja^+#)Xbb+TwUCd zjosMH+(eyK)Yz0&Ox(;|OaVbo#MV`5}>Iy2UpMZv^l0VAW{>eV_*wyXvm3^0eQFmN#NFo-aSGe|HfFsOi?ZOmZFz#uFt zZftI<%&smDbG#v@{K-_xz|6qSz{kMPAkHAopv0iYpvB<8z`zJ|HgRFjF2^V;!lo>4WM*oj zrf#lms>XPdu>0#l!SCqDucfT5%;N5=slaC9%2W#V1*0xrZ2iP)FE@iTg8<_XW@TK_!pJUaY%XqW3W=6_P@=*TFIc06(XztN-NU~!gs{Ir-U6j6 zj>R|~>fAwlzMO!vQb_SRaRB`19VRmt2i0esl z{7%Ly->~`UF0aSP5%46X!d%z5e)Vc;R&4HuIUAfGY(UOtVBlu3VGv+qW%|p&%)rjT z&mhDg%plDm4^B^d3?`r)p=gShlj{j*&gjm@>1w9G?(QALB_D7usAu4TCKxjY zE(TEsNd`p*6$VuXT?Ru23kDko2L?9=21X?|5iw(M!e%!T6Jb+UQZqF%!AUOdDy!)0iph(L@(YMffyWHtoDPZ_2L=Jg zzs#Bp!VKaJ@(fB0%HV>^te(M&!H&U&fq@b1EoCJ(QE?M9Vg?)lb3)!g_<}7dDJf|p)cJ&q;d)Rx zZ2CW*$q7p_3`u-wF2?C#Hg+~qa56Pl=VOE3B3Hu>IP;!TsCa%;-XUek}@pJB|1vrTn0*jt_%W< zzo1bBDjOixd_AI`7d19T&r$|BJ!=f}mUOlY@sY!xoID9NYU(55MKM~D2C5=?7|a<2 znEaVRMKKoxAA=Z!B!d*Vh6I%lrVQ55=7}-8IC3L}==#Jis@}Jh(V~)kY!L{P-M_#(5+`M0heB{122OhgCv6tgDit8gC>Ik*h6*<42)vpilU0(cA}{o zqPj$D%+%vg1$qNObfty^|If7ME5NO4A8>2FWj+3?2*uO!MJ|ngB|Z9#N##gPZflhHUK0 zqKcx%rpBgJ*Ge6%`T8xo@J91;b9;t+K`ESGclgSv`8U_Ww41+SbBVq{dh`?M84Q)|K;befj z69OvE2sDE0L7fm-P)lVq8G##$Oe%~zth!8$jEv3^uEqj>t5;{mIJ3x`y3dF8K-dg9 znv#zhlc zlme)dI1g`A)-yWeEP)N#!TnX||8|T&n4-a*6FCNXaD*5!m@!y^J1OiSzp=54L+f-? zV|6=5Qxi2%(6bWZw|X^3brxl9Wi5Umdr(KwgiS%yH%k9s53UX)++R_q5)$IV%#K{f zpk}?EB%6l1zWMgmt1D0%_%SXl3a0K07#R`mdj=5TV^|07mTx|;V#LJgIr*1bjvAvW zqZy+)qXnZSqZOkyqYa}iqaC9?qXVNOqZ6YuqYI-eqZ_09<}~#gjP>lLd6}+;rUp>j z5K0?CX=5mD0;Nr%v>B8(htd{M+7e1TLTM)`?F^+|ptLKLR&;|f%%Bc1gF3*>2sEJb I|33p00Gk0j4gdfE delta 372 zcmdl})DcwAz{tSBz{AkMz|7#_AFOX=<`U@5z`*Fiz`&4@oSRs%?9@^%1_q`E1_s6* z$z>%942n#Z3=Aw53=9k`>50V!|Nk>EGcaf}FfcH1q~}zo?eLB2Vqjod!@!^*kdd00 z(ir_An1O-e3i4_G5T@33P7#KAe7#I}t5_3}%Di!@07*zH!Ffd6L={M|hV?gvo=m*q&u#`5Fq^E$D9h+R*@w}N@xkP7#;;xs3?N5?u?$!V z1H&c;W-v>JfrVij$TJKa3``6R55yl>JV^TgpMl{4;{$^S0U#F0uMCU~91JE5E|cY$ vGdHhgW@DVZm8Fo0fnl=`tDwSWQxh8|MzhI9W;vT#%x5riL3I58&%gu#;_z4A diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index 4f51f8d..64a11a6 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -120,6 +120,7 @@ Tato aplikace neobsahuje žádné reklamy, nevyužívá připojení k síti a je Home End Správce schránky + Nedávno kopírovaný text Připnout Odebrat ze schránky? diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 39686c2..2303f46 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -120,6 +120,7 @@ Diese App enthält keine Werbung, benötigt keinen Netzwerkzugriff und ist quell Pos1 Ende Clipboard-Manager + Zuletzt kopierter Text Angeheftet Aus der Zwischenablage entfernen? diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 28d9c7d..ed414ab 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -120,6 +120,7 @@ La misma no contiene ningún anuncio/publicidad, no realiza peticiones de red y Inicio Fin Arreglar portapapeles + Textos recién copiados Pegado ¿Sacar este portapapeles? diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index f61c4ac..94656c4 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -120,6 +120,7 @@ This application contains no ads, doesn't make any network requests and is Open + diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 06dede0..0fe3b55 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -120,6 +120,7 @@ Cette application ne contient pas de publicité, n'accède pas au réseau et est Début Fin Presse-papiers + Texte récemment copié Épinglé Supprimer ce presse-papiers ? diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 43c2184..eec2b13 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -120,6 +120,7 @@ This application contains no ads, doesn't make any network requests and is Open + diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index bf05005..8f36db3 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -121,6 +121,7 @@ PCキーボードでの半角入力を再現しています。日本語入力、 Home End クリップボード + 最近コピーしたテキスト お気に入り クリップボードから削除しますか? diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index b38e279..6d9b7ef 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -120,6 +120,7 @@ 홈 종료 클립보드 관리자 + 최근에 복사한 텍스트 고정 이 클립보드를 제거하시겠습니까? diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index 11512bd..c0ae05b 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -122,6 +122,7 @@ Tagad lieliski piemērota izmantošanai ikdienā. Sākums Beigas Starpliktuves pārvaldnieks + Nesen starpliktuvē ievietots teksts Piesprausts Noņemt šo starpliktuves vienumu? diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 8289407..8a86567 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -120,6 +120,7 @@ Aplikacja nie zawiera reklam, nie żąda dostępu do internetu, a jej kod źród Home End Zarządzanie schowkiem + Ostatnio skopiowane elementy Przypięte Usunąć ten element ze schowka? diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index 60a584b..ec421d1 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -120,6 +120,7 @@ Este aplicativo não contém anúncios, não faz nenhuma solicitação de rede e Home End + diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index 0ba2e21..1cbd85c 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -120,6 +120,7 @@ Această aplicație nu conține publicitate, nu folosește rețeaua deloc și e + diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 0d922e8..0066b1c 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -120,6 +120,7 @@ Home End Менеджер буфера обмена + Недавно скопированный текст Закреплено Удалить этот буфер обмена? diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index 0cb3aec..9c4c18c 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -120,6 +120,7 @@ Bu uygulama açık kaynaklıdır. Reklam içermez ve internete bağlanmaz."BAŞ(Sol yön tuşu) SON(Sağ yön tuşu) Pano + Son kopyalanan metin Sabitlendi Bu sabitlemeyi sil diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index 73d8336..bedddff 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -120,6 +120,7 @@ Home End Менеджер буфера обміну + Нещодавно скопійований текст Закріплено Видалити цей буфер обміну? diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index 5e6c724..f1d72e2 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -120,6 +120,7 @@ Bây giờ đã hoàn hảo cho việc sử dụng hàng ngày. + diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 99aa7bd..2bb1117 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -120,6 +120,7 @@ Home End + diff --git a/res/values/strings.xml b/res/values/strings.xml index edd9a10..c401131 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -120,6 +120,7 @@ This application contains no ads, doesn't make any network requests and is Open Home End Clipboard manager + Combining diacritic Recently copied text Pinned Remove this clipboard? diff --git a/srcs/juloo.keyboard2/KeyValue.java b/srcs/juloo.keyboard2/KeyValue.java index 320eaaa..76bf2d0 100644 --- a/srcs/juloo.keyboard2/KeyValue.java +++ b/srcs/juloo.keyboard2/KeyValue.java @@ -403,6 +403,11 @@ public final class KeyValue implements Comparable return new KeyValue(symbol, Kind.Char, c, flags); } + public static KeyValue makeCharKey(int symbol, char c, int flags) + { + return makeCharKey(c, String.valueOf((char)symbol), flags | FLAG_KEY_FONT); + } + public static KeyValue makeComposePending(String symbol, int state, int flags) { return new KeyValue(symbol, Kind.Compose_pending, state, @@ -522,6 +527,27 @@ public final class KeyValue implements Comparable case "fn": return modifierKey("Fn", Modifier.FN, 0); case "meta": return modifierKey("Meta", Modifier.META, 0); + /* Combining diacritics */ + case "combining_dot_above": return makeCharKey(0xE15A, '\u0307', 0); + case "combining_double_aigu": return makeCharKey(0xE15B, '\u030B', 0); + case "combining_slash": return makeCharKey(0xE15C, '\u0337', 0); + case "combining_arrow_right": return makeCharKey(0xE15D, '\u20D7', 0); + case "combining_breve": return makeCharKey(0xE15E, '\u0306', 0); + case "combining_bar": return makeCharKey(0xE15F, '\u0335', 0); + case "combining_aigu": return makeCharKey(0xE150, '\u0301', 0); + case "combining_caron": return makeCharKey(0xE151, '\u030C', 0); + case "combining_cedille": return makeCharKey(0xE152, '\u0327', 0); + case "combining_circonflexe": return makeCharKey(0xE153, '\u0302', 0); + case "combining_grave": return makeCharKey(0xE154, '\u0300', 0); + case "combining_macron": return makeCharKey(0xE155, '\u0304', 0); + case "combining_ring": return makeCharKey(0xE156, '\u030A', 0); + case "combining_tilde": return makeCharKey(0xE157, '\u0303', 0); + case "combining_trema": return makeCharKey(0xE158, '\u0308', 0); + case "combining_ogonek": return makeCharKey(0xE159, '\u0328', 0); + case "combining_dot_below": return makeCharKey(0xE160, '\u0323', 0); + case "combining_horn": return makeCharKey(0xE161, '\u031B', 0); + case "combining_hook_above": return makeCharKey(0xE162, '\u0309', 0); + /* Special event keys */ case "config": return eventKey(0xE004, Event.CONFIG, FLAG_SMALLER_FONT); case "switch_text": return eventKey("ABC", Event.SWITCH_TEXT, FLAG_SMALLER_FONT); diff --git a/srcs/juloo.keyboard2/prefs/ExtraKeysPreference.java b/srcs/juloo.keyboard2/prefs/ExtraKeysPreference.java index 11e1a05..f5a99ff 100644 --- a/srcs/juloo.keyboard2/prefs/ExtraKeysPreference.java +++ b/srcs/juloo.keyboard2/prefs/ExtraKeysPreference.java @@ -72,6 +72,25 @@ public class ExtraKeysPreference extends PreferenceCategory "f11_placeholder", "f12_placeholder", "menu", + "combining_dot_above", + "combining_double_aigu", + "combining_slash", + "combining_arrow_right", + "combining_breve", + "combining_bar", + "combining_aigu", + "combining_caron", + "combining_cedille", + "combining_circonflexe", + "combining_grave", + "combining_macron", + "combining_ring", + "combining_tilde", + "combining_trema", + "combining_ogonek", + "combining_dot_below", + "combining_horn", + "combining_hook_above" }; /** Whether an extra key is enabled by default. */ @@ -121,6 +140,26 @@ public class ExtraKeysPreference extends PreferenceCategory case "ª": id = R.string.key_descr_ª; break; case "º": id = R.string.key_descr_º; break; case "switch_clipboard": id = R.string.key_descr_clipboard; break; + + case "combining_dot_above": + case "combining_double_aigu": + case "combining_slash": + case "combining_arrow_right": + case "combining_breve": + case "combining_bar": + case "combining_aigu": + case "combining_caron": + case "combining_cedille": + case "combining_circonflexe": + case "combining_grave": + case "combining_macron": + case "combining_ring": + case "combining_tilde": + case "combining_trema": + case "combining_ogonek": + case "combining_dot_below": + case "combining_horn": + case "combining_hook_above": id = R.string.key_descr_combining; break; } if (id == 0) return null; diff --git a/srcs/special_font/150.svg b/srcs/special_font/150.svg new file mode 100644 index 0000000..0de55d6 --- /dev/null +++ b/srcs/special_font/150.svg @@ -0,0 +1,41 @@ + + + + + + + + + + diff --git a/srcs/special_font/151.svg b/srcs/special_font/151.svg new file mode 100644 index 0000000..636b330 --- /dev/null +++ b/srcs/special_font/151.svg @@ -0,0 +1,41 @@ + + + + + + + + + + diff --git a/srcs/special_font/152.svg b/srcs/special_font/152.svg new file mode 100644 index 0000000..78da317 --- /dev/null +++ b/srcs/special_font/152.svg @@ -0,0 +1,41 @@ + + + + + + + + + + diff --git a/srcs/special_font/153.svg b/srcs/special_font/153.svg new file mode 100644 index 0000000..2663592 --- /dev/null +++ b/srcs/special_font/153.svg @@ -0,0 +1,41 @@ + + + + + + + + + + diff --git a/srcs/special_font/154.svg b/srcs/special_font/154.svg new file mode 100644 index 0000000..65118b6 --- /dev/null +++ b/srcs/special_font/154.svg @@ -0,0 +1,41 @@ + + + + + + + + + + diff --git a/srcs/special_font/155.svg b/srcs/special_font/155.svg new file mode 100644 index 0000000..111fb0e --- /dev/null +++ b/srcs/special_font/155.svg @@ -0,0 +1,41 @@ + + + + + + + + + + diff --git a/srcs/special_font/156.svg b/srcs/special_font/156.svg new file mode 100644 index 0000000..4f0c539 --- /dev/null +++ b/srcs/special_font/156.svg @@ -0,0 +1,41 @@ + + + + + + + + + + diff --git a/srcs/special_font/157.svg b/srcs/special_font/157.svg new file mode 100644 index 0000000..8b26521 --- /dev/null +++ b/srcs/special_font/157.svg @@ -0,0 +1,41 @@ + + + + + + + + + + diff --git a/srcs/special_font/158.svg b/srcs/special_font/158.svg new file mode 100644 index 0000000..b71a304 --- /dev/null +++ b/srcs/special_font/158.svg @@ -0,0 +1,41 @@ + + + + + + + + + + diff --git a/srcs/special_font/159.svg b/srcs/special_font/159.svg new file mode 100644 index 0000000..a295b5a --- /dev/null +++ b/srcs/special_font/159.svg @@ -0,0 +1,39 @@ + + + + + + + + diff --git a/srcs/special_font/15A.svg b/srcs/special_font/15A.svg new file mode 100644 index 0000000..4082669 --- /dev/null +++ b/srcs/special_font/15A.svg @@ -0,0 +1,40 @@ + + + + + + + + diff --git a/srcs/special_font/15B.svg b/srcs/special_font/15B.svg new file mode 100644 index 0000000..dcc28e9 --- /dev/null +++ b/srcs/special_font/15B.svg @@ -0,0 +1,39 @@ + + + + + + + + diff --git a/srcs/special_font/15C.svg b/srcs/special_font/15C.svg new file mode 100644 index 0000000..cc01919 --- /dev/null +++ b/srcs/special_font/15C.svg @@ -0,0 +1,35 @@ + + + + + + diff --git a/srcs/special_font/15D.svg b/srcs/special_font/15D.svg new file mode 100644 index 0000000..2eda493 --- /dev/null +++ b/srcs/special_font/15D.svg @@ -0,0 +1,35 @@ + + + + + + diff --git a/srcs/special_font/15E.svg b/srcs/special_font/15E.svg new file mode 100644 index 0000000..944e8e3 --- /dev/null +++ b/srcs/special_font/15E.svg @@ -0,0 +1,39 @@ + + + + + + + + diff --git a/srcs/special_font/15F.svg b/srcs/special_font/15F.svg new file mode 100644 index 0000000..2279655 --- /dev/null +++ b/srcs/special_font/15F.svg @@ -0,0 +1,35 @@ + + + + + + diff --git a/srcs/special_font/160.svg b/srcs/special_font/160.svg new file mode 100644 index 0000000..89da965 --- /dev/null +++ b/srcs/special_font/160.svg @@ -0,0 +1,35 @@ + + + + + + diff --git a/srcs/special_font/161.svg b/srcs/special_font/161.svg new file mode 100644 index 0000000..4d7bfaf --- /dev/null +++ b/srcs/special_font/161.svg @@ -0,0 +1,35 @@ + + + + + + diff --git a/srcs/special_font/162.svg b/srcs/special_font/162.svg new file mode 100644 index 0000000..8b46e04 --- /dev/null +++ b/srcs/special_font/162.svg @@ -0,0 +1,35 @@ + + + + + +