Tamil.java revision 2d4559f6c225f5ea93f2b2447f877c374a9b0bea
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 Tamil keyboard. 27 */ 28public final class Tamil extends LayoutBase { 29 private static final String LAYOUT_NAME = "tamil"; 30 31 public Tamil(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 TamilCustomizer extends LayoutCustomizer { 39 public TamilCustomizer(final Locale locale) { super(locale); } 40 41 @Override 42 public ExpectedKey getAlphabetKey() { return TAMIL_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 // U+0BA4: "த" TAMIL LETTER TA 63 // U+0BAE/U+0BBF: "மி" TAMIL LETTER MA/TAMIL VOWEL SIGN I 64 // U+0BB4/U+0BCD: "ழ்" TAMIL LETTER LLLA/TAMIL SIGN VIRAMA 65 private static final ExpectedKey TAMIL_ALPHABET_KEY = key( 66 "\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD", Constants.CODE_SWITCH_ALPHA_SYMBOL); 67 68 // U+0BF9: "௹" TAMIL RUPEE SIGN 69 private static final ExpectedKey CURRENCY_RUPEE = key("\u0BF9", 70 Symbols.CURRENCY_GENERIC_MORE_KEYS); 71 } 72 73 @Override 74 ExpectedKey[][] getCommonAlphabetLayout(boolean isPhone) { return ALPHABET_COMMON; } 75 76 @Override 77 ExpectedKey[][] getCommonAlphabetShiftLayout(boolean isPhone, final int elementId) { 78 return null; 79 } 80 81 private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder() 82 .setKeysOfRow(1, 83 // U+0B94: "ஔ" TAMIL LETTER AU 84 key("\u0B94", moreKey("1")), 85 // U+0B90: "ஐ" TAMIL LETTER AI 86 key("\u0B90", moreKey("2")), 87 // U+0B86: "ஆ" TAMIL LETTER AA 88 key("\u0B86", moreKey("3")), 89 // U+0B88: "ஈ" TAMIL LETTER II 90 key("\u0B88", moreKey("4")), 91 // U+0B8A: "ஊ" TAMIL LETTER UU 92 key("\u0B8A", moreKey("5")), 93 // U+0BAE: "ம" TAMIL LETTER MA 94 key("\u0BAE", moreKey("6")), 95 // U+0BA9: "ன" TAMIL LETTER NNNA 96 key("\u0BA9", moreKey("7")), 97 // U+0BA8: "ந" TAMIL LETTER NA 98 key("\u0BA8", moreKey("8")), 99 // U+0B99: "ங" TAMIL LETTER NGA 100 key("\u0B99", moreKey("9")), 101 // U+0BA3: "ண" TAMIL LETTER NNA 102 key("\u0BA3", moreKey("0")), 103 // U+0B9E: "ஞ" TAMIL LETTER NYA 104 "\u0B9E") 105 .setKeysOfRow(2, 106 // U+0B93: "ஓ" TAMIL LETTER OO 107 // U+0BD0: "ௐ" TAMIL OM 108 key("\u0B93", moreKey("\u0BD0")), 109 // U+0B8F: "ஏ" TAMIL LETTER EE 110 "\u0B8F", 111 // U+0B85: "அ" TAMIL LETTER A 112 // U+0B83: "ஃ" TAMIL SIGN VISARGA 113 key("\u0B85", moreKey("\u0B83")), 114 // U+0B87: "இ" TAMIL LETTER I 115 // U+0B89: "உ" TAMIL LETTER U 116 // U+0BB1: "ற" TAMIL LETTER RRA 117 // U+0BAA: "ப" TAMIL LETTER PA 118 "\u0B87", "\u0B89", "\u0BB1", "\u0BAA", 119 // U+0B95: "க" TAMIL LETTER KA 120 // U+0BB9: "ஹ" TAMIL LETTER HA 121 // U+0B95/U+0BCD/U+0BB7: 122 // "க்ஷ" TAMIL LETTER KA/TAMIL SIGN VIRAMA/TAMIL LETTER SSA 123 key("\u0B95", joinMoreKeys("\u0BB9", "\u0B95\u0BCD\u0BB7")), 124 // U+0BA4: "த" TAMIL LETTER TA 125 "\u0BA4", 126 // U+0B9A: "ச" TAMIL LETTER CA 127 // U+0BB8: "ஸ" TAMIL LETTER SA 128 // U+0BB6/U+0BCD/U+0BB0/U+0BC0: 129 // "ஶ்ரீ" TAMIL LETTER SHA/TAMIL SIGN VIRAMA/TAMIL LETTER RA 130 // /TAMIL VOWEL SIGN II 131 key("\u0B9A", joinMoreKeys("\u0BB8", "\u0BB6\u0BCD\u0BB0\u0BC0")), 132 // U+0B9F: "ட" TAMIL LETTER TTA 133 "\u0B9F") 134 .setKeysOfRow(3, 135 // U+0B92: "ஒ" TAMIL LETTER O 136 // U+0B8E: "எ" TAMIL LETTER E 137 // U+0BCD: "்" TAMIL SIGN VIRAMA 138 // U+0BB0: "ர" TAMIL LETTER RA 139 // U+0BB5: "வ" TAMIL LETTER VA 140 // U+0BB4: "ழ TAMIL LETTER LLLA 141 // U+0BB2: "ல" TAMIL LETTER LA 142 // U+0BB3: "ள" TAMIL LETTER LLA 143 // U+0BAF: "ய" TAMIL LETTER YA 144 "\u0B92", "\u0B8E", "\u0BCD", "\u0BB0", "\u0BB5", "\u0BB4", "\u0BB2", "\u0BB3", 145 "\u0BAF", 146 // U+0BB7: "ஷ" TAMIL LETTER SSA 147 // U+0B9C: "ஜ" TAMIL LETTER JA 148 key("\u0BB7", moreKey("\u0B9C"))) 149 .build(); 150} 151