Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 87d30a76 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka Committed by Android (Google) Code Review
Browse files

Merge "Add keyboard layout test for API 14 and 15"

parents 0b30953d b6ca5763
Loading
Loading
Loading
Loading
+75 −0
Original line number Diff line number Diff line
/*
 * 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 android.os.Build;

/**
 * This class offers label strings of Devanagari letters that need the dotted circle to draw
 * its glyph.
 */
class DevanagariLetterConstants {
    private static final boolean NEEDS_DOTTED_CIRCLE =
            Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN;
    // U+25CC: "◌" DOTTED CIRCLE
    private static final String DOTTED_CIRCLE = NEEDS_DOTTED_CIRCLE ? "\u25CC" : "";

    // U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
    static final String SIGN_CANDRABINDU = DOTTED_CIRCLE + "\u0901";
    // U+0902: "ं" DEVANAGARI SIGN ANUSVARA
    static final String SIGN_ANUSVARA = DOTTED_CIRCLE + "\u0902";
    // U+0903: "ः" DEVANAGARI SIGN VISARGA
    static final String SIGN_VISARGA = DOTTED_CIRCLE + "\u0903";
    // U+093C: "़" DEVANAGARI SIGN NUKTA
    static final String SIGN_NUKTA = DOTTED_CIRCLE + "\u093C";
    // U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA
    static final String SIGN_AVAGRAHA = DOTTED_CIRCLE + "\u093D";
    // U+093E: "ा" DEVANAGARI VOWEL SIGN AA
    static final String VOWEL_SIGN_AA = DOTTED_CIRCLE + "\u093E";
    // U+093F: "ि" DEVANAGARI VOWEL SIGN I
    static final String VOWEL_SIGN_I = DOTTED_CIRCLE + "\u093F";
    // U+0940: "ी" DEVANAGARI VOWEL SIGN II
    static final String VOWEL_SIGN_II = DOTTED_CIRCLE + "\u0940";
    // U+0941: "ु" DEVANAGARI VOWEL SIGN U
    static final String VOWEL_SIGN_U = DOTTED_CIRCLE + "\u0941";
    // U+0942: "ू" DEVANAGARI VOWEL SIGN UU
    static final String VOWEL_SIGN_UU = DOTTED_CIRCLE + "\u0942";
    // U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R
    static final String VOWEL_SIGN_VOCALIC_R = DOTTED_CIRCLE + "\u0943";
    // U+0944: "ॄ" DEVANAGARI VOWEL SIGN VOCALIC RR
    static final String VOWEL_SIGN_VOCALIC_RR = DOTTED_CIRCLE + "\u0944";
    // U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E
    static final String VOWEL_SIGN_CANDRA_E = DOTTED_CIRCLE + "\u0945";
    // U+0947: "े" DEVANAGARI VOWEL SIGN E
    static final String VOWEL_SIGN_E = DOTTED_CIRCLE + "\u0947";
    // U+0948: "ै" DEVANAGARI VOWEL SIGN AI
    static final String VOWEL_SIGN_AI = DOTTED_CIRCLE + "\u0948";
    // U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O
    static final String VOWEL_SIGN_CANDRA_O = DOTTED_CIRCLE + "\u0949";
    // U+094A: "ॊ" DEVANAGARI VOWEL SIGN SHORT O
    static final String VOWEL_SIGN_SHORT_O = DOTTED_CIRCLE + "\u094A";
    // U+094B: "ो" DEVANAGARI VOWEL SIGN O
    static final String VOWEL_SIGN_O = DOTTED_CIRCLE + "\u094B";
    // U+094C: "ौ" DEVANAGARI VOWEL SIGN AU
    static final String VOWEL_SIGN_AU = DOTTED_CIRCLE + "\u094C";
    // U+094D: "्" DEVANAGARI SIGN VIRAMA
    static final String SIGN_VIRAMA = DOTTED_CIRCLE + "\u094D";
    // U+0970: "॰" DEVANAGARI ABBREVIATION SIGN
    static final String ABBREVIATION_SIGN = DOTTED_CIRCLE + "\u0970";
    // U+097D: "ॽ" DEVANAGARI LETTER GLOTTAL STOP
    static final String LETTER_GLOTTAL_STOP = DOTTED_CIRCLE + "\u097D";
}
+40 −15
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.inputmethod.keyboard.layout;

