1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
|
/*
* Copyright (C) 2014 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.
*/
package com.android.inputmethod.keyboard.layout;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import com.android.inputmethod.latin.Constants;
import java.util.Locale;
/**
* The Bengali keyboard.
*/
public final class Bengali extends LayoutBase {
private static final String LAYOUT_NAME = "bengali";
public Bengali(final LayoutCustomizer customizer) {
super(customizer, Symbols.class, SymbolsShifted.class);
}
@Override
public String getName() { return LAYOUT_NAME; }
public static class BengaliCustomizer extends LayoutCustomizer {
public BengaliCustomizer(final Locale locale) { super(locale); }
@Override
public ExpectedKey getAlphabetKey() { return BENGALI_ALPHABET_KEY; }
@Override
public ExpectedKey[] getOtherCurrencyKeys() {
return SymbolsShifted.CURRENCIES_OTHER_GENERIC;
}
@Override
public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) { return EMPTY_KEYS; }
@Override
public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
}
// U+0995: "क" BENGALI LETTER KA
// U+0996: "ख" BENGALI LETTER KHA
// U+0997: "ग" BENGALI LETTER GA
private static final ExpectedKey BENGALI_ALPHABET_KEY = key(
"\u0995\u0996\u0997", Constants.CODE_SWITCH_ALPHA_SYMBOL);
}
@Override
ExpectedKey[][] getCommonAlphabetLayout(boolean isPhone) { return ALPHABET_COMMON; }
@Override
ExpectedKey[][] getCommonAlphabetShiftLayout(boolean isPhone, final int elementId) {
return null;
}
private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
.setKeysOfRow(1,
// U+0994: "ঔ" BENGALI LETTER AU
// U+09CC: "ৌ" BENGALI VOWEL SIGN AU
// U+09E7: "১" BENGALI DIGIT ONE
key("\u0994", joinMoreKeys("\u09CC", "\u09E7", "1")),
// U+0990: "ঐ" BENGALI LETTER AI
// U+09C8: "ৈ" BENGALI VOWEL SIGN AI
// U+09E8: "২" BENGALI DIGIT TWO
key("\u0990", joinMoreKeys("\u09C8", "\u09E8", "2")),
// U+0986: "আ" BENGALI LETTER AA
// U+09BE: "া" BENGALI VOWEL SIGN AA
// U+09E9: "৩" BENGALI DIGIT THREE
key("\u0986", joinMoreKeys("\u09BE", "\u09E9", "3")),
// U+0988: "ঈ" BENGALI LETTER II
// U+09C0: "ী" BENGALI VOWEL SIGN II
// U+09EA: "৪" BENGALI DIGIT FOUR
key("\u0988", joinMoreKeys("\u09C0", "\u09EA", "4")),
// U+098A: "ঊ" BENGALI LETTER UU
// U+09C2: "ূ" BENGALI VOWEL SIGN UU
// U+09EB: "৫" BENGALI DIGIT FIVE
key("\u098A", joinMoreKeys("\u09C2", "\u09EB", "5")),
// U+09AC: "ব" BENGALI LETTER BA
// U+09AD: "ভ" BENGALI LETTER BHA
// U+09EC: "৬" BENGALI DIGIT SIX
key("\u09AC", joinMoreKeys("\u09AD", "\u09EC", "6")),
// U+09B9: "হ" BENGALI LETTER HA
// U+09ED: "৭" BENGALI DIGIT SEVEN
key("\u09B9", joinMoreKeys("\u09ED", "7")),
// U+0997: "গ" BENGALI LETTER GA
// U+0998: "ঘ" BENGALI LETTER GHA
// U+09EE: "৮" BENGALI DIGIT EIGHT
key("\u0997", joinMoreKeys("\u0998", "\u09EE", "8")),
// U+09A6: "দ" BENGALI LETTER DA
// U+09A7: "ধ" BENGALI LETTER DHA
// U+09EF: "৯" BENGALI DIGIT NINE
key("\u09A6", joinMoreKeys("\u09A7", "\u09EF", "9")),
// U+099C: "জ" BENGALI LETTER JA
// U+099D: "ঝ" BENGALI LETTER JHA
// U+099C/U+09CD/U+099E:
// "জ্ঞ" BENGALI LETTER JA/BENGALI SIGN VIRAMA/BENGALI LETTER NYA
// U+09E6: "০" BENGALI DIGIT ZERO
key("\u099C", joinMoreKeys("\u099D", "\u099C\u09CD\u099E", "\u09E6", "0")),
// U+09A1: "ড" BENGALI LETTER DDA
// U+09A1/U+09BC: "ড়" BENGALI LETTER DDA/BENGALI SIGN NUKTA
key("\u09A1", moreKey("\u09A1\u09BC")))
.setKeysOfRow(2,
// U+0993: "ও" BENGALI LETTER O
// U+09CB: "ো" BENGALI VOWEL SIGN O
key("\u0993", moreKey("\u09CB")),
// U+098F: "এ" BENGALI LETTER E
// U+09C7: "ে" BENGALI VOWEL SIGN E
key("\u098F", moreKey("\u09C7")),
// U+0985: "অ" BENGALI LETTER A
// U+09CD: "্" BENGALI SIGN VIRAMA
key("\u0985", moreKey("\u09CD")),
// U+0987: "ই" BENGALI LETTER I
// U+09BF: "ি" BENGALI VOWEL SIGN I
key("\u0987", moreKey("\u09BF")),
// U+0989: "উ" BENGALI LETTER U
// U+09C1: "ু" BENGALI VOWEL SIGN U
key("\u0989", moreKey("\u09C1")),
// U+09AA: "প" BENGALI LETTER PA
// U+09AB: "ফ" BENGALI LETTER PHA
key("\u09AA", moreKey("\u09AB")),
// U+09B0: "র" BENGALI LETTER RA
// U+09C3: "ৃ" BENGALI VOWEL SIGN VOCALIC R
// U+098B: "ঋ" BENGALI LETTER VOCALIC R
// U+09A4/U+09CD/U+09B0:
// "ত্র" BENGALI LETTER TA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
key("\u09B0", joinMoreKeys("\u09C3", "\u098B", "\u09A4\u09CD\u09B0")),
// U+0995: "ক" BENGALI LETTER KA
// U+0996: "খ" BENGALI LETTER KHA
key("\u0995", moreKey("\u0996")),
// U+09A4: "ত" BENGALI LETTER TA
// U+09CE: "ৎ" BENGALI LETTER KHANDA TA
// U+09A5: "থ" BENGALI LETTER THA
// U+09A4/U+09CD/U+09A4:
// "ত্ত" BENGALI LETTER TA/BENGALI SIGN VIRAMA/BENGALI LETTER TA
key("\u09A4", joinMoreKeys("\u09CE", "\u09A5", "\u09A4\u09CD\u09A4")),
// U+099A: "চ" BENGALI LETTER CA
// U+099B: "ছ" BENGALI LETTER CHA
key("\u099A", moreKey("\u099B")),
// U+099F: "ট" BENGALI LETTER TTA
// U+09A0: "ঠ" BENGALI LETTER TTHA
key("\u099F", moreKey("\u09A0")))
.setKeysOfRow(3,
// U+0981: "ঁ" BENGALI SIGN CANDRABINDU
// U+0983: "ঃ" BENGALI SIGN VISARGA
// U+0982: "ং" BENGALI SIGN ANUSVARA
key("\u0981", joinMoreKeys("\u0983", "\u0982")),
// U+09A2: "ঢ" BENGALI LETTER DDHA
// U+09A2/U+09BC: "ঢ়" BENGALI LETTER DDHA/BENGALI SIGN NUKTA
key("\u09A2", moreKey("\u09A2\u09BC")),
// U+09AE: "ম" BENGALI LETTER MA
"\u09AE",
// U+09A8: "ন" BENGALI LETTER NA
// U+09A3: "ণ" BENGALI LETTER NNA
key("\u09A8", moreKey("\u09A3")),
// U+099E: "ঞ" BENGALI LETTER NYA
// U+0999: "ঙ" BENGALI LETTER NGA
// U+099E/U+09CD/U+099C:
// "ঞ্জ" BENGALI LETTER NYA/BENGALI SIGN VIRAMA/BENGALI LETTER JA
key("\u099E", joinMoreKeys("\u0999", "\u099E\u09CD\u099C")),
// U+09B2: "ল" BENGALI LETTER LA
"\u09B2",
// U+09B7: "ষ" BENGALI LETTER SSA
// U+0995/U+09CD/U+09B7:
// "ক্ষ" BENGALI LETTER KA/BENGALI SIGN VIRAMA/BENGALI LETTER SSA
key("\u09B7", moreKey("\u0995\u09CD\u09B7")),
// U+09B8: "স" BENGALI LETTER SA
// U+09B6: "শ" BENGALI LETTER SHA
key("\u09B8", moreKey("\u09B6")),
// U+09DF: "য়" BENGALI LETTER YYA
// U+09AF: "য" BENGALI LETTER YA
key("\u09DF", moreKey("\u09AF")),
// U+0964: "।" DEVANAGARI DANDA
// U+0965: "॥" DEVANAGARI DOUBLE DANDA
key("\u0964", moreKey("\u0965")))
.build();
}
|