diff --git a/app/build.gradle b/app/build.gradle index 2bb4874..f16f13a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,6 +38,8 @@ dependencies { // implementation fileTree(include: ['*.jar'], dir: 'libs') implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation project(':lib') + // TODO not ready yet + implementation project(':keyboardview') //implementation project(':dawg-android') implementation "kentvu.dawgjava:dawg-android:$dawgjava_version" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version" diff --git a/app/src/main/java/com/vutrankien/t9vietnamese/android/KeyboardActionListener.kt b/app/src/main/java/com/vutrankien/t9vietnamese/android/KeyboardActionListener.kt index 70dd9db..9658667 100644 --- a/app/src/main/java/com/vutrankien/t9vietnamese/android/KeyboardActionListener.kt +++ b/app/src/main/java/com/vutrankien/t9vietnamese/android/KeyboardActionListener.kt @@ -1,6 +1,7 @@ package com.vutrankien.t9vietnamese.android -import android.inputmethodservice.KeyboardView +import com.android.inputmethod.keyboard.KeyboardActionListener +import com.android.inputmethod.latin.common.InputPointers import com.vutrankien.t9vietnamese.lib.Event import com.vutrankien.t9vietnamese.lib.EventWithData import com.vutrankien.t9vietnamese.lib.Key @@ -13,40 +14,25 @@ internal class KeyboardActionListener( logFactory: LogFactory, private val scope: CoroutineScope, private val eventSource: Channel> -) : KeyboardView.OnKeyboardActionListener { +) : KeyboardActionListener { private val log: LogFactory.Log = logFactory.newLog("KeyboardActionListener") - override fun swipeRight() { - log.d("swipeRight") - } - - override fun onPress(primaryCode: Int) { - log.d("onPress") - } - override fun onRelease(primaryCode: Int) { - log.d("onRelease") + override fun onPressKey(primaryCode: Int, repeatCount: Int, isSinglePointer: Boolean) { + log.d("onPressKey:$primaryCode") } - override fun swipeLeft() { - log.d("swipeLeft") + override fun onReleaseKey(primaryCode: Int, withSliding: Boolean) { + log.d("onReleaseKey:$primaryCode") } - override fun swipeUp() { - log.d("swipeUp") + override fun onCodeInput(primaryCode: Int, x: Int, y: Int, isKeyRepeat: Boolean) { + log.d("onCodeInput:$primaryCode") } - override fun swipeDown() { - log.d("swipeDown") - } - - override fun onKey(primaryCode: Int, keyCodes: IntArray?) { - log.d("onKey:$primaryCode,${keyCodes?.joinToString()}") - } - - override fun onText(text: CharSequence?) { - log.d("onText:$text") + override fun onTextInput(text: String?) { + log.d("onTextInput:$text") if(text == null) { - log.w("onText:text is null!!") + log.w("onTextInput:text is null!!") return } scope.launch { @@ -56,4 +42,33 @@ internal class KeyboardActionListener( )) } } + + override fun onStartBatchInput() { + log.d("onStartBatchInput") + } + + override fun onUpdateBatchInput(batchPointers: InputPointers?) { + log.d("onUpdateBatchInput:$batchPointers") + } + + override fun onEndBatchInput(batchPointers: InputPointers?) { + log.d("onEndBatchInput:$batchPointers") + } + + override fun onCancelBatchInput() { + log.d("onCancelBatchInput") + } + + override fun onCancelInput() { + log.d("onCancelInput") + } + + override fun onFinishSlidingInput() { + log.d("onFinishSlidingInput") + } + + override fun onCustomRequest(requestCode: Int): Boolean { + log.d("onCustomRequest") + return false + } } \ No newline at end of file diff --git a/app/src/main/java/com/vutrankien/t9vietnamese/android/MainActivity.kt b/app/src/main/java/com/vutrankien/t9vietnamese/android/MainActivity.kt index 752c7af..6ded8f6 100644 --- a/app/src/main/java/com/vutrankien/t9vietnamese/android/MainActivity.kt +++ b/app/src/main/java/com/vutrankien/t9vietnamese/android/MainActivity.kt @@ -3,18 +3,29 @@ package com.vutrankien.t9vietnamese.android import android.app.Activity import android.content.Context import android.content.Intent -import android.inputmethodservice.KeyboardView import android.os.Bundle import android.os.PowerManager import android.provider.Settings +import android.text.InputType import android.view.Menu import android.view.MenuItem import android.view.View +import android.view.inputmethod.EditorInfo +import android.view.inputmethod.InputMethodInfo import android.view.inputmethod.InputMethodManager +import android.view.inputmethod.InputMethodSubtype import android.widget.Button import android.widget.EditText import android.widget.TextView import androidx.core.content.ContextCompat +import com.android.inputmethod.accessibility.AccessibilityUtils +import com.android.inputmethod.keyboard.KeyboardId +import com.android.inputmethod.keyboard.KeyboardLayoutSet +import com.android.inputmethod.keyboard.MainKeyboardView +import com.android.inputmethod.latin.InputView +import com.android.inputmethod.latin.RichInputMethodManager +import com.android.inputmethod.latin.RichInputMethodSubtype +import com.android.inputmethod.latin.utils.ResourceUtils import com.vutrankien.t9vietnamese.lib.* import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -36,6 +47,8 @@ class MainActivity : Activity(), MVPView { companion object { private const val WAKELOCK_TIMEOUT = 60000L } + private lateinit var subtype: InputMethodSubtype + override val scope = CoroutineScope(Dispatchers.Main + Job()) override val eventSource: Channel> = @@ -71,9 +84,34 @@ class MainActivity : Activity(), MVPView { (application as T9Application).appComponent.inject(this) log = logFactory.newLog("MainActivity") setContentView(R.layout.main) - val kbView = findViewById(R.id.dialpad) - kbView.keyboard = T9Keyboard(this, R.xml.t9) - kbView.setOnKeyboardActionListener( + AccessibilityUtils.init(this) + val inputView = findViewById(R.id.dialpad) + val kbView = + inputView.findViewById(com.android.inputmethod.latin.R.id.keyboard_view) as MainKeyboardView + val editorInfo = EditorInfo() + editorInfo.inputType = InputType.TYPE_CLASS_TEXT + val builder = KeyboardLayoutSet.Builder(this, editorInfo) + val res = resources + val keyboardWidth = ResourceUtils.getDefaultKeyboardWidth(res) + val keyboardHeight = ResourceUtils.getDefaultKeyboardHeight(res) + builder.setKeyboardGeometry(keyboardWidth, keyboardHeight) + RichInputMethodManager.init(this) + val mRichImm = RichInputMethodManager.getInstance() + val imi: InputMethodInfo = mRichImm.getInputMethodInfoOfThisIme() + val subtypeCount = imi.subtypeCount + for (index in 0 until subtypeCount) { + //mAllSubtypesList.add(imi.getSubtypeAt(index)) + if (imi.getSubtypeAt(index) != null) { + subtype = imi.getSubtypeAt(index)!! + break + } + } + builder.setSubtype(RichInputMethodSubtype.getRichInputMethodSubtype(subtype)) + builder.setIsSpellChecker(true /* isSpellChecker */) + builder.disableTouchPositionCorrectionData() + val keyboardLayoutSet = builder.build() + kbView.setKeyboard(keyboardLayoutSet.getKeyboard(KeyboardId.ELEMENT_ALPHABET)) + kbView.setKeyboardActionListener( KeyboardActionListener( logFactory, scope, diff --git a/app/src/main/java/com/vutrankien/t9vietnamese/android/T9Keyboard.java b/app/src/main/java/com/vutrankien/t9vietnamese/android/T9Keyboard.java deleted file mode 100644 index 976c063..0000000 --- a/app/src/main/java/com/vutrankien/t9vietnamese/android/T9Keyboard.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.vutrankien.t9vietnamese.android; - -import android.content.Context; -import android.inputmethodservice.Keyboard; - -/** - * Created by vutrankien on 17/07/24. - */ - -class T9Keyboard extends Keyboard { - T9Keyboard(Context context, int xmlLayoutResId) { - super(context, xmlLayoutResId); - } - -} diff --git a/app/src/main/java/com/vutrankien/t9vietnamese/android/T9Vietnamese.kt b/app/src/main/java/com/vutrankien/t9vietnamese/android/T9Vietnamese.kt index 337055e..4f4938d 100644 --- a/app/src/main/java/com/vutrankien/t9vietnamese/android/T9Vietnamese.kt +++ b/app/src/main/java/com/vutrankien/t9vietnamese/android/T9Vietnamese.kt @@ -4,6 +4,12 @@ import android.inputmethodservice.InputMethodService import android.view.View import android.widget.Button import androidx.recyclerview.widget.RecyclerView +import com.android.inputmethod.keyboard.KeyboardId +import com.android.inputmethod.keyboard.KeyboardLayoutSet +import com.android.inputmethod.keyboard.MainKeyboardView +import com.android.inputmethod.keyboard.internal.KeyboardBuilder +import com.android.inputmethod.keyboard.internal.KeyboardParams +import com.android.inputmethod.latin.InputView import com.vutrankien.t9vietnamese.lib.* import kotlinx.coroutines.* import kotlinx.coroutines.channels.Channel @@ -39,9 +45,14 @@ class T9Vietnamese : InputMethodService(), MVPView { override fun onCreateInputView(): View { val inputView = layoutInflater.inflate( - R.layout.input, null) as (T9KeyboardView) - inputView.keyboard = T9Keyboard(this, R.xml.t9) - inputView.setOnKeyboardActionListener( + R.layout.input, null) as (InputView) + val kbView = + inputView.findViewById(com.android.inputmethod.latin.R.id.keyboard_view) as MainKeyboardView + val builder = KeyboardBuilder(this, KeyboardParams()) + builder.load(R.xml.t9, KeyboardId(KeyboardId.ELEMENT_PHONE, KeyboardLayoutSet.Params()/*.also { mKeyboardWith = .... }*/)) + val keyboard = builder.build() + kbView.setKeyboard(keyboard) + kbView.setKeyboardActionListener( KeyboardActionListener( logFactory, scope, diff --git a/app/src/main/res/layout/input.xml b/app/src/main/res/layout/input.xml index 0cbdab9..69cb00d 100644 --- a/app/src/main/res/layout/input.xml +++ b/app/src/main/res/layout/input.xml @@ -1,9 +1,13 @@ - + android:layout_alignParentBottom="true"> + + + diff --git a/app/src/main/res/layout/main.xml b/app/src/main/res/layout/main.xml index 160b0d2..3113427 100644 --- a/app/src/main/res/layout/main.xml +++ b/app/src/main/res/layout/main.xml @@ -70,7 +70,7 @@ android:layout_marginStart="8dp" android:layout_marginEnd="8dp" android:hint="@string/test_hint" - app:layout_constraintBottom_toTopOf="@+id/dialpad" + app:layout_constraintBottom_toTopOf="@id/dialpad" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> diff --git a/build.gradle b/build.gradle index 5b0cad2..32569c6 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext { - kotlin_version = '1.3.71' + kotlin_version = '1.3.72' kotest_version = '4.0.1' } repositories { @@ -9,7 +9,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:3.5.3' + classpath 'com.android.tools.build:gradle:3.6.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b2ea785..bf81647 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip diff --git a/keyboardview/.gitignore b/keyboardview/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/keyboardview/.gitignore @@ -0,0 +1 @@ +/build diff --git a/keyboardview/build.gradle b/keyboardview/build.gradle new file mode 100644 index 0000000..9a7973d --- /dev/null +++ b/keyboardview/build.gradle @@ -0,0 +1,63 @@ +/* + * Vietnamese-t9-ime: T9 input method for Vietnamese. + * Copyright (C) 2020 Vu Tran Kien. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +apply plugin: 'com.android.library' + +android { + compileSdkVersion 29 + buildToolsVersion "29.0.1" + + defaultConfig { + minSdkVersion 15 + targetSdkVersion 29 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles 'consumer-rules.pro' + } + sourceSets { + main { + res.srcDirs += ['java/res'] + java.srcDirs += ['common/src', 'java/src'] + } + + androidTest { + res.srcDirs = ['tests/res'] + java.srcDirs = ['tests/src'] + } + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'com.google.code.findbugs:jsr305:3.0.2' + + implementation 'androidx.appcompat:appcompat:1.1.0' + testImplementation 'junit:junit:4.12' + androidTestImplementation 'androidx.test.ext:junit:1.1.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' +} diff --git a/keyboardview/common/src/com/android/inputmethod/annotations/ExternallyReferenced.java b/keyboardview/common/src/com/android/inputmethod/annotations/ExternallyReferenced.java new file mode 100644 index 0000000..ea5f12c --- /dev/null +++ b/keyboardview/common/src/com/android/inputmethod/annotations/ExternallyReferenced.java @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2012 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.annotations; + +/** + * Denotes that the class, method or field should not be eliminated by ProGuard, + * because it is externally referenced. (See proguard.flags) + */ +public @interface ExternallyReferenced { +} diff --git a/keyboardview/common/src/com/android/inputmethod/latin/common/CollectionUtils.java b/keyboardview/common/src/com/android/inputmethod/latin/common/CollectionUtils.java new file mode 100644 index 0000000..80fae5f --- /dev/null +++ b/keyboardview/common/src/com/android/inputmethod/latin/common/CollectionUtils.java @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2012 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.latin.common; + +import com.android.inputmethod.annotations.UsedForTesting; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Map; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; + +/** + * Utility methods for working with collections. + */ +public final class CollectionUtils { + private CollectionUtils() { + // This utility class is not publicly instantiable. + } + + /** + * Converts a sub-range of the given array to an ArrayList of the appropriate type. + * @param array Array to be converted. + * @param start First index inclusive to be converted. + * @param end Last index exclusive to be converted. + * @throws IllegalArgumentException if start or end are out of range or start > end. + */ + @Nonnull + public static ArrayList arrayAsList(@Nonnull final E[] array, final int start, + final int end) { + if (start < 0 || start > end || end > array.length) { + throw new IllegalArgumentException("Invalid start: " + start + " end: " + end + + " with array.length: " + array.length); + } + + final ArrayList list = new ArrayList<>(end - start); + for (int i = start; i < end; i++) { + list.add(array[i]); + } + return list; + } + + /** + * Tests whether c contains no elements, true if c is null or c is empty. + * @param c Collection to test. + * @return Whether c contains no elements. + */ + @UsedForTesting + public static boolean isNullOrEmpty(@Nullable final Collection c) { + return c == null || c.isEmpty(); + } + + /** + * Tests whether map contains no elements, true if map is null or map is empty. + * @param map Map to test. + * @return Whether map contains no elements. + */ + @UsedForTesting + public static boolean isNullOrEmpty(@Nullable final Map map) { + return map == null || map.isEmpty(); + } +} diff --git a/keyboardview/common/src/com/android/inputmethod/latin/common/ComposedData.java b/keyboardview/common/src/com/android/inputmethod/latin/common/ComposedData.java new file mode 100644 index 0000000..7f09660 --- /dev/null +++ b/keyboardview/common/src/com/android/inputmethod/latin/common/ComposedData.java @@ -0,0 +1,66 @@ +/* + * 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.latin.common; + +import javax.annotation.Nonnull; + +/** + * An immutable class that encapsulates a snapshot of word composition data. + */ +public class ComposedData { + @Nonnull + public final InputPointers mInputPointers; + public final boolean mIsBatchMode; + @Nonnull + public final String mTypedWord; + + public ComposedData(@Nonnull final InputPointers inputPointers, final boolean isBatchMode, + @Nonnull final String typedWord) { + mInputPointers = inputPointers; + mIsBatchMode = isBatchMode; + mTypedWord = typedWord; + } + + /** + * Copy the code points in the typed word to a destination array of ints. + * + * If the array is too small to hold the code points in the typed word, nothing is copied and + * -1 is returned. + * + * @param destination the array of ints. + * @return the number of copied code points. + */ + public int copyCodePointsExceptTrailingSingleQuotesAndReturnCodePointCount( + @Nonnull final int[] destination) { + // lastIndex is exclusive + final int lastIndex = mTypedWord.length() + - StringUtils.getTrailingSingleQuotesCount(mTypedWord); + if (lastIndex <= 0) { + // The string is empty or contains only single quotes. + return 0; + } + + // The following function counts the number of code points in the text range which begins + // at index 0 and extends to the character at lastIndex. + final int codePointSize = Character.codePointCount(mTypedWord, 0, lastIndex); + if (codePointSize > destination.length) { + return -1; + } + return StringUtils.copyCodePointsAndReturnCodePointCount(destination, mTypedWord, 0, + lastIndex, true /* downCase */); + } +} diff --git a/keyboardview/common/src/com/android/inputmethod/latin/common/Constants.java b/keyboardview/common/src/com/android/inputmethod/latin/common/Constants.java new file mode 100644 index 0000000..b491c8c --- /dev/null +++ b/keyboardview/common/src/com/android/inputmethod/latin/common/Constants.java @@ -0,0 +1,335 @@ +/* + * Copyright (C) 2012 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.latin.common; + +import com.android.inputmethod.annotations.UsedForTesting; + +import javax.annotation.Nonnull; + +public final class Constants { + + public static final class Color { + /** + * The alpha value for fully opaque. + */ + public final static int ALPHA_OPAQUE = 255; + } + + public static final class ImeOption { + /** + * The private IME option used to indicate that no microphone should be shown for a given + * text field. For instance, this is specified by the search dialog when the dialog is + * already showing a voice search button. + * + * @deprecated Use {@link ImeOption#NO_MICROPHONE} with package name prefixed. + */ + @SuppressWarnings("dep-ann") + public static final String NO_MICROPHONE_COMPAT = "nm"; + + /** + * The private IME option used to indicate that no microphone should be shown for a given + * text field. For instance, this is specified by the search dialog when the dialog is + * already showing a voice search button. + */ + public static final String NO_MICROPHONE = "noMicrophoneKey"; + + /** + * The private IME option used to indicate that no settings key should be shown for a given + * text field. + */ + public static final String NO_SETTINGS_KEY = "noSettingsKey"; + + /** + * The private IME option used to indicate that the given text field needs ASCII code points + * input. + * + * @deprecated Use EditorInfo#IME_FLAG_FORCE_ASCII. + */ + @SuppressWarnings("dep-ann") + public static final String FORCE_ASCII = "forceAscii"; + + /** + * The private IME option used to suppress the floating gesture preview for a given text + * field. This overrides the corresponding keyboard settings preference. + * {@link com.android.inputmethod.latin.settings.SettingsValues#mGestureFloatingPreviewTextEnabled} + */ + public static final String NO_FLOATING_GESTURE_PREVIEW = "noGestureFloatingPreview"; + + private ImeOption() { + // This utility class is not publicly instantiable. + } + } + + public static final class Subtype { + /** + * The subtype mode used to indicate that the subtype is a keyboard. + */ + public static final String KEYBOARD_MODE = "keyboard"; + + public static final class ExtraValue { + /** + * The subtype extra value used to indicate that this subtype is capable of + * entering ASCII characters. + */ + public static final String ASCII_CAPABLE = "AsciiCapable"; + + /** + * The subtype extra value used to indicate that this subtype is enabled + * when the default subtype is not marked as ascii capable. + */ + public static final String ENABLED_WHEN_DEFAULT_IS_NOT_ASCII_CAPABLE = + "EnabledWhenDefaultIsNotAsciiCapable"; + + /** + * The subtype extra value used to indicate that this subtype is capable of + * entering emoji characters. + */ + public static final String EMOJI_CAPABLE = "EmojiCapable"; + + /** + * The subtype extra value used to indicate that this subtype requires a network + * connection to work. + */ + public static final String REQ_NETWORK_CONNECTIVITY = "requireNetworkConnectivity"; + + /** + * The subtype extra value used to indicate that the display name of this subtype + * contains a "%s" for printf-like replacement and it should be replaced by + * this extra value. + * This extra value is supported on JellyBean and later. + */ + public static final String UNTRANSLATABLE_STRING_IN_SUBTYPE_NAME = + "UntranslatableReplacementStringInSubtypeName"; + + /** + * The subtype extra value used to indicate this subtype keyboard layout set name. + * This extra value is private to LatinIME. + */ + public static final String KEYBOARD_LAYOUT_SET = "KeyboardLayoutSet"; + + /** + * The subtype extra value used to indicate that this subtype is an additional subtype + * that the user defined. This extra value is private to LatinIME. + */ + public static final String IS_ADDITIONAL_SUBTYPE = "isAdditionalSubtype"; + + /** + * The subtype extra value used to specify the combining rules. + */ + public static final String COMBINING_RULES = "CombiningRules"; + + private ExtraValue() { + // This utility class is not publicly instantiable. + } + } + + private Subtype() { + // This utility class is not publicly instantiable. + } + } + + public static final class TextUtils { + /** + * Capitalization mode for {@link android.text.TextUtils#getCapsMode}: don't capitalize + * characters. This value may be used with + * {@link android.text.TextUtils#CAP_MODE_CHARACTERS}, + * {@link android.text.TextUtils#CAP_MODE_WORDS}, and + * {@link android.text.TextUtils#CAP_MODE_SENTENCES}. + */ + // TODO: Straighten this out. It's bizarre to have to use android.text.TextUtils.CAP_MODE_* + // except for OFF that is in Constants.TextUtils. + public static final int CAP_MODE_OFF = 0; + + private TextUtils() { + // This utility class is not publicly instantiable. + } + } + + public static final int NOT_A_CODE = -1; + public static final int NOT_A_CURSOR_POSITION = -1; + // TODO: replace the following constants with state in InputTransaction? + public static final int NOT_A_COORDINATE = -1; + public static final int SUGGESTION_STRIP_COORDINATE = -2; + public static final int EXTERNAL_KEYBOARD_COORDINATE = -4; + + // A hint on how many characters to cache from the TextView. A good value of this is given by + // how many characters we need to be able to almost always find the caps mode. + public static final int EDITOR_CONTENTS_CACHE_SIZE = 1024; + // How many characters we accept for the recapitalization functionality. This needs to be + // large enough for all reasonable purposes, but avoid purposeful attacks. 100k sounds about + // right for this. + public static final int MAX_CHARACTERS_FOR_RECAPITALIZATION = 1024 * 100; + + // Key events coming any faster than this are long-presses. + public static final int LONG_PRESS_MILLISECONDS = 200; + // TODO: Set this value appropriately. + public static final int GET_SUGGESTED_WORDS_TIMEOUT = 200; + // How many continuous deletes at which to start deleting at a higher speed. + public static final int DELETE_ACCELERATE_AT = 20; + + public static final String WORD_SEPARATOR = " "; + + public static boolean isValidCoordinate(final int coordinate) { + // Detect {@link NOT_A_COORDINATE}, {@link SUGGESTION_STRIP_COORDINATE}, + // and {@link SPELL_CHECKER_COORDINATE}. + return coordinate >= 0; + } + + /** + * Custom request code used in + * {@link com.android.inputmethod.keyboard.KeyboardActionListener#onCustomRequest(int)}. + */ + // The code to show input method picker. + public static final int CUSTOM_CODE_SHOW_INPUT_METHOD_PICKER = 1; + + /** + * Some common keys code. Must be positive. + */ + public static final int CODE_ENTER = '\n'; + public static final int CODE_TAB = '\t'; + public static final int CODE_SPACE = ' '; + public static final int CODE_PERIOD = '.'; + public static final int CODE_COMMA = ','; + public static final int CODE_DASH = '-'; + public static final int CODE_SINGLE_QUOTE = '\''; + public static final int CODE_DOUBLE_QUOTE = '"'; + public static final int CODE_SLASH = '/'; + public static final int CODE_BACKSLASH = '\\'; + public static final int CODE_VERTICAL_BAR = '|'; + public static final int CODE_COMMERCIAL_AT = '@'; + public static final int CODE_PLUS = '+'; + public static final int CODE_PERCENT = '%'; + public static final int CODE_CLOSING_PARENTHESIS = ')'; + public static final int CODE_CLOSING_SQUARE_BRACKET = ']'; + public static final int CODE_CLOSING_CURLY_BRACKET = '}'; + public static final int CODE_CLOSING_ANGLE_BRACKET = '>'; + public static final int CODE_INVERTED_QUESTION_MARK = 0xBF; // ¿ + public static final int CODE_INVERTED_EXCLAMATION_MARK = 0xA1; // ¡ + public static final int CODE_GRAVE_ACCENT = '`'; + public static final int CODE_CIRCUMFLEX_ACCENT = '^'; + public static final int CODE_TILDE = '~'; + + public static final String REGEXP_PERIOD = "\\."; + public static final String STRING_SPACE = " "; + + /** + * Special keys code. Must be negative. + * These should be aligned with constants in + * {@link com.android.inputmethod.keyboard.internal.KeyboardCodesSet}. + */ + public static final int CODE_SHIFT = -1; + public static final int CODE_CAPSLOCK = -2; + public static final int CODE_SWITCH_ALPHA_SYMBOL = -3; + public static final int CODE_OUTPUT_TEXT = -4; + public static final int CODE_DELETE = -5; + public static final int CODE_SETTINGS = -6; + public static final int CODE_SHORTCUT = -7; + public static final int CODE_ACTION_NEXT = -8; + public static final int CODE_ACTION_PREVIOUS = -9; + public static final int CODE_LANGUAGE_SWITCH = -10; + public static final int CODE_EMOJI = -11; + public static final int CODE_SHIFT_ENTER = -12; + public static final int CODE_SYMBOL_SHIFT = -13; + public static final int CODE_ALPHA_FROM_EMOJI = -14; + // Code value representing the code is not specified. + public static final int CODE_UNSPECIFIED = -15; + + public static boolean isLetterCode(final int code) { + return code >= CODE_SPACE; + } + + @Nonnull + public static String printableCode(final int code) { + switch (code) { + case CODE_SHIFT: return "shift"; + case CODE_CAPSLOCK: return "capslock"; + case CODE_SWITCH_ALPHA_SYMBOL: return "symbol"; + case CODE_OUTPUT_TEXT: return "text"; + case CODE_DELETE: return "delete"; + case CODE_SETTINGS: return "settings"; + case CODE_SHORTCUT: return "shortcut"; + case CODE_ACTION_NEXT: return "actionNext"; + case CODE_ACTION_PREVIOUS: return "actionPrevious"; + case CODE_LANGUAGE_SWITCH: return "languageSwitch"; + case CODE_EMOJI: return "emoji"; + case CODE_SHIFT_ENTER: return "shiftEnter"; + case CODE_ALPHA_FROM_EMOJI: return "alpha"; + case CODE_UNSPECIFIED: return "unspec"; + case CODE_TAB: return "tab"; + case CODE_ENTER: return "enter"; + case CODE_SPACE: return "space"; + default: + if (code < CODE_SPACE) return String.format("\\u%02X", code); + if (code < 0x100) return String.format("%c", code); + if (code < 0x10000) return String.format("\\u%04X", code); + return String.format("\\U%05X", code); + } + } + + @Nonnull + public static String printableCodes(@Nonnull final int[] codes) { + final StringBuilder sb = new StringBuilder(); + boolean addDelimiter = false; + for (final int code : codes) { + if (code == NOT_A_CODE) break; + if (addDelimiter) sb.append(", "); + sb.append(printableCode(code)); + addDelimiter = true; + } + return "[" + sb + "]"; + } + + /** + * Screen metrics (a.k.a. Device form factor) constants of + * {@link com.android.inputmethod.latin.R.integer#config_screen_metrics}. + */ + public static final int SCREEN_METRICS_SMALL_PHONE = 0; + public static final int SCREEN_METRICS_LARGE_PHONE = 1; + public static final int SCREEN_METRICS_LARGE_TABLET = 2; + public static final int SCREEN_METRICS_SMALL_TABLET = 3; + + @UsedForTesting + public static boolean isPhone(final int screenMetrics) { + return screenMetrics == SCREEN_METRICS_SMALL_PHONE + || screenMetrics == SCREEN_METRICS_LARGE_PHONE; + } + + @UsedForTesting + public static boolean isTablet(final int screenMetrics) { + return screenMetrics == SCREEN_METRICS_SMALL_TABLET + || screenMetrics == SCREEN_METRICS_LARGE_TABLET; + } + + /** + * Default capacity of gesture points container. + * This constant is used by {@link com.android.inputmethod.keyboard.internal.BatchInputArbiter} + * and etc. to preallocate regions that contain gesture event points. + */ + public static final int DEFAULT_GESTURE_POINTS_CAPACITY = 128; + + public static final int MAX_IME_DECODER_RESULTS = 20; + public static final int DECODER_SCORE_SCALAR = 1000000; + public static final int DECODER_MAX_SCORE = 1000000000; + + public static final int EVENT_BACKSPACE = 1; + public static final int EVENT_REJECTION = 2; + public static final int EVENT_REVERT = 3; + + private Constants() { + // This utility class is not publicly instantiable. + } +} diff --git a/keyboardview/common/src/com/android/inputmethod/latin/common/CoordinateUtils.java b/keyboardview/common/src/com/android/inputmethod/latin/common/CoordinateUtils.java new file mode 100644 index 0000000..0316624 --- /dev/null +++ b/keyboardview/common/src/com/android/inputmethod/latin/common/CoordinateUtils.java @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2012 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.latin.common; + +import javax.annotation.Nonnull; + +public final class CoordinateUtils { + private static final int INDEX_X = 0; + private static final int INDEX_Y = 1; + private static final int ELEMENT_SIZE = INDEX_Y + 1; + + private CoordinateUtils() { + // This utility class is not publicly instantiable. + } + + @Nonnull + public static int[] newInstance() { + return new int[ELEMENT_SIZE]; + } + + public static int x(@Nonnull final int[] coords) { + return coords[INDEX_X]; + } + + public static int y(@Nonnull final int[] coords) { + return coords[INDEX_Y]; + } + + public static void set(@Nonnull final int[] coords, final int x, final int y) { + coords[INDEX_X] = x; + coords[INDEX_Y] = y; + } + + public static void copy(@Nonnull final int[] destination, @Nonnull final int[] source) { + destination[INDEX_X] = source[INDEX_X]; + destination[INDEX_Y] = source[INDEX_Y]; + } + + @Nonnull + public static int[] newCoordinateArray(final int arraySize) { + return new int[ELEMENT_SIZE * arraySize]; + } + + @Nonnull + public static int[] newCoordinateArray(final int arraySize, + final int defaultX, final int defaultY) { + final int[] result = new int[ELEMENT_SIZE * arraySize]; + for (int i = 0; i < arraySize; ++i) { + setXYInArray(result, i, defaultX, defaultY); + } + return result; + } + + public static int xFromArray(@Nonnull final int[] coordsArray, final int index) { + return coordsArray[ELEMENT_SIZE * index + INDEX_X]; + } + + public static int yFromArray(@Nonnull final int[] coordsArray, final int index) { + return coordsArray[ELEMENT_SIZE * index + INDEX_Y]; + } + + @Nonnull + public static int[] coordinateFromArray(@Nonnull final int[] coordsArray, final int index) { + final int[] coords = newInstance(); + set(coords, xFromArray(coordsArray, index), yFromArray(coordsArray, index)); + return coords; + } + + public static void setXYInArray(@Nonnull final int[] coordsArray, final int index, + final int x, final int y) { + final int baseIndex = ELEMENT_SIZE * index; + coordsArray[baseIndex + INDEX_X] = x; + coordsArray[baseIndex + INDEX_Y] = y; + } + + public static void setCoordinateInArray(@Nonnull final int[] coordsArray, final int index, + @Nonnull final int[] coords) { + setXYInArray(coordsArray, index, x(coords), y(coords)); + } +} diff --git a/keyboardview/common/src/com/android/inputmethod/latin/common/FileUtils.java b/keyboardview/common/src/com/android/inputmethod/latin/common/FileUtils.java new file mode 100644 index 0000000..e593c99 --- /dev/null +++ b/keyboardview/common/src/com/android/inputmethod/latin/common/FileUtils.java @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2013 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.latin.common; + +import java.io.File; +import java.io.FilenameFilter; + +/** + * A simple class to help with removing directories recursively. + */ +public class FileUtils { + private static final String TAG = "FileUtils"; + + public static boolean deleteRecursively(final File path) { + if (path.isDirectory()) { + final File[] files = path.listFiles(); + if (files != null) { + for (final File child : files) { + deleteRecursively(child); + } + } + } + return path.delete(); + } + + public static boolean deleteFilteredFiles(final File dir, final FilenameFilter fileNameFilter) { + if (!dir.isDirectory()) { + return false; + } + final File[] files = dir.listFiles(fileNameFilter); + if (files == null) { + return false; + } + boolean hasDeletedAllFiles = true; + for (final File file : files) { + if (!deleteRecursively(file)) { + hasDeletedAllFiles = false; + } + } + return hasDeletedAllFiles; + } + + public static boolean renameTo(final File fromFile, final File toFile) { + toFile.delete(); + return fromFile.renameTo(toFile); + } +} diff --git a/keyboardview/common/src/com/android/inputmethod/latin/common/InputPointers.java b/keyboardview/common/src/com/android/inputmethod/latin/common/InputPointers.java new file mode 100644 index 0000000..4b2ae7e --- /dev/null +++ b/keyboardview/common/src/com/android/inputmethod/latin/common/InputPointers.java @@ -0,0 +1,166 @@ +/* + * Copyright (C) 2012 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.latin.common; + +import com.android.inputmethod.annotations.UsedForTesting; + +import javax.annotation.Nonnull; + +// TODO: This class is not thread-safe. +public final class InputPointers { + private static final boolean DEBUG_TIME = false; + + private final int mDefaultCapacity; + private final ResizableIntArray mXCoordinates; + private final ResizableIntArray mYCoordinates; + private final ResizableIntArray mPointerIds; + private final ResizableIntArray mTimes; + + public InputPointers(final int defaultCapacity) { + mDefaultCapacity = defaultCapacity; + mXCoordinates = new ResizableIntArray(defaultCapacity); + mYCoordinates = new ResizableIntArray(defaultCapacity); + mPointerIds = new ResizableIntArray(defaultCapacity); + mTimes = new ResizableIntArray(defaultCapacity); + } + + private void fillWithLastTimeUntil(final int index) { + final int fromIndex = mTimes.getLength(); + // Fill the gap with the latest time. + // See {@link #getTime(int)} and {@link #isValidTimeStamps()}. + if (fromIndex <= 0) { + return; + } + final int fillLength = index - fromIndex + 1; + if (fillLength <= 0) { + return; + } + final int lastTime = mTimes.get(fromIndex - 1); + mTimes.fill(lastTime, fromIndex, fillLength); + } + + public void addPointerAt(final int index, final int x, final int y, final int pointerId, + final int time) { + mXCoordinates.addAt(index, x); + mYCoordinates.addAt(index, y); + mPointerIds.addAt(index, pointerId); + if (DEBUG_TIME) { + fillWithLastTimeUntil(index); + } + mTimes.addAt(index, time); + } + + @UsedForTesting + public void addPointer(final int x, final int y, final int pointerId, final int time) { + mXCoordinates.add(x); + mYCoordinates.add(y); + mPointerIds.add(pointerId); + mTimes.add(time); + } + + public void set(@Nonnull final InputPointers ip) { + mXCoordinates.set(ip.mXCoordinates); + mYCoordinates.set(ip.mYCoordinates); + mPointerIds.set(ip.mPointerIds); + mTimes.set(ip.mTimes); + } + + public void copy(@Nonnull final InputPointers ip) { + mXCoordinates.copy(ip.mXCoordinates); + mYCoordinates.copy(ip.mYCoordinates); + mPointerIds.copy(ip.mPointerIds); + mTimes.copy(ip.mTimes); + } + + /** + * Append the times, x-coordinates and y-coordinates in the specified {@link ResizableIntArray} + * to the end of this. + * @param pointerId the pointer id of the source. + * @param times the source {@link ResizableIntArray} to read the event times from. + * @param xCoordinates the source {@link ResizableIntArray} to read the x-coordinates from. + * @param yCoordinates the source {@link ResizableIntArray} to read the y-coordinates from. + * @param startPos the starting index of the data in {@code times} and etc. + * @param length the number of data to be appended. + */ + public void append(final int pointerId, @Nonnull final ResizableIntArray times, + @Nonnull final ResizableIntArray xCoordinates, + @Nonnull final ResizableIntArray yCoordinates, final int startPos, final int length) { + if (length == 0) { + return; + } + mXCoordinates.append(xCoordinates, startPos, length); + mYCoordinates.append(yCoordinates, startPos, length); + mPointerIds.fill(pointerId, mPointerIds.getLength(), length); + mTimes.append(times, startPos, length); + } + + /** + * Shift to the left by elementCount, discarding elementCount pointers at the start. + * @param elementCount how many elements to shift. + */ + @UsedForTesting + public void shift(final int elementCount) { + mXCoordinates.shift(elementCount); + mYCoordinates.shift(elementCount); + mPointerIds.shift(elementCount); + mTimes.shift(elementCount); + } + + public void reset() { + final int defaultCapacity = mDefaultCapacity; + mXCoordinates.reset(defaultCapacity); + mYCoordinates.reset(defaultCapacity); + mPointerIds.reset(defaultCapacity); + mTimes.reset(defaultCapacity); + } + + public int getPointerSize() { + return mXCoordinates.getLength(); + } + + @Nonnull + public int[] getXCoordinates() { + return mXCoordinates.getPrimitiveArray(); + } + + @Nonnull + public int[] getYCoordinates() { + return mYCoordinates.getPrimitiveArray(); + } + + @Nonnull + public int[] getPointerIds() { + return mPointerIds.getPrimitiveArray(); + } + + /** + * Gets the time each point was registered, in milliseconds, relative to the first event in the + * sequence. + * @return The time each point was registered, in milliseconds, relative to the first event in + * the sequence. + */ + @Nonnull + public int[] getTimes() { + return mTimes.getPrimitiveArray(); + } + + @Override + public String toString() { + return "size=" + getPointerSize() + " id=" + mPointerIds + " time=" + mTimes + + " x=" + mXCoordinates + " y=" + mYCoordinates; + } +} diff --git a/keyboardview/common/src/com/android/inputmethod/latin/common/LocaleUtils.java b/keyboardview/common/src/com/android/inputmethod/latin/common/LocaleUtils.java new file mode 100644 index 0000000..d5878c0 --- /dev/null +++ b/keyboardview/common/src/com/android/inputmethod/latin/common/LocaleUtils.java @@ -0,0 +1,210 @@ +/* + * Copyright (C) 2011 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.latin.common; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Locale; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; + +/** + * A class to help with handling Locales in string form. + * + * This file has the same meaning and features (and shares all of its code) with the one with the + * same name in Latin IME. They need to be kept synchronized; for any update/bugfix to + * this file, consider also updating/fixing the version in Latin IME. + */ +public final class LocaleUtils { + private LocaleUtils() { + // Intentional empty constructor for utility class. + } + + // Locale match level constants. + // A higher level of match is guaranteed to have a higher numerical value. + // Some room is left within constants to add match cases that may arise necessary + // in the future, for example differentiating between the case where the countries + // are both present and different, and the case where one of the locales does not + // specify the countries. This difference is not needed now. + + // Nothing matches. + public static final int LOCALE_NO_MATCH = 0; + // The languages matches, but the country are different. Or, the reference locale requires a + // country and the tested locale does not have one. + public static final int LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER = 3; + // The languages and country match, but the variants are different. Or, the reference locale + // requires a variant and the tested locale does not have one. + public static final int LOCALE_LANGUAGE_AND_COUNTRY_MATCH_VARIANT_DIFFER = 6; + // The required locale is null or empty so it will accept anything, and the tested locale + // is non-null and non-empty. + public static final int LOCALE_ANY_MATCH = 10; + // The language matches, and the tested locale specifies a country but the reference locale + // does not require one. + public static final int LOCALE_LANGUAGE_MATCH = 15; + // The language and the country match, and the tested locale specifies a variant but the + // reference locale does not require one. + public static final int LOCALE_LANGUAGE_AND_COUNTRY_MATCH = 20; + // The compared locales are fully identical. This is the best match level. + public static final int LOCALE_FULL_MATCH = 30; + + // The level at which a match is "normally" considered a locale match with standard algorithms. + // Don't use this directly, use #isMatch to test. + private static final int LOCALE_MATCH = LOCALE_ANY_MATCH; + + // Make this match the maximum match level. If this evolves to have more than 2 digits + // when written in base 10, also adjust the getMatchLevelSortedString method. + private static final int MATCH_LEVEL_MAX = 30; + + /** + * Return how well a tested locale matches a reference locale. + * + * This will check the tested locale against the reference locale and return a measure of how + * a well it matches the reference. The general idea is that the tested locale has to match + * every specified part of the required locale. A full match occur when they are equal, a + * partial match when the tested locale agrees with the reference locale but is more specific, + * and a difference when the tested locale does not comply with all requirements from the + * reference locale. + * In more detail, if the reference locale specifies at least a language and the testedLocale + * does not specify one, or specifies a different one, LOCALE_NO_MATCH is returned. If the + * reference locale is empty or null, it will match anything - in the form of LOCALE_FULL_MATCH + * if the tested locale is empty or null, and LOCALE_ANY_MATCH otherwise. If the reference and + * tested locale agree on the language, but not on the country, + * LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER is returned if the reference locale specifies a country, + * and LOCALE_LANGUAGE_MATCH otherwise. + * If they agree on both the language and the country, but not on the variant, + * LOCALE_LANGUAGE_AND_COUNTRY_MATCH_VARIANT_DIFFER is returned if the reference locale + * specifies a variant, and LOCALE_LANGUAGE_AND_COUNTRY_MATCH otherwise. If everything matches, + * LOCALE_FULL_MATCH is returned. + * Examples: + * en <=> en_US => LOCALE_LANGUAGE_MATCH + * en_US <=> en => LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER + * en_US_POSIX <=> en_US_Android => LOCALE_LANGUAGE_AND_COUNTRY_MATCH_VARIANT_DIFFER + * en_US <=> en_US_Android => LOCALE_LANGUAGE_AND_COUNTRY_MATCH + * sp_US <=> en_US => LOCALE_NO_MATCH + * de <=> de => LOCALE_FULL_MATCH + * en_US <=> en_US => LOCALE_FULL_MATCH + * "" <=> en_US => LOCALE_ANY_MATCH + * + * @param referenceLocale the reference locale to test against. + * @param testedLocale the locale to test. + * @return a constant that measures how well the tested locale matches the reference locale. + */ + public static int getMatchLevel(@Nullable final String referenceLocale, + @Nullable final String testedLocale) { + if (StringUtils.isEmpty(referenceLocale)) { + return StringUtils.isEmpty(testedLocale) ? LOCALE_FULL_MATCH : LOCALE_ANY_MATCH; + } + if (null == testedLocale) return LOCALE_NO_MATCH; + final String[] referenceParams = referenceLocale.split("_", 3); + final String[] testedParams = testedLocale.split("_", 3); + // By spec of String#split, [0] cannot be null and length cannot be 0. + if (!referenceParams[0].equals(testedParams[0])) return LOCALE_NO_MATCH; + switch (referenceParams.length) { + case 1: + return 1 == testedParams.length ? LOCALE_FULL_MATCH : LOCALE_LANGUAGE_MATCH; + case 2: + if (1 == testedParams.length) return LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER; + if (!referenceParams[1].equals(testedParams[1])) + return LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER; + if (3 == testedParams.length) return LOCALE_LANGUAGE_AND_COUNTRY_MATCH; + return LOCALE_FULL_MATCH; + case 3: + if (1 == testedParams.length) return LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER; + if (!referenceParams[1].equals(testedParams[1])) + return LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER; + if (2 == testedParams.length) return LOCALE_LANGUAGE_AND_COUNTRY_MATCH_VARIANT_DIFFER; + if (!referenceParams[2].equals(testedParams[2])) + return LOCALE_LANGUAGE_AND_COUNTRY_MATCH_VARIANT_DIFFER; + return LOCALE_FULL_MATCH; + } + // It should be impossible to come here + return LOCALE_NO_MATCH; + } + + /** + * Return a string that represents this match level, with better matches first. + * + * The strings are sorted in lexicographic order: a better match will always be less than + * a worse match when compared together. + */ + public static String getMatchLevelSortedString(final int matchLevel) { + // This works because the match levels are 0~99 (actually 0~30) + // Ideally this should use a number of digits equals to the 1og10 of the greater matchLevel + return String.format(Locale.ROOT, "%02d", MATCH_LEVEL_MAX - matchLevel); + } + + /** + * Find out whether a match level should be considered a match. + * + * This method takes a match level as returned by the #getMatchLevel method, and returns whether + * it should be considered a match in the usual sense with standard Locale functions. + * + * @param level the match level, as returned by getMatchLevel. + * @return whether this is a match or not. + */ + public static boolean isMatch(final int level) { + return LOCALE_MATCH <= level; + } + + private static final HashMap sLocaleCache = new HashMap<>(); + + /** + * Creates a locale from a string specification. + * @param localeString a string specification of a locale, in a format of "ll_cc_variant" where + * "ll" is a language code, "cc" is a country code. + */ + @Nonnull + public static Locale constructLocaleFromString(@Nonnull final String localeString) { + synchronized (sLocaleCache) { + if (sLocaleCache.containsKey(localeString)) { + return sLocaleCache.get(localeString); + } + final String[] elements = localeString.split("_", 3); + final Locale locale; + if (elements.length == 1) { + locale = new Locale(elements[0] /* language */); + } else if (elements.length == 2) { + locale = new Locale(elements[0] /* language */, elements[1] /* country */); + } else { // localeParams.length == 3 + locale = new Locale(elements[0] /* language */, elements[1] /* country */, + elements[2] /* variant */); + } + sLocaleCache.put(localeString, locale); + return locale; + } + } + + // TODO: Get this information from the framework instead of maintaining here by ourselves. + private static final HashSet sRtlLanguageCodes = new HashSet<>(); + static { + // List of known Right-To-Left language codes. + sRtlLanguageCodes.add("ar"); // Arabic + sRtlLanguageCodes.add("fa"); // Persian + sRtlLanguageCodes.add("iw"); // Hebrew + sRtlLanguageCodes.add("ku"); // Kurdish + sRtlLanguageCodes.add("ps"); // Pashto + sRtlLanguageCodes.add("sd"); // Sindhi + sRtlLanguageCodes.add("ug"); // Uyghur + sRtlLanguageCodes.add("ur"); // Urdu + sRtlLanguageCodes.add("yi"); // Yiddish + } + + public static boolean isRtlLanguage(@Nonnull final Locale locale) { + return sRtlLanguageCodes.contains(locale.getLanguage()); + } +} diff --git a/keyboardview/common/src/com/android/inputmethod/latin/common/NativeSuggestOptions.java b/keyboardview/common/src/com/android/inputmethod/latin/common/NativeSuggestOptions.java new file mode 100644 index 0000000..d673442 --- /dev/null +++ b/keyboardview/common/src/com/android/inputmethod/latin/common/NativeSuggestOptions.java @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2013 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.latin.common; + +public class NativeSuggestOptions { + // Need to update suggest_options.h when you add, remove or reorder options. + private static final int IS_GESTURE = 0; + private static final int USE_FULL_EDIT_DISTANCE = 1; + private static final int BLOCK_OFFENSIVE_WORDS = 2; + private static final int SPACE_AWARE_GESTURE_ENABLED = 3; + private static final int WEIGHT_FOR_LOCALE_IN_THOUSANDS = 4; + private static final int OPTIONS_SIZE = 5; + + private final int[] mOptions; + + public NativeSuggestOptions() { + mOptions = new int[OPTIONS_SIZE]; + } + + public void setIsGesture(final boolean value) { + setBooleanOption(IS_GESTURE, value); + } + + public void setUseFullEditDistance(final boolean value) { + setBooleanOption(USE_FULL_EDIT_DISTANCE, value); + } + + public void setBlockOffensiveWords(final boolean value) { + setBooleanOption(BLOCK_OFFENSIVE_WORDS, value); + } + + public void setWeightForLocale(final float value) { + // We're passing this option as a fixed point value, in thousands. This is decoded in + // native code by SuggestOptions#weightForLocale(). + setIntegerOption(WEIGHT_FOR_LOCALE_IN_THOUSANDS, (int) (value * 1000)); + } + + public int[] getOptions() { + return mOptions; + } + + private void setBooleanOption(final int key, final boolean value) { + mOptions[key] = value ? 1 : 0; + } + + private void setIntegerOption(final int key, final int value) { + mOptions[key] = value; + } +} diff --git a/keyboardview/common/src/com/android/inputmethod/latin/common/ResizableIntArray.java b/keyboardview/common/src/com/android/inputmethod/latin/common/ResizableIntArray.java new file mode 100644 index 0000000..77f5c4c --- /dev/null +++ b/keyboardview/common/src/com/android/inputmethod/latin/common/ResizableIntArray.java @@ -0,0 +1,162 @@ +/* + * Copyright (C) 2012 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.latin.common; + +import com.android.inputmethod.annotations.UsedForTesting; + +import java.util.Arrays; + +import javax.annotation.Nonnull; + +// TODO: This class is not thread-safe. +public final class ResizableIntArray { + @Nonnull + private int[] mArray; + private int mLength; + + public ResizableIntArray(final int capacity) { + reset(capacity); + } + + public int get(final int index) { + if (index < mLength) { + return mArray[index]; + } + throw new ArrayIndexOutOfBoundsException("length=" + mLength + "; index=" + index); + } + + public void addAt(final int index, final int val) { + if (index < mLength) { + mArray[index] = val; + } else { + mLength = index; + add(val); + } + } + + public void add(final int val) { + final int currentLength = mLength; + ensureCapacity(currentLength + 1); + mArray[currentLength] = val; + mLength = currentLength + 1; + } + + /** + * Calculate the new capacity of {@code mArray}. + * @param minimumCapacity the minimum capacity that the {@code mArray} should have. + * @return the new capacity that the {@code mArray} should have. Returns zero when there is no + * need to expand {@code mArray}. + */ + private int calculateCapacity(final int minimumCapacity) { + final int currentCapcity = mArray.length; + if (currentCapcity < minimumCapacity) { + final int nextCapacity = currentCapcity * 2; + // The following is the same as return Math.max(minimumCapacity, nextCapacity); + return minimumCapacity > nextCapacity ? minimumCapacity : nextCapacity; + } + return 0; + } + + private void ensureCapacity(final int minimumCapacity) { + final int newCapacity = calculateCapacity(minimumCapacity); + if (newCapacity > 0) { + // TODO: Implement primitive array pool. + mArray = Arrays.copyOf(mArray, newCapacity); + } + } + + public int getLength() { + return mLength; + } + + public void setLength(final int newLength) { + ensureCapacity(newLength); + mLength = newLength; + } + + public void reset(final int capacity) { + // TODO: Implement primitive array pool. + mArray = new int[capacity]; + mLength = 0; + } + + @Nonnull + public int[] getPrimitiveArray() { + return mArray; + } + + public void set(@Nonnull final ResizableIntArray ip) { + // TODO: Implement primitive array pool. + mArray = ip.mArray; + mLength = ip.mLength; + } + + public void copy(@Nonnull final ResizableIntArray ip) { + final int newCapacity = calculateCapacity(ip.mLength); + if (newCapacity > 0) { + // TODO: Implement primitive array pool. + mArray = new int[newCapacity]; + } + System.arraycopy(ip.mArray, 0, mArray, 0, ip.mLength); + mLength = ip.mLength; + } + + public void append(@Nonnull final ResizableIntArray src, final int startPos, final int length) { + if (length == 0) { + return; + } + final int currentLength = mLength; + final int newLength = currentLength + length; + ensureCapacity(newLength); + System.arraycopy(src.mArray, startPos, mArray, currentLength, length); + mLength = newLength; + } + + public void fill(final int value, final int startPos, final int length) { + if (startPos < 0 || length < 0) { + throw new IllegalArgumentException("startPos=" + startPos + "; length=" + length); + } + final int endPos = startPos + length; + ensureCapacity(endPos); + Arrays.fill(mArray, startPos, endPos, value); + if (mLength < endPos) { + mLength = endPos; + } + } + + /** + * Shift to the left by elementCount, discarding elementCount pointers at the start. + * @param elementCount how many elements to shift. + */ + @UsedForTesting + public void shift(final int elementCount) { + System.arraycopy(mArray, elementCount, mArray, 0, mLength - elementCount); + mLength -= elementCount; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + for (int i = 0; i < mLength; i++) { + if (i != 0) { + sb.append(","); + } + sb.append(mArray[i]); + } + return "[" + sb + "]"; + } +} diff --git a/keyboardview/common/src/com/android/inputmethod/latin/common/StringUtils.java b/keyboardview/common/src/com/android/inputmethod/latin/common/StringUtils.java new file mode 100644 index 0000000..572f0cd --- /dev/null +++ b/keyboardview/common/src/com/android/inputmethod/latin/common/StringUtils.java @@ -0,0 +1,704 @@ +/* + * Copyright (C) 2012 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.latin.common; + +import com.android.inputmethod.annotations.UsedForTesting; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Locale; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; + +public final class StringUtils { + public static final int CAPITALIZE_NONE = 0; // No caps, or mixed case + public static final int CAPITALIZE_FIRST = 1; // First only + public static final int CAPITALIZE_ALL = 2; // All caps + + @Nonnull + private static final String EMPTY_STRING = ""; + + private static final char CHAR_LINE_FEED = 0X000A; + private static final char CHAR_VERTICAL_TAB = 0X000B; + private static final char CHAR_FORM_FEED = 0X000C; + private static final char CHAR_CARRIAGE_RETURN = 0X000D; + private static final char CHAR_NEXT_LINE = 0X0085; + private static final char CHAR_LINE_SEPARATOR = 0X2028; + private static final char CHAR_PARAGRAPH_SEPARATOR = 0X2029; + + private StringUtils() { + // This utility class is not publicly instantiable. + } + + // Taken from android.text.TextUtils. We are extensively using this method in many places, + // some of which don't have the android libraries available. + /** + * Returns true if the string is null or 0-length. + * @param str the string to be examined + * @return true if str is null or zero length + */ + public static boolean isEmpty(@Nullable final CharSequence str) { + return (str == null || str.length() == 0); + } + + // Taken from android.text.TextUtils to cut the dependency to the Android framework. + /** + * Returns a string containing the tokens joined by delimiters. + * @param delimiter the delimiter + * @param tokens an array objects to be joined. Strings will be formed from + * the objects by calling object.toString(). + */ + @Nonnull + public static String join(@Nonnull final CharSequence delimiter, + @Nonnull final Iterable tokens) { + final StringBuilder sb = new StringBuilder(); + boolean firstTime = true; + for (final Object token: tokens) { + if (firstTime) { + firstTime = false; + } else { + sb.append(delimiter); + } + sb.append(token); + } + return sb.toString(); + } + + // Taken from android.text.TextUtils to cut the dependency to the Android framework. + /** + * Returns true if a and b are equal, including if they are both null. + *

Note: In platform versions 1.1 and earlier, this method only worked well if + * both the arguments were instances of String.

+ * @param a first CharSequence to check + * @param b second CharSequence to check + * @return true if a and b are equal + */ + public static boolean equals(@Nullable final CharSequence a, @Nullable final CharSequence b) { + if (a == b) { + return true; + } + final int length; + if (a != null && b != null && (length = a.length()) == b.length()) { + if (a instanceof String && b instanceof String) { + return a.equals(b); + } + for (int i = 0; i < length; i++) { + if (a.charAt(i) != b.charAt(i)) { + return false; + } + } + return true; + } + return false; + } + + public static int codePointCount(@Nullable final CharSequence text) { + if (isEmpty(text)) { + return 0; + } + return Character.codePointCount(text, 0, text.length()); + } + + @Nonnull + public static String newSingleCodePointString(final int codePoint) { + if (Character.charCount(codePoint) == 1) { + // Optimization: avoid creating a temporary array for characters that are + // represented by a single char value + return String.valueOf((char) codePoint); + } + // For surrogate pair + return new String(Character.toChars(codePoint)); + } + + public static boolean containsInArray(@Nonnull final String text, + @Nonnull final String[] array) { + for (final String element : array) { + if (text.equals(element)) { + return true; + } + } + return false; + } + + /** + * Comma-Splittable Text is similar to Comma-Separated Values (CSV) but has much simpler syntax. + * Unlike CSV, Comma-Splittable Text has no escaping mechanism, so that the text can't contain + * a comma character in it. + */ + @Nonnull + private static final String SEPARATOR_FOR_COMMA_SPLITTABLE_TEXT = ","; + + public static boolean containsInCommaSplittableText(@Nonnull final String text, + @Nullable final String extraValues) { + if (isEmpty(extraValues)) { + return false; + } + return containsInArray(text, extraValues.split(SEPARATOR_FOR_COMMA_SPLITTABLE_TEXT)); + } + + @Nonnull + public static String removeFromCommaSplittableTextIfExists(@Nonnull final String text, + @Nullable final String extraValues) { + if (isEmpty(extraValues)) { + return EMPTY_STRING; + } + final String[] elements = extraValues.split(SEPARATOR_FOR_COMMA_SPLITTABLE_TEXT); + if (!containsInArray(text, elements)) { + return extraValues; + } + final ArrayList result = new ArrayList<>(elements.length - 1); + for (final String element : elements) { + if (!text.equals(element)) { + result.add(element); + } + } + return join(SEPARATOR_FOR_COMMA_SPLITTABLE_TEXT, result); + } + + /** + * Remove duplicates from an array of strings. + * + * This method will always keep the first occurrence of all strings at their position + * in the array, removing the subsequent ones. + */ + public static void removeDupes(@Nonnull final ArrayList suggestions) { + if (suggestions.size() < 2) { + return; + } + int i = 1; + // Don't cache suggestions.size(), since we may be removing items + while (i < suggestions.size()) { + final String cur = suggestions.get(i); + // Compare each suggestion with each previous suggestion + for (int j = 0; j < i; j++) { + final String previous = suggestions.get(j); + if (equals(cur, previous)) { + suggestions.remove(i); + i--; + break; + } + } + i++; + } + } + + @Nonnull + public static String capitalizeFirstCodePoint(@Nonnull final String s, + @Nonnull final Locale locale) { + if (s.length() <= 1) { + return s.toUpperCase(getLocaleUsedForToTitleCase(locale)); + } + // Please refer to the comment below in + // {@link #capitalizeFirstAndDowncaseRest(String,Locale)} as this has the same shortcomings + final int cutoff = s.offsetByCodePoints(0, 1); + return s.substring(0, cutoff).toUpperCase(getLocaleUsedForToTitleCase(locale)) + + s.substring(cutoff); + } + + @Nonnull + public static String capitalizeFirstAndDowncaseRest(@Nonnull final String s, + @Nonnull final Locale locale) { + if (s.length() <= 1) { + return s.toUpperCase(getLocaleUsedForToTitleCase(locale)); + } + // TODO: fix the bugs below + // - It does not work for Serbian, because it fails to account for the "lj" character, + // which should be "Lj" in title case and "LJ" in upper case. + // - It does not work for Dutch, because it fails to account for the "ij" digraph when it's + // written as two separate code points. They are two different characters but both should + // be capitalized as "IJ" as if they were a single letter in most words (not all). If the + // unicode char for the ligature is used however, it works. + final int cutoff = s.offsetByCodePoints(0, 1); + return s.substring(0, cutoff).toUpperCase(getLocaleUsedForToTitleCase(locale)) + + s.substring(cutoff).toLowerCase(locale); + } + + @Nonnull + public static int[] toCodePointArray(@Nonnull final CharSequence charSequence) { + return toCodePointArray(charSequence, 0, charSequence.length()); + } + + @Nonnull + private static final int[] EMPTY_CODEPOINTS = {}; + + /** + * Converts a range of a string to an array of code points. + * @param charSequence the source string. + * @param startIndex the start index inside the string in java chars, inclusive. + * @param endIndex the end index inside the string in java chars, exclusive. + * @return a new array of code points. At most endIndex - startIndex, but possibly less. + */ + @Nonnull + public static int[] toCodePointArray(@Nonnull final CharSequence charSequence, + final int startIndex, final int endIndex) { + final int length = charSequence.length(); + if (length <= 0) { + return EMPTY_CODEPOINTS; + } + final int[] codePoints = + new int[Character.codePointCount(charSequence, startIndex, endIndex)]; + copyCodePointsAndReturnCodePointCount(codePoints, charSequence, startIndex, endIndex, + false /* downCase */); + return codePoints; + } + + /** + * Copies the codepoints in a CharSequence to an int array. + * + * This method assumes there is enough space in the array to store the code points. The size + * can be measured with Character#codePointCount(CharSequence, int, int) before passing to this + * method. If the int array is too small, an ArrayIndexOutOfBoundsException will be thrown. + * Also, this method makes no effort to be thread-safe. Do not modify the CharSequence while + * this method is running, or the behavior is undefined. + * This method can optionally downcase code points before copying them, but it pays no attention + * to locale while doing so. + * + * @param destination the int array. + * @param charSequence the CharSequence. + * @param startIndex the start index inside the string in java chars, inclusive. + * @param endIndex the end index inside the string in java chars, exclusive. + * @param downCase if this is true, code points will be downcased before being copied. + * @return the number of copied code points. + */ + public static int copyCodePointsAndReturnCodePointCount(@Nonnull final int[] destination, + @Nonnull final CharSequence charSequence, final int startIndex, final int endIndex, + final boolean downCase) { + int destIndex = 0; + for (int index = startIndex; index < endIndex; + index = Character.offsetByCodePoints(charSequence, index, 1)) { + final int codePoint = Character.codePointAt(charSequence, index); + // TODO: stop using this, as it's not aware of the locale and does not always do + // the right thing. + destination[destIndex] = downCase ? Character.toLowerCase(codePoint) : codePoint; + destIndex++; + } + return destIndex; + } + + @Nonnull + public static int[] toSortedCodePointArray(@Nonnull final String string) { + final int[] codePoints = toCodePointArray(string); + Arrays.sort(codePoints); + return codePoints; + } + + /** + * Construct a String from a code point array + * + * @param codePoints a code point array that is null terminated when its logical length is + * shorter than the array length. + * @return a string constructed from the code point array. + */ + @Nonnull + public static String getStringFromNullTerminatedCodePointArray( + @Nonnull final int[] codePoints) { + int stringLength = codePoints.length; + for (int i = 0; i < codePoints.length; i++) { + if (codePoints[i] == 0) { + stringLength = i; + break; + } + } + return new String(codePoints, 0 /* offset */, stringLength); + } + + // This method assumes the text is not null. For the empty string, it returns CAPITALIZE_NONE. + public static int getCapitalizationType(@Nonnull final String text) { + // If the first char is not uppercase, then the word is either all lower case or + // camel case, and in either case we return CAPITALIZE_NONE. + final int len = text.length(); + int index = 0; + for (; index < len; index = text.offsetByCodePoints(index, 1)) { + if (Character.isLetter(text.codePointAt(index))) { + break; + } + } + if (index == len) return CAPITALIZE_NONE; + if (!Character.isUpperCase(text.codePointAt(index))) { + return CAPITALIZE_NONE; + } + int capsCount = 1; + int letterCount = 1; + for (index = text.offsetByCodePoints(index, 1); index < len; + index = text.offsetByCodePoints(index, 1)) { + if (1 != capsCount && letterCount != capsCount) break; + final int codePoint = text.codePointAt(index); + if (Character.isUpperCase(codePoint)) { + ++capsCount; + ++letterCount; + } else if (Character.isLetter(codePoint)) { + // We need to discount non-letters since they may not be upper-case, but may + // still be part of a word (e.g. single quote or dash, as in "IT'S" or "FULL-TIME") + ++letterCount; + } + } + // We know the first char is upper case. So we want to test if either every letter other + // than the first is lower case, or if they are all upper case. If the string is exactly + // one char long, then we will arrive here with letterCount 1, and this is correct, too. + if (1 == capsCount) return CAPITALIZE_FIRST; + return (letterCount == capsCount ? CAPITALIZE_ALL : CAPITALIZE_NONE); + } + + public static boolean isIdenticalAfterUpcase(@Nonnull final String text) { + final int length = text.length(); + int i = 0; + while (i < length) { + final int codePoint = text.codePointAt(i); + if (Character.isLetter(codePoint) && !Character.isUpperCase(codePoint)) { + return false; + } + i += Character.charCount(codePoint); + } + return true; + } + + public static boolean isIdenticalAfterDowncase(@Nonnull final String text) { + final int length = text.length(); + int i = 0; + while (i < length) { + final int codePoint = text.codePointAt(i); + if (Character.isLetter(codePoint) && !Character.isLowerCase(codePoint)) { + return false; + } + i += Character.charCount(codePoint); + } + return true; + } + + public static boolean isIdenticalAfterCapitalizeEachWord(@Nonnull final String text, + @Nonnull final int[] sortedSeparators) { + boolean needsCapsNext = true; + final int len = text.length(); + for (int i = 0; i < len; i = text.offsetByCodePoints(i, 1)) { + final int codePoint = text.codePointAt(i); + if (Character.isLetter(codePoint)) { + if ((needsCapsNext && !Character.isUpperCase(codePoint)) + || (!needsCapsNext && !Character.isLowerCase(codePoint))) { + return false; + } + } + // We need a capital letter next if this is a separator. + needsCapsNext = (Arrays.binarySearch(sortedSeparators, codePoint) >= 0); + } + return true; + } + + // TODO: like capitalizeFirst*, this does not work perfectly for Dutch because of the IJ digraph + // which should be capitalized together in *some* cases. + @Nonnull + public static String capitalizeEachWord(@Nonnull final String text, + @Nonnull final int[] sortedSeparators, @Nonnull final Locale locale) { + final StringBuilder builder = new StringBuilder(); + boolean needsCapsNext = true; + final int len = text.length(); + for (int i = 0; i < len; i = text.offsetByCodePoints(i, 1)) { + final String nextChar = text.substring(i, text.offsetByCodePoints(i, 1)); + if (needsCapsNext) { + builder.append(nextChar.toUpperCase(locale)); + } else { + builder.append(nextChar.toLowerCase(locale)); + } + // We need a capital letter next if this is a separator. + needsCapsNext = (Arrays.binarySearch(sortedSeparators, nextChar.codePointAt(0)) >= 0); + } + return builder.toString(); + } + + /** + * Approximates whether the text before the cursor looks like a URL. + * + * This is not foolproof, but it should work well in the practice. + * Essentially it walks backward from the cursor until it finds something that's not a letter, + * digit, or common URL symbol like underscore. If it hasn't found a period yet, then it + * does not look like a URL. + * If the text: + * - starts with www and contains a period + * - starts with a slash preceded by either a slash, whitespace, or start-of-string + * Then it looks like a URL and we return true. Otherwise, we return false. + * + * Note: this method is called quite often, and should be fast. + * + * TODO: This will return that "abc./def" and ".abc/def" look like URLs to keep down the + * code complexity, but ideally it should not. It's acceptable for now. + */ + public static boolean lastPartLooksLikeURL(@Nonnull final CharSequence text) { + int i = text.length(); + if (0 == i) { + return false; + } + int wCount = 0; + int slashCount = 0; + boolean hasSlash = false; + boolean hasPeriod = false; + int codePoint = 0; + while (i > 0) { + codePoint = Character.codePointBefore(text, i); + if (codePoint < Constants.CODE_PERIOD || codePoint > 'z') { + // Handwavy heuristic to see if that's a URL character. Anything between period + // and z. This includes all lower- and upper-case ascii letters, period, + // underscore, arrobase, question mark, equal sign. It excludes spaces, exclamation + // marks, double quotes... + // Anything that's not a URL-like character causes us to break from here and + // evaluate normally. + break; + } + if (Constants.CODE_PERIOD == codePoint) { + hasPeriod = true; + } + if (Constants.CODE_SLASH == codePoint) { + hasSlash = true; + if (2 == ++slashCount) { + return true; + } + } else { + slashCount = 0; + } + if ('w' == codePoint) { + ++wCount; + } else { + wCount = 0; + } + i = Character.offsetByCodePoints(text, i, -1); + } + // End of the text run. + // If it starts with www and includes a period, then it looks like a URL. + if (wCount >= 3 && hasPeriod) { + return true; + } + // If it starts with a slash, and the code point before is whitespace, it looks like an URL. + if (1 == slashCount && (0 == i || Character.isWhitespace(codePoint))) { + return true; + } + // If it has both a period and a slash, it looks like an URL. + if (hasPeriod && hasSlash) { + return true; + } + // Otherwise, it doesn't look like an URL. + return false; + } + + /** + * Examines the string and returns whether we're inside a double quote. + * + * This is used to decide whether we should put an automatic space before or after a double + * quote character. If we're inside a quotation, then we want to close it, so we want a space + * after and not before. Otherwise, we want to open the quotation, so we want a space before + * and not after. Exception: after a digit, we never want a space because the "inch" or + * "minutes" use cases is dominant after digits. + * In the practice, we determine whether we are in a quotation or not by finding the previous + * double quote character, and looking at whether it's followed by whitespace. If so, that + * was a closing quotation mark, so we're not inside a double quote. If it's not followed + * by whitespace, then it was an opening quotation mark, and we're inside a quotation. + * + * @param text the text to examine. + * @return whether we're inside a double quote. + */ + public static boolean isInsideDoubleQuoteOrAfterDigit(@Nonnull final CharSequence text) { + int i = text.length(); + if (0 == i) { + return false; + } + int codePoint = Character.codePointBefore(text, i); + if (Character.isDigit(codePoint)) { + return true; + } + int prevCodePoint = 0; + while (i > 0) { + codePoint = Character.codePointBefore(text, i); + if (Constants.CODE_DOUBLE_QUOTE == codePoint) { + // If we see a double quote followed by whitespace, then that + // was a closing quote. + if (Character.isWhitespace(prevCodePoint)) { + return false; + } + } + if (Character.isWhitespace(codePoint) && Constants.CODE_DOUBLE_QUOTE == prevCodePoint) { + // If we see a double quote preceded by whitespace, then that + // was an opening quote. No need to continue seeking. + return true; + } + i -= Character.charCount(codePoint); + prevCodePoint = codePoint; + } + // We reached the start of text. If the first char is a double quote, then we're inside + // a double quote. Otherwise we're not. + return Constants.CODE_DOUBLE_QUOTE == codePoint; + } + + public static boolean isEmptyStringOrWhiteSpaces(@Nonnull final String s) { + final int N = codePointCount(s); + for (int i = 0; i < N; ++i) { + if (!Character.isWhitespace(s.codePointAt(i))) { + return false; + } + } + return true; + } + + @UsedForTesting + @Nonnull + public static String byteArrayToHexString(@Nullable final byte[] bytes) { + if (bytes == null || bytes.length == 0) { + return EMPTY_STRING; + } + final StringBuilder sb = new StringBuilder(); + for (final byte b : bytes) { + sb.append(String.format("%02x", b & 0xff)); + } + return sb.toString(); + } + + /** + * Convert hex string to byte array. The string length must be an even number. + */ + @UsedForTesting + @Nullable + public static byte[] hexStringToByteArray(@Nullable final String hexString) { + if (isEmpty(hexString)) { + return null; + } + final int N = hexString.length(); + if (N % 2 != 0) { + throw new NumberFormatException("Input hex string length must be an even number." + + " Length = " + N); + } + final byte[] bytes = new byte[N / 2]; + for (int i = 0; i < N; i += 2) { + bytes[i / 2] = (byte) ((Character.digit(hexString.charAt(i), 16) << 4) + + Character.digit(hexString.charAt(i + 1), 16)); + } + return bytes; + } + + private static final String LANGUAGE_GREEK = "el"; + + @Nonnull + private static Locale getLocaleUsedForToTitleCase(@Nonnull final Locale locale) { + // In Greek locale {@link String#toUpperCase(Locale)} eliminates accents from its result. + // In order to get accented upper case letter, {@link Locale#ROOT} should be used. + if (LANGUAGE_GREEK.equals(locale.getLanguage())) { + return Locale.ROOT; + } + return locale; + } + + @Nullable + public static String toTitleCaseOfKeyLabel(@Nullable final String label, + @Nonnull final Locale locale) { + if (label == null) { + return label; + } + return label.toUpperCase(getLocaleUsedForToTitleCase(locale)); + } + + public static int toTitleCaseOfKeyCode(final int code, @Nonnull final Locale locale) { + if (!Constants.isLetterCode(code)) { + return code; + } + final String label = newSingleCodePointString(code); + final String titleCaseLabel = toTitleCaseOfKeyLabel(label, locale); + return codePointCount(titleCaseLabel) == 1 + ? titleCaseLabel.codePointAt(0) : Constants.CODE_UNSPECIFIED; + } + + public static int getTrailingSingleQuotesCount(@Nonnull final CharSequence charSequence) { + final int lastIndex = charSequence.length() - 1; + int i = lastIndex; + while (i >= 0 && charSequence.charAt(i) == Constants.CODE_SINGLE_QUOTE) { + --i; + } + return lastIndex - i; + } + + @UsedForTesting + public static class Stringizer { + @Nonnull + private static final String[] EMPTY_STRING_ARRAY = new String[0]; + + @UsedForTesting + @Nonnull + public String stringize(@Nullable final E element) { + if (element == null) { + return "null"; + } + return element.toString(); + } + + @UsedForTesting + @Nonnull + public final String join(@Nullable final E[] array) { + return joinStringArray(toStringArray(array), null /* delimiter */); + } + + @UsedForTesting + public final String join(@Nullable final E[] array, @Nullable final String delimiter) { + return joinStringArray(toStringArray(array), delimiter); + } + + @Nonnull + protected String[] toStringArray(@Nullable final E[] array) { + if (array == null) { + return EMPTY_STRING_ARRAY; + } + final String[] stringArray = new String[array.length]; + for (int index = 0; index < array.length; index++) { + stringArray[index] = stringize(array[index]); + } + return stringArray; + } + + @Nonnull + protected String joinStringArray(@Nonnull final String[] stringArray, + @Nullable final String delimiter) { + if (delimiter == null) { + return Arrays.toString(stringArray); + } + final StringBuilder sb = new StringBuilder(); + for (int index = 0; index < stringArray.length; index++) { + sb.append(index == 0 ? "[" : delimiter); + sb.append(stringArray[index]); + } + return sb + "]"; + } + } + + /** + * Returns whether the last composed word contains line-breaking character (e.g. CR or LF). + * @param text the text to be examined. + * @return {@code true} if the last composed word contains line-breaking separator. + */ + public static boolean hasLineBreakCharacter(@Nullable final String text) { + if (isEmpty(text)) { + return false; + } + for (int i = text.length() - 1; i >= 0; --i) { + final char c = text.charAt(i); + switch (c) { + case CHAR_LINE_FEED: + case CHAR_VERTICAL_TAB: + case CHAR_FORM_FEED: + case CHAR_CARRIAGE_RETURN: + case CHAR_NEXT_LINE: + case CHAR_LINE_SEPARATOR: + case CHAR_PARAGRAPH_SEPARATOR: + return true; + } + } + return false; + } +} diff --git a/keyboardview/consumer-rules.pro b/keyboardview/consumer-rules.pro new file mode 100644 index 0000000..e69de29 diff --git a/keyboardview/java/res/anim/key_preview_dismiss_holo.xml b/keyboardview/java/res/anim/key_preview_dismiss_holo.xml new file mode 100644 index 0000000..0bf7254 --- /dev/null +++ b/keyboardview/java/res/anim/key_preview_dismiss_holo.xml @@ -0,0 +1,32 @@ + + + + + + + diff --git a/keyboardview/java/res/anim/key_preview_dismiss_lxx.xml b/keyboardview/java/res/anim/key_preview_dismiss_lxx.xml new file mode 100644 index 0000000..326e534 --- /dev/null +++ b/keyboardview/java/res/anim/key_preview_dismiss_lxx.xml @@ -0,0 +1,32 @@ + + + + + + + diff --git a/keyboardview/java/res/anim/key_preview_show_up_holo.xml b/keyboardview/java/res/anim/key_preview_show_up_holo.xml new file mode 100644 index 0000000..ad2e413 --- /dev/null +++ b/keyboardview/java/res/anim/key_preview_show_up_holo.xml @@ -0,0 +1,32 @@ + + + + + + + diff --git a/keyboardview/java/res/anim/key_preview_show_up_lxx.xml b/keyboardview/java/res/anim/key_preview_show_up_lxx.xml new file mode 100644 index 0000000..f500349 --- /dev/null +++ b/keyboardview/java/res/anim/key_preview_show_up_lxx.xml @@ -0,0 +1,32 @@ + + + + + + + diff --git a/keyboardview/java/res/anim/language_on_spacebar_fadeout.xml b/keyboardview/java/res/anim/language_on_spacebar_fadeout.xml new file mode 100644 index 0000000..531f440 --- /dev/null +++ b/keyboardview/java/res/anim/language_on_spacebar_fadeout.xml @@ -0,0 +1,28 @@ + + + + diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_active_ics_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_active_ics_dark.9.png new file mode 100644 index 0000000..9aa8db6 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_active_ics_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_active_klp_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_active_klp_dark.9.png new file mode 100644 index 0000000..fa2cb85 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_active_klp_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_active_lxx_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_active_lxx_dark.9.png new file mode 100644 index 0000000..55ef3e7 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_active_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_active_lxx_light.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_active_lxx_light.9.png new file mode 100644 index 0000000..9f307dc Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_active_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_active_pressed_lxx_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_active_pressed_lxx_dark.9.png new file mode 100644 index 0000000..17a77cc Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_active_pressed_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_active_pressed_lxx_light.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_active_pressed_lxx_light.9.png new file mode 100644 index 0000000..55ef3e7 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_active_pressed_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_holo_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_holo_dark.9.png new file mode 100644 index 0000000..fa2cb85 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_holo_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_holo_light.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_holo_light.9.png new file mode 100644 index 0000000..6da273b Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_holo_light.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_off_holo_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_off_holo_dark.9.png new file mode 100644 index 0000000..b1af23b Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_off_holo_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_off_lxx_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_off_lxx_dark.9.png new file mode 100644 index 0000000..5014c94 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_off_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_off_lxx_light.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_off_lxx_light.9.png new file mode 100644 index 0000000..79594c8 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_off_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_on_ics_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_on_ics_dark.9.png new file mode 100644 index 0000000..9f4587b Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_on_ics_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_on_klp_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_on_klp_dark.9.png new file mode 100644 index 0000000..814e402 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_on_klp_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_on_lxx_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_on_lxx_dark.9.png new file mode 100644 index 0000000..b1f5435 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_on_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_on_lxx_light.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_on_lxx_light.9.png new file mode 100644 index 0000000..f0a89c5 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_normal_on_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_ics.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_ics.9.png new file mode 100644 index 0000000..c2e8b37 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_ics.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_klp.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_klp.9.png new file mode 100644 index 0000000..10f8e97 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_klp.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_lxx_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_lxx_dark.9.png new file mode 100644 index 0000000..31cd379 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_lxx_light.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_lxx_light.9.png new file mode 100644 index 0000000..b8717e6 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_ics_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_ics_dark.9.png new file mode 100644 index 0000000..7ec33dd Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_ics_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_ics_light.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_ics_light.9.png new file mode 100644 index 0000000..5612c51 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_ics_light.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_klp_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_klp_dark.9.png new file mode 100644 index 0000000..90abe39 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_klp_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_klp_light.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_klp_light.9.png new file mode 100644 index 0000000..6768241 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_klp_light.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_off_ics_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_off_ics_dark.9.png new file mode 100644 index 0000000..655bc01 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_off_ics_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_off_klp_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_off_klp_dark.9.png new file mode 100644 index 0000000..48eeb3f Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_off_klp_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_off_lxx_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_off_lxx_dark.9.png new file mode 100644 index 0000000..be0812f Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_off_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_off_lxx_light.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_off_lxx_light.9.png new file mode 100644 index 0000000..4209ef9 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_off_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_on_ics_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_on_ics_dark.9.png new file mode 100644 index 0000000..138e915 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_on_ics_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_on_klp_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_on_klp_dark.9.png new file mode 100644 index 0000000..71e0683 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_on_klp_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_on_lxx_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_on_lxx_dark.9.png new file mode 100644 index 0000000..a36ca32 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_on_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_on_lxx_light.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_on_lxx_light.9.png new file mode 100644 index 0000000..c6a474a Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_key_pressed_on_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_spacebar_normal_lxx_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_spacebar_normal_lxx_dark.9.png new file mode 100644 index 0000000..3231166 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_spacebar_normal_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_spacebar_normal_lxx_light.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_spacebar_normal_lxx_light.9.png new file mode 100644 index 0000000..1256b8b Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_spacebar_normal_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_spacebar_pressed_lxx_dark.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_spacebar_pressed_lxx_dark.9.png new file mode 100644 index 0000000..cd0d884 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_spacebar_pressed_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/btn_keyboard_spacebar_pressed_lxx_light.9.png b/keyboardview/java/res/drawable-hdpi/btn_keyboard_spacebar_pressed_lxx_light.9.png new file mode 100644 index 0000000..c05605f Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/btn_keyboard_spacebar_pressed_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/emoji_category_tab_selected_ics.9.png b/keyboardview/java/res/drawable-hdpi/emoji_category_tab_selected_ics.9.png new file mode 100644 index 0000000..9138cef Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/emoji_category_tab_selected_ics.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/emoji_category_tab_selected_klp.9.png b/keyboardview/java/res/drawable-hdpi/emoji_category_tab_selected_klp.9.png new file mode 100644 index 0000000..345d05e Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/emoji_category_tab_selected_klp.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/emoji_category_tab_unselected_holo_dark.9.png b/keyboardview/java/res/drawable-hdpi/emoji_category_tab_unselected_holo_dark.9.png new file mode 100644 index 0000000..bbcfb2c Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/emoji_category_tab_unselected_holo_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_activity_activated_holo_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_activity_activated_holo_dark.png new file mode 100644 index 0000000..a79fb06 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_activity_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_activity_activated_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_activity_activated_lxx_dark.png new file mode 100644 index 0000000..c6dc0ad Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_activity_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_activity_activated_lxx_light.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_activity_activated_lxx_light.png new file mode 100644 index 0000000..52d2197 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_activity_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_activity_normal_holo_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_activity_normal_holo_dark.png new file mode 100644 index 0000000..91b31d6 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_activity_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_activity_normal_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_activity_normal_lxx_dark.png new file mode 100644 index 0000000..3797c5a Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_activity_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_activity_normal_lxx_light.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_activity_normal_lxx_light.png new file mode 100644 index 0000000..3fa833e Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_activity_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_emoticons_activated_holo_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_emoticons_activated_holo_dark.png new file mode 100644 index 0000000..1c937c9 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_emoticons_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_emoticons_activated_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_emoticons_activated_lxx_dark.png new file mode 100644 index 0000000..d24060c Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_emoticons_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_emoticons_activated_lxx_light.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_emoticons_activated_lxx_light.png new file mode 100644 index 0000000..98ab993 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_emoticons_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_emoticons_normal_holo_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_emoticons_normal_holo_dark.png new file mode 100644 index 0000000..3508d24 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_emoticons_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_emoticons_normal_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_emoticons_normal_lxx_dark.png new file mode 100644 index 0000000..abbd973 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_emoticons_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_emoticons_normal_lxx_light.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_emoticons_normal_lxx_light.png new file mode 100644 index 0000000..89eac64 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_emoticons_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_flag_activated_holo_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_flag_activated_holo_dark.png new file mode 100644 index 0000000..a79fcef Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_flag_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_flag_activated_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_flag_activated_lxx_dark.png new file mode 100644 index 0000000..4e0739c Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_flag_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_flag_activated_lxx_light.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_flag_activated_lxx_light.png new file mode 100644 index 0000000..ac1cb10 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_flag_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_flag_normal_holo_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_flag_normal_holo_dark.png new file mode 100644 index 0000000..3200e39 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_flag_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_flag_normal_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_flag_normal_lxx_dark.png new file mode 100644 index 0000000..050f174 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_flag_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_flag_normal_lxx_light.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_flag_normal_lxx_light.png new file mode 100644 index 0000000..fee75bb Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_flag_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_food_activated_holo_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_food_activated_holo_dark.png new file mode 100644 index 0000000..ea97f38 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_food_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_food_activated_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_food_activated_lxx_dark.png new file mode 100644 index 0000000..bd7698d Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_food_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_food_activated_lxx_light.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_food_activated_lxx_light.png new file mode 100644 index 0000000..3d1360b Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_food_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_food_normal_holo_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_food_normal_holo_dark.png new file mode 100644 index 0000000..6c214d7 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_food_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_food_normal_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_food_normal_lxx_dark.png new file mode 100644 index 0000000..21e2c0c Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_food_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_food_normal_lxx_light.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_food_normal_lxx_light.png new file mode 100644 index 0000000..85101e5 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_food_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_nature_activated_holo_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_nature_activated_holo_dark.png new file mode 100644 index 0000000..5525df2 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_nature_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_nature_activated_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_nature_activated_lxx_dark.png new file mode 100644 index 0000000..7daf029 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_nature_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_nature_activated_lxx_light.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_nature_activated_lxx_light.png new file mode 100644 index 0000000..1c24320 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_nature_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_nature_normal_holo_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_nature_normal_holo_dark.png new file mode 100644 index 0000000..34e16b9 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_nature_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_nature_normal_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_nature_normal_lxx_dark.png new file mode 100644 index 0000000..5e9e796 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_nature_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_nature_normal_lxx_light.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_nature_normal_lxx_light.png new file mode 100644 index 0000000..a567fdb Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_nature_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_objects_activated_holo_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_objects_activated_holo_dark.png new file mode 100644 index 0000000..c3c7ec1 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_objects_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_objects_activated_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_objects_activated_lxx_dark.png new file mode 100644 index 0000000..04d64f3 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_objects_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_objects_activated_lxx_light.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_objects_activated_lxx_light.png new file mode 100644 index 0000000..01d68d5 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_objects_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_objects_normal_holo_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_objects_normal_holo_dark.png new file mode 100644 index 0000000..f012d77 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_objects_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_objects_normal_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_objects_normal_lxx_dark.png new file mode 100644 index 0000000..a9d79f1 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_objects_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_objects_normal_lxx_light.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_objects_normal_lxx_light.png new file mode 100644 index 0000000..a040f0d Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_objects_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_people_activated_holo_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_people_activated_holo_dark.png new file mode 100644 index 0000000..cfacbc2 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_people_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_people_activated_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_people_activated_lxx_dark.png new file mode 100644 index 0000000..e1c713a Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_people_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_people_activated_lxx_light.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_people_activated_lxx_light.png new file mode 100644 index 0000000..b1fe2c0 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_people_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_people_normal_holo_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_people_normal_holo_dark.png new file mode 100644 index 0000000..c54dbc1 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_people_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_people_normal_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_people_normal_lxx_dark.png new file mode 100644 index 0000000..6369ac9 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_people_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_people_normal_lxx_light.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_people_normal_lxx_light.png new file mode 100644 index 0000000..dbb111f Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_people_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_places_activated_holo_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_places_activated_holo_dark.png new file mode 100644 index 0000000..959dfdf Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_places_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_places_activated_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_places_activated_lxx_dark.png new file mode 100644 index 0000000..c4d2115 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_places_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_places_activated_lxx_light.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_places_activated_lxx_light.png new file mode 100644 index 0000000..b2b0687 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_places_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_places_normal_holo_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_places_normal_holo_dark.png new file mode 100644 index 0000000..fc0d971 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_places_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_places_normal_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_places_normal_lxx_dark.png new file mode 100644 index 0000000..53f13d9 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_places_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_places_normal_lxx_light.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_places_normal_lxx_light.png new file mode 100644 index 0000000..90cc77d Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_places_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_recents_activated_holo_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_recents_activated_holo_dark.png new file mode 100644 index 0000000..de570a1 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_recents_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_recents_activated_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_recents_activated_lxx_dark.png new file mode 100644 index 0000000..5f23ec2 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_recents_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_recents_activated_lxx_light.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_recents_activated_lxx_light.png new file mode 100644 index 0000000..6566ba8 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_recents_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_recents_normal_holo_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_recents_normal_holo_dark.png new file mode 100644 index 0000000..b256208 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_recents_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_recents_normal_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_recents_normal_lxx_dark.png new file mode 100644 index 0000000..6da194c Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_recents_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_recents_normal_lxx_light.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_recents_normal_lxx_light.png new file mode 100644 index 0000000..b50eba7 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_recents_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_symbols_activated_holo_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_symbols_activated_holo_dark.png new file mode 100644 index 0000000..af1fd27 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_symbols_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_symbols_activated_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_symbols_activated_lxx_dark.png new file mode 100644 index 0000000..1c01e90 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_symbols_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_symbols_activated_lxx_light.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_symbols_activated_lxx_light.png new file mode 100644 index 0000000..e57ad36 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_symbols_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_symbols_normal_holo_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_symbols_normal_holo_dark.png new file mode 100644 index 0000000..02b84d5 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_symbols_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_symbols_normal_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_symbols_normal_lxx_dark.png new file mode 100644 index 0000000..1218d48 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_symbols_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_emoji_symbols_normal_lxx_light.png b/keyboardview/java/res/drawable-hdpi/ic_emoji_symbols_normal_lxx_light.png new file mode 100644 index 0000000..35fc594 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_emoji_symbols_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_ime_switcher_dark.png b/keyboardview/java/res/drawable-hdpi/ic_ime_switcher_dark.png new file mode 100644 index 0000000..7506af5 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_ime_switcher_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/ic_notify_dictionary.png b/keyboardview/java/res/drawable-hdpi/ic_notify_dictionary.png new file mode 100644 index 0000000..55fe4f6 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/ic_notify_dictionary.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_background_holo.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_background_holo.9.png new file mode 100644 index 0000000..7386875 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_background_holo.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_background_lxx_dark.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_background_lxx_dark.9.png new file mode 100644 index 0000000..e34c566 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_background_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_background_lxx_light.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_background_lxx_light.9.png new file mode 100644 index 0000000..bf5450c Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_background_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_background_ics.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_background_ics.9.png new file mode 100644 index 0000000..28b406a Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_background_klp.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_background_klp.9.png new file mode 100644 index 0000000..be39415 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_background_lxx_dark.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_background_lxx_dark.9.png new file mode 100644 index 0000000..93f300a Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_background_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_background_lxx_light.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_background_lxx_light.9.png new file mode 100644 index 0000000..e7c516a Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_background_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_left_background_ics.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_left_background_ics.9.png new file mode 100644 index 0000000..e42cd88 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_left_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_left_background_klp.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_left_background_klp.9.png new file mode 100644 index 0000000..9fa6d00 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_left_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_ics.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_ics.9.png new file mode 100644 index 0000000..1603440 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_klp.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_klp.9.png new file mode 100644 index 0000000..c73269b Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_more_background_ics.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_more_background_ics.9.png new file mode 100644 index 0000000..a40d427 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_more_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_more_background_klp.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_more_background_klp.9.png new file mode 100644 index 0000000..fffd402 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_more_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_more_background_lxx_dark.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_more_background_lxx_dark.9.png new file mode 100644 index 0000000..b56fcf9 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_more_background_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_more_background_lxx_light.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_more_background_lxx_light.9.png new file mode 100644 index 0000000..32005c3 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_more_background_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_right_background_ics.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_right_background_ics.9.png new file mode 100644 index 0000000..1f68073 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_right_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_right_background_klp.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_right_background_klp.9.png new file mode 100644 index 0000000..61c23c1 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_right_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_ics.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_ics.9.png new file mode 100644 index 0000000..ec53593 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_klp.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_klp.9.png new file mode 100644 index 0000000..827d743 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_popup_panel_background_ics.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_popup_panel_background_ics.9.png new file mode 100644 index 0000000..53d7b6f Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_popup_panel_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_popup_panel_background_klp.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_popup_panel_background_klp.9.png new file mode 100644 index 0000000..f9dd3b8 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_popup_panel_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_popup_panel_background_lxx_dark.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_popup_panel_background_lxx_dark.9.png new file mode 100644 index 0000000..33d8087 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_popup_panel_background_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_popup_panel_background_lxx_light.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_popup_panel_background_lxx_light.9.png new file mode 100644 index 0000000..9b6f1bd Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_popup_panel_background_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_suggest_strip_holo.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_suggest_strip_holo.9.png new file mode 100644 index 0000000..32f4264 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_suggest_strip_holo.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_suggest_strip_lxx_dark.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_suggest_strip_lxx_dark.9.png new file mode 100644 index 0000000..3f6a943 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_suggest_strip_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/keyboard_suggest_strip_lxx_light.9.png b/keyboardview/java/res/drawable-hdpi/keyboard_suggest_strip_lxx_light.9.png new file mode 100644 index 0000000..107cfc7 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/keyboard_suggest_strip_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-hdpi/more_keys_divider.png b/keyboardview/java/res/drawable-hdpi/more_keys_divider.png new file mode 100644 index 0000000..a5912f9 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/more_keys_divider.png differ diff --git a/keyboardview/java/res/drawable-hdpi/more_suggestions_divider.png b/keyboardview/java/res/drawable-hdpi/more_suggestions_divider.png new file mode 100644 index 0000000..a5912f9 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/more_suggestions_divider.png differ diff --git a/keyboardview/java/res/drawable-hdpi/suggestions_strip_divider_holo.png b/keyboardview/java/res/drawable-hdpi/suggestions_strip_divider_holo.png new file mode 100644 index 0000000..5d44d9c Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/suggestions_strip_divider_holo.png differ diff --git a/keyboardview/java/res/drawable-hdpi/suggestions_strip_divider_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/suggestions_strip_divider_lxx_dark.png new file mode 100644 index 0000000..e94f0b5 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/suggestions_strip_divider_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/suggestions_strip_divider_lxx_light.png b/keyboardview/java/res/drawable-hdpi/suggestions_strip_divider_lxx_light.png new file mode 100644 index 0000000..9b0f20d Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/suggestions_strip_divider_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_delete_holo_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_delete_holo_dark.png new file mode 100644 index 0000000..d2d3560 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_delete_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_delete_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_delete_lxx_dark.png new file mode 100644 index 0000000..e0f99ca Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_delete_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_delete_lxx_light.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_delete_lxx_light.png new file mode 100644 index 0000000..120d066 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_delete_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_done_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_done_lxx_dark.png new file mode 100644 index 0000000..f81130d Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_done_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_done_lxx_light.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_done_lxx_light.png new file mode 100644 index 0000000..04eab59 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_done_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_go_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_go_lxx_dark.png new file mode 100644 index 0000000..516a7f1 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_go_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_go_lxx_light.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_go_lxx_light.png new file mode 100644 index 0000000..189d609 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_go_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_language_switch_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_language_switch_dark.png new file mode 100644 index 0000000..78d3a1f Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_language_switch_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_language_switch_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_language_switch_lxx_dark.png new file mode 100644 index 0000000..19c8b88 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_language_switch_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_language_switch_lxx_light.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_language_switch_lxx_light.png new file mode 100644 index 0000000..6f8c177 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_language_switch_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_next_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_next_lxx_dark.png new file mode 100644 index 0000000..77f63ef Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_next_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_next_lxx_light.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_next_lxx_light.png new file mode 100644 index 0000000..c27d0c6 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_next_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_previous_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_previous_lxx_dark.png new file mode 100644 index 0000000..fa7034b Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_previous_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_previous_lxx_light.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_previous_lxx_light.png new file mode 100644 index 0000000..32ef358 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_previous_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_return_holo_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_return_holo_dark.png new file mode 100644 index 0000000..60d893c Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_return_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_return_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_return_lxx_dark.png new file mode 100644 index 0000000..6ab33a7 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_return_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_return_lxx_light.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_return_lxx_light.png new file mode 100644 index 0000000..9ab1a3f Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_return_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_search_holo_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_search_holo_dark.png new file mode 100644 index 0000000..fa0d1bd Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_search_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_search_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_search_lxx_dark.png new file mode 100644 index 0000000..de117d3 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_search_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_search_lxx_light.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_search_lxx_light.png new file mode 100644 index 0000000..ec70627 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_search_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_send_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_send_lxx_dark.png new file mode 100644 index 0000000..52feef0 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_send_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_send_lxx_light.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_send_lxx_light.png new file mode 100644 index 0000000..bbc5094 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_send_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_settings_holo_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_settings_holo_dark.png new file mode 100644 index 0000000..2ea4a74 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_settings_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_settings_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_settings_lxx_dark.png new file mode 100644 index 0000000..f17a773 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_settings_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_settings_lxx_light.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_settings_lxx_light.png new file mode 100644 index 0000000..4230aa1 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_settings_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_shift_holo_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_shift_holo_dark.png new file mode 100644 index 0000000..544b7e1 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_shift_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_shift_locked_holo_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_shift_locked_holo_dark.png new file mode 100644 index 0000000..9b1d6a0 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_shift_locked_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_shift_locked_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_shift_locked_lxx_dark.png new file mode 100644 index 0000000..ef6b19e Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_shift_locked_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_shift_locked_lxx_light.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_shift_locked_lxx_light.png new file mode 100644 index 0000000..657f65a Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_shift_locked_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_shift_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_shift_lxx_dark.png new file mode 100644 index 0000000..a9f6f56 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_shift_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_shift_lxx_light.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_shift_lxx_light.png new file mode 100644 index 0000000..acedd4b Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_shift_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_smiley_holo_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_smiley_holo_dark.png new file mode 100644 index 0000000..cfacbc2 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_smiley_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_smiley_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_smiley_lxx_dark.png new file mode 100644 index 0000000..2cfe1d4 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_smiley_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_smiley_lxx_light.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_smiley_lxx_light.png new file mode 100644 index 0000000..b1fe2c0 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_smiley_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_space_holo_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_space_holo_dark.png new file mode 100644 index 0000000..12e27ad Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_space_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_space_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_space_lxx_dark.png new file mode 100644 index 0000000..9ff6402 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_space_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_space_lxx_light.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_space_lxx_light.png new file mode 100644 index 0000000..d43e4dd Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_space_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_tab_holo_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_tab_holo_dark.png new file mode 100644 index 0000000..2e5f811 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_tab_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_tab_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_tab_lxx_dark.png new file mode 100644 index 0000000..eff70da Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_tab_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_tab_lxx_light.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_tab_lxx_light.png new file mode 100644 index 0000000..a0c445e Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_tab_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_voice_holo_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_voice_holo_dark.png new file mode 100644 index 0000000..8a6336a Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_voice_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_voice_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_voice_lxx_dark.png new file mode 100644 index 0000000..faf2276 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_voice_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_voice_lxx_light.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_voice_lxx_light.png new file mode 100644 index 0000000..26cbe56 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_voice_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_voice_off_holo_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_voice_off_holo_dark.png new file mode 100644 index 0000000..edf1379 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_voice_off_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_voice_off_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_voice_off_lxx_dark.png new file mode 100644 index 0000000..ba733cf Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_voice_off_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_voice_off_lxx_light.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_voice_off_lxx_light.png new file mode 100644 index 0000000..fb8f5aa Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_voice_off_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_zwj_holo_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_zwj_holo_dark.png new file mode 100644 index 0000000..9f9bc17 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_zwj_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_zwj_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_zwj_lxx_dark.png new file mode 100644 index 0000000..a8424f0 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_zwj_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_zwj_lxx_light.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_zwj_lxx_light.png new file mode 100644 index 0000000..26b8317 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_zwj_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_zwnj_holo_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_zwnj_holo_dark.png new file mode 100644 index 0000000..f0f832e Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_zwnj_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_zwnj_lxx_dark.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_zwnj_lxx_dark.png new file mode 100644 index 0000000..9816ef5 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_zwnj_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-hdpi/sym_keyboard_zwnj_lxx_light.png b/keyboardview/java/res/drawable-hdpi/sym_keyboard_zwnj_lxx_light.png new file mode 100644 index 0000000..0a5f927 Binary files /dev/null and b/keyboardview/java/res/drawable-hdpi/sym_keyboard_zwnj_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_active_ics_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_active_ics_dark.9.png new file mode 100644 index 0000000..e810c77 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_active_ics_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_active_klp_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_active_klp_dark.9.png new file mode 100644 index 0000000..8e9a349 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_active_klp_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_active_lxx_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_active_lxx_dark.9.png new file mode 100644 index 0000000..7651918 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_active_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_active_lxx_light.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_active_lxx_light.9.png new file mode 100644 index 0000000..8131549 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_active_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_active_pressed_lxx_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_active_pressed_lxx_dark.9.png new file mode 100644 index 0000000..dcf814a Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_active_pressed_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_active_pressed_lxx_light.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_active_pressed_lxx_light.9.png new file mode 100644 index 0000000..7651918 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_active_pressed_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_holo_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_holo_dark.9.png new file mode 100644 index 0000000..8e9a349 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_holo_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_holo_light.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_holo_light.9.png new file mode 100644 index 0000000..2915588 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_holo_light.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_off_holo_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_off_holo_dark.9.png new file mode 100644 index 0000000..58a316f Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_off_holo_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_off_lxx_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_off_lxx_dark.9.png new file mode 100644 index 0000000..bdf2e49 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_off_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_off_lxx_light.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_off_lxx_light.9.png new file mode 100644 index 0000000..80cf6fa Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_off_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_on_ics_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_on_ics_dark.9.png new file mode 100644 index 0000000..f3fc641 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_on_ics_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_on_klp_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_on_klp_dark.9.png new file mode 100644 index 0000000..b7b2dca Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_on_klp_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_on_lxx_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_on_lxx_dark.9.png new file mode 100644 index 0000000..5b23e22 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_on_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_on_lxx_light.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_on_lxx_light.9.png new file mode 100644 index 0000000..3323d2c Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_normal_on_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_ics.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_ics.9.png new file mode 100644 index 0000000..93a6e79 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_ics.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_klp.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_klp.9.png new file mode 100644 index 0000000..ee0aae2 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_klp.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_lxx_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_lxx_dark.9.png new file mode 100644 index 0000000..81c1d71 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_lxx_light.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_lxx_light.9.png new file mode 100644 index 0000000..8fff67b Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_ics_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_ics_dark.9.png new file mode 100644 index 0000000..8f340d3 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_ics_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_ics_light.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_ics_light.9.png new file mode 100644 index 0000000..c39dd4a Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_ics_light.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_klp_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_klp_dark.9.png new file mode 100644 index 0000000..4a92b80 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_klp_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_klp_light.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_klp_light.9.png new file mode 100644 index 0000000..0493859 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_klp_light.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_off_ics_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_off_ics_dark.9.png new file mode 100644 index 0000000..53ea5f8 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_off_ics_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_off_klp_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_off_klp_dark.9.png new file mode 100644 index 0000000..72125a0 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_off_klp_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_off_lxx_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_off_lxx_dark.9.png new file mode 100644 index 0000000..ca17d52 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_off_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_off_lxx_light.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_off_lxx_light.9.png new file mode 100644 index 0000000..19aabf8 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_off_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_on_ics_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_on_ics_dark.9.png new file mode 100644 index 0000000..69c84e7 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_on_ics_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_on_klp_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_on_klp_dark.9.png new file mode 100644 index 0000000..82413d4 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_on_klp_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_on_lxx_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_on_lxx_dark.9.png new file mode 100644 index 0000000..1c2c101 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_on_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_on_lxx_light.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_on_lxx_light.9.png new file mode 100644 index 0000000..edbaa83 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_key_pressed_on_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_spacebar_normal_lxx_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_spacebar_normal_lxx_dark.9.png new file mode 100644 index 0000000..b8e56da Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_spacebar_normal_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_spacebar_normal_lxx_light.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_spacebar_normal_lxx_light.9.png new file mode 100644 index 0000000..281f830 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_spacebar_normal_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_spacebar_pressed_lxx_dark.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_spacebar_pressed_lxx_dark.9.png new file mode 100644 index 0000000..cb2ca06 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_spacebar_pressed_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/btn_keyboard_spacebar_pressed_lxx_light.9.png b/keyboardview/java/res/drawable-mdpi/btn_keyboard_spacebar_pressed_lxx_light.9.png new file mode 100644 index 0000000..653da97 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/btn_keyboard_spacebar_pressed_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/emoji_category_tab_selected_ics.9.png b/keyboardview/java/res/drawable-mdpi/emoji_category_tab_selected_ics.9.png new file mode 100644 index 0000000..1731b46 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/emoji_category_tab_selected_ics.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/emoji_category_tab_selected_klp.9.png b/keyboardview/java/res/drawable-mdpi/emoji_category_tab_selected_klp.9.png new file mode 100644 index 0000000..6354b99 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/emoji_category_tab_selected_klp.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/emoji_category_tab_unselected_holo_dark.9.png b/keyboardview/java/res/drawable-mdpi/emoji_category_tab_unselected_holo_dark.9.png new file mode 100644 index 0000000..bb45ab9 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/emoji_category_tab_unselected_holo_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_activity_activated_holo_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_activity_activated_holo_dark.png new file mode 100644 index 0000000..06fe3f5 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_activity_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_activity_activated_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_activity_activated_lxx_dark.png new file mode 100644 index 0000000..da2fc50 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_activity_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_activity_activated_lxx_light.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_activity_activated_lxx_light.png new file mode 100644 index 0000000..dc1fe1c Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_activity_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_activity_normal_holo_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_activity_normal_holo_dark.png new file mode 100644 index 0000000..57d5713 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_activity_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_activity_normal_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_activity_normal_lxx_dark.png new file mode 100644 index 0000000..2a89639 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_activity_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_activity_normal_lxx_light.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_activity_normal_lxx_light.png new file mode 100644 index 0000000..1536b07 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_activity_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_emoticons_activated_holo_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_emoticons_activated_holo_dark.png new file mode 100644 index 0000000..c7394e1 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_emoticons_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_emoticons_activated_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_emoticons_activated_lxx_dark.png new file mode 100644 index 0000000..6225b61 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_emoticons_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_emoticons_activated_lxx_light.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_emoticons_activated_lxx_light.png new file mode 100644 index 0000000..d089e6e Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_emoticons_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_emoticons_normal_holo_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_emoticons_normal_holo_dark.png new file mode 100644 index 0000000..eb4dab4 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_emoticons_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_emoticons_normal_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_emoticons_normal_lxx_dark.png new file mode 100644 index 0000000..324e5e2 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_emoticons_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_emoticons_normal_lxx_light.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_emoticons_normal_lxx_light.png new file mode 100644 index 0000000..c2a5046 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_emoticons_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_flag_activated_holo_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_flag_activated_holo_dark.png new file mode 100644 index 0000000..859da81 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_flag_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_flag_activated_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_flag_activated_lxx_dark.png new file mode 100644 index 0000000..c7419d0 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_flag_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_flag_activated_lxx_light.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_flag_activated_lxx_light.png new file mode 100644 index 0000000..4d7288d Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_flag_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_flag_normal_holo_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_flag_normal_holo_dark.png new file mode 100644 index 0000000..e1852e6 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_flag_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_flag_normal_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_flag_normal_lxx_dark.png new file mode 100644 index 0000000..67e22ef Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_flag_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_flag_normal_lxx_light.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_flag_normal_lxx_light.png new file mode 100644 index 0000000..2dfcafd Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_flag_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_food_activated_holo_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_food_activated_holo_dark.png new file mode 100644 index 0000000..0d759e8 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_food_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_food_activated_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_food_activated_lxx_dark.png new file mode 100644 index 0000000..1b82838 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_food_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_food_activated_lxx_light.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_food_activated_lxx_light.png new file mode 100644 index 0000000..128fedf Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_food_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_food_normal_holo_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_food_normal_holo_dark.png new file mode 100644 index 0000000..3c817be Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_food_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_food_normal_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_food_normal_lxx_dark.png new file mode 100644 index 0000000..19c93ef Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_food_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_food_normal_lxx_light.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_food_normal_lxx_light.png new file mode 100644 index 0000000..271bc4c Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_food_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_nature_activated_holo_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_nature_activated_holo_dark.png new file mode 100644 index 0000000..d4c8d8d Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_nature_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_nature_activated_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_nature_activated_lxx_dark.png new file mode 100644 index 0000000..848d0ce Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_nature_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_nature_activated_lxx_light.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_nature_activated_lxx_light.png new file mode 100644 index 0000000..2e1674b Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_nature_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_nature_normal_holo_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_nature_normal_holo_dark.png new file mode 100644 index 0000000..1555aa7 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_nature_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_nature_normal_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_nature_normal_lxx_dark.png new file mode 100644 index 0000000..18d20be Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_nature_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_nature_normal_lxx_light.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_nature_normal_lxx_light.png new file mode 100644 index 0000000..7cf36c4 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_nature_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_objects_activated_holo_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_objects_activated_holo_dark.png new file mode 100644 index 0000000..081dc66 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_objects_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_objects_activated_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_objects_activated_lxx_dark.png new file mode 100644 index 0000000..4006697 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_objects_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_objects_activated_lxx_light.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_objects_activated_lxx_light.png new file mode 100644 index 0000000..d6ba913 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_objects_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_objects_normal_holo_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_objects_normal_holo_dark.png new file mode 100644 index 0000000..58e6f6e Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_objects_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_objects_normal_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_objects_normal_lxx_dark.png new file mode 100644 index 0000000..ceeaa19 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_objects_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_objects_normal_lxx_light.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_objects_normal_lxx_light.png new file mode 100644 index 0000000..5eb839b Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_objects_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_people_activated_holo_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_people_activated_holo_dark.png new file mode 100644 index 0000000..067ad54 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_people_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_people_activated_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_people_activated_lxx_dark.png new file mode 100644 index 0000000..bb37a63 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_people_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_people_activated_lxx_light.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_people_activated_lxx_light.png new file mode 100644 index 0000000..e639416 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_people_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_people_normal_holo_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_people_normal_holo_dark.png new file mode 100644 index 0000000..d835d4e Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_people_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_people_normal_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_people_normal_lxx_dark.png new file mode 100644 index 0000000..a7f8160 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_people_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_people_normal_lxx_light.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_people_normal_lxx_light.png new file mode 100644 index 0000000..d4b114c Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_people_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_places_activated_holo_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_places_activated_holo_dark.png new file mode 100644 index 0000000..1aecec5 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_places_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_places_activated_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_places_activated_lxx_dark.png new file mode 100644 index 0000000..630836b Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_places_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_places_activated_lxx_light.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_places_activated_lxx_light.png new file mode 100644 index 0000000..2ba4301 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_places_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_places_normal_holo_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_places_normal_holo_dark.png new file mode 100644 index 0000000..c70e484 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_places_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_places_normal_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_places_normal_lxx_dark.png new file mode 100644 index 0000000..8bc3503 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_places_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_places_normal_lxx_light.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_places_normal_lxx_light.png new file mode 100644 index 0000000..b033c83 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_places_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_recents_activated_holo_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_recents_activated_holo_dark.png new file mode 100644 index 0000000..8009e93 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_recents_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_recents_activated_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_recents_activated_lxx_dark.png new file mode 100644 index 0000000..b0b683b Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_recents_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_recents_activated_lxx_light.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_recents_activated_lxx_light.png new file mode 100644 index 0000000..39c22c4 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_recents_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_recents_normal_holo_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_recents_normal_holo_dark.png new file mode 100644 index 0000000..c2e598d Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_recents_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_recents_normal_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_recents_normal_lxx_dark.png new file mode 100644 index 0000000..b0138f5 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_recents_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_recents_normal_lxx_light.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_recents_normal_lxx_light.png new file mode 100644 index 0000000..99e7884 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_recents_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_symbols_activated_holo_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_symbols_activated_holo_dark.png new file mode 100644 index 0000000..caea871 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_symbols_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_symbols_activated_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_symbols_activated_lxx_dark.png new file mode 100644 index 0000000..5b71c5d Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_symbols_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_symbols_activated_lxx_light.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_symbols_activated_lxx_light.png new file mode 100644 index 0000000..7249879 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_symbols_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_symbols_normal_holo_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_symbols_normal_holo_dark.png new file mode 100644 index 0000000..0edada6 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_symbols_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_symbols_normal_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_symbols_normal_lxx_dark.png new file mode 100644 index 0000000..f6db5e0 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_symbols_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_emoji_symbols_normal_lxx_light.png b/keyboardview/java/res/drawable-mdpi/ic_emoji_symbols_normal_lxx_light.png new file mode 100644 index 0000000..5d7e9bf Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_emoji_symbols_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_ime_switcher_dark.png b/keyboardview/java/res/drawable-mdpi/ic_ime_switcher_dark.png new file mode 100644 index 0000000..152f653 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_ime_switcher_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/ic_notify_dictionary.png b/keyboardview/java/res/drawable-mdpi/ic_notify_dictionary.png new file mode 100644 index 0000000..fc8701f Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/ic_notify_dictionary.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_background_holo.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_background_holo.9.png new file mode 100644 index 0000000..fbe97f7 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_background_holo.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_background_lxx_dark.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_background_lxx_dark.9.png new file mode 100644 index 0000000..012d914 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_background_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_background_lxx_light.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_background_lxx_light.9.png new file mode 100644 index 0000000..91adfac Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_background_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_background_ics.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_background_ics.9.png new file mode 100644 index 0000000..7a9f640 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_background_klp.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_background_klp.9.png new file mode 100644 index 0000000..625490b Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_background_lxx_dark.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_background_lxx_dark.9.png new file mode 100644 index 0000000..1a7dd34 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_background_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_background_lxx_light.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_background_lxx_light.9.png new file mode 100644 index 0000000..268863e Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_background_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_left_background_ics.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_left_background_ics.9.png new file mode 100644 index 0000000..5b06f09 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_left_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_left_background_klp.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_left_background_klp.9.png new file mode 100644 index 0000000..427c870 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_left_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_ics.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_ics.9.png new file mode 100644 index 0000000..fd992d6 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_klp.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_klp.9.png new file mode 100644 index 0000000..ea75729 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_more_background_ics.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_more_background_ics.9.png new file mode 100644 index 0000000..128dcd6 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_more_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_more_background_klp.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_more_background_klp.9.png new file mode 100644 index 0000000..1911c42 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_more_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_more_background_lxx_dark.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_more_background_lxx_dark.9.png new file mode 100644 index 0000000..08d67ef Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_more_background_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_more_background_lxx_light.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_more_background_lxx_light.9.png new file mode 100644 index 0000000..d0e46b1 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_more_background_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_right_background_ics.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_right_background_ics.9.png new file mode 100644 index 0000000..0b08d17 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_right_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_right_background_klp.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_right_background_klp.9.png new file mode 100644 index 0000000..cdef116 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_right_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_ics.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_ics.9.png new file mode 100644 index 0000000..cf0b33c Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_klp.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_klp.9.png new file mode 100644 index 0000000..dea5d07 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_popup_panel_background_ics.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_popup_panel_background_ics.9.png new file mode 100644 index 0000000..61988a8 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_popup_panel_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_popup_panel_background_klp.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_popup_panel_background_klp.9.png new file mode 100644 index 0000000..8965055 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_popup_panel_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_popup_panel_background_lxx_dark.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_popup_panel_background_lxx_dark.9.png new file mode 100644 index 0000000..71f16b0 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_popup_panel_background_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_popup_panel_background_lxx_light.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_popup_panel_background_lxx_light.9.png new file mode 100644 index 0000000..323aefb Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_popup_panel_background_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_suggest_strip_holo.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_suggest_strip_holo.9.png new file mode 100644 index 0000000..b1c18b4 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_suggest_strip_holo.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_suggest_strip_lxx_dark.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_suggest_strip_lxx_dark.9.png new file mode 100644 index 0000000..d85ca71 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_suggest_strip_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/keyboard_suggest_strip_lxx_light.9.png b/keyboardview/java/res/drawable-mdpi/keyboard_suggest_strip_lxx_light.9.png new file mode 100644 index 0000000..983a695 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/keyboard_suggest_strip_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-mdpi/more_keys_divider.png b/keyboardview/java/res/drawable-mdpi/more_keys_divider.png new file mode 100644 index 0000000..0f71c61 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/more_keys_divider.png differ diff --git a/keyboardview/java/res/drawable-mdpi/more_suggestions_divider.png b/keyboardview/java/res/drawable-mdpi/more_suggestions_divider.png new file mode 100644 index 0000000..0f71c61 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/more_suggestions_divider.png differ diff --git a/keyboardview/java/res/drawable-mdpi/suggestions_strip_divider_holo.png b/keyboardview/java/res/drawable-mdpi/suggestions_strip_divider_holo.png new file mode 100644 index 0000000..21e9049 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/suggestions_strip_divider_holo.png differ diff --git a/keyboardview/java/res/drawable-mdpi/suggestions_strip_divider_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/suggestions_strip_divider_lxx_dark.png new file mode 100644 index 0000000..c06e73c Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/suggestions_strip_divider_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/suggestions_strip_divider_lxx_light.png b/keyboardview/java/res/drawable-mdpi/suggestions_strip_divider_lxx_light.png new file mode 100644 index 0000000..cc9d8ed Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/suggestions_strip_divider_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_delete_holo_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_delete_holo_dark.png new file mode 100644 index 0000000..edd9d16 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_delete_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_delete_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_delete_lxx_dark.png new file mode 100644 index 0000000..cc44819 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_delete_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_delete_lxx_light.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_delete_lxx_light.png new file mode 100644 index 0000000..8afc817 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_delete_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_done_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_done_lxx_dark.png new file mode 100644 index 0000000..8a63c11 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_done_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_done_lxx_light.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_done_lxx_light.png new file mode 100644 index 0000000..930f971 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_done_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_go_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_go_lxx_dark.png new file mode 100644 index 0000000..8905172 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_go_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_go_lxx_light.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_go_lxx_light.png new file mode 100644 index 0000000..f9975c3 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_go_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_language_switch_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_language_switch_dark.png new file mode 100644 index 0000000..828929b Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_language_switch_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_language_switch_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_language_switch_lxx_dark.png new file mode 100644 index 0000000..af60d43 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_language_switch_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_language_switch_lxx_light.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_language_switch_lxx_light.png new file mode 100644 index 0000000..a061a05 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_language_switch_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_next_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_next_lxx_dark.png new file mode 100644 index 0000000..bea9d6f Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_next_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_next_lxx_light.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_next_lxx_light.png new file mode 100644 index 0000000..78773ab Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_next_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_previous_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_previous_lxx_dark.png new file mode 100644 index 0000000..f02f66e Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_previous_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_previous_lxx_light.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_previous_lxx_light.png new file mode 100644 index 0000000..87db29b Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_previous_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_return_holo_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_return_holo_dark.png new file mode 100644 index 0000000..e10103c Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_return_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_return_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_return_lxx_dark.png new file mode 100644 index 0000000..d060c89 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_return_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_return_lxx_light.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_return_lxx_light.png new file mode 100644 index 0000000..bfc7d71 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_return_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_search_holo_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_search_holo_dark.png new file mode 100644 index 0000000..290cde4 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_search_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_search_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_search_lxx_dark.png new file mode 100644 index 0000000..722d402 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_search_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_search_lxx_light.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_search_lxx_light.png new file mode 100644 index 0000000..05fbe83 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_search_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_send_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_send_lxx_dark.png new file mode 100644 index 0000000..29dd9de Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_send_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_send_lxx_light.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_send_lxx_light.png new file mode 100644 index 0000000..2de9b56 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_send_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_settings_holo_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_settings_holo_dark.png new file mode 100644 index 0000000..613f4dc Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_settings_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_settings_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_settings_lxx_dark.png new file mode 100644 index 0000000..24121de Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_settings_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_settings_lxx_light.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_settings_lxx_light.png new file mode 100644 index 0000000..a3546f3 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_settings_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_shift_holo_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_shift_holo_dark.png new file mode 100644 index 0000000..37375d9 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_shift_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_shift_locked_holo_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_shift_locked_holo_dark.png new file mode 100644 index 0000000..3654868 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_shift_locked_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_shift_locked_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_shift_locked_lxx_dark.png new file mode 100644 index 0000000..c700843 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_shift_locked_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_shift_locked_lxx_light.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_shift_locked_lxx_light.png new file mode 100644 index 0000000..298cb95 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_shift_locked_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_shift_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_shift_lxx_dark.png new file mode 100644 index 0000000..503c384 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_shift_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_shift_lxx_light.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_shift_lxx_light.png new file mode 100644 index 0000000..a99b7f9 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_shift_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_smiley_holo_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_smiley_holo_dark.png new file mode 100644 index 0000000..067ad54 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_smiley_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_smiley_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_smiley_lxx_dark.png new file mode 100644 index 0000000..2258851 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_smiley_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_smiley_lxx_light.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_smiley_lxx_light.png new file mode 100644 index 0000000..e639416 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_smiley_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_space_holo_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_space_holo_dark.png new file mode 100644 index 0000000..a38f994 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_space_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_space_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_space_lxx_dark.png new file mode 100644 index 0000000..9119a9d Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_space_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_space_lxx_light.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_space_lxx_light.png new file mode 100644 index 0000000..6c495be Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_space_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_tab_holo_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_tab_holo_dark.png new file mode 100644 index 0000000..f883807 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_tab_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_tab_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_tab_lxx_dark.png new file mode 100644 index 0000000..a9cdae7 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_tab_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_tab_lxx_light.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_tab_lxx_light.png new file mode 100644 index 0000000..89c687d Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_tab_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_voice_holo_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_voice_holo_dark.png new file mode 100644 index 0000000..0795fcc Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_voice_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_voice_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_voice_lxx_dark.png new file mode 100644 index 0000000..ab7726a Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_voice_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_voice_lxx_light.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_voice_lxx_light.png new file mode 100644 index 0000000..3654864 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_voice_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_voice_off_holo_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_voice_off_holo_dark.png new file mode 100644 index 0000000..f76da57 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_voice_off_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_voice_off_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_voice_off_lxx_dark.png new file mode 100644 index 0000000..7db32d4 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_voice_off_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_voice_off_lxx_light.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_voice_off_lxx_light.png new file mode 100644 index 0000000..bc61a69 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_voice_off_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_zwj_holo_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_zwj_holo_dark.png new file mode 100644 index 0000000..8957e28 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_zwj_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_zwj_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_zwj_lxx_dark.png new file mode 100644 index 0000000..4fbcb28 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_zwj_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_zwj_lxx_light.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_zwj_lxx_light.png new file mode 100644 index 0000000..af049b0 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_zwj_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_zwnj_holo_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_zwnj_holo_dark.png new file mode 100644 index 0000000..5f49e64 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_zwnj_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_zwnj_lxx_dark.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_zwnj_lxx_dark.png new file mode 100644 index 0000000..bcdc2a3 Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_zwnj_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-mdpi/sym_keyboard_zwnj_lxx_light.png b/keyboardview/java/res/drawable-mdpi/sym_keyboard_zwnj_lxx_light.png new file mode 100644 index 0000000..d8275bc Binary files /dev/null and b/keyboardview/java/res/drawable-mdpi/sym_keyboard_zwnj_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_active_ics_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_active_ics_dark.9.png new file mode 100644 index 0000000..d990c02 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_active_ics_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_active_klp_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_active_klp_dark.9.png new file mode 100644 index 0000000..a2f6ac0 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_active_klp_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_active_lxx_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_active_lxx_dark.9.png new file mode 100644 index 0000000..0f3d319 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_active_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_active_lxx_light.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_active_lxx_light.9.png new file mode 100644 index 0000000..cef6d00 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_active_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_active_pressed_lxx_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_active_pressed_lxx_dark.9.png new file mode 100644 index 0000000..b5768e6 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_active_pressed_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_active_pressed_lxx_light.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_active_pressed_lxx_light.9.png new file mode 100644 index 0000000..0f3d319 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_active_pressed_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_holo_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_holo_dark.9.png new file mode 100644 index 0000000..a2f6ac0 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_holo_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_holo_light.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_holo_light.9.png new file mode 100644 index 0000000..0ef4a4b Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_holo_light.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_off_holo_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_off_holo_dark.9.png new file mode 100644 index 0000000..2f00fc6 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_off_holo_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_off_lxx_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_off_lxx_dark.9.png new file mode 100644 index 0000000..8709e63 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_off_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_off_lxx_light.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_off_lxx_light.9.png new file mode 100644 index 0000000..98edd37 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_off_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_ics_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_ics_dark.9.png new file mode 100644 index 0000000..ab8fb2e Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_ics_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_klp_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_klp_dark.9.png new file mode 100644 index 0000000..20251a0 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_klp_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_lxx_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_lxx_dark.9.png new file mode 100644 index 0000000..ea002f5 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_lxx_light.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_lxx_light.9.png new file mode 100644 index 0000000..5a95073 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_ics.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_ics.9.png new file mode 100644 index 0000000..0c7bfda Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_ics.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_klp.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_klp.9.png new file mode 100644 index 0000000..891d000 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_klp.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_lxx_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_lxx_dark.9.png new file mode 100644 index 0000000..b1c9006 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_lxx_light.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_lxx_light.9.png new file mode 100644 index 0000000..52a4ad0 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_ics_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_ics_dark.9.png new file mode 100644 index 0000000..3871689 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_ics_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_ics_light.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_ics_light.9.png new file mode 100644 index 0000000..c23a4b2 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_ics_light.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_klp_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_klp_dark.9.png new file mode 100644 index 0000000..84d1739 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_klp_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_klp_light.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_klp_light.9.png new file mode 100644 index 0000000..f770962 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_klp_light.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off_ics_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off_ics_dark.9.png new file mode 100644 index 0000000..9125063 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off_ics_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off_klp_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off_klp_dark.9.png new file mode 100644 index 0000000..ee4490e Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off_klp_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off_lxx_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off_lxx_dark.9.png new file mode 100644 index 0000000..6ebc4e0 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off_lxx_light.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off_lxx_light.9.png new file mode 100644 index 0000000..6392f6e Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on_ics_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on_ics_dark.9.png new file mode 100644 index 0000000..35ce67f Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on_ics_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on_klp_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on_klp_dark.9.png new file mode 100644 index 0000000..e812477 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on_klp_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on_lxx_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on_lxx_dark.9.png new file mode 100644 index 0000000..f05f987 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on_lxx_light.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on_lxx_light.9.png new file mode 100644 index 0000000..3e8cac2 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_spacebar_normal_lxx_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_spacebar_normal_lxx_dark.9.png new file mode 100644 index 0000000..ab032dc Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_spacebar_normal_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_spacebar_normal_lxx_light.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_spacebar_normal_lxx_light.9.png new file mode 100644 index 0000000..c1ed863 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_spacebar_normal_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_spacebar_pressed_lxx_dark.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_spacebar_pressed_lxx_dark.9.png new file mode 100644 index 0000000..c3428be Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_spacebar_pressed_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/btn_keyboard_spacebar_pressed_lxx_light.9.png b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_spacebar_pressed_lxx_light.9.png new file mode 100644 index 0000000..f795ee9 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/btn_keyboard_spacebar_pressed_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/emoji_category_tab_selected_ics.9.png b/keyboardview/java/res/drawable-xhdpi/emoji_category_tab_selected_ics.9.png new file mode 100644 index 0000000..11bc966 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/emoji_category_tab_selected_ics.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/emoji_category_tab_selected_klp.9.png b/keyboardview/java/res/drawable-xhdpi/emoji_category_tab_selected_klp.9.png new file mode 100644 index 0000000..5e8549b Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/emoji_category_tab_selected_klp.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/emoji_category_tab_unselected_holo_dark.9.png b/keyboardview/java/res/drawable-xhdpi/emoji_category_tab_unselected_holo_dark.9.png new file mode 100644 index 0000000..8cede8d Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/emoji_category_tab_unselected_holo_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_activity_activated_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_activity_activated_holo_dark.png new file mode 100644 index 0000000..5bfa54f Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_activity_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_activity_activated_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_activity_activated_lxx_dark.png new file mode 100644 index 0000000..0beff03 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_activity_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_activity_activated_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_activity_activated_lxx_light.png new file mode 100644 index 0000000..f2479c2 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_activity_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_activity_normal_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_activity_normal_holo_dark.png new file mode 100644 index 0000000..2221716 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_activity_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_activity_normal_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_activity_normal_lxx_dark.png new file mode 100644 index 0000000..0cd5b5c Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_activity_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_activity_normal_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_activity_normal_lxx_light.png new file mode 100644 index 0000000..833d7f6 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_activity_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_emoticons_activated_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_emoticons_activated_holo_dark.png new file mode 100644 index 0000000..997c9b7 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_emoticons_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_emoticons_activated_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_emoticons_activated_lxx_dark.png new file mode 100644 index 0000000..5ec557d Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_emoticons_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_emoticons_activated_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_emoticons_activated_lxx_light.png new file mode 100644 index 0000000..1c1017e Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_emoticons_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_emoticons_normal_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_emoticons_normal_holo_dark.png new file mode 100644 index 0000000..23a519c Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_emoticons_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_emoticons_normal_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_emoticons_normal_lxx_dark.png new file mode 100644 index 0000000..fc70324 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_emoticons_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_emoticons_normal_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_emoticons_normal_lxx_light.png new file mode 100644 index 0000000..8af5a16 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_emoticons_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_flag_activated_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_flag_activated_holo_dark.png new file mode 100644 index 0000000..dbb3f60 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_flag_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_flag_activated_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_flag_activated_lxx_dark.png new file mode 100644 index 0000000..38fd3e6 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_flag_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_flag_activated_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_flag_activated_lxx_light.png new file mode 100644 index 0000000..d5e95ca Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_flag_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_flag_normal_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_flag_normal_holo_dark.png new file mode 100644 index 0000000..9d852fe Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_flag_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_flag_normal_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_flag_normal_lxx_dark.png new file mode 100644 index 0000000..82d548b Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_flag_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_flag_normal_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_flag_normal_lxx_light.png new file mode 100644 index 0000000..58ae474 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_flag_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_food_activated_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_food_activated_holo_dark.png new file mode 100644 index 0000000..67d27a8 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_food_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_food_activated_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_food_activated_lxx_dark.png new file mode 100644 index 0000000..3ee8caa Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_food_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_food_activated_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_food_activated_lxx_light.png new file mode 100644 index 0000000..56ec478 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_food_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_food_normal_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_food_normal_holo_dark.png new file mode 100644 index 0000000..fc299e3 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_food_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_food_normal_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_food_normal_lxx_dark.png new file mode 100644 index 0000000..32172b6 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_food_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_food_normal_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_food_normal_lxx_light.png new file mode 100644 index 0000000..27ca1ce Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_food_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_nature_activated_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_nature_activated_holo_dark.png new file mode 100644 index 0000000..3e67443 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_nature_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_nature_activated_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_nature_activated_lxx_dark.png new file mode 100644 index 0000000..1e74d5b Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_nature_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_nature_activated_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_nature_activated_lxx_light.png new file mode 100644 index 0000000..377065c Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_nature_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_nature_normal_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_nature_normal_holo_dark.png new file mode 100644 index 0000000..5344a9e Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_nature_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_nature_normal_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_nature_normal_lxx_dark.png new file mode 100644 index 0000000..d687f8d Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_nature_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_nature_normal_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_nature_normal_lxx_light.png new file mode 100644 index 0000000..298f41d Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_nature_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_objects_activated_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_objects_activated_holo_dark.png new file mode 100644 index 0000000..75695d4 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_objects_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_objects_activated_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_objects_activated_lxx_dark.png new file mode 100644 index 0000000..182f2bf Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_objects_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_objects_activated_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_objects_activated_lxx_light.png new file mode 100644 index 0000000..7c3a2d0 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_objects_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_objects_normal_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_objects_normal_holo_dark.png new file mode 100644 index 0000000..2adb186 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_objects_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_objects_normal_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_objects_normal_lxx_dark.png new file mode 100644 index 0000000..8a1faf4 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_objects_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_objects_normal_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_objects_normal_lxx_light.png new file mode 100644 index 0000000..50a1174 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_objects_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_people_activated_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_people_activated_holo_dark.png new file mode 100644 index 0000000..e6baa2e Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_people_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_people_activated_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_people_activated_lxx_dark.png new file mode 100644 index 0000000..538796e Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_people_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_people_activated_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_people_activated_lxx_light.png new file mode 100644 index 0000000..0d8c33b Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_people_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_people_normal_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_people_normal_holo_dark.png new file mode 100644 index 0000000..c26aa4e Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_people_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_people_normal_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_people_normal_lxx_dark.png new file mode 100644 index 0000000..dbde6b0 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_people_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_people_normal_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_people_normal_lxx_light.png new file mode 100644 index 0000000..aeecdee Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_people_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_places_activated_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_places_activated_holo_dark.png new file mode 100644 index 0000000..eaa3b86 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_places_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_places_activated_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_places_activated_lxx_dark.png new file mode 100644 index 0000000..607ad84 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_places_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_places_activated_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_places_activated_lxx_light.png new file mode 100644 index 0000000..fe3f0ee Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_places_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_places_normal_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_places_normal_holo_dark.png new file mode 100644 index 0000000..d6e1eaa Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_places_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_places_normal_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_places_normal_lxx_dark.png new file mode 100644 index 0000000..bbec72f Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_places_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_places_normal_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_places_normal_lxx_light.png new file mode 100644 index 0000000..e3f201d Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_places_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_recents_activated_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_recents_activated_holo_dark.png new file mode 100644 index 0000000..06003b8 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_recents_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_recents_activated_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_recents_activated_lxx_dark.png new file mode 100644 index 0000000..66d9c8e Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_recents_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_recents_activated_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_recents_activated_lxx_light.png new file mode 100644 index 0000000..2a97d59 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_recents_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_recents_normal_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_recents_normal_holo_dark.png new file mode 100644 index 0000000..da2effe Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_recents_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_recents_normal_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_recents_normal_lxx_dark.png new file mode 100644 index 0000000..f60bba4 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_recents_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_recents_normal_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_recents_normal_lxx_light.png new file mode 100644 index 0000000..a13db74 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_recents_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_symbols_activated_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_symbols_activated_holo_dark.png new file mode 100644 index 0000000..438fde2 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_symbols_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_symbols_activated_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_symbols_activated_lxx_dark.png new file mode 100644 index 0000000..35a06c5 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_symbols_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_symbols_activated_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_symbols_activated_lxx_light.png new file mode 100644 index 0000000..a64d375 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_symbols_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_symbols_normal_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_symbols_normal_holo_dark.png new file mode 100644 index 0000000..7578632 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_symbols_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_symbols_normal_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_symbols_normal_lxx_dark.png new file mode 100644 index 0000000..ac80c79 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_symbols_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_emoji_symbols_normal_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/ic_emoji_symbols_normal_lxx_light.png new file mode 100644 index 0000000..5d57423 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_emoji_symbols_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_ime_switcher_dark.png b/keyboardview/java/res/drawable-xhdpi/ic_ime_switcher_dark.png new file mode 100644 index 0000000..c567077 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_ime_switcher_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/ic_notify_dictionary.png b/keyboardview/java/res/drawable-xhdpi/ic_notify_dictionary.png new file mode 100644 index 0000000..adf49de Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/ic_notify_dictionary.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_background_holo.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_background_holo.9.png new file mode 100644 index 0000000..f5c9df3 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_background_holo.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_background_lxx_dark.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_background_lxx_dark.9.png new file mode 100644 index 0000000..1c3a38e Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_background_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_background_lxx_light.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_background_lxx_light.9.png new file mode 100644 index 0000000..a7f18b5 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_background_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_background_ics.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_background_ics.9.png new file mode 100644 index 0000000..d999127 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_background_klp.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_background_klp.9.png new file mode 100644 index 0000000..c211d89 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_background_lxx_dark.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_background_lxx_dark.9.png new file mode 100644 index 0000000..f934e33 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_background_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_background_lxx_light.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_background_lxx_light.9.png new file mode 100644 index 0000000..f70599e Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_background_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_ics.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_ics.9.png new file mode 100644 index 0000000..c4d6941 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_klp.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_klp.9.png new file mode 100644 index 0000000..543bc76 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_ics.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_ics.9.png new file mode 100644 index 0000000..5429c17 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_klp.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_klp.9.png new file mode 100644 index 0000000..ec42aad Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_ics.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_ics.9.png new file mode 100644 index 0000000..5135a08 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_klp.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_klp.9.png new file mode 100644 index 0000000..319e9d7 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_lxx_dark.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_lxx_dark.9.png new file mode 100644 index 0000000..fa5ddf2 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_lxx_light.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_lxx_light.9.png new file mode 100644 index 0000000..0da8919 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_ics.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_ics.9.png new file mode 100644 index 0000000..19a77a2 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_klp.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_klp.9.png new file mode 100644 index 0000000..052032b Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_ics.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_ics.9.png new file mode 100644 index 0000000..ae2ffff Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_klp.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_klp.9.png new file mode 100644 index 0000000..c7e9d1c Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_popup_panel_background_ics.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_popup_panel_background_ics.9.png new file mode 100644 index 0000000..1dee699 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_popup_panel_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_popup_panel_background_klp.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_popup_panel_background_klp.9.png new file mode 100644 index 0000000..36df715 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_popup_panel_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_popup_panel_background_lxx_dark.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_popup_panel_background_lxx_dark.9.png new file mode 100644 index 0000000..cf5b5d3 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_popup_panel_background_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_popup_panel_background_lxx_light.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_popup_panel_background_lxx_light.9.png new file mode 100644 index 0000000..324ee3a Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_popup_panel_background_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_suggest_strip_holo.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_suggest_strip_holo.9.png new file mode 100644 index 0000000..4c27072 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_suggest_strip_holo.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_suggest_strip_lxx_dark.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_suggest_strip_lxx_dark.9.png new file mode 100644 index 0000000..ac20faf Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_suggest_strip_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/keyboard_suggest_strip_lxx_light.9.png b/keyboardview/java/res/drawable-xhdpi/keyboard_suggest_strip_lxx_light.9.png new file mode 100644 index 0000000..7ccd1ea Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/keyboard_suggest_strip_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/more_keys_divider.png b/keyboardview/java/res/drawable-xhdpi/more_keys_divider.png new file mode 100644 index 0000000..178594b Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/more_keys_divider.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/more_suggestions_divider.png b/keyboardview/java/res/drawable-xhdpi/more_suggestions_divider.png new file mode 100644 index 0000000..178594b Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/more_suggestions_divider.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/suggestions_strip_divider_holo.png b/keyboardview/java/res/drawable-xhdpi/suggestions_strip_divider_holo.png new file mode 100644 index 0000000..4101ebc Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/suggestions_strip_divider_holo.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/suggestions_strip_divider_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/suggestions_strip_divider_lxx_dark.png new file mode 100644 index 0000000..275ec73 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/suggestions_strip_divider_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/suggestions_strip_divider_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/suggestions_strip_divider_lxx_light.png new file mode 100644 index 0000000..ee85744 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/suggestions_strip_divider_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_delete_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_delete_holo_dark.png new file mode 100644 index 0000000..e3e37d5 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_delete_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_delete_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_delete_lxx_dark.png new file mode 100644 index 0000000..3301915 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_delete_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_delete_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_delete_lxx_light.png new file mode 100644 index 0000000..a03c6b1 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_delete_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_done_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_done_lxx_dark.png new file mode 100644 index 0000000..f25e3df Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_done_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_done_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_done_lxx_light.png new file mode 100644 index 0000000..070fe8d Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_done_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_go_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_go_lxx_dark.png new file mode 100644 index 0000000..6cd43cf Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_go_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_go_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_go_lxx_light.png new file mode 100644 index 0000000..33bbe3c Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_go_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_language_switch_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_language_switch_dark.png new file mode 100644 index 0000000..b8687f5 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_language_switch_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_language_switch_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_language_switch_lxx_dark.png new file mode 100644 index 0000000..fff13b6 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_language_switch_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_language_switch_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_language_switch_lxx_light.png new file mode 100644 index 0000000..c3c499b Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_language_switch_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_next_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_next_lxx_dark.png new file mode 100644 index 0000000..0476942 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_next_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_next_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_next_lxx_light.png new file mode 100644 index 0000000..1733ca8 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_next_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_previous_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_previous_lxx_dark.png new file mode 100644 index 0000000..87f0d64 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_previous_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_previous_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_previous_lxx_light.png new file mode 100644 index 0000000..0c88c60 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_previous_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_return_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_return_holo_dark.png new file mode 100644 index 0000000..7b7ad17 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_return_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_return_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_return_lxx_dark.png new file mode 100644 index 0000000..5d6e6cb Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_return_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_return_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_return_lxx_light.png new file mode 100644 index 0000000..85473bc Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_return_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_search_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_search_holo_dark.png new file mode 100644 index 0000000..36b1646 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_search_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_search_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_search_lxx_dark.png new file mode 100644 index 0000000..28a4bd3 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_search_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_search_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_search_lxx_light.png new file mode 100644 index 0000000..a95d554 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_search_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_send_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_send_lxx_dark.png new file mode 100644 index 0000000..4360a4e Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_send_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_send_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_send_lxx_light.png new file mode 100644 index 0000000..21b0ac0 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_send_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_settings_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_settings_holo_dark.png new file mode 100644 index 0000000..15a9739 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_settings_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_settings_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_settings_lxx_dark.png new file mode 100644 index 0000000..35e4023 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_settings_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_settings_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_settings_lxx_light.png new file mode 100644 index 0000000..73fafcc Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_settings_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_shift_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_shift_holo_dark.png new file mode 100644 index 0000000..5ab5491 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_shift_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_shift_locked_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_shift_locked_holo_dark.png new file mode 100644 index 0000000..b820eaa Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_shift_locked_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_shift_locked_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_shift_locked_lxx_dark.png new file mode 100644 index 0000000..e329cbc Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_shift_locked_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_shift_locked_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_shift_locked_lxx_light.png new file mode 100644 index 0000000..64fdb17 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_shift_locked_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_shift_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_shift_lxx_dark.png new file mode 100644 index 0000000..9a87d77 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_shift_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_shift_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_shift_lxx_light.png new file mode 100644 index 0000000..196046b Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_shift_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_smiley_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_smiley_holo_dark.png new file mode 100644 index 0000000..e6baa2e Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_smiley_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_smiley_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_smiley_lxx_dark.png new file mode 100644 index 0000000..a1d4b22 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_smiley_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_smiley_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_smiley_lxx_light.png new file mode 100644 index 0000000..0d8c33b Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_smiley_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_space_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_space_holo_dark.png new file mode 100644 index 0000000..7114b74 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_space_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_space_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_space_lxx_dark.png new file mode 100644 index 0000000..2cab2d2 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_space_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_space_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_space_lxx_light.png new file mode 100644 index 0000000..621eec6 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_space_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_tab_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_tab_holo_dark.png new file mode 100644 index 0000000..73ebfe5 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_tab_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_tab_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_tab_lxx_dark.png new file mode 100644 index 0000000..134e1b8 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_tab_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_tab_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_tab_lxx_light.png new file mode 100644 index 0000000..0aae982 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_tab_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_voice_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_voice_holo_dark.png new file mode 100644 index 0000000..b2bb9b8 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_voice_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_voice_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_voice_lxx_dark.png new file mode 100644 index 0000000..65fa6d6 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_voice_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_voice_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_voice_lxx_light.png new file mode 100644 index 0000000..1b0463b Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_voice_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_voice_off_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_voice_off_holo_dark.png new file mode 100644 index 0000000..23e75bf Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_voice_off_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_voice_off_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_voice_off_lxx_dark.png new file mode 100644 index 0000000..ceddbac Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_voice_off_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_voice_off_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_voice_off_lxx_light.png new file mode 100644 index 0000000..f8fab89 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_voice_off_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_zwj_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_zwj_holo_dark.png new file mode 100644 index 0000000..2f9607a Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_zwj_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_zwj_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_zwj_lxx_dark.png new file mode 100644 index 0000000..d72cc32 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_zwj_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_zwj_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_zwj_lxx_light.png new file mode 100644 index 0000000..22bc617 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_zwj_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_zwnj_holo_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_zwnj_holo_dark.png new file mode 100644 index 0000000..ab07f75 Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_zwnj_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_zwnj_lxx_dark.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_zwnj_lxx_dark.png new file mode 100644 index 0000000..044a33b Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_zwnj_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xhdpi/sym_keyboard_zwnj_lxx_light.png b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_zwnj_lxx_light.png new file mode 100644 index 0000000..bcfed2e Binary files /dev/null and b/keyboardview/java/res/drawable-xhdpi/sym_keyboard_zwnj_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_active_ics_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_active_ics_dark.9.png new file mode 100644 index 0000000..680421e Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_active_ics_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_active_klp_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_active_klp_dark.9.png new file mode 100644 index 0000000..17f0a7a Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_active_klp_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_active_lxx_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_active_lxx_dark.9.png new file mode 100644 index 0000000..927d87b Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_active_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_active_lxx_light.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_active_lxx_light.9.png new file mode 100644 index 0000000..ce84bde Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_active_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_active_pressed_lxx_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_active_pressed_lxx_dark.9.png new file mode 100644 index 0000000..5b0854e Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_active_pressed_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_active_pressed_lxx_light.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_active_pressed_lxx_light.9.png new file mode 100644 index 0000000..927d87b Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_active_pressed_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_holo_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_holo_dark.9.png new file mode 100644 index 0000000..17f0a7a Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_holo_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_holo_light.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_holo_light.9.png new file mode 100644 index 0000000..4ddfdcb Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_holo_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_off_holo_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_off_holo_dark.9.png new file mode 100644 index 0000000..b0e815e Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_off_holo_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_off_lxx_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_off_lxx_dark.9.png new file mode 100644 index 0000000..f2b5e4c Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_off_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_off_lxx_light.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_off_lxx_light.9.png new file mode 100644 index 0000000..265109d Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_off_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_on_ics_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_on_ics_dark.9.png new file mode 100644 index 0000000..40f5011 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_on_ics_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_on_klp_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_on_klp_dark.9.png new file mode 100644 index 0000000..97f9625 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_on_klp_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_on_lxx_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_on_lxx_dark.9.png new file mode 100644 index 0000000..2166f62 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_on_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_on_lxx_light.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_on_lxx_light.9.png new file mode 100644 index 0000000..7034621 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_normal_on_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_ics.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_ics.9.png new file mode 100644 index 0000000..6d2af59 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_ics.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_klp.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_klp.9.png new file mode 100644 index 0000000..0cbb2ec Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_klp.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_lxx_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_lxx_dark.9.png new file mode 100644 index 0000000..d1efb6e Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_lxx_light.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_lxx_light.9.png new file mode 100644 index 0000000..8a6583e Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_popup_selected_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_ics_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_ics_dark.9.png new file mode 100644 index 0000000..6ff6319 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_ics_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_ics_light.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_ics_light.9.png new file mode 100644 index 0000000..3c17c5e Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_ics_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_klp_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_klp_dark.9.png new file mode 100644 index 0000000..dfb16a7 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_klp_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_klp_light.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_klp_light.9.png new file mode 100644 index 0000000..17144b6 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_klp_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_off_ics_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_off_ics_dark.9.png new file mode 100644 index 0000000..818ea70 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_off_ics_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_off_klp_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_off_klp_dark.9.png new file mode 100644 index 0000000..bf1d346 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_off_klp_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_off_lxx_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_off_lxx_dark.9.png new file mode 100644 index 0000000..b74d1ca Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_off_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_off_lxx_light.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_off_lxx_light.9.png new file mode 100644 index 0000000..48ae93f Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_off_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_on_ics_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_on_ics_dark.9.png new file mode 100644 index 0000000..a476d2a Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_on_ics_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_on_klp_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_on_klp_dark.9.png new file mode 100644 index 0000000..9622771 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_on_klp_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_on_lxx_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_on_lxx_dark.9.png new file mode 100644 index 0000000..0a6c2ea Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_on_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_on_lxx_light.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_on_lxx_light.9.png new file mode 100644 index 0000000..65dc814 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_key_pressed_on_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_spacebar_normal_lxx_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_spacebar_normal_lxx_dark.9.png new file mode 100644 index 0000000..0339de3 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_spacebar_normal_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_spacebar_normal_lxx_light.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_spacebar_normal_lxx_light.9.png new file mode 100644 index 0000000..b57cfb3 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_spacebar_normal_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_spacebar_pressed_lxx_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_spacebar_pressed_lxx_dark.9.png new file mode 100644 index 0000000..8e74c67 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_spacebar_pressed_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_spacebar_pressed_lxx_light.9.png b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_spacebar_pressed_lxx_light.9.png new file mode 100644 index 0000000..1ca1ae3 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/btn_keyboard_spacebar_pressed_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/emoji_category_tab_selected_ics.9.png b/keyboardview/java/res/drawable-xxhdpi/emoji_category_tab_selected_ics.9.png new file mode 100644 index 0000000..b13ee2b Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/emoji_category_tab_selected_ics.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/emoji_category_tab_selected_klp.9.png b/keyboardview/java/res/drawable-xxhdpi/emoji_category_tab_selected_klp.9.png new file mode 100644 index 0000000..c81e651 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/emoji_category_tab_selected_klp.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/emoji_category_tab_unselected_holo_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/emoji_category_tab_unselected_holo_dark.9.png new file mode 100644 index 0000000..3891886 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/emoji_category_tab_unselected_holo_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_activity_activated_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_activity_activated_holo_dark.png new file mode 100644 index 0000000..c9f4aab Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_activity_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_activity_activated_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_activity_activated_lxx_dark.png new file mode 100644 index 0000000..6cf4142 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_activity_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_activity_activated_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_activity_activated_lxx_light.png new file mode 100644 index 0000000..91f9398 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_activity_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_activity_normal_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_activity_normal_holo_dark.png new file mode 100644 index 0000000..3ab3f7d Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_activity_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_activity_normal_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_activity_normal_lxx_dark.png new file mode 100644 index 0000000..06f232b Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_activity_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_activity_normal_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_activity_normal_lxx_light.png new file mode 100644 index 0000000..d042989 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_activity_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_emoticons_activated_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_emoticons_activated_holo_dark.png new file mode 100644 index 0000000..a217269 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_emoticons_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_emoticons_activated_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_emoticons_activated_lxx_dark.png new file mode 100644 index 0000000..732ed3b Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_emoticons_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_emoticons_activated_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_emoticons_activated_lxx_light.png new file mode 100644 index 0000000..fbefde4 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_emoticons_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_emoticons_normal_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_emoticons_normal_holo_dark.png new file mode 100644 index 0000000..dfa43cd Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_emoticons_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_emoticons_normal_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_emoticons_normal_lxx_dark.png new file mode 100644 index 0000000..dbe8eec Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_emoticons_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_emoticons_normal_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_emoticons_normal_lxx_light.png new file mode 100644 index 0000000..5dcb48d Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_emoticons_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_flag_activated_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_flag_activated_holo_dark.png new file mode 100644 index 0000000..99229a2 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_flag_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_flag_activated_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_flag_activated_lxx_dark.png new file mode 100644 index 0000000..77cd065 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_flag_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_flag_activated_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_flag_activated_lxx_light.png new file mode 100644 index 0000000..b64a591 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_flag_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_flag_normal_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_flag_normal_holo_dark.png new file mode 100644 index 0000000..a28fdd0 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_flag_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_flag_normal_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_flag_normal_lxx_dark.png new file mode 100644 index 0000000..0d51303 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_flag_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_flag_normal_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_flag_normal_lxx_light.png new file mode 100644 index 0000000..3851b45 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_flag_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_food_activated_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_food_activated_holo_dark.png new file mode 100644 index 0000000..02bd4f0 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_food_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_food_activated_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_food_activated_lxx_dark.png new file mode 100644 index 0000000..20501a5 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_food_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_food_activated_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_food_activated_lxx_light.png new file mode 100644 index 0000000..4b592e8 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_food_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_food_normal_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_food_normal_holo_dark.png new file mode 100644 index 0000000..bd3bd42 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_food_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_food_normal_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_food_normal_lxx_dark.png new file mode 100644 index 0000000..3e991d3 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_food_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_food_normal_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_food_normal_lxx_light.png new file mode 100644 index 0000000..8d4b431 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_food_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_nature_activated_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_nature_activated_holo_dark.png new file mode 100644 index 0000000..470fd69 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_nature_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_nature_activated_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_nature_activated_lxx_dark.png new file mode 100644 index 0000000..024b33a Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_nature_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_nature_activated_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_nature_activated_lxx_light.png new file mode 100644 index 0000000..9232f9e Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_nature_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_nature_normal_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_nature_normal_holo_dark.png new file mode 100644 index 0000000..a7fde0e Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_nature_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_nature_normal_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_nature_normal_lxx_dark.png new file mode 100644 index 0000000..598d3dd Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_nature_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_nature_normal_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_nature_normal_lxx_light.png new file mode 100644 index 0000000..d39d146 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_nature_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_objects_activated_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_objects_activated_holo_dark.png new file mode 100644 index 0000000..c582b70 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_objects_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_objects_activated_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_objects_activated_lxx_dark.png new file mode 100644 index 0000000..20775e1 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_objects_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_objects_activated_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_objects_activated_lxx_light.png new file mode 100644 index 0000000..b893760 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_objects_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_objects_normal_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_objects_normal_holo_dark.png new file mode 100644 index 0000000..acc95d7 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_objects_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_objects_normal_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_objects_normal_lxx_dark.png new file mode 100644 index 0000000..ec35112 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_objects_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_objects_normal_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_objects_normal_lxx_light.png new file mode 100644 index 0000000..df769c5 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_objects_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_people_activated_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_people_activated_holo_dark.png new file mode 100644 index 0000000..5973ac3 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_people_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_people_activated_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_people_activated_lxx_dark.png new file mode 100644 index 0000000..47f6554 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_people_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_people_activated_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_people_activated_lxx_light.png new file mode 100644 index 0000000..ef5bf5a Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_people_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_people_normal_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_people_normal_holo_dark.png new file mode 100644 index 0000000..22e06f8 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_people_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_people_normal_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_people_normal_lxx_dark.png new file mode 100644 index 0000000..8ebecb2 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_people_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_people_normal_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_people_normal_lxx_light.png new file mode 100644 index 0000000..d6369d9 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_people_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_places_activated_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_places_activated_holo_dark.png new file mode 100644 index 0000000..690e95f Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_places_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_places_activated_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_places_activated_lxx_dark.png new file mode 100644 index 0000000..6ba4c3a Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_places_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_places_activated_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_places_activated_lxx_light.png new file mode 100644 index 0000000..b753132 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_places_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_places_normal_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_places_normal_holo_dark.png new file mode 100644 index 0000000..ced4b08 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_places_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_places_normal_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_places_normal_lxx_dark.png new file mode 100644 index 0000000..d645814 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_places_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_places_normal_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_places_normal_lxx_light.png new file mode 100644 index 0000000..95b111d Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_places_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_recents_activated_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_recents_activated_holo_dark.png new file mode 100644 index 0000000..25e847e Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_recents_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_recents_activated_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_recents_activated_lxx_dark.png new file mode 100644 index 0000000..1501a07 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_recents_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_recents_activated_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_recents_activated_lxx_light.png new file mode 100644 index 0000000..dcf876a Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_recents_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_recents_normal_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_recents_normal_holo_dark.png new file mode 100644 index 0000000..c86368d Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_recents_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_recents_normal_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_recents_normal_lxx_dark.png new file mode 100644 index 0000000..5aeb79a Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_recents_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_recents_normal_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_recents_normal_lxx_light.png new file mode 100644 index 0000000..7b8b003 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_recents_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_symbols_activated_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_symbols_activated_holo_dark.png new file mode 100644 index 0000000..29dfc71 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_symbols_activated_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_symbols_activated_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_symbols_activated_lxx_dark.png new file mode 100644 index 0000000..73f720d Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_symbols_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_symbols_activated_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_symbols_activated_lxx_light.png new file mode 100644 index 0000000..3bbec18 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_symbols_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_symbols_normal_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_symbols_normal_holo_dark.png new file mode 100644 index 0000000..0570567 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_symbols_normal_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_symbols_normal_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_symbols_normal_lxx_dark.png new file mode 100644 index 0000000..938f3f3 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_symbols_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_emoji_symbols_normal_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_symbols_normal_lxx_light.png new file mode 100644 index 0000000..b7f51eb Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_emoji_symbols_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_ime_switcher_dark.png b/keyboardview/java/res/drawable-xxhdpi/ic_ime_switcher_dark.png new file mode 100644 index 0000000..f99f7d0 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_ime_switcher_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/ic_notify_dictionary.png b/keyboardview/java/res/drawable-xxhdpi/ic_notify_dictionary.png new file mode 100644 index 0000000..b61d504 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/ic_notify_dictionary.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_background_holo.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_background_holo.9.png new file mode 100644 index 0000000..bcef0f8 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_background_holo.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_background_lxx_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_background_lxx_dark.9.png new file mode 100644 index 0000000..8b89170 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_background_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_background_lxx_light.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_background_lxx_light.9.png new file mode 100644 index 0000000..847df8a Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_background_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_background_ics.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_background_ics.9.png new file mode 100644 index 0000000..bd1ef3c Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_background_klp.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_background_klp.9.png new file mode 100644 index 0000000..fd2f9e5 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_background_lxx_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_background_lxx_dark.9.png new file mode 100644 index 0000000..1b92455 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_background_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_background_lxx_light.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_background_lxx_light.9.png new file mode 100644 index 0000000..3effde3 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_background_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_left_background_ics.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_left_background_ics.9.png new file mode 100644 index 0000000..65af4b5 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_left_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_left_background_klp.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_left_background_klp.9.png new file mode 100644 index 0000000..3ab7900 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_left_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_left_more_background_ics.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_left_more_background_ics.9.png new file mode 100644 index 0000000..ac6750d Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_left_more_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_left_more_background_klp.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_left_more_background_klp.9.png new file mode 100644 index 0000000..99543a1 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_left_more_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_ics.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_ics.9.png new file mode 100644 index 0000000..cea7c05 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_klp.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_klp.9.png new file mode 100644 index 0000000..121411a Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_lxx_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_lxx_dark.9.png new file mode 100644 index 0000000..55d6330 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_lxx_light.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_lxx_light.9.png new file mode 100644 index 0000000..4523be9 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_more_background_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_right_background_ics.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_right_background_ics.9.png new file mode 100644 index 0000000..520fa7c Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_right_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_right_background_klp.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_right_background_klp.9.png new file mode 100644 index 0000000..e9e3792 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_right_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_right_more_background_ics.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_right_more_background_ics.9.png new file mode 100644 index 0000000..eee2217 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_right_more_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_right_more_background_klp.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_right_more_background_klp.9.png new file mode 100644 index 0000000..6c1143a Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_key_feedback_right_more_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_popup_panel_background_ics.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_popup_panel_background_ics.9.png new file mode 100644 index 0000000..721c244 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_popup_panel_background_ics.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_popup_panel_background_klp.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_popup_panel_background_klp.9.png new file mode 100644 index 0000000..91d5d7f Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_popup_panel_background_klp.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_popup_panel_background_lxx_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_popup_panel_background_lxx_dark.9.png new file mode 100644 index 0000000..440b5bb Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_popup_panel_background_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_popup_panel_background_lxx_light.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_popup_panel_background_lxx_light.9.png new file mode 100644 index 0000000..15915f7 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_popup_panel_background_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_suggest_strip_holo.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_suggest_strip_holo.9.png new file mode 100644 index 0000000..08176fe Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_suggest_strip_holo.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_suggest_strip_lxx_dark.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_suggest_strip_lxx_dark.9.png new file mode 100644 index 0000000..2de0c9c Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_suggest_strip_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/keyboard_suggest_strip_lxx_light.9.png b/keyboardview/java/res/drawable-xxhdpi/keyboard_suggest_strip_lxx_light.9.png new file mode 100644 index 0000000..8b495f3 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/keyboard_suggest_strip_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/suggestions_strip_divider_holo.png b/keyboardview/java/res/drawable-xxhdpi/suggestions_strip_divider_holo.png new file mode 100644 index 0000000..d13ca42 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/suggestions_strip_divider_holo.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/suggestions_strip_divider_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/suggestions_strip_divider_lxx_dark.png new file mode 100644 index 0000000..6b414b7 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/suggestions_strip_divider_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/suggestions_strip_divider_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/suggestions_strip_divider_lxx_light.png new file mode 100644 index 0000000..eccfff7 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/suggestions_strip_divider_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_delete_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_delete_holo_dark.png new file mode 100644 index 0000000..92be792 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_delete_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_delete_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_delete_lxx_dark.png new file mode 100644 index 0000000..1f37a02 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_delete_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_delete_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_delete_lxx_light.png new file mode 100644 index 0000000..76b3d72 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_delete_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_done_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_done_lxx_dark.png new file mode 100644 index 0000000..ccd270e Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_done_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_done_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_done_lxx_light.png new file mode 100644 index 0000000..0347327 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_done_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_go_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_go_lxx_dark.png new file mode 100644 index 0000000..0617c15 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_go_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_go_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_go_lxx_light.png new file mode 100644 index 0000000..0c66a6b Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_go_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_language_switch_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_language_switch_dark.png new file mode 100644 index 0000000..88b55bb Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_language_switch_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_language_switch_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_language_switch_lxx_dark.png new file mode 100644 index 0000000..329158c Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_language_switch_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_language_switch_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_language_switch_lxx_light.png new file mode 100644 index 0000000..588bf6e Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_language_switch_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_next_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_next_lxx_dark.png new file mode 100644 index 0000000..43cde8d Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_next_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_next_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_next_lxx_light.png new file mode 100644 index 0000000..392ed49 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_next_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_previous_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_previous_lxx_dark.png new file mode 100644 index 0000000..193e34f Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_previous_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_previous_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_previous_lxx_light.png new file mode 100644 index 0000000..33e2e0b Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_previous_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_return_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_return_holo_dark.png new file mode 100644 index 0000000..46ee50e Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_return_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_return_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_return_lxx_dark.png new file mode 100644 index 0000000..8c34d11 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_return_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_return_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_return_lxx_light.png new file mode 100644 index 0000000..a429d66 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_return_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_search_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_search_holo_dark.png new file mode 100644 index 0000000..f518748 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_search_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_search_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_search_lxx_dark.png new file mode 100644 index 0000000..a32b6c5 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_search_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_search_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_search_lxx_light.png new file mode 100644 index 0000000..1b9952a Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_search_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_send_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_send_lxx_dark.png new file mode 100644 index 0000000..21a9e09 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_send_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_send_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_send_lxx_light.png new file mode 100644 index 0000000..a886505 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_send_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_settings_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_settings_holo_dark.png new file mode 100644 index 0000000..bf643e1 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_settings_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_settings_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_settings_lxx_dark.png new file mode 100644 index 0000000..a52764f Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_settings_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_settings_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_settings_lxx_light.png new file mode 100644 index 0000000..5464d4f Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_settings_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_shift_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_shift_holo_dark.png new file mode 100644 index 0000000..523286e Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_shift_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_shift_locked_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_shift_locked_holo_dark.png new file mode 100644 index 0000000..87926d9 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_shift_locked_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_shift_locked_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_shift_locked_lxx_dark.png new file mode 100644 index 0000000..316903e Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_shift_locked_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_shift_locked_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_shift_locked_lxx_light.png new file mode 100644 index 0000000..2da7b65 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_shift_locked_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_shift_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_shift_lxx_dark.png new file mode 100644 index 0000000..8c33ad8 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_shift_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_shift_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_shift_lxx_light.png new file mode 100644 index 0000000..b96bf10 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_shift_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_smiley_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_smiley_holo_dark.png new file mode 100644 index 0000000..5973ac3 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_smiley_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_smiley_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_smiley_lxx_dark.png new file mode 100644 index 0000000..ea89a87 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_smiley_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_smiley_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_smiley_lxx_light.png new file mode 100644 index 0000000..ef5bf5a Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_smiley_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_space_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_space_holo_dark.png new file mode 100644 index 0000000..1dab1f4 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_space_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_space_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_space_lxx_dark.png new file mode 100644 index 0000000..f05d7d2 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_space_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_space_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_space_lxx_light.png new file mode 100644 index 0000000..94be906 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_space_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_tab_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_tab_holo_dark.png new file mode 100644 index 0000000..6eb3eb0 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_tab_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_tab_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_tab_lxx_dark.png new file mode 100644 index 0000000..55de1b7 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_tab_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_tab_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_tab_lxx_light.png new file mode 100644 index 0000000..d320581 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_tab_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_voice_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_voice_holo_dark.png new file mode 100644 index 0000000..f04cadf Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_voice_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_voice_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_voice_lxx_dark.png new file mode 100644 index 0000000..28ef257 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_voice_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_voice_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_voice_lxx_light.png new file mode 100644 index 0000000..1480ba9 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_voice_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_voice_off_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_voice_off_holo_dark.png new file mode 100644 index 0000000..e74d523 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_voice_off_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_voice_off_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_voice_off_lxx_dark.png new file mode 100644 index 0000000..69591f4 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_voice_off_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_voice_off_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_voice_off_lxx_light.png new file mode 100644 index 0000000..61c92f0 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_voice_off_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_zwj_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_zwj_holo_dark.png new file mode 100644 index 0000000..5e225b8 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_zwj_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_zwj_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_zwj_lxx_dark.png new file mode 100644 index 0000000..f8bd0c7 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_zwj_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_zwj_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_zwj_lxx_light.png new file mode 100644 index 0000000..83411c8 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_zwj_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_zwnj_holo_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_zwnj_holo_dark.png new file mode 100644 index 0000000..cdfc029 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_zwnj_holo_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_zwnj_lxx_dark.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_zwnj_lxx_dark.png new file mode 100644 index 0000000..b1372f6 Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_zwnj_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_zwnj_lxx_light.png b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_zwnj_lxx_light.png new file mode 100644 index 0000000..3aece2e Binary files /dev/null and b/keyboardview/java/res/drawable-xxhdpi/sym_keyboard_zwnj_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_active_lxx_dark.9.png b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_active_lxx_dark.9.png new file mode 100644 index 0000000..eac4475 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_active_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_active_lxx_light.9.png b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_active_lxx_light.9.png new file mode 100644 index 0000000..16d1f68 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_active_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_active_pressed_lxx_dark.9.png b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_active_pressed_lxx_dark.9.png new file mode 100644 index 0000000..78923a8 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_active_pressed_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_active_pressed_lxx_light.9.png b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_active_pressed_lxx_light.9.png new file mode 100644 index 0000000..e57e80d Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_active_pressed_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_off_lxx_dark.9.png b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_off_lxx_dark.9.png new file mode 100644 index 0000000..0b3d796 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_off_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_off_lxx_light.9.png b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_off_lxx_light.9.png new file mode 100644 index 0000000..6edd4e3 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_off_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_on_lxx_dark.9.png b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_on_lxx_dark.9.png new file mode 100644 index 0000000..61a5efc Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_on_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_on_lxx_light.9.png b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_on_lxx_light.9.png new file mode 100644 index 0000000..c60a235 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_normal_on_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_popup_selected_lxx_dark.9.png b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_popup_selected_lxx_dark.9.png new file mode 100644 index 0000000..842c685 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_popup_selected_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_popup_selected_lxx_light.9.png b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_popup_selected_lxx_light.9.png new file mode 100644 index 0000000..6b03306 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_popup_selected_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_off_lxx_dark.9.png b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_off_lxx_dark.9.png new file mode 100644 index 0000000..276065e Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_off_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_off_lxx_light.9.png b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_off_lxx_light.9.png new file mode 100644 index 0000000..e64147f Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_off_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_on_lxx_dark.9.png b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_on_lxx_dark.9.png new file mode 100644 index 0000000..c130014 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_on_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_on_lxx_light.9.png b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_on_lxx_light.9.png new file mode 100644 index 0000000..e433f56 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_key_pressed_on_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_normal_lxx_dark.9.png b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_normal_lxx_dark.9.png new file mode 100644 index 0000000..ee4d16b Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_normal_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_normal_lxx_light.9.png b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_normal_lxx_light.9.png new file mode 100644 index 0000000..14cba3c Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_normal_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_pressed_lxx_dark.9.png b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_pressed_lxx_dark.9.png new file mode 100644 index 0000000..671c31f Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_pressed_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_pressed_lxx_light.9.png b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_pressed_lxx_light.9.png new file mode 100644 index 0000000..8a6f32a Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/btn_keyboard_spacebar_pressed_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_activity_activated_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_activity_activated_lxx_dark.png new file mode 100644 index 0000000..7334799 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_activity_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_activity_activated_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_activity_activated_lxx_light.png new file mode 100644 index 0000000..bbea0c5 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_activity_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_activity_normal_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_activity_normal_lxx_dark.png new file mode 100644 index 0000000..3f70e5a Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_activity_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_activity_normal_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_activity_normal_lxx_light.png new file mode 100644 index 0000000..11d480e Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_activity_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_emoticons_activated_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_emoticons_activated_lxx_dark.png new file mode 100644 index 0000000..0198bce Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_emoticons_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_emoticons_activated_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_emoticons_activated_lxx_light.png new file mode 100644 index 0000000..f530ba1 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_emoticons_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_emoticons_normal_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_emoticons_normal_lxx_dark.png new file mode 100644 index 0000000..d9022bb Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_emoticons_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_emoticons_normal_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_emoticons_normal_lxx_light.png new file mode 100644 index 0000000..89dc4cd Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_emoticons_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_flag_activated_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_flag_activated_lxx_dark.png new file mode 100644 index 0000000..12d2367 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_flag_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_flag_activated_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_flag_activated_lxx_light.png new file mode 100644 index 0000000..c718065 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_flag_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_flag_normal_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_flag_normal_lxx_dark.png new file mode 100644 index 0000000..f6d1885 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_flag_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_flag_normal_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_flag_normal_lxx_light.png new file mode 100644 index 0000000..5314d47 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_flag_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_food_activated_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_food_activated_lxx_dark.png new file mode 100644 index 0000000..fd9b1c4 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_food_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_food_activated_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_food_activated_lxx_light.png new file mode 100644 index 0000000..2d50134 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_food_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_food_normal_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_food_normal_lxx_dark.png new file mode 100644 index 0000000..086e757 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_food_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_food_normal_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_food_normal_lxx_light.png new file mode 100644 index 0000000..cde6c33 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_food_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_nature_activated_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_nature_activated_lxx_dark.png new file mode 100644 index 0000000..efbf51c Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_nature_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_nature_activated_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_nature_activated_lxx_light.png new file mode 100644 index 0000000..95355c6 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_nature_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_nature_normal_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_nature_normal_lxx_dark.png new file mode 100644 index 0000000..f5531ea Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_nature_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_nature_normal_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_nature_normal_lxx_light.png new file mode 100644 index 0000000..b5085cb Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_nature_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_objects_activated_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_objects_activated_lxx_dark.png new file mode 100644 index 0000000..730f75d Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_objects_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_objects_activated_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_objects_activated_lxx_light.png new file mode 100644 index 0000000..f4a250d Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_objects_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_objects_normal_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_objects_normal_lxx_dark.png new file mode 100644 index 0000000..4658cea Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_objects_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_objects_normal_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_objects_normal_lxx_light.png new file mode 100644 index 0000000..7b27829 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_objects_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_people_activated_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_people_activated_lxx_dark.png new file mode 100644 index 0000000..b70f07a Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_people_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_people_activated_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_people_activated_lxx_light.png new file mode 100644 index 0000000..7e05208 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_people_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_people_normal_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_people_normal_lxx_dark.png new file mode 100644 index 0000000..c960d15 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_people_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_people_normal_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_people_normal_lxx_light.png new file mode 100644 index 0000000..44325cf Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_people_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_places_activated_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_places_activated_lxx_dark.png new file mode 100644 index 0000000..bca6bba Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_places_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_places_activated_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_places_activated_lxx_light.png new file mode 100644 index 0000000..8f340d2 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_places_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_places_normal_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_places_normal_lxx_dark.png new file mode 100644 index 0000000..a06e1d8 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_places_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_places_normal_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_places_normal_lxx_light.png new file mode 100644 index 0000000..b247768 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_places_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_recents_activated_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_recents_activated_lxx_dark.png new file mode 100644 index 0000000..3508374 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_recents_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_recents_activated_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_recents_activated_lxx_light.png new file mode 100644 index 0000000..82a029e Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_recents_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_recents_normal_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_recents_normal_lxx_dark.png new file mode 100644 index 0000000..6797d7b Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_recents_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_recents_normal_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_recents_normal_lxx_light.png new file mode 100644 index 0000000..6b622ac Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_recents_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_symbols_activated_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_symbols_activated_lxx_dark.png new file mode 100644 index 0000000..51336e9 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_symbols_activated_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_symbols_activated_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_symbols_activated_lxx_light.png new file mode 100644 index 0000000..2ab8fa6 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_symbols_activated_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_symbols_normal_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_symbols_normal_lxx_dark.png new file mode 100644 index 0000000..e02ad61 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_symbols_normal_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_symbols_normal_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_symbols_normal_lxx_light.png new file mode 100644 index 0000000..b17f066 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/ic_emoji_symbols_normal_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/keyboard_background_lxx_dark.9.png b/keyboardview/java/res/drawable-xxxhdpi/keyboard_background_lxx_dark.9.png new file mode 100644 index 0000000..a7dd537 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/keyboard_background_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/keyboard_background_lxx_light.9.png b/keyboardview/java/res/drawable-xxxhdpi/keyboard_background_lxx_light.9.png new file mode 100644 index 0000000..ef7ab20 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/keyboard_background_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/keyboard_key_feedback_background_lxx_dark.9.png b/keyboardview/java/res/drawable-xxxhdpi/keyboard_key_feedback_background_lxx_dark.9.png new file mode 100644 index 0000000..0e08b6b Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/keyboard_key_feedback_background_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/keyboard_key_feedback_background_lxx_light.9.png b/keyboardview/java/res/drawable-xxxhdpi/keyboard_key_feedback_background_lxx_light.9.png new file mode 100644 index 0000000..fb10523 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/keyboard_key_feedback_background_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/keyboard_key_feedback_more_background_lxx_dark.9.png b/keyboardview/java/res/drawable-xxxhdpi/keyboard_key_feedback_more_background_lxx_dark.9.png new file mode 100644 index 0000000..fd88668 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/keyboard_key_feedback_more_background_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/keyboard_key_feedback_more_background_lxx_light.9.png b/keyboardview/java/res/drawable-xxxhdpi/keyboard_key_feedback_more_background_lxx_light.9.png new file mode 100644 index 0000000..ab1bfad Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/keyboard_key_feedback_more_background_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/keyboard_popup_panel_background_lxx_dark.9.png b/keyboardview/java/res/drawable-xxxhdpi/keyboard_popup_panel_background_lxx_dark.9.png new file mode 100644 index 0000000..3489a9c Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/keyboard_popup_panel_background_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/keyboard_popup_panel_background_lxx_light.9.png b/keyboardview/java/res/drawable-xxxhdpi/keyboard_popup_panel_background_lxx_light.9.png new file mode 100644 index 0000000..2e37972 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/keyboard_popup_panel_background_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/keyboard_suggest_strip_lxx_dark.9.png b/keyboardview/java/res/drawable-xxxhdpi/keyboard_suggest_strip_lxx_dark.9.png new file mode 100644 index 0000000..098fa06 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/keyboard_suggest_strip_lxx_dark.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/keyboard_suggest_strip_lxx_light.9.png b/keyboardview/java/res/drawable-xxxhdpi/keyboard_suggest_strip_lxx_light.9.png new file mode 100644 index 0000000..c1c48c9 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/keyboard_suggest_strip_lxx_light.9.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/suggestions_strip_divider_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/suggestions_strip_divider_lxx_dark.png new file mode 100644 index 0000000..0dc783d Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/suggestions_strip_divider_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/suggestions_strip_divider_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/suggestions_strip_divider_lxx_light.png new file mode 100644 index 0000000..f3162e4 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/suggestions_strip_divider_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_delete_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_delete_lxx_dark.png new file mode 100644 index 0000000..c8a064d Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_delete_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_delete_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_delete_lxx_light.png new file mode 100644 index 0000000..2d2e6e1 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_delete_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_done_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_done_lxx_dark.png new file mode 100644 index 0000000..27426da Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_done_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_done_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_done_lxx_light.png new file mode 100644 index 0000000..4b1a69f Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_done_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_go_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_go_lxx_dark.png new file mode 100644 index 0000000..79d3eef Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_go_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_go_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_go_lxx_light.png new file mode 100644 index 0000000..a87e240 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_go_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_language_switch_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_language_switch_lxx_dark.png new file mode 100644 index 0000000..26f3615 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_language_switch_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_language_switch_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_language_switch_lxx_light.png new file mode 100644 index 0000000..93efb37 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_language_switch_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_next_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_next_lxx_dark.png new file mode 100644 index 0000000..27bf689 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_next_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_next_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_next_lxx_light.png new file mode 100644 index 0000000..c624104 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_next_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_previous_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_previous_lxx_dark.png new file mode 100644 index 0000000..50e0a31 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_previous_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_previous_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_previous_lxx_light.png new file mode 100644 index 0000000..3f44249 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_previous_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_return_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_return_lxx_dark.png new file mode 100644 index 0000000..c101071 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_return_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_return_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_return_lxx_light.png new file mode 100644 index 0000000..54e7fb0 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_return_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_search_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_search_lxx_dark.png new file mode 100644 index 0000000..8f7dfce Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_search_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_search_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_search_lxx_light.png new file mode 100644 index 0000000..07d5551 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_search_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_send_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_send_lxx_dark.png new file mode 100644 index 0000000..9c12ec2 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_send_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_send_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_send_lxx_light.png new file mode 100644 index 0000000..fc68828 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_send_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_settings_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_settings_lxx_dark.png new file mode 100644 index 0000000..d728b83 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_settings_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_settings_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_settings_lxx_light.png new file mode 100644 index 0000000..1351710 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_settings_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_shift_locked_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_shift_locked_lxx_dark.png new file mode 100644 index 0000000..e75d556 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_shift_locked_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_shift_locked_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_shift_locked_lxx_light.png new file mode 100644 index 0000000..00521bf Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_shift_locked_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_shift_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_shift_lxx_dark.png new file mode 100644 index 0000000..f47bf66 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_shift_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_shift_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_shift_lxx_light.png new file mode 100644 index 0000000..fdb6cd7 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_shift_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_smiley_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_smiley_lxx_dark.png new file mode 100644 index 0000000..26fd4e7 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_smiley_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_smiley_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_smiley_lxx_light.png new file mode 100644 index 0000000..7b0467a Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_smiley_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_space_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_space_lxx_dark.png new file mode 100644 index 0000000..1f6c92d Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_space_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_space_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_space_lxx_light.png new file mode 100644 index 0000000..656cf99 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_space_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_tab_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_tab_lxx_dark.png new file mode 100644 index 0000000..8988469 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_tab_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_tab_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_tab_lxx_light.png new file mode 100644 index 0000000..aeedba6 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_tab_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_voice_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_voice_lxx_dark.png new file mode 100644 index 0000000..9d5b733 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_voice_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_voice_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_voice_lxx_light.png new file mode 100644 index 0000000..9db910d Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_voice_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_voice_off_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_voice_off_lxx_dark.png new file mode 100644 index 0000000..e233d09 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_voice_off_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_voice_off_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_voice_off_lxx_light.png new file mode 100644 index 0000000..7e0a964 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_voice_off_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_zwj_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_zwj_lxx_dark.png new file mode 100644 index 0000000..94de916 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_zwj_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_zwj_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_zwj_lxx_light.png new file mode 100644 index 0000000..2b13ba7 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_zwj_lxx_light.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_zwnj_lxx_dark.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_zwnj_lxx_dark.png new file mode 100644 index 0000000..134bca6 Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_zwnj_lxx_dark.png differ diff --git a/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_zwnj_lxx_light.png b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_zwnj_lxx_light.png new file mode 100644 index 0000000..31cf75b Binary files /dev/null and b/keyboardview/java/res/drawable-xxxhdpi/sym_keyboard_zwnj_lxx_light.png differ diff --git a/keyboardview/java/res/drawable/btn_keyboard_key_functional_ics.xml b/keyboardview/java/res/drawable/btn_keyboard_key_functional_ics.xml new file mode 100644 index 0000000..846bccc --- /dev/null +++ b/keyboardview/java/res/drawable/btn_keyboard_key_functional_ics.xml @@ -0,0 +1,22 @@ + + + + + + + + diff --git a/keyboardview/java/res/drawable/btn_keyboard_key_functional_klp.xml b/keyboardview/java/res/drawable/btn_keyboard_key_functional_klp.xml new file mode 100644 index 0000000..7b444f7 --- /dev/null +++ b/keyboardview/java/res/drawable/btn_keyboard_key_functional_klp.xml @@ -0,0 +1,22 @@ + + + + + + + + diff --git a/keyboardview/java/res/drawable/btn_keyboard_key_functional_lxx_dark.xml b/keyboardview/java/res/drawable/btn_keyboard_key_functional_lxx_dark.xml new file mode 100644 index 0000000..fd1dbb9 --- /dev/null +++ b/keyboardview/java/res/drawable/btn_keyboard_key_functional_lxx_dark.xml @@ -0,0 +1,22 @@ + + + + + + + + diff --git a/keyboardview/java/res/drawable/btn_keyboard_key_functional_lxx_light.xml b/keyboardview/java/res/drawable/btn_keyboard_key_functional_lxx_light.xml new file mode 100644 index 0000000..e518ca1 --- /dev/null +++ b/keyboardview/java/res/drawable/btn_keyboard_key_functional_lxx_light.xml @@ -0,0 +1,22 @@ + + + + + + + + diff --git a/keyboardview/java/res/drawable/btn_keyboard_key_ics.xml b/keyboardview/java/res/drawable/btn_keyboard_key_ics.xml new file mode 100644 index 0000000..bacd5d7 --- /dev/null +++ b/keyboardview/java/res/drawable/btn_keyboard_key_ics.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/keyboardview/java/res/drawable/btn_keyboard_key_klp.xml b/keyboardview/java/res/drawable/btn_keyboard_key_klp.xml new file mode 100644 index 0000000..e2f2085 --- /dev/null +++ b/keyboardview/java/res/drawable/btn_keyboard_key_klp.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/keyboardview/java/res/drawable/btn_keyboard_key_lxx_dark.xml b/keyboardview/java/res/drawable/btn_keyboard_key_lxx_dark.xml new file mode 100644 index 0000000..161592d --- /dev/null +++ b/keyboardview/java/res/drawable/btn_keyboard_key_lxx_dark.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/keyboardview/java/res/drawable/btn_keyboard_key_lxx_light.xml b/keyboardview/java/res/drawable/btn_keyboard_key_lxx_light.xml new file mode 100644 index 0000000..0154d75 --- /dev/null +++ b/keyboardview/java/res/drawable/btn_keyboard_key_lxx_light.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/keyboardview/java/res/drawable/btn_keyboard_key_popup_action_lxx_dark.xml b/keyboardview/java/res/drawable/btn_keyboard_key_popup_action_lxx_dark.xml new file mode 100644 index 0000000..8b637f2 --- /dev/null +++ b/keyboardview/java/res/drawable/btn_keyboard_key_popup_action_lxx_dark.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/keyboardview/java/res/drawable/btn_keyboard_key_popup_action_lxx_light.xml b/keyboardview/java/res/drawable/btn_keyboard_key_popup_action_lxx_light.xml new file mode 100644 index 0000000..67fc521 --- /dev/null +++ b/keyboardview/java/res/drawable/btn_keyboard_key_popup_action_lxx_light.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/keyboardview/java/res/drawable/btn_keyboard_key_popup_ics.xml b/keyboardview/java/res/drawable/btn_keyboard_key_popup_ics.xml new file mode 100644 index 0000000..17d646b --- /dev/null +++ b/keyboardview/java/res/drawable/btn_keyboard_key_popup_ics.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/keyboardview/java/res/drawable/btn_keyboard_key_popup_klp.xml b/keyboardview/java/res/drawable/btn_keyboard_key_popup_klp.xml new file mode 100644 index 0000000..9dfc93a --- /dev/null +++ b/keyboardview/java/res/drawable/btn_keyboard_key_popup_klp.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/keyboardview/java/res/drawable/btn_keyboard_key_popup_lxx_dark.xml b/keyboardview/java/res/drawable/btn_keyboard_key_popup_lxx_dark.xml new file mode 100644 index 0000000..dee6457 --- /dev/null +++ b/keyboardview/java/res/drawable/btn_keyboard_key_popup_lxx_dark.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/keyboardview/java/res/drawable/btn_keyboard_key_popup_lxx_light.xml b/keyboardview/java/res/drawable/btn_keyboard_key_popup_lxx_light.xml new file mode 100644 index 0000000..d6cd2b8 --- /dev/null +++ b/keyboardview/java/res/drawable/btn_keyboard_key_popup_lxx_light.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/keyboardview/java/res/drawable/btn_keyboard_spacebar_ics.xml b/keyboardview/java/res/drawable/btn_keyboard_spacebar_ics.xml new file mode 100644 index 0000000..229f7a9 --- /dev/null +++ b/keyboardview/java/res/drawable/btn_keyboard_spacebar_ics.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/keyboardview/java/res/drawable/btn_keyboard_spacebar_klp.xml b/keyboardview/java/res/drawable/btn_keyboard_spacebar_klp.xml new file mode 100644 index 0000000..9882f9a --- /dev/null +++ b/keyboardview/java/res/drawable/btn_keyboard_spacebar_klp.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/keyboardview/java/res/drawable/btn_keyboard_spacebar_lxx_dark.xml b/keyboardview/java/res/drawable/btn_keyboard_spacebar_lxx_dark.xml new file mode 100644 index 0000000..e930e40 --- /dev/null +++ b/keyboardview/java/res/drawable/btn_keyboard_spacebar_lxx_dark.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/keyboardview/java/res/drawable/btn_keyboard_spacebar_lxx_light.xml b/keyboardview/java/res/drawable/btn_keyboard_spacebar_lxx_light.xml new file mode 100644 index 0000000..2b05993 --- /dev/null +++ b/keyboardview/java/res/drawable/btn_keyboard_spacebar_lxx_light.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/keyboardview/java/res/drawable/btn_suggestion_ics.xml b/keyboardview/java/res/drawable/btn_suggestion_ics.xml new file mode 100644 index 0000000..8f528ee --- /dev/null +++ b/keyboardview/java/res/drawable/btn_suggestion_ics.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/keyboardview/java/res/drawable/btn_suggestion_klp.xml b/keyboardview/java/res/drawable/btn_suggestion_klp.xml new file mode 100644 index 0000000..471165b --- /dev/null +++ b/keyboardview/java/res/drawable/btn_suggestion_klp.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/keyboardview/java/res/drawable/btn_suggestion_lxx_dark.xml b/keyboardview/java/res/drawable/btn_suggestion_lxx_dark.xml new file mode 100644 index 0000000..84a9120 --- /dev/null +++ b/keyboardview/java/res/drawable/btn_suggestion_lxx_dark.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/keyboardview/java/res/drawable/btn_suggestion_lxx_light.xml b/keyboardview/java/res/drawable/btn_suggestion_lxx_light.xml new file mode 100644 index 0000000..8dce195 --- /dev/null +++ b/keyboardview/java/res/drawable/btn_suggestion_lxx_light.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_activity_holo_dark.xml b/keyboardview/java/res/drawable/ic_emoji_activity_holo_dark.xml new file mode 100644 index 0000000..8eeb640 --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_activity_holo_dark.xml @@ -0,0 +1,33 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_activity_lxx_dark.xml b/keyboardview/java/res/drawable/ic_emoji_activity_lxx_dark.xml new file mode 100644 index 0000000..b916d4f --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_activity_lxx_dark.xml @@ -0,0 +1,33 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_activity_lxx_light.xml b/keyboardview/java/res/drawable/ic_emoji_activity_lxx_light.xml new file mode 100644 index 0000000..801f895 --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_activity_lxx_light.xml @@ -0,0 +1,33 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_emoticons_holo_dark.xml b/keyboardview/java/res/drawable/ic_emoji_emoticons_holo_dark.xml new file mode 100644 index 0000000..59e2349 --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_emoticons_holo_dark.xml @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_emoticons_lxx_dark.xml b/keyboardview/java/res/drawable/ic_emoji_emoticons_lxx_dark.xml new file mode 100644 index 0000000..a8f167a --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_emoticons_lxx_dark.xml @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_emoticons_lxx_light.xml b/keyboardview/java/res/drawable/ic_emoji_emoticons_lxx_light.xml new file mode 100644 index 0000000..e182090 --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_emoticons_lxx_light.xml @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_flag_holo_dark.xml b/keyboardview/java/res/drawable/ic_emoji_flag_holo_dark.xml new file mode 100644 index 0000000..c9857fe --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_flag_holo_dark.xml @@ -0,0 +1,33 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_flag_lxx_dark.xml b/keyboardview/java/res/drawable/ic_emoji_flag_lxx_dark.xml new file mode 100644 index 0000000..8bd0fd7 --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_flag_lxx_dark.xml @@ -0,0 +1,33 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_flag_lxx_light.xml b/keyboardview/java/res/drawable/ic_emoji_flag_lxx_light.xml new file mode 100644 index 0000000..3632cfe --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_flag_lxx_light.xml @@ -0,0 +1,33 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_food_holo_dark.xml b/keyboardview/java/res/drawable/ic_emoji_food_holo_dark.xml new file mode 100644 index 0000000..2c6c0f2 --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_food_holo_dark.xml @@ -0,0 +1,33 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_food_lxx_dark.xml b/keyboardview/java/res/drawable/ic_emoji_food_lxx_dark.xml new file mode 100644 index 0000000..19d7d57 --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_food_lxx_dark.xml @@ -0,0 +1,33 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_food_lxx_light.xml b/keyboardview/java/res/drawable/ic_emoji_food_lxx_light.xml new file mode 100644 index 0000000..9da2c48 --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_food_lxx_light.xml @@ -0,0 +1,33 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_nature_holo_dark.xml b/keyboardview/java/res/drawable/ic_emoji_nature_holo_dark.xml new file mode 100644 index 0000000..b946295 --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_nature_holo_dark.xml @@ -0,0 +1,33 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_nature_lxx_dark.xml b/keyboardview/java/res/drawable/ic_emoji_nature_lxx_dark.xml new file mode 100644 index 0000000..6f03e50 --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_nature_lxx_dark.xml @@ -0,0 +1,33 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_nature_lxx_light.xml b/keyboardview/java/res/drawable/ic_emoji_nature_lxx_light.xml new file mode 100644 index 0000000..47525ad --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_nature_lxx_light.xml @@ -0,0 +1,33 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_objects_holo_dark.xml b/keyboardview/java/res/drawable/ic_emoji_objects_holo_dark.xml new file mode 100644 index 0000000..266e81e --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_objects_holo_dark.xml @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_objects_lxx_dark.xml b/keyboardview/java/res/drawable/ic_emoji_objects_lxx_dark.xml new file mode 100644 index 0000000..cf150f4 --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_objects_lxx_dark.xml @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_objects_lxx_light.xml b/keyboardview/java/res/drawable/ic_emoji_objects_lxx_light.xml new file mode 100644 index 0000000..be7f32f --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_objects_lxx_light.xml @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_people_holo_dark.xml b/keyboardview/java/res/drawable/ic_emoji_people_holo_dark.xml new file mode 100644 index 0000000..15955d2 --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_people_holo_dark.xml @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_people_lxx_dark.xml b/keyboardview/java/res/drawable/ic_emoji_people_lxx_dark.xml new file mode 100644 index 0000000..f91b5c4 --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_people_lxx_dark.xml @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_people_lxx_light.xml b/keyboardview/java/res/drawable/ic_emoji_people_lxx_light.xml new file mode 100644 index 0000000..88394bf --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_people_lxx_light.xml @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_places_holo_dark.xml b/keyboardview/java/res/drawable/ic_emoji_places_holo_dark.xml new file mode 100644 index 0000000..260bbd8 --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_places_holo_dark.xml @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_places_lxx_dark.xml b/keyboardview/java/res/drawable/ic_emoji_places_lxx_dark.xml new file mode 100644 index 0000000..ace0364 --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_places_lxx_dark.xml @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_places_lxx_light.xml b/keyboardview/java/res/drawable/ic_emoji_places_lxx_light.xml new file mode 100644 index 0000000..93d74f7 --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_places_lxx_light.xml @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_recents_holo_dark.xml b/keyboardview/java/res/drawable/ic_emoji_recents_holo_dark.xml new file mode 100644 index 0000000..f14349f --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_recents_holo_dark.xml @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_recents_lxx_dark.xml b/keyboardview/java/res/drawable/ic_emoji_recents_lxx_dark.xml new file mode 100644 index 0000000..50f0e08 --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_recents_lxx_dark.xml @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_recents_lxx_light.xml b/keyboardview/java/res/drawable/ic_emoji_recents_lxx_light.xml new file mode 100644 index 0000000..f06480c --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_recents_lxx_light.xml @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_symbols_holo_dark.xml b/keyboardview/java/res/drawable/ic_emoji_symbols_holo_dark.xml new file mode 100644 index 0000000..831d659 --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_symbols_holo_dark.xml @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_symbols_lxx_dark.xml b/keyboardview/java/res/drawable/ic_emoji_symbols_lxx_dark.xml new file mode 100644 index 0000000..d2dbc22 --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_symbols_lxx_dark.xml @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/ic_emoji_symbols_lxx_light.xml b/keyboardview/java/res/drawable/ic_emoji_symbols_lxx_light.xml new file mode 100644 index 0000000..fb59399 --- /dev/null +++ b/keyboardview/java/res/drawable/ic_emoji_symbols_lxx_light.xml @@ -0,0 +1,32 @@ + + + + + + + + + diff --git a/keyboardview/java/res/drawable/keyboard_key_feedback_ics.xml b/keyboardview/java/res/drawable/keyboard_key_feedback_ics.xml new file mode 100644 index 0000000..cd42a14 --- /dev/null +++ b/keyboardview/java/res/drawable/keyboard_key_feedback_ics.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/keyboardview/java/res/drawable/keyboard_key_feedback_klp.xml b/keyboardview/java/res/drawable/keyboard_key_feedback_klp.xml new file mode 100644 index 0000000..bd19707 --- /dev/null +++ b/keyboardview/java/res/drawable/keyboard_key_feedback_klp.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/keyboardview/java/res/drawable/keyboard_key_feedback_lxx_dark.xml b/keyboardview/java/res/drawable/keyboard_key_feedback_lxx_dark.xml new file mode 100644 index 0000000..dc3a3d3 --- /dev/null +++ b/keyboardview/java/res/drawable/keyboard_key_feedback_lxx_dark.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/keyboardview/java/res/drawable/keyboard_key_feedback_lxx_light.xml b/keyboardview/java/res/drawable/keyboard_key_feedback_lxx_light.xml new file mode 100644 index 0000000..1d5de96 --- /dev/null +++ b/keyboardview/java/res/drawable/keyboard_key_feedback_lxx_light.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/keyboardview/java/res/layout/download_over_metered.xml b/keyboardview/java/res/layout/download_over_metered.xml new file mode 100644 index 0000000..dcde5ed --- /dev/null +++ b/keyboardview/java/res/layout/download_over_metered.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + +