Kannada.java revision 2863997abd6e27b6b8ab06efe1f58d5ba3b4a908
1/* 2 * Copyright (C) 2014 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.inputmethod.keyboard.layout; 18 19import com.android.inputmethod.keyboard.layout.expected.ExpectedKey; 20import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder; 21import com.android.inputmethod.latin.Constants; 22 23import java.util.Locale; 24 25/** 26 * The Kannada keyboard. 27 */ 28public final class Kannada extends LayoutBase { 29 private static final String LAYOUT_NAME = "kannada"; 30 31 public Kannada(final LayoutCustomizer customizer) { 32 super(customizer, Symbols.class, SymbolsShifted.class); 33 } 34 35 @Override 36 public String getName() { return LAYOUT_NAME; } 37 38 public static class KannadaCustomizer extends LayoutCustomizer { 39 public KannadaCustomizer(final Locale locale) { super(locale); } 40 41 @Override 42 public ExpectedKey getAlphabetKey() { return KANNADA_ALPHABET_KEY; } 43 44 @Override 45 public ExpectedKey getCurrencyKey() { return CURRENCY_RUPEE; } 46 47 @Override 48 public ExpectedKey[] getOtherCurrencyKeys() { 49 return SymbolsShifted.CURRENCIES_OTHER_GENERIC; 50 } 51 52 @Override 53 public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) { 54 return EMPTY_KEYS; 55 } 56 57 @Override 58 public ExpectedKey[] getRightShiftKeys(final boolean isPhone) { 59 return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS; 60 } 61 62 @Override 63 public ExpectedKey[] getSpaceKeys(final boolean isPhone) { 64 return joinKeys(LANGUAGE_SWITCH_KEY, SPACE_KEY, key(ZWNJ_KEY, ZWJ_KEY)); 65 } 66 67 // U+0C85: "ಅ" KANNADA LETTER A 68 // U+0C86: "ಆ" KANNADA LETTER AA 69 // U+0C87: "ಇ" KANNADA LETTER I 70 private static final ExpectedKey KANNADA_ALPHABET_KEY = key( 71 "\u0C85\u0C86\u0C87", Constants.CODE_SWITCH_ALPHA_SYMBOL); 72 73 // U+20B9: "₹" INDIAN RUPEE SIGN 74 private static final ExpectedKey CURRENCY_RUPEE = key("\u20B9", 75 Symbols.CURRENCY_GENERIC_MORE_KEYS); 76 } 77 78 @Override 79 ExpectedKey[][] getCommonAlphabetLayout(boolean isPhone) { return ALPHABET_COMMON; } 80 81 @Override 82 ExpectedKey[][] getCommonAlphabetShiftLayout(boolean isPhone, final int elementId) { 83 return null; 84 } 85 86 private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder() 87 .setKeysOfRow(1, 88 // U+0CCC: "ೌ" KANNADA VOWEL SIGN AU 89 // U+0C94: "ಔ" KANNADA LETTER AU 90 // U+0CE7: "೧" KANNADA DIGIT ONE 91 key("\u0CCC", joinMoreKeys("\u0C94", "\u0CE7", "1")), 92 // U+0CC8: "ೈ" KANNADA VOWEL SIGN AI 93 // U+0C90: "ಐ" KANNADA LETTER AI 94 // U+0CE8: "೨" KANNADA DIGIT TWO 95 key("\u0CC8", joinMoreKeys("\u0C90", "\u0CE8", "2")), 96 // U+0CBE: "ಾ" KANNADA VOWEL SIGN AA 97 // U+0C86: "ಆ" KANNADA LETTER AA 98 // U+0CE9: "೩" KANNADA DIGIT THREE 99 key("\u0CBE", joinMoreKeys("\u0C86", "\u0CE9", "3")), 100 // U+0CC0: "ೀ" KANNADA VOWEL SIGN II 101 // U+0C88: "ಈ" KANNADA LETTER II 102 // U+0CEA: "೪" KANNADA DIGIT FOUR 103 key("\u0CC0", joinMoreKeys("\u0C88", "\u0CEA", "4")), 104 // U+0CC2: "ೂ" KANNADA VOWEL SIGN UU 105 // U+0C8A: "ಊ" KANNADA LETTER UU 106 // U+0CEB: "೫" KANNADA DIGIT FIVE 107 key("\u0CC2", joinMoreKeys("\u0C8A", "\u0CEB", "5")), 108 // U+0CAC: "ಬ" KANNADA LETTER BA 109 // U+0CAD: "ಭ" KANNADA LETTER BHA 110 // U+0CEC: "೬" KANNADA DIGIT SIX 111 key("\u0CAC", joinMoreKeys("\u0CAD", "\u0CEC", "6")), 112 // U+0CB9: "ಹ" KANNADA LETTER HA 113 // U+0C99: "ಙ" KANNADA LETTER NGA 114 // U+0CED: "೭" KANNADA DIGIT SEVEN 115 key("\u0CB9", joinMoreKeys("\u0C99", "\u0CED", "7")), 116 // U+0C97: "ಗ" KANNADA LETTER GA 117 // U+0C98: "ಘ" KANNADA LETTER GHA 118 // U+0CEE: "೮" KANNADA DIGIT EIGHT 119 key("\u0C97", joinMoreKeys("\u0C98", "\u0CEE", "8")), 120 // U+0CA6: "ದ" KANNADA LETTER DA 121 // U+0CA7: "ಧ" KANNADA LETTER DHA 122 // U+0CEF: "೯" KANNADA DIGIT NINE 123 key("\u0CA6", joinMoreKeys("\u0CA7", "\u0CEF", "9")), 124 // U+0C9C: "ಜ" KANNADA LETTER JA 125 // U+0C9D: "ಝ" KANNADA LETTER JHA 126 // U+0CE6: "೦" KANNADA DIGIT ZERO 127 key("\u0C9C", joinMoreKeys("\u0C9D", "\u0CE6", "0")), 128 // U+0CA1: "ಡ" KANNADA LETTER DDA 129 // U+0CA2: "ಢ" KANNADA LETTER DDHA 130 key("\u0CA1", moreKey("\u0CA2"))) 131 .setKeysOfRow(2, 132 // U+0CCB: "ೋ" KANNADA VOWEL SIGN OO 133 // U+0C93: "ಓ" KANNADA LETTER OO 134 key("\u0CCB", moreKey("\u0C93")), 135 // U+0CC7: "ೇ" KANNADA VOWEL SIGN EE 136 // U+0C8F: "ಏ" KANNADA LETTER EE 137 key("\u0CC7", moreKey("\u0C8F")), 138 // U+0CCD: "್" KANNADA SIGN VIRAMA 139 // U+0C85: "ಅ" KANNADA LETTER A 140 key("\u0CCD", moreKey("\u0C85")), 141 // U+0CBF: "ಿ" KANNADA VOWEL SIGN I 142 // U+0C87: "ಇ" KANNADA LETTER I 143 key("\u0CBF", moreKey("\u0C87")), 144 // U+0CC1: "ು" KANNADA VOWEL SIGN U 145 // U+0C89: "ಉ" KANNADA LETTER U 146 key("\u0CC1", moreKey("\u0C89")), 147 // U+0CAA: "ಪ" KANNADA LETTER PA 148 // U+0CAB: "ಫ" KANNADA LETTER PHA 149 key("\u0CAA", moreKey("\u0CAB")), 150 // U+0CB0: "ರ" KANNADA LETTER RA 151 // U+0CB1: "ಱ" KANNADA LETTER RRA 152 // U+0CC3: "ೃ" KANNADA VOWEL SIGN VOCALIC R 153 key("\u0CB0", joinMoreKeys("\u0CB1", "\u0CC3")), 154 // U+0C95: "ಕ" KANNADA LETTER KA 155 // U+0C96: "ಖ" KANNADA LETTER KHA 156 key("\u0C95", moreKey("\u0C96")), 157 // U+0CA4: "ತ" KANNADA LETTER TA 158 // U+0CA5: "ಥ" KANNADA LETTER THA 159 key("\u0CA4", moreKey("\u0CA5")), 160 // U+0C9A: "ಚ" KANNADA LETTER CA 161 // U+0C9B: "ಛ" KANNADA LETTER CHA 162 key("\u0C9A", moreKey("\u0C9B")), 163 // U+0C9F: "ಟ" KANNADA LETTER TTA 164 // U+0CA0: "ಠ" KANNADA LETTER TTHA 165 key("\u0C9F", moreKey("\u0CA0"))) 166 .setKeysOfRow(3, 167 // U+0CC6: "ೆ" KANNADA VOWEL SIGN E 168 // U+0C92: "ಒ" KANNADA LETTER O 169 key("\u0CC6", moreKey("\u0C92")), 170 // U+0C82: "ಂ" KANNADA SIGN ANUSVARA 171 // U+0C8E: "ಎ" KANNADA LETTER E 172 key("\u0C82", moreKey("\u0C8E")), 173 // U+0CAE: "ಮ" KANNADA LETTER MA 174 "\u0CAE", 175 // U+0CA8: "ನ" KANNADA LETTER NA 176 // U+0CA3: "ಣ" KANNADA LETTER NNA 177 key("\u0CA8", moreKey("\u0CA3")), 178 // U+0CB5: "ವ" KANNADA LETTER VA 179 "\u0CB5", 180 // U+0CB2: "ಲ" KANNADA LETTER LA 181 // U+0CB3: "ಳ" KANNADA LETTER LLA 182 key("\u0CB2", moreKey("\u0CB3")), 183 // U+0CB8: "ಸ" KANNADA LETTER SA 184 // U+0CB6: "ಶ" KANNADA LETTER SHA 185 key("\u0CB8", moreKey("\u0CB6")), 186 // U+0C8B: "ಋ" KANNADA LETTER VOCALIC R 187 // U+0CCD/U+0CB0: "್ರ" KANNADA SIGN VIRAMA/KANNADA LETTER RA 188 key("\u0C8B", moreKey("\u0CCD\u0CB0")), 189 // U+0CB7: "ಷ" KANNADA LETTER SSA 190 // U+0C95/U+0CCD/U+0CB7: 191 // "ಕ್ಷ" KANNADA LETTER RA/KANNADA SIGN VIRAMA/KANNADA LETTER SSA 192 key("\u0CB7", moreKey("\u0C95\u0CCD\u0CB7")), 193 // U+0CAF: "ಯ" KANNADA LETTER YA 194 // U+0C9C/U+0CCD/U+0C9E: 195 // "ಜ್ಞ" KANNADA LETTER JA/KANNADA SIGN VIRAMA/KANNADA LETTER NYA 196 key("\u0CAF", moreKey("\u0C9C\u0CCD\u0C9E"))) 197 .build(); 198} 199