diff options
author | 2013-07-22 12:43:37 +0900 | |
---|---|---|
committer | 2013-07-22 16:35:44 +0900 | |
commit | a7d2fc6befa1b16883200a653fc01deb4d94944d (patch) | |
tree | 62597e9eeebedb069e49869ba9744a9c99937ba2 /java/src/com/android/inputmethod/latin/Settings.java | |
parent | dc7111013f84ca5f82998a875054c28fec829358 (diff) | |
download | latinime-a7d2fc6befa1b16883200a653fc01deb4d94944d.tar.gz latinime-a7d2fc6befa1b16883200a653fc01deb4d94944d.tar.xz latinime-a7d2fc6befa1b16883200a653fc01deb4d94944d.zip |
Move settings related classes to "settings"
Change-Id: Id170dbfe2dcfc93130b7be4a84615940403ec37f
Diffstat (limited to 'java/src/com/android/inputmethod/latin/Settings.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/Settings.java | 329 |
1 files changed, 0 insertions, 329 deletions
diff --git a/java/src/com/android/inputmethod/latin/Settings.java b/java/src/com/android/inputmethod/latin/Settings.java deleted file mode 100644 index adc92d021..000000000 --- a/java/src/com/android/inputmethod/latin/Settings.java +++ /dev/null @@ -1,329 +0,0 @@ -/* - * 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; - -import android.content.Context; -import android.content.SharedPreferences; -import android.content.pm.ApplicationInfo; -import android.content.res.Resources; -import android.preference.PreferenceManager; -import android.util.Log; - -import com.android.inputmethod.latin.utils.LocaleUtils; -import com.android.inputmethod.latin.utils.LocaleUtils.RunInLocale; -import com.android.inputmethod.latin.utils.ResourceUtils; - -import java.util.HashMap; -import java.util.Locale; - -public final class Settings implements SharedPreferences.OnSharedPreferenceChangeListener { - private static final String TAG = Settings.class.getSimpleName(); - // In the same order as xml/prefs.xml - public static final String PREF_GENERAL_SETTINGS = "general_settings"; - public static final String PREF_AUTO_CAP = "auto_cap"; - public static final String PREF_VIBRATE_ON = "vibrate_on"; - public static final String PREF_SOUND_ON = "sound_on"; - public static final String PREF_POPUP_ON = "popup_on"; - public static final String PREF_VOICE_MODE = "voice_mode"; - public static final String PREF_CORRECTION_SETTINGS = "correction_settings"; - public static final String PREF_EDIT_PERSONAL_DICTIONARY = "edit_personal_dictionary"; - public static final String PREF_CONFIGURE_DICTIONARIES_KEY = "configure_dictionaries_key"; - public static final String PREF_AUTO_CORRECTION_THRESHOLD = "auto_correction_threshold"; - public static final String PREF_SHOW_SUGGESTIONS_SETTING = "show_suggestions_setting"; - public static final String PREF_MISC_SETTINGS = "misc_settings"; - public static final String PREF_LAST_USER_DICTIONARY_WRITE_TIME = - "last_user_dictionary_write_time"; - public static final String PREF_ADVANCED_SETTINGS = "pref_advanced_settings"; - public static final String PREF_KEY_USE_CONTACTS_DICT = "pref_key_use_contacts_dict"; - public static final String PREF_KEY_USE_DOUBLE_SPACE_PERIOD = - "pref_key_use_double_space_period"; - public static final String PREF_BLOCK_POTENTIALLY_OFFENSIVE = - "pref_key_block_potentially_offensive"; - public static final String PREF_SHOW_LANGUAGE_SWITCH_KEY = - "pref_show_language_switch_key"; - public static final String PREF_INCLUDE_OTHER_IMES_IN_LANGUAGE_SWITCH_LIST = - "pref_include_other_imes_in_language_switch_list"; - public static final String PREF_CUSTOM_INPUT_STYLES = "custom_input_styles"; - public static final String PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY = - "pref_key_preview_popup_dismiss_delay"; - public static final String PREF_BIGRAM_PREDICTIONS = "next_word_prediction"; - public static final String PREF_GESTURE_SETTINGS = "gesture_typing_settings"; - public static final String PREF_GESTURE_INPUT = "gesture_input"; - public static final String PREF_SLIDING_KEY_INPUT_PREVIEW = "pref_sliding_key_input_preview"; - public static final String PREF_KEY_LONGPRESS_TIMEOUT = "pref_key_longpress_timeout"; - public static final String PREF_VIBRATION_DURATION_SETTINGS = - "pref_vibration_duration_settings"; - public static final String PREF_KEYPRESS_SOUND_VOLUME = - "pref_keypress_sound_volume"; - public static final String PREF_GESTURE_PREVIEW_TRAIL = "pref_gesture_preview_trail"; - public static final String PREF_GESTURE_FLOATING_PREVIEW_TEXT = - "pref_gesture_floating_preview_text"; - public static final String PREF_SHOW_SETUP_WIZARD_ICON = "pref_show_setup_wizard_icon"; - - public static final String PREF_INPUT_LANGUAGE = "input_language"; - public static final String PREF_SELECTED_LANGUAGES = "selected_languages"; - public static final String PREF_DEBUG_SETTINGS = "debug_settings"; - public static final String PREF_KEY_IS_INTERNAL = "pref_key_is_internal"; - - // This preference key is deprecated. Use {@link #PREF_SHOW_LANGUAGE_SWITCH_KEY} instead. - // This is being used only for the backward compatibility. - private static final String PREF_SUPPRESS_LANGUAGE_SWITCH_KEY = - "pref_suppress_language_switch_key"; - - public static final String PREF_SEND_FEEDBACK = "send_feedback"; - public static final String PREF_ABOUT_KEYBOARD = "about_keyboard"; - - private Resources mRes; - private SharedPreferences mPrefs; - private Locale mCurrentLocale; - private SettingsValues mSettingsValues; - - private static final Settings sInstance = new Settings(); - - public static Settings getInstance() { - return sInstance; - } - - public static void init(final Context context) { - sInstance.onCreate(context); - } - - private Settings() { - // Intentional empty constructor for singleton. - } - - private void onCreate(final Context context) { - mRes = context.getResources(); - mPrefs = PreferenceManager.getDefaultSharedPreferences(context); - mPrefs.registerOnSharedPreferenceChangeListener(this); - } - - public void onDestroy() { - mPrefs.unregisterOnSharedPreferenceChangeListener(this); - } - - @Override - public void onSharedPreferenceChanged(final SharedPreferences prefs, final String key) { - if (mSettingsValues == null) { - // TODO: Introduce a static function to register this class and ensure that - // loadSettings must be called before "onSharedPreferenceChanged" is called. - Log.w(TAG, "onSharedPreferenceChanged called before loadSettings."); - return; - } - loadSettings(mCurrentLocale, mSettingsValues.mInputAttributes); - } - - public void loadSettings(final Locale locale, final InputAttributes inputAttributes) { - mCurrentLocale = locale; - final SharedPreferences prefs = mPrefs; - final RunInLocale<SettingsValues> job = new RunInLocale<SettingsValues>() { - @Override - protected SettingsValues job(final Resources res) { - return new SettingsValues(prefs, res, inputAttributes); - } - }; - mSettingsValues = job.runInLocale(mRes, locale); - } - - // TODO: Remove this method and add proxy method to SettingsValues. - public SettingsValues getCurrent() { - return mSettingsValues; - } - - public boolean isInternal() { - return mSettingsValues.mIsInternal; - } - - public String getWordSeparators() { - return mSettingsValues.mWordSeparators; - } - - public boolean isWordSeparator(final int code) { - return mSettingsValues.isWordSeparator(code); - } - - public Locale getCurrentLocale() { - return mCurrentLocale; - } - - public boolean getBlockPotentiallyOffensive() { - return mSettingsValues.mBlockPotentiallyOffensive; - } - - // Accessed from the settings interface, hence public - public static boolean readKeypressSoundEnabled(final SharedPreferences prefs, - final Resources res) { - return prefs.getBoolean(Settings.PREF_SOUND_ON, - res.getBoolean(R.bool.config_default_sound_enabled)); - } - - public static boolean readVibrationEnabled(final SharedPreferences prefs, - final Resources res) { - final boolean hasVibrator = AudioAndHapticFeedbackManager.getInstance().hasVibrator(); - return hasVibrator && prefs.getBoolean(PREF_VIBRATE_ON, - res.getBoolean(R.bool.config_default_vibration_enabled)); - } - - public static boolean readAutoCorrectEnabled(final String currentAutoCorrectionSetting, - final Resources res) { - final String autoCorrectionOff = res.getString( - R.string.auto_correction_threshold_mode_index_off); - return !currentAutoCorrectionSetting.equals(autoCorrectionOff); - } - - public static boolean readBlockPotentiallyOffensive(final SharedPreferences prefs, - final Resources res) { - return prefs.getBoolean(Settings.PREF_BLOCK_POTENTIALLY_OFFENSIVE, - res.getBoolean(R.bool.config_block_potentially_offensive)); - } - - public static boolean readFromBuildConfigIfGestureInputEnabled(final Resources res) { - return res.getBoolean(R.bool.config_gesture_input_enabled_by_build_config); - } - - public static boolean readGestureInputEnabled(final SharedPreferences prefs, - final Resources res) { - return readFromBuildConfigIfGestureInputEnabled(res) - && prefs.getBoolean(Settings.PREF_GESTURE_INPUT, true); - } - - public static boolean readFromBuildConfigIfToShowKeyPreviewPopupSettingsOption( - final Resources res) { - return res.getBoolean(R.bool.config_enable_show_option_of_key_preview_popup); - } - - public static boolean readKeyPreviewPopupEnabled(final SharedPreferences prefs, - final Resources res) { - final boolean defaultKeyPreviewPopup = res.getBoolean( - R.bool.config_default_key_preview_popup); - if (!readFromBuildConfigIfToShowKeyPreviewPopupSettingsOption(res)) { - return defaultKeyPreviewPopup; - } - return prefs.getBoolean(PREF_POPUP_ON, defaultKeyPreviewPopup); - } - - public static int readKeyPreviewPopupDismissDelay(final SharedPreferences prefs, - final Resources res) { - return Integer.parseInt(prefs.getString(PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY, - Integer.toString(res.getInteger( - R.integer.config_key_preview_linger_timeout)))); - } - - public static boolean readShowsLanguageSwitchKey(final SharedPreferences prefs) { - if (prefs.contains(PREF_SUPPRESS_LANGUAGE_SWITCH_KEY)) { - final boolean suppressLanguageSwitchKey = prefs.getBoolean( - PREF_SUPPRESS_LANGUAGE_SWITCH_KEY, false); - final SharedPreferences.Editor editor = prefs.edit(); - editor.remove(PREF_SUPPRESS_LANGUAGE_SWITCH_KEY); - editor.putBoolean(PREF_SHOW_LANGUAGE_SWITCH_KEY, !suppressLanguageSwitchKey); - editor.apply(); - } - return prefs.getBoolean(PREF_SHOW_LANGUAGE_SWITCH_KEY, true); - } - - public static String readPrefAdditionalSubtypes(final SharedPreferences prefs, - final Resources res) { - final String predefinedPrefSubtypes = AdditionalSubtype.createPrefSubtypes( - res.getStringArray(R.array.predefined_subtypes)); - return prefs.getString(PREF_CUSTOM_INPUT_STYLES, predefinedPrefSubtypes); - } - - public static void writePrefAdditionalSubtypes(final SharedPreferences prefs, - final String prefSubtypes) { - prefs.edit().putString(Settings.PREF_CUSTOM_INPUT_STYLES, prefSubtypes).apply(); - } - - public static float readKeypressSoundVolume(final SharedPreferences prefs, - final Resources res) { - final float volume = prefs.getFloat(PREF_KEYPRESS_SOUND_VOLUME, -1.0f); - return (volume >= 0) ? volume : readDefaultKeypressSoundVolume(res); - } - - public static float readDefaultKeypressSoundVolume(final Resources res) { - return Float.parseFloat( - ResourceUtils.getDeviceOverrideValue(res, R.array.keypress_volumes)); - } - - public static int readKeyLongpressTimeout(final SharedPreferences prefs, - final Resources res) { - final int ms = prefs.getInt(PREF_KEY_LONGPRESS_TIMEOUT, -1); - return (ms >= 0) ? ms : readDefaultKeyLongpressTimeout(res); - } - - public static int readDefaultKeyLongpressTimeout(final Resources res) { - return res.getInteger(R.integer.config_default_longpress_key_timeout); - } - - public static int readKeypressVibrationDuration(final SharedPreferences prefs, - final Resources res) { - final int ms = prefs.getInt(PREF_VIBRATION_DURATION_SETTINGS, -1); - return (ms >= 0) ? ms : readDefaultKeypressVibrationDuration(res); - } - - public static int readDefaultKeypressVibrationDuration(final Resources res) { - return Integer.parseInt( - ResourceUtils.getDeviceOverrideValue(res, R.array.keypress_vibration_durations)); - } - - public static boolean readUsabilityStudyMode(final SharedPreferences prefs) { - return prefs.getBoolean(DebugSettings.PREF_USABILITY_STUDY_MODE, true); - } - - public static long readLastUserHistoryWriteTime(final SharedPreferences prefs, - final String locale) { - final String str = prefs.getString(PREF_LAST_USER_DICTIONARY_WRITE_TIME, ""); - final HashMap<String, Long> map = LocaleUtils.localeAndTimeStrToHashMap(str); - if (map.containsKey(locale)) { - return map.get(locale); - } - return 0; - } - - public static void writeLastUserHistoryWriteTime(final SharedPreferences prefs, - final String locale) { - final String oldStr = prefs.getString(PREF_LAST_USER_DICTIONARY_WRITE_TIME, ""); - final HashMap<String, Long> map = LocaleUtils.localeAndTimeStrToHashMap(oldStr); - map.put(locale, System.currentTimeMillis()); - final String newStr = LocaleUtils.localeAndTimeHashMapToStr(map); - prefs.edit().putString(PREF_LAST_USER_DICTIONARY_WRITE_TIME, newStr).apply(); - } - - public static boolean readUseFullscreenMode(final Resources res) { - return res.getBoolean(R.bool.config_use_fullscreen_mode); - } - - public static boolean readShowSetupWizardIcon(final SharedPreferences prefs, - final Context context) { - final boolean enableSetupWizardByConfig = context.getResources().getBoolean( - R.bool.config_setup_wizard_available); - if (!enableSetupWizardByConfig) { - return false; - } - if (!prefs.contains(Settings.PREF_SHOW_SETUP_WIZARD_ICON)) { - final ApplicationInfo appInfo = context.getApplicationInfo(); - final boolean isApplicationInSystemImage = - (appInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0; - // Default value - return !isApplicationInSystemImage; - } - return prefs.getBoolean(Settings.PREF_SHOW_SETUP_WIZARD_ICON, false); - } - - public static boolean isInternal(final SharedPreferences prefs) { - return prefs.getBoolean(Settings.PREF_KEY_IS_INTERNAL, false); - } -} |