diff options
author | 2013-10-09 21:00:31 -0700 | |
---|---|---|
committer | 2013-10-09 21:00:31 -0700 | |
commit | 6beb03df089965d19fc55c2d4179c044db5ca0d6 (patch) | |
tree | 71593a411e6d272dba7ffaa334bcc9916574fc4d /java/src/com/android/inputmethod/compat | |
parent | 3815e4d2158ebf46115dc34e91d1377e011a4ffb (diff) | |
parent | 6862b8192df0c979ebf3a1fd566ede1b0dbd8a82 (diff) | |
download | latinime-6beb03df089965d19fc55c2d4179c044db5ca0d6.tar.gz latinime-6beb03df089965d19fc55c2d4179c044db5ca0d6.tar.xz latinime-6beb03df089965d19fc55c2d4179c044db5ca0d6.zip |
am 6862b819: Fix crash in AdditionalSubtypeUtils
* commit '6862b8192df0c979ebf3a1fd566ede1b0dbd8a82':
Fix crash in AdditionalSubtypeUtils
Diffstat (limited to 'java/src/com/android/inputmethod/compat')
-rw-r--r-- | java/src/com/android/inputmethod/compat/InputMethodSubtypeCompatUtils.java | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/compat/InputMethodSubtypeCompatUtils.java b/java/src/com/android/inputmethod/compat/InputMethodSubtypeCompatUtils.java new file mode 100644 index 000000000..b119d6c82 --- /dev/null +++ b/java/src/com/android/inputmethod/compat/InputMethodSubtypeCompatUtils.java @@ -0,0 +1,56 @@ +/* + * 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.compat; + +import android.os.Build; +import android.view.inputmethod.InputMethodSubtype; + +import java.lang.reflect.Constructor; + +public final class InputMethodSubtypeCompatUtils { + private static final String TAG = InputMethodSubtypeCompatUtils.class.getSimpleName(); + // Note that InputMethodSubtype(int nameId, int iconId, String locale, String mode, + // String extraValue, boolean isAuxiliary, boolean overridesImplicitlyEnabledSubtype, int id) + // has been introduced in API level 17 (Build.VERSION_CODE.JELLY_BEAN_MR1). + private static final Constructor<?> CONSTRUCTOR_INPUT_METHOD_SUBTYPE = + CompatUtils.getConstructor(InputMethodSubtype.class, + Integer.TYPE, Integer.TYPE, String.class, String.class, String.class, + Boolean.TYPE, Boolean.TYPE, Integer.TYPE); + static { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + if (CONSTRUCTOR_INPUT_METHOD_SUBTYPE == null) { + android.util.Log.w(TAG, "Warning!!! Constructor is not defined."); + } + } + } + private InputMethodSubtypeCompatUtils() { + // This utility class is not publicly instantiable. + } + + public static InputMethodSubtype newInputMethodSubtype(int nameId, int iconId, String locale, + String mode, String extraValue, boolean isAuxiliary, + boolean overridesImplicitlyEnabledSubtype, int id) { + if (CONSTRUCTOR_INPUT_METHOD_SUBTYPE == null + || Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) { + return new InputMethodSubtype(nameId, iconId, locale, mode, extraValue, isAuxiliary, + overridesImplicitlyEnabledSubtype); + } + return (InputMethodSubtype) CompatUtils.newInstance(CONSTRUCTOR_INPUT_METHOD_SUBTYPE, + nameId, iconId, locale, mode, extraValue, isAuxiliary, + overridesImplicitlyEnabledSubtype, id); + } +} |