Add keyboard color switch option
Bug: 11622614 Change-Id: I25aa1ff7376fe72fd94ab2cb7190c61d7a98a1afmain
parent
1c95c8ba3b
commit
b4c7a10840
|
@ -41,7 +41,7 @@
|
||||||
<integer name="config_keyboard_grid_width">32</integer>
|
<integer name="config_keyboard_grid_width">32</integer>
|
||||||
<integer name="config_keyboard_grid_height">16</integer>
|
<integer name="config_keyboard_grid_height">16</integer>
|
||||||
<integer name="config_double_space_period_timeout">1100</integer>
|
<integer name="config_double_space_period_timeout">1100</integer>
|
||||||
<!-- This configuration is the index of the array {@link KeyboardSwitcher.KEYBOARD_THEMES}. -->
|
<!-- This configuration is an index of {@link KeyboardSwitcher#KEYBOARD_THEMES[]}. -->
|
||||||
<string name="config_default_keyboard_theme_index" translatable="false">2</string>
|
<string name="config_default_keyboard_theme_index" translatable="false">2</string>
|
||||||
<integer name="config_max_more_keys_column">5</integer>
|
<integer name="config_max_more_keys_column">5</integer>
|
||||||
|
|
||||||
|
|
|
@ -111,12 +111,24 @@
|
||||||
<item>@string/layout_gingerbread</item>
|
<item>@string/layout_gingerbread</item>
|
||||||
<item>@string/layout_klp</item>
|
<item>@string/layout_klp</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
<!-- An element must be an index of {@link KeyboardSwitcher#KEYBOARD_THEMES[]}. -->
|
||||||
<string-array name="keyboard_layout_modes_values">
|
<string-array name="keyboard_layout_modes_values">
|
||||||
<item>0</item>
|
<item>0</item>
|
||||||
<item>1</item>
|
<item>1</item>
|
||||||
<item>2</item>
|
<item>2</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
|
<!-- For keyboard color scheme option dialog. -->
|
||||||
|
<string-array name="keyboard_color_schemes">
|
||||||
|
<item>@string/keyboard_color_scheme_white</item>
|
||||||
|
<item>@string/keyboard_color_scheme_blue</item>
|
||||||
|
</string-array>
|
||||||
|
<!-- An element must be an index of {@link KeyboardSwitcher#KEYBOARD_THEMES[]}. -->
|
||||||
|
<string-array name="keyboard_color_schemes_values">
|
||||||
|
<item>2</item>
|
||||||
|
<item>0</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
<!-- Subtype locale display name exceptions.
|
<!-- Subtype locale display name exceptions.
|
||||||
For each exception, there should be related string resources for display name that may have
|
For each exception, there should be related string resources for display name that may have
|
||||||
explicit keyboard layout. The string resource name must be "subtype_<locale>" or
|
explicit keyboard layout. The string resource name must be "subtype_<locale>" or
|
||||||
|
|
|
@ -452,6 +452,13 @@ mobile devices. [CHAR LIMIT=25] -->
|
||||||
<!-- Description for Emoji keyboard subtype [CHAR LIMIT=25] -->
|
<!-- Description for Emoji keyboard subtype [CHAR LIMIT=25] -->
|
||||||
<string name="subtype_emoji">Emoji</string>
|
<string name="subtype_emoji">Emoji</string>
|
||||||
|
|
||||||
|
<!-- Title of the preference settings for switching keyboard color scheme [CHAR LIMIT=35] -->
|
||||||
|
<string name="keyboard_color_scheme">Color scheme</string>
|
||||||
|
<!-- The keyboard color scheme name, White [CHAR LIMIT=16] -->
|
||||||
|
<string name="keyboard_color_scheme_white">White</string>
|
||||||
|
<!-- The keyboard color scheme name, Blue [CHAR LIMIT=16] -->
|
||||||
|
<string name="keyboard_color_scheme_blue">Blue</string>
|
||||||
|
|
||||||
<!-- Title of the preference settings for custom input styles (language and keyboard layout pairs) [CHAR LIMIT=35]-->
|
<!-- Title of the preference settings for custom input styles (language and keyboard layout pairs) [CHAR LIMIT=35]-->
|
||||||
<string name="custom_input_styles_title">Custom input styles</string>
|
<string name="custom_input_styles_title">Custom input styles</string>
|
||||||
<!-- Title of the option menu to add a new style entry in the preference settings [CHAR LIMIT=16] -->
|
<!-- Title of the option menu to add a new style entry in the preference settings [CHAR LIMIT=16] -->
|
||||||
|
|
|
@ -158,6 +158,14 @@
|
||||||
android:summary="@string/sliding_key_input_preview_summary"
|
android:summary="@string/sliding_key_input_preview_summary"
|
||||||
android:persistent="true"
|
android:persistent="true"
|
||||||
android:defaultValue="true" />
|
android:defaultValue="true" />
|
||||||
|
<ListPreference
|
||||||
|
android:key="pref_keyboard_layout_20110916"
|
||||||
|
android:title="@string/keyboard_color_scheme"
|
||||||
|
android:summary="%s"
|
||||||
|
android:persistent="true"
|
||||||
|
android:entryValues="@array/keyboard_color_schemes_values"
|
||||||
|
android:entries="@array/keyboard_color_schemes"
|
||||||
|
android:defaultValue="@string/config_default_keyboard_theme_index" />
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
android:fragment="com.android.inputmethod.latin.settings.AdditionalSubtypeSettings"
|
android:fragment="com.android.inputmethod.latin.settings.AdditionalSubtypeSettings"
|
||||||
android:key="custom_input_styles"
|
android:key="custom_input_styles"
|
||||||
|
|
|
@ -27,6 +27,7 @@ import android.view.View;
|
||||||
import android.view.inputmethod.EditorInfo;
|
import android.view.inputmethod.EditorInfo;
|
||||||
|
|
||||||
import com.android.inputmethod.accessibility.AccessibleKeyboardViewProxy;
|
import com.android.inputmethod.accessibility.AccessibleKeyboardViewProxy;
|
||||||
|
import com.android.inputmethod.compat.InputMethodServiceCompatUtils;
|
||||||
import com.android.inputmethod.keyboard.KeyboardLayoutSet.KeyboardLayoutSetException;
|
import com.android.inputmethod.keyboard.KeyboardLayoutSet.KeyboardLayoutSetException;
|
||||||
import com.android.inputmethod.keyboard.internal.KeyboardState;
|
import com.android.inputmethod.keyboard.internal.KeyboardState;
|
||||||
import com.android.inputmethod.latin.InputView;
|
import com.android.inputmethod.latin.InputView;
|
||||||
|
@ -75,6 +76,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
|
||||||
private EmojiPalettesView mEmojiPalettesView;
|
private EmojiPalettesView mEmojiPalettesView;
|
||||||
private LatinIME mLatinIME;
|
private LatinIME mLatinIME;
|
||||||
private Resources mResources;
|
private Resources mResources;
|
||||||
|
private boolean mIsHardwareAcceleratedDrawingEnabled;
|
||||||
|
|
||||||
private KeyboardState mState;
|
private KeyboardState mState;
|
||||||
|
|
||||||
|
@ -108,7 +110,16 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
|
||||||
mPrefs = prefs;
|
mPrefs = prefs;
|
||||||
mSubtypeSwitcher = SubtypeSwitcher.getInstance();
|
mSubtypeSwitcher = SubtypeSwitcher.getInstance();
|
||||||
mState = new KeyboardState(this);
|
mState = new KeyboardState(this);
|
||||||
setContextThemeWrapper(latinIme, getKeyboardTheme(latinIme, prefs));
|
mIsHardwareAcceleratedDrawingEnabled =
|
||||||
|
InputMethodServiceCompatUtils.enableHardwareAcceleration(mLatinIME);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateKeyboardTheme() {
|
||||||
|
final boolean themeUpdated = updateKeyboardThemeAndContextThemeWrapper(
|
||||||
|
mLatinIME, getKeyboardTheme(mLatinIME, mPrefs));
|
||||||
|
if (themeUpdated && mKeyboardView != null) {
|
||||||
|
mLatinIME.setInputView(onCreateInputView(mIsHardwareAcceleratedDrawingEnabled));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static KeyboardTheme getKeyboardTheme(final Context context,
|
private static KeyboardTheme getKeyboardTheme(final Context context,
|
||||||
|
@ -128,12 +139,15 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
|
||||||
return KEYBOARD_THEMES[Integer.valueOf(defaultIndex)];
|
return KEYBOARD_THEMES[Integer.valueOf(defaultIndex)];
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setContextThemeWrapper(final Context context, final KeyboardTheme keyboardTheme) {
|
private boolean updateKeyboardThemeAndContextThemeWrapper(final Context context,
|
||||||
|
final KeyboardTheme keyboardTheme) {
|
||||||
if (mThemeContext == null || mKeyboardTheme.mThemeId != keyboardTheme.mThemeId) {
|
if (mThemeContext == null || mKeyboardTheme.mThemeId != keyboardTheme.mThemeId) {
|
||||||
mKeyboardTheme = keyboardTheme;
|
mKeyboardTheme = keyboardTheme;
|
||||||
mThemeContext = new ContextThemeWrapper(context, keyboardTheme.mStyleId);
|
mThemeContext = new ContextThemeWrapper(context, keyboardTheme.mStyleId);
|
||||||
KeyboardLayoutSet.clearKeyboardCache();
|
KeyboardLayoutSet.clearKeyboardCache();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void loadKeyboard(final EditorInfo editorInfo, final SettingsValues settingsValues) {
|
public void loadKeyboard(final EditorInfo editorInfo, final SettingsValues settingsValues) {
|
||||||
|
@ -365,7 +379,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
|
||||||
mKeyboardView.closing();
|
mKeyboardView.closing();
|
||||||
}
|
}
|
||||||
|
|
||||||
setContextThemeWrapper(mLatinIME, mKeyboardTheme);
|
updateKeyboardThemeAndContextThemeWrapper(mLatinIME, mKeyboardTheme);
|
||||||
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);
|
||||||
|
|
|
@ -809,6 +809,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
||||||
super.onStartInputView(editorInfo, restarting);
|
super.onStartInputView(editorInfo, restarting);
|
||||||
mRichImm.clearSubtypeCaches();
|
mRichImm.clearSubtypeCaches();
|
||||||
final KeyboardSwitcher switcher = mKeyboardSwitcher;
|
final KeyboardSwitcher switcher = mKeyboardSwitcher;
|
||||||
|
switcher.updateKeyboardTheme();
|
||||||
final MainKeyboardView mainKeyboardView = switcher.getMainKeyboardView();
|
final MainKeyboardView mainKeyboardView = switcher.getMainKeyboardView();
|
||||||
// If we are starting input in a different text field from before, we'll have to reload
|
// If we are starting input in a different text field from before, we'll have to reload
|
||||||
// settings, so currentSettingsValues can't be final.
|
// settings, so currentSettingsValues can't be final.
|
||||||
|
|
|
@ -113,9 +113,7 @@ public final class DebugSettings extends PreferenceFragment
|
||||||
mServiceNeedsRestart = true;
|
mServiceNeedsRestart = true;
|
||||||
}
|
}
|
||||||
} else if (key.equals(PREF_FORCE_NON_DISTINCT_MULTITOUCH)
|
} else if (key.equals(PREF_FORCE_NON_DISTINCT_MULTITOUCH)
|
||||||
|| key.equals(KeyboardSwitcher.PREF_KEYBOARD_LAYOUT)) {
|
|| key.equals(PREF_USE_ONLY_PERSONALIZATION_DICTIONARY_FOR_DEBUG)) {
|
||||||
mServiceNeedsRestart = true;
|
|
||||||
} else if (key.equals(PREF_USE_ONLY_PERSONALIZATION_DICTIONARY_FOR_DEBUG)) {
|
|
||||||
mServiceNeedsRestart = true;
|
mServiceNeedsRestart = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue