/* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.inputmethod.keyboard; import android.content.SharedPreferences; import android.os.Build; import android.os.Build.VERSION_CODES; import android.util.Log; import com.android.inputmethod.latin.R; import java.util.Arrays; import java.util.Comparator; public final class KeyboardTheme { private static final String TAG = KeyboardTheme.class.getSimpleName(); static final String KITKAT_KEYBOARD_THEME_KEY = "pref_keyboard_layout_20110916"; static final String KEYBOARD_THEME_KEY = "pref_keyboard_theme_20140509"; static final int THEME_ID_ICS = 0; static final int THEME_ID_KLP = 2; static final int THEME_ID_LMP = 3; static final int DEFAULT_THEME_ID = THEME_ID_KLP; private static final KeyboardTheme[] KEYBOARD_THEMES = { new KeyboardTheme(THEME_ID_ICS, R.style.KeyboardTheme_ICS, VERSION_CODES.ICE_CREAM_SANDWICH), new KeyboardTheme(THEME_ID_KLP, R.style.KeyboardTheme_KLP, VERSION_CODES.KITKAT), // TODO: Update to LMP style. new KeyboardTheme(THEME_ID_LMP, R.style.KeyboardTheme_KLP, // TODO: Update this constant once the *next* version becomes available. VERSION_CODES.CUR_DEVELOPMENT), }; static { // Sort {@link #KEYBOARD_THEME} by descending order of {@link #mMinApiVersion}. Arrays.sort(KEYBOARD_THEMES, new Comparator() { @Override public int compare(final KeyboardTheme lhs, final KeyboardTheme rhs) { if (lhs.mMinApiVersion > rhs.mMinApiVersion) return -1; if (lhs.mMinApiVersion < rhs.mMinApiVersion) return 1; return 0; } }); } public final int mThemeId; public final int mStyleId; final int mMinApiVersion; // Note: The themeId should be aligned with "themeId" attribute of Keyboard style // in values/themes-