import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.*;

import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
@@ -96,25 +98,37 @@ public final class Hindi extends LayoutBase {
                    // U+094C: "ौ" DEVANAGARI VOWEL SIGN AU
                    // U+094C/U+0902: "ौं" DEVANAGARI VOWEL SIGN AU/DEVANAGARI SIGN ANUSVARA
                    // U+0967: "१" DEVANAGARI DIGIT ONE
                    key("\u094C", joinMoreKeys("\u094C\u0902", "\u0967", "1")),
                    key(VOWEL_SIGN_AU, "\u094C", joinMoreKeys(
                            moreKey(VOWEL_SIGN_AU + "\u0902", "\u094C\u0902"),
                            "\u0967", "1")),
                    // U+0948: "ै" DEVANAGARI VOWEL SIGN AI
                    // U+0948/U+0902: "ैं" DEVANAGARI VOWEL SIGN AI/DEVANAGARI SIGN ANUSVARA
                    // U+0968: "२" DEVANAGARI DIGIT TWO
                    key("\u0948", joinMoreKeys("\u0948\u0902", "\u0968", "2")),
                    key(VOWEL_SIGN_AI, "\u0948", joinMoreKeys(
                            moreKey(VOWEL_SIGN_AI + "\u0902", "\u0948\u0902"),
                            "\u0968", "2")),
                    // U+093E: "ा" DEVANAGARI VOWEL SIGN AA
                    // U+093E/U+0902: "ां" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN ANUSVARA
                    // U+093E/U+0901: "ाँ" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN CANDRABINDU
                    // U+0969: "३" DEVANAGARI DIGIT THREE
                    key("\u093E", joinMoreKeys("\u093E\u0902", "\u093E\u0901", "\u0969", "3")),
                    key(VOWEL_SIGN_AA, "\u093E", joinMoreKeys(
                            moreKey(VOWEL_SIGN_AA + "\u0902", "\u093E\u0902"),
                            moreKey(VOWEL_SIGN_AA + "\u0901", "\u093E\u0901"),
                            "\u0969", "3")),
                    // U+0940: "ी" DEVANAGARI VOWEL SIGN II
                    // U+0940/U+0902: "ीं" DEVANAGARI VOWEL SIGN II/DEVANAGARI SIGN ANUSVARA
                    // U+096A: "४" DEVANAGARI DIGIT FOUR
                    key("\u0940", joinMoreKeys("\u0940\u0902", "\u096A", "4")),
                    key(VOWEL_SIGN_II, "\u0940", joinMoreKeys(
                            moreKey(VOWEL_SIGN_II + "\u0902", "\u0940\u0902"),
                            "\u096A", "4")),
                    // U+0942: "ू" DEVANAGARI VOWEL SIGN UU
                    // U+0942/U+0902: "ूं" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN ANUSVARA
                    // U+0942/U+0901: "ूँ" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN CANDRABINDU
                    // U+096B: "५" DEVANAGARI DIGIT FIVE
                    key("\u0942", joinMoreKeys("\u0942\u0902", "\u0942\u0901", "\u096B", "5")),
                    key(VOWEL_SIGN_UU, "\u0942", joinMoreKeys(
                            moreKey(VOWEL_SIGN_UU + "\u0902", "\u0942\u0902"),
                            moreKey(VOWEL_SIGN_UU + "\u0901", "\u0942\u0901"),
                            "\u096B", "5")),
                    // U+092C: "ब" DEVANAGARI LETTER BA
                    // U+092C/U+0952: "ब॒" DEVANAGARI LETTER BA/DEVANAGARI STRESS SIGN ANUDATTA
                    // U+096C: "६" DEVANAGARI DIGIT SIX
@@ -150,19 +164,26 @@ public final class Hindi extends LayoutBase {
                    // U+094B/U+0902: "қं" DEVANAGARI VOWEL SIGN O/DEVANAGARI SIGN ANUSVARA
                    // U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O
                    // U+094A: "ॊ" DEVANAGARI VOWEL SIGN SHORT O
                    key("\u094B", joinMoreKeys("\u094B\u0902", "\u0949", "\u094A")),
                    key(VOWEL_SIGN_O, "\u094B", joinMoreKeys(
                            moreKey(VOWEL_SIGN_O + "\u0902", "\u094B\u0902"),
                            moreKey(VOWEL_SIGN_CANDRA_O, "\u0949"),
                            moreKey(VOWEL_SIGN_SHORT_O, "\u094A"))),
                    // U+0947: "े" DEVANAGARI VOWEL SIGN E
                    // U+0947/U+0902: "ें" DEVANAGARI VOWEL SIGN E/DEVANAGARI SIGN ANUSVARA
                    key("\u0947", moreKey("\u0947\u0902")),
                    key(VOWEL_SIGN_E, "\u0947",
                            moreKey(VOWEL_SIGN_E + "\u0902", "\u0947\u0902")),
                    // U+094D: "्" DEVANAGARI SIGN VIRAMA
                    "\u094D",
                    key(SIGN_VIRAMA, "\u094D"),
                    // U+093F: "ि" DEVANAGARI VOWEL SIGN I
                    // U+093F/U+0902: "िं" DEVANAGARI VOWEL SIGN I/DEVANAGARI SIGN ANUSVARA
                    key("\u093F", moreKey("\u093F\u0902")),
                    key(VOWEL_SIGN_I, "\u093F",
                            moreKey("\u093F" + SIGN_ANUSVARA, "\u093F\u0902")),
                    // U+0941: "ु" DEVANAGARI VOWEL SIGN U
                    // U+0941/U+0902: "ुं" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN ANUSVARA
                    // U+0941/U+0901: "ुँ" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN CANDRABINDU
                    key("\u0941", joinMoreKeys("\u0941\u0902", "\u0941\u0901")),
                    key(VOWEL_SIGN_U, "\u0941", joinMoreKeys(
                            moreKey(VOWEL_SIGN_U + "\u0902", "\u0941\u0902"),
                            moreKey(VOWEL_SIGN_U + "\u0901", "\u0941\u0901"))),
                    // U+092A: "प" DEVANAGARI LETTER PA
                    "\u092A",
                    // U+0930: "र" DEVANAGARI LETTER RA
@@ -182,8 +203,9 @@ public final class Hindi extends LayoutBase {
                    "\u091A","\u091F")
            .setKeysOfRow(3,
                    // U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O
                    key(VOWEL_SIGN_CANDRA_O, "\u0949"),
                    // U+0902: "ं" DEVANAGARI SIGN ANUSVARA
                    "\u0949", "\u0902",
                    key(SIGN_ANUSVARA, "\u0902"),
                    // U+092E: "म" DEVANAGARI LETTER MA
                    // U+0950: "ॐ" DEVANAGARI OM
                    key("\u092E", moreKey("\u0950")),
@@ -207,7 +229,10 @@ public final class Hindi extends LayoutBase {
                    // U+097D: "ॽ" DEVANAGARI LETTER GLOTTAL STOP
                    // U+0970: "॰" DEVANAGARI ABBREVIATION SIGN
                    // U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA
                    key("\u093C", joinMoreKeys("\u097D", "\u0970", "\u093D")))
                    key(SIGN_NUKTA, "\u093C", joinMoreKeys(
                            moreKey(LETTER_GLOTTAL_STOP, "\u097D"),
                            moreKey(ABBREVIATION_SIGN, "\u0970"),
                            moreKey(SIGN_AVAGRAHA, "\u093D"))))
            .build();

    private static final ExpectedKey[][] ALPHABET_SHIFTED_COMMON = new ExpectedKeyboardBuilder()
@@ -232,7 +257,7 @@ public final class Hindi extends LayoutBase {
                    // U+092D: "भ" DEVANAGARI LETTER BHA
                    // U+0903: "ः" DEVANAGARI SIGN VISARGA
                    // U+0918: "घ" DEVANAGARI LETTER GHA
                    "\u092D", "\u0903", "\u0918",
                    "\u092D", key(SIGN_VISARGA, "\u0903"), "\u0918",
                    // U+0927: "ध" DEVANAGARI LETTER DHA
                    // U+0915/U+094D/U+0937:
                    //     "क्ष" DEVANAGARI LETTER KA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER SSA
@@ -285,7 +310,7 @@ public final class Hindi extends LayoutBase {
                    "\u0911",
                    // U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
                    // U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E
                    key("\u0901", moreKey("\u0945")),
                    key(SIGN_CANDRABINDU, "\u0901", moreKey(VOWEL_SIGN_CANDRA_E, "\u0945")),
                    // U+0923: "ण" DEVANAGARI LETTER NNA
                    // U+0929: "ऩ" DEVANAGARI LETTER NNNA
                    "\u0923", "\u0929",
@@ -297,7 +322,7 @@ public final class Hindi extends LayoutBase {
                    "\u0936", "\u0937",
                    // U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R
                    // U+0944: "ॄ" DEVANAGARI VOWEL SIGN VOCALIC RR
                    key("\u0943", moreKey("\u0944")),
                    key(VOWEL_SIGN_VOCALIC_R, "\u0943", moreKey(VOWEL_SIGN_VOCALIC_RR, "\u0944")),
                    // U+091E: "ञ" DEVANAGARI LETTER NYA
                    "\u091E")
            .build();
+25 −12
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.inputmethod.keyboard.layout;

import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.*;

import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.layout.Hindi.HindiCustomizer;
import com.android.inputmethod.keyboard.layout.Hindi.HindiSymbols;
@@ -70,13 +72,14 @@ public final class NepaliRomanized extends LayoutBase {
                    // U+091F: "ट" DEVANAGARI LETTER TTA
                    // U+0967: "१" DEVANAGARI DIGIT ONE
                    // U+093C: "़" DEVANAGARI SIGN NUKTA
                    // TODO: Nukta should be moreKey(SIGN_NUKTA, "\u093C").
                    key("\u091F", joinMoreKeys("\u0967", "1", "\u093C")),
                    // U+094C: "ौ" DEVANAGARI VOWEL SIGN AU
                    // U+0968: "२" DEVANAGARI DIGIT TWO
                    key("\u094C", joinMoreKeys("\u0968", "2")),
                    key(VOWEL_SIGN_AU, "\u094C", joinMoreKeys("\u0968", "2")),
                    // U+0947: "े" DEVANAGARI VOWEL SIGN E
                    // U+0969: "३" DEVANAGARI DIGIT THREE
                    key("\u0947", joinMoreKeys("\u0969", "3")),
                    key(VOWEL_SIGN_E, "\u0947", joinMoreKeys("\u0969", "3")),
                    // U+0930: "र" DEVANAGARI LETTER RA
                    // U+096A: "४" DEVANAGARI DIGIT FOUR
                    key("\u0930", joinMoreKeys("\u096A", "4")),
@@ -88,13 +91,13 @@ public final class NepaliRomanized extends LayoutBase {
                    key("\u092F", joinMoreKeys("\u096C", "6")),
                    // U+0941: "ु" DEVANAGARI VOWEL SIGN U
                    // U+096D: "७" DEVANAGARI DIGIT SEVEN
                    key("\u0941", joinMoreKeys("\u096D", "7")),
                    key(VOWEL_SIGN_U, "\u0941", joinMoreKeys("\u096D", "7")),
                    // U+093F: "ि" DEVANAGARI VOWEL SIGN I
                    // U+096E: "८" DEVANAGARI DIGIT EIGHT
                    key("\u093F", joinMoreKeys("\u096E", "8")),
                    key(VOWEL_SIGN_I, "\u093F", joinMoreKeys("\u096E", "8")),
                    // U+094B: "ो" DEVANAGARI VOWEL SIGN O
                    // U+096F: "९" DEVANAGARI DIGIT NINE
                    key("\u094B", joinMoreKeys("\u096F", "9")),
                    key(VOWEL_SIGN_O, "\u094B", joinMoreKeys("\u096F", "9")),
                    // U+092A: "प" DEVANAGARI LETTER PA
                    // U+0966: "०" DEVANAGARI DIGIT ZERO
                    key("\u092A", joinMoreKeys("\u0966", "0")),
@@ -102,6 +105,7 @@ public final class NepaliRomanized extends LayoutBase {
                    "\u0907")
            .setKeysOfRow(2,
                    // U+093E: "ा" DEVANAGARI VOWEL SIGN AA
                    key(VOWEL_SIGN_AA, "\u093E"),
                    // U+0938: "स" DEVANAGARI LETTER SA
                    // U+0926: "द" DEVANAGARI LETTER DA
                    // U+0909: "उ" DEVANAGARI LETTER U
@@ -112,8 +116,8 @@ public final class NepaliRomanized extends LayoutBase {
                    // U+0932: "ल" DEVANAGARI LETTER LA
                    // U+090F: "ए" DEVANAGARI LETTER E
                    // U+0950: "ॐ" DEVANAGARI OM
                    "\u093E", "\u0938", "\u0926", "\u0909", "\u0917", "\u0939", "\u091C", "\u0915",
                    "\u0932", "\u090F", "\u0950")
                    "\u0938", "\u0926", "\u0909", "\u0917", "\u0939", "\u091C", "\u0915", "\u0932",
                    "\u090F", "\u0950")
            .setKeysOfRow(3,
                    // U+0937: "ष" DEVANAGARI LETTER SSA
                    // U+0921: "ड" DEVANAGARI LETTER DDA
@@ -127,23 +131,28 @@ public final class NepaliRomanized extends LayoutBase {
                    // U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA
                    key("\u0964", moreKey("\u093D")),
                    // U+094D: "्" DEVANAGARI SIGN VIRAMA
                    "\u094D")
                    key(SIGN_VIRAMA, "\u094D"))
            .build();

    private static final ExpectedKey[][] ALPHABET_SHIFTED_COMMON = new ExpectedKeyboardBuilder()
            .setKeysOfRow(1,
                    // U+0920: "ठ" DEVANAGARI LETTER TTHA
                    // U+0914: "औ" DEVANAGARI LETTER AU
                    "\u0920", "\u0914",
                    // U+0948: "ै" DEVANAGARI VOWEL SIGN AI
                    key(VOWEL_SIGN_AI, "\u0948"),
                    // U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R
                    key(VOWEL_SIGN_VOCALIC_R, "\u0943"),
                    // U+0925: "थ" DEVANAGARI LETTER THA
                    // U+091E: "ञ" DEVANAGARI LETTER NYA
                    "\u0925", "\u091E",
                    // U+0942: "ू" DEVANAGARI VOWEL SIGN UU
                    key(VOWEL_SIGN_UU, "\u0942"),
                    // U+0940: "ी" DEVANAGARI VOWEL SIGN II
                    key(VOWEL_SIGN_II, "\u0940"),
                    // U+0913: "ओ" DEVANAGARI LETTER O
                    // U+092B: "फ" DEVANAGARI LETTER PHA
                    // U+0908: "ई" DEVANAGARI LETTER II
                    "\u0920", "\u0914", "\u0948", "\u0943", "\u0925", "\u091E", "\u0942", "\u0940",
                    "\u0913", "\u092B", "\u0908")
            .setKeysOfRow(2,
                    // U+0906: "आ" DEVANAGARI LETTER AA
@@ -158,18 +167,22 @@ public final class NepaliRomanized extends LayoutBase {
                    // U+0910: "ऐ" DEVANAGARI LETTER AI
                    // U+0903: "ः" DEVANAGARI SIGN VISARGA
                    "\u0906", "\u0936", "\u0927", "\u090A", "\u0918", "\u0905", "\u091D", "\u0916",
                    "\u0965", "\u0910", "\u0903")
                    "\u0965", "\u0910", key(SIGN_VISARGA, "\u0903"))
            .setKeysOfRow(3,
                    // U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R
                    // U+0922: "ढ" DEVANAGARI LETTER DDHA
                    // U+091B: "छ" DEVANAGARI LETTER CHA
                    "\u090B", "\u0922", "\u091B",
                    // U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
                    key(SIGN_CANDRABINDU, "\u0901"),
                    // U+092D: "भ" DEVANAGARI LETTER BHA
                    // U+0923: "ण" DEVANAGARI LETTER NNA
                    "\u092D", "\u0923",
                    // U+0902: "ं" DEVANAGARI SIGN ANUSVARA
                    key(SIGN_ANUSVARA, "\u0902"),
                    // U+0919: "ङ" DEVANAGARI LETTER NGA
                    "\u0919",
                    // U+094D: "्" DEVANAGARI SIGN VIRAMA
                    "\u090B", "\u0922", "\u091B", "\u0901", "\u092D", "\u0923", "\u0902", "\u0919",
                    "\u094D")
                    key(SIGN_VIRAMA, "\u094D"))
            .build();
}
+32 −15

File changed.

Preview size limit exceeded, changes collapsed.