Skip to content
Snippets Groups Projects
Commit 821486ba authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Revert "Fall back to default keyboard theme"

This reverts commit 6ed8b183.

Change-Id: I48f775e54f4077e556b26bc0146bc918421c6845
parent 6ed8b183
No related branches found
No related tags found
No related merge requests found
...@@ -26,10 +26,10 @@ ...@@ -26,10 +26,10 @@
<item>@string/keyboard_theme_holo_blue</item> <item>@string/keyboard_theme_holo_blue</item>
</string-array> </string-array>
<!-- An element must be a keyboard theme id of {@link KeyboardTheme#THEME_ID_*}. --> <!-- An element must be a keyboard theme id of {@link KeyboardTheme#THEME_ID_*}. -->
<integer-array name="keyboard_theme_ids" translatable="false"> <string-array name="keyboard_theme_ids" translatable="false">
<item>3</item> <item>3</item>
<item>4</item> <item>4</item>
<item>2</item> <item>2</item>
<item>0</item> <item>0</item>
</integer-array> </string-array>
</resources> </resources>
...@@ -17,7 +17,9 @@ ...@@ -17,7 +17,9 @@
package com.android.inputmethod.keyboard; package com.android.inputmethod.keyboard;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Resources; import android.content.res.Resources;
import android.preference.PreferenceManager;
import android.util.Log; import android.util.Log;
import android.view.ContextThemeWrapper; import android.view.ContextThemeWrapper;
import android.view.LayoutInflater; import android.view.LayoutInflater;
...@@ -45,6 +47,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { ...@@ -45,6 +47,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
private static final String TAG = KeyboardSwitcher.class.getSimpleName(); private static final String TAG = KeyboardSwitcher.class.getSimpleName();
private SubtypeSwitcher mSubtypeSwitcher; private SubtypeSwitcher mSubtypeSwitcher;
private SharedPreferences mPrefs;
private InputView mCurrentInputView; private InputView mCurrentInputView;
private View mMainKeyboardFrame; private View mMainKeyboardFrame;
...@@ -73,11 +76,13 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { ...@@ -73,11 +76,13 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
} }
public static void init(final LatinIME latinIme) { public static void init(final LatinIME latinIme) {
sInstance.initInternal(latinIme); final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(latinIme);
sInstance.initInternal(latinIme, prefs);
} }
private void initInternal(final LatinIME latinIme) { private void initInternal(final LatinIME latinIme, final SharedPreferences prefs) {
mLatinIME = latinIme; mLatinIME = latinIme;
mPrefs = prefs;
mSubtypeSwitcher = SubtypeSwitcher.getInstance(); mSubtypeSwitcher = SubtypeSwitcher.getInstance();
mState = new KeyboardState(this); mState = new KeyboardState(this);
mIsHardwareAcceleratedDrawingEnabled = mIsHardwareAcceleratedDrawingEnabled =
...@@ -86,7 +91,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { ...@@ -86,7 +91,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
public void updateKeyboardTheme() { public void updateKeyboardTheme() {
final boolean themeUpdated = updateKeyboardThemeAndContextThemeWrapper( final boolean themeUpdated = updateKeyboardThemeAndContextThemeWrapper(
mLatinIME, KeyboardTheme.getKeyboardTheme(mLatinIME /* context */)); mLatinIME, KeyboardTheme.getKeyboardTheme(mPrefs));
if (themeUpdated && mKeyboardView != null) { if (themeUpdated && mKeyboardView != null) {
mLatinIME.setInputView(onCreateInputView(mIsHardwareAcceleratedDrawingEnabled)); mLatinIME.setInputView(onCreateInputView(mIsHardwareAcceleratedDrawingEnabled));
} }
...@@ -343,7 +348,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { ...@@ -343,7 +348,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
} }
updateKeyboardThemeAndContextThemeWrapper( updateKeyboardThemeAndContextThemeWrapper(
mLatinIME, KeyboardTheme.getKeyboardTheme(mLatinIME /* context */)); mLatinIME, KeyboardTheme.getKeyboardTheme(mPrefs));
mCurrentInputView = (InputView)LayoutInflater.from(mThemeContext).inflate( mCurrentInputView = (InputView)LayoutInflater.from(mThemeContext).inflate(
R.layout.input_view, null); R.layout.input_view, null);
mMainKeyboardFrame = mCurrentInputView.findViewById(R.id.main_keyboard_frame); mMainKeyboardFrame = mCurrentInputView.findViewById(R.id.main_keyboard_frame);
......
...@@ -16,17 +16,14 @@ ...@@ -16,17 +16,14 @@
package com.android.inputmethod.keyboard; package com.android.inputmethod.keyboard;
import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Build.VERSION_CODES; import android.os.Build.VERSION_CODES;
import android.preference.PreferenceManager;
import android.util.Log; import android.util.Log;
import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.annotations.UsedForTesting;
import com.android.inputmethod.compat.BuildCompatUtils; import com.android.inputmethod.compat.BuildCompatUtils;
import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.R;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
public final class KeyboardTheme implements Comparable<KeyboardTheme> { public final class KeyboardTheme implements Comparable<KeyboardTheme> {
...@@ -43,10 +40,7 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> { ...@@ -43,10 +40,7 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
public static final int THEME_ID_LXX_DARK = 4; public static final int THEME_ID_LXX_DARK = 4;
public static final int DEFAULT_THEME_ID = THEME_ID_KLP; public static final int DEFAULT_THEME_ID = THEME_ID_KLP;
private static KeyboardTheme[] AVAILABLE_KEYBOARD_THEMES; private static final KeyboardTheme[] KEYBOARD_THEMES = {
@UsedForTesting
static final KeyboardTheme[] KEYBOARD_THEMES = {
new KeyboardTheme(THEME_ID_ICS, "ICS", R.style.KeyboardTheme_ICS, new KeyboardTheme(THEME_ID_ICS, "ICS", R.style.KeyboardTheme_ICS,
// This has never been selected because we support ICS or later. // This has never been selected because we support ICS or later.
VERSION_CODES.BASE), VERSION_CODES.BASE),
...@@ -99,10 +93,9 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> { ...@@ -99,10 +93,9 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
} }
@UsedForTesting @UsedForTesting
static KeyboardTheme searchKeyboardThemeById(final int themeId, static KeyboardTheme searchKeyboardThemeById(final int themeId) {
final KeyboardTheme[] availableThemeIds) {
// TODO: This search algorithm isn't optimal if there are many themes. // TODO: This search algorithm isn't optimal if there are many themes.
for (final KeyboardTheme theme : availableThemeIds) { for (final KeyboardTheme theme : KEYBOARD_THEMES) {
if (theme.mThemeId == themeId) { if (theme.mThemeId == themeId) {
return theme; return theme;
} }
...@@ -112,14 +105,13 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> { ...@@ -112,14 +105,13 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
@UsedForTesting @UsedForTesting
static KeyboardTheme getDefaultKeyboardTheme(final SharedPreferences prefs, static KeyboardTheme getDefaultKeyboardTheme(final SharedPreferences prefs,
final int sdkVersion, final KeyboardTheme[] availableThemeArray) { final int sdkVersion) {
final String klpThemeIdString = prefs.getString(KLP_KEYBOARD_THEME_KEY, null); final String klpThemeIdString = prefs.getString(KLP_KEYBOARD_THEME_KEY, null);
if (klpThemeIdString != null) { if (klpThemeIdString != null) {
if (sdkVersion <= VERSION_CODES.KITKAT) { if (sdkVersion <= VERSION_CODES.KITKAT) {
try { try {
final int themeId = Integer.parseInt(klpThemeIdString); final int themeId = Integer.parseInt(klpThemeIdString);
final KeyboardTheme theme = searchKeyboardThemeById(themeId, final KeyboardTheme theme = searchKeyboardThemeById(themeId);
availableThemeArray);
if (theme != null) { if (theme != null) {
return theme; return theme;
} }
...@@ -133,21 +125,22 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> { ...@@ -133,21 +125,22 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
prefs.edit().remove(KLP_KEYBOARD_THEME_KEY).apply(); prefs.edit().remove(KLP_KEYBOARD_THEME_KEY).apply();
} }
// TODO: This search algorithm isn't optimal if there are many themes. // TODO: This search algorithm isn't optimal if there are many themes.
for (final KeyboardTheme theme : availableThemeArray) { for (final KeyboardTheme theme : KEYBOARD_THEMES) {
if (sdkVersion >= theme.mMinApiVersion) { if (sdkVersion >= theme.mMinApiVersion) {
return theme; return theme;
} }
} }
return searchKeyboardThemeById(DEFAULT_THEME_ID, availableThemeArray); return searchKeyboardThemeById(DEFAULT_THEME_ID);
} }
public static String getKeyboardThemeName(final int themeId) { public static String getKeyboardThemeName(final int themeId) {
final KeyboardTheme theme = searchKeyboardThemeById(themeId, KEYBOARD_THEMES); final KeyboardTheme theme = searchKeyboardThemeById(themeId);
return theme.mThemeName; return theme.mThemeName;
} }
public static void saveKeyboardThemeId(final int themeId, final SharedPreferences prefs) { public static void saveKeyboardThemeId(final String themeIdString,
saveKeyboardThemeId(themeId, prefs, BuildCompatUtils.EFFECTIVE_SDK_INT); final SharedPreferences prefs) {
saveKeyboardThemeId(themeIdString, prefs, BuildCompatUtils.EFFECTIVE_SDK_INT);
} }
@UsedForTesting @UsedForTesting
...@@ -159,45 +152,25 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> { ...@@ -159,45 +152,25 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
} }
@UsedForTesting @UsedForTesting
static void saveKeyboardThemeId(final int themeId, final SharedPreferences prefs, static void saveKeyboardThemeId(final String themeIdString,
final int sdkVersion) { final SharedPreferences prefs, final int sdkVersion) {
final String prefKey = getPreferenceKey(sdkVersion); final String prefKey = getPreferenceKey(sdkVersion);
prefs.edit().putString(prefKey, Integer.toString(themeId)).apply(); prefs.edit().putString(prefKey, themeIdString).apply();
} }
public static KeyboardTheme getKeyboardTheme(final Context context) { public static KeyboardTheme getKeyboardTheme(final SharedPreferences prefs) {
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); return getKeyboardTheme(prefs, BuildCompatUtils.EFFECTIVE_SDK_INT);
final KeyboardTheme[] availableThemeArray = getAvailableThemeArray(context);
return getKeyboardTheme(prefs, BuildCompatUtils.EFFECTIVE_SDK_INT, availableThemeArray);
}
static KeyboardTheme[] getAvailableThemeArray(final Context context) {
if (AVAILABLE_KEYBOARD_THEMES == null) {
final int[] availableThemeIdStringArray = context.getResources().getIntArray(
R.array.keyboard_theme_ids);
final ArrayList<KeyboardTheme> availableThemeList = new ArrayList<>();
for (final int id : availableThemeIdStringArray) {
final KeyboardTheme theme = searchKeyboardThemeById(id, KEYBOARD_THEMES);
if (theme != null) {
availableThemeList.add(theme);
}
}
AVAILABLE_KEYBOARD_THEMES = availableThemeList.toArray(
new KeyboardTheme[availableThemeList.size()]);
}
return AVAILABLE_KEYBOARD_THEMES;
} }
@UsedForTesting @UsedForTesting
static KeyboardTheme getKeyboardTheme(final SharedPreferences prefs, final int sdkVersion, static KeyboardTheme getKeyboardTheme(final SharedPreferences prefs, final int sdkVersion) {
final KeyboardTheme[] availableThemeArray) {
final String lxxThemeIdString = prefs.getString(LXX_KEYBOARD_THEME_KEY, null); final String lxxThemeIdString = prefs.getString(LXX_KEYBOARD_THEME_KEY, null);
if (lxxThemeIdString == null) { if (lxxThemeIdString == null) {
return getDefaultKeyboardTheme(prefs, sdkVersion, availableThemeArray); return getDefaultKeyboardTheme(prefs, sdkVersion);
} }
try { try {
final int themeId = Integer.parseInt(lxxThemeIdString); final int themeId = Integer.parseInt(lxxThemeIdString);
final KeyboardTheme theme = searchKeyboardThemeById(themeId, availableThemeArray); final KeyboardTheme theme = searchKeyboardThemeById(themeId);
if (theme != null) { if (theme != null) {
return theme; return theme;
} }
...@@ -207,6 +180,6 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> { ...@@ -207,6 +180,6 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> {
} }
// Remove preference that contains unknown or illegal theme id. // Remove preference that contains unknown or illegal theme id.
prefs.edit().remove(LXX_KEYBOARD_THEME_KEY).apply(); prefs.edit().remove(LXX_KEYBOARD_THEME_KEY).apply();
return getDefaultKeyboardTheme(prefs, sdkVersion, availableThemeArray); return getDefaultKeyboardTheme(prefs, sdkVersion);
} }
} }
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
package com.android.inputmethod.latin.settings; package com.android.inputmethod.latin.settings;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Resources; import android.content.res.Resources;
import android.os.Bundle; import android.os.Bundle;
import android.preference.Preference; import android.preference.Preference;
...@@ -31,12 +32,12 @@ import com.android.inputmethod.latin.settings.RadioButtonPreference.OnRadioButto ...@@ -31,12 +32,12 @@ import com.android.inputmethod.latin.settings.RadioButtonPreference.OnRadioButto
*/ */
public final class ThemeSettingsFragment extends SubScreenFragment public final class ThemeSettingsFragment extends SubScreenFragment
implements OnRadioButtonClickedListener { implements OnRadioButtonClickedListener {
private int mSelectedThemeId; private String mSelectedThemeId;
static class KeyboardThemePreference extends RadioButtonPreference { static class KeyboardThemePreference extends RadioButtonPreference {
final int mThemeId; final String mThemeId;
KeyboardThemePreference(final Context context, final String name, final int id) { KeyboardThemePreference(final Context context, final String name, final String id) {
super(context); super(context);
setTitle(name); setTitle(name);
mThemeId = id; mThemeId = id;
...@@ -44,13 +45,14 @@ public final class ThemeSettingsFragment extends SubScreenFragment ...@@ -44,13 +45,14 @@ public final class ThemeSettingsFragment extends SubScreenFragment
} }
static void updateKeyboardThemeSummary(final Preference pref) { static void updateKeyboardThemeSummary(final Preference pref) {
final Context context = pref.getContext(); final Resources res = pref.getContext().getResources();
final Resources res = context.getResources(); final SharedPreferences prefs = pref.getSharedPreferences();
final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(context); final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(prefs);
final String keyboardThemeId = String.valueOf(keyboardTheme.mThemeId);
final String[] keyboardThemeNames = res.getStringArray(R.array.keyboard_theme_names); final String[] keyboardThemeNames = res.getStringArray(R.array.keyboard_theme_names);
final int[] keyboardThemeIds = res.getIntArray(R.array.keyboard_theme_ids); final String[] keyboardThemeIds = res.getStringArray(R.array.keyboard_theme_ids);
for (int index = 0; index < keyboardThemeNames.length; index++) { for (int index = 0; index < keyboardThemeNames.length; index++) {
if (keyboardTheme.mThemeId == keyboardThemeIds[index]) { if (keyboardThemeId.equals(keyboardThemeIds[index])) {
pref.setSummary(keyboardThemeNames[index]); pref.setSummary(keyboardThemeNames[index]);
return; return;
} }
...@@ -62,18 +64,18 @@ public final class ThemeSettingsFragment extends SubScreenFragment ...@@ -62,18 +64,18 @@ public final class ThemeSettingsFragment extends SubScreenFragment
super.onCreate(icicle); super.onCreate(icicle);
addPreferencesFromResource(R.xml.prefs_screen_theme); addPreferencesFromResource(R.xml.prefs_screen_theme);
final PreferenceScreen screen = getPreferenceScreen(); final PreferenceScreen screen = getPreferenceScreen();
final Context context = getActivity();
final Resources res = getResources(); final Resources res = getResources();
final String[] keyboardThemeNames = res.getStringArray(R.array.keyboard_theme_names); final String[] keyboardThemeNames = res.getStringArray(R.array.keyboard_theme_names);
final int[] keyboardThemeIds = res.getIntArray(R.array.keyboard_theme_ids); final String[] keyboardThemeIds = res.getStringArray(R.array.keyboard_theme_ids);
for (int index = 0; index < keyboardThemeNames.length; index++) { for (int index = 0; index < keyboardThemeNames.length; index++) {
final KeyboardThemePreference pref = new KeyboardThemePreference( final KeyboardThemePreference pref = new KeyboardThemePreference(
context, keyboardThemeNames[index], keyboardThemeIds[index]); getActivity(), keyboardThemeNames[index], keyboardThemeIds[index]);
screen.addPreference(pref); screen.addPreference(pref);
pref.setOnRadioButtonClickedListener(this); pref.setOnRadioButtonClickedListener(this);
} }
final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(context); final SharedPreferences prefs = getSharedPreferences();
mSelectedThemeId = keyboardTheme.mThemeId; final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(prefs);
mSelectedThemeId = String.valueOf(keyboardTheme.mThemeId);
} }
@Override @Override
...@@ -104,7 +106,7 @@ public final class ThemeSettingsFragment extends SubScreenFragment ...@@ -104,7 +106,7 @@ public final class ThemeSettingsFragment extends SubScreenFragment
final Preference preference = screen.getPreference(index); final Preference preference = screen.getPreference(index);
if (preference instanceof KeyboardThemePreference) { if (preference instanceof KeyboardThemePreference) {
final KeyboardThemePreference pref = (KeyboardThemePreference)preference; final KeyboardThemePreference pref = (KeyboardThemePreference)preference;
final boolean selected = (mSelectedThemeId == pref.mThemeId); final boolean selected = mSelectedThemeId.equals(pref.mThemeId);
pref.setSelected(selected); pref.setSelected(selected);
} }
} }
......
...@@ -51,7 +51,7 @@ public abstract class KeyboardLayoutSetTestsBase extends AndroidTestCase { ...@@ -51,7 +51,7 @@ public abstract class KeyboardLayoutSetTestsBase extends AndroidTestCase {
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
final KeyboardTheme keyboardTheme = KeyboardTheme.searchKeyboardThemeById( final KeyboardTheme keyboardTheme = KeyboardTheme.searchKeyboardThemeById(
getKeyboardThemeForTests(), KeyboardTheme.KEYBOARD_THEMES); getKeyboardThemeForTests());
setContext(new ContextThemeWrapper(getContext(), keyboardTheme.mStyleId)); setContext(new ContextThemeWrapper(getContext(), keyboardTheme.mStyleId));
KeyboardLayoutSet.onKeyboardThemeChanged(); KeyboardLayoutSet.onKeyboardThemeChanged();
......
...@@ -28,8 +28,6 @@ import android.preference.PreferenceManager; ...@@ -28,8 +28,6 @@ import android.preference.PreferenceManager;
import android.test.AndroidTestCase; import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest; import android.test.suitebuilder.annotation.SmallTest;
import java.util.Arrays;
@SmallTest @SmallTest
public class KeyboardThemeTests extends AndroidTestCase { public class KeyboardThemeTests extends AndroidTestCase {
private SharedPreferences mPrefs; private SharedPreferences mPrefs;
...@@ -79,9 +77,7 @@ public class KeyboardThemeTests extends AndroidTestCase { ...@@ -79,9 +77,7 @@ public class KeyboardThemeTests extends AndroidTestCase {
} }
private void assertKeyboardTheme(final int sdkVersion, final int expectedThemeId) { private void assertKeyboardTheme(final int sdkVersion, final int expectedThemeId) {
final KeyboardTheme actualTheme = KeyboardTheme.getKeyboardTheme( assertEquals(expectedThemeId, KeyboardTheme.getKeyboardTheme(mPrefs, sdkVersion).mThemeId);
mPrefs, sdkVersion, KeyboardTheme.KEYBOARD_THEMES);
assertEquals(expectedThemeId, actualTheme.mThemeId);
} }
/* /*
...@@ -143,8 +139,8 @@ public class KeyboardThemeTests extends AndroidTestCase { ...@@ -143,8 +139,8 @@ public class KeyboardThemeTests extends AndroidTestCase {
final String oldPrefKey = KeyboardTheme.KLP_KEYBOARD_THEME_KEY; final String oldPrefKey = KeyboardTheme.KLP_KEYBOARD_THEME_KEY;
setKeyboardThemePreference(oldPrefKey, previousThemeId); setKeyboardThemePreference(oldPrefKey, previousThemeId);
final KeyboardTheme defaultTheme = KeyboardTheme.getDefaultKeyboardTheme( final KeyboardTheme defaultTheme =
mPrefs, sdkVersion, KeyboardTheme.KEYBOARD_THEMES); KeyboardTheme.getDefaultKeyboardTheme(mPrefs, sdkVersion);
assertNotNull(defaultTheme); assertNotNull(defaultTheme);
assertEquals(expectedThemeId, defaultTheme.mThemeId); assertEquals(expectedThemeId, defaultTheme.mThemeId);
...@@ -198,8 +194,7 @@ public class KeyboardThemeTests extends AndroidTestCase { ...@@ -198,8 +194,7 @@ public class KeyboardThemeTests extends AndroidTestCase {
// Clean up new keyboard theme preference to simulate "upgrade to LXX keyboard". // Clean up new keyboard theme preference to simulate "upgrade to LXX keyboard".
setKeyboardThemePreference(KeyboardTheme.LXX_KEYBOARD_THEME_KEY, THEME_ID_NULL); setKeyboardThemePreference(KeyboardTheme.LXX_KEYBOARD_THEME_KEY, THEME_ID_NULL);
final KeyboardTheme theme = KeyboardTheme.getKeyboardTheme( final KeyboardTheme theme = KeyboardTheme.getKeyboardTheme(mPrefs, sdkVersion);
mPrefs, sdkVersion, KeyboardTheme.KEYBOARD_THEMES);
assertNotNull(theme); assertNotNull(theme);
assertEquals(expectedThemeId, theme.mThemeId); assertEquals(expectedThemeId, theme.mThemeId);
...@@ -346,60 +341,4 @@ public class KeyboardThemeTests extends AndroidTestCase { ...@@ -346,60 +341,4 @@ public class KeyboardThemeTests extends AndroidTestCase {
assertUpgradePlatformFromTo( assertUpgradePlatformFromTo(
oldSdkVersion, newSdkVersion, THEME_ID_ILLEGAL, THEME_ID_LXX_LIGHT); oldSdkVersion, newSdkVersion, THEME_ID_ILLEGAL, THEME_ID_LXX_LIGHT);
} }
/*
* Test for missing selected theme.
*/
private static KeyboardTheme[] LIMITED_THEMES = {
KeyboardTheme.searchKeyboardThemeById(THEME_ID_ICS, KeyboardTheme.KEYBOARD_THEMES),
KeyboardTheme.searchKeyboardThemeById(THEME_ID_KLP, KeyboardTheme.KEYBOARD_THEMES)
};
static {
Arrays.sort(LIMITED_THEMES);
}
public void testMissingSelectedThemeIcs() {
// Clean up preferences.
setKeyboardThemePreference(KeyboardTheme.KLP_KEYBOARD_THEME_KEY, THEME_ID_NULL);
setKeyboardThemePreference(KeyboardTheme.LXX_KEYBOARD_THEME_KEY, THEME_ID_NULL);
final int sdkVersion = VERSION_CODES.ICE_CREAM_SANDWICH;
final String oldPrefKey = KeyboardTheme.getPreferenceKey(sdkVersion);
setKeyboardThemePreference(oldPrefKey, THEME_ID_LXX_LIGHT);
final KeyboardTheme actualTheme = KeyboardTheme.getKeyboardTheme(
mPrefs, sdkVersion, LIMITED_THEMES);
// LXX_LIGHT is missing, fall-back to KLP.
assertEquals(THEME_ID_KLP, actualTheme.mThemeId);
}
public void testMissingSelectedThemeKlp() {
// Clean up preferences.
setKeyboardThemePreference(KeyboardTheme.KLP_KEYBOARD_THEME_KEY, THEME_ID_NULL);
setKeyboardThemePreference(KeyboardTheme.LXX_KEYBOARD_THEME_KEY, THEME_ID_NULL);
final int sdkVersion = VERSION_CODES.KITKAT;
final String oldPrefKey = KeyboardTheme.getPreferenceKey(sdkVersion);
setKeyboardThemePreference(oldPrefKey, THEME_ID_LXX_LIGHT);
final KeyboardTheme actualTheme = KeyboardTheme.getKeyboardTheme(
mPrefs, sdkVersion, LIMITED_THEMES);
// LXX_LIGHT is missing, fall-back to KLP.
assertEquals(THEME_ID_KLP, actualTheme.mThemeId);
}
public void testMissingSelectedThemeLxx() {
// Clean up preferences.
setKeyboardThemePreference(KeyboardTheme.KLP_KEYBOARD_THEME_KEY, THEME_ID_NULL);
setKeyboardThemePreference(KeyboardTheme.LXX_KEYBOARD_THEME_KEY, THEME_ID_NULL);
final int sdkVersion = VERSION_CODES_LXX;
final String oldPrefKey = KeyboardTheme.getPreferenceKey(sdkVersion);
setKeyboardThemePreference(oldPrefKey, THEME_ID_LXX_DARK);
final KeyboardTheme actualTheme = KeyboardTheme.getKeyboardTheme(
mPrefs, sdkVersion, LIMITED_THEMES);
// LXX_DARK is missing, fall-back to KLP.
assertEquals(THEME_ID_KLP, actualTheme.mThemeId);
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment