101 lines
3.8 KiB
Java
101 lines
3.8 KiB
Java
|
/*
|
||
|
* 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.latin.settings;
|
||
|
|
||
|
import android.content.Context;
|
||
|
import android.content.SharedPreferences;
|
||
|
import android.content.res.Resources;
|
||
|
import android.os.Bundle;
|
||
|
import android.preference.Preference;
|
||
|
|
||
|
import com.android.inputmethod.latin.AudioAndHapticFeedbackManager;
|
||
|
import com.android.inputmethod.latin.R;
|
||
|
import com.android.inputmethod.latin.SubtypeSwitcher;
|
||
|
|
||
|
/**
|
||
|
* "Preferences" settings sub screen.
|
||
|
*
|
||
|
* This settings sub screen handles the following input preferences.
|
||
|
* - Auto-capitalization
|
||
|
* - Double-space period
|
||
|
* - Vibrate on keypress
|
||
|
* - Sound on keypress
|
||
|
* - Popup on keypress
|
||
|
* - Voice input key
|
||
|
*/
|
||
|
public final class PreferencesSettingsFragment extends SubScreenFragment {
|
||
|
@Override
|
||
|
public void onCreate(final Bundle icicle) {
|
||
|
super.onCreate(icicle);
|
||
|
addPreferencesFromResource(R.xml.prefs_screen_preferences);
|
||
|
|
||
|
final Resources res = getResources();
|
||
|
final Context context = getActivity();
|
||
|
|
||
|
// When we are called from the Settings application but we are not already running, some
|
||
|
// singleton and utility classes may not have been initialized. We have to call
|
||
|
// initialization method of these classes here. See {@link LatinIME#onCreate()}.
|
||
|
SubtypeSwitcher.init(context);
|
||
|
|
||
|
final boolean showVoiceKeyOption = res.getBoolean(
|
||
|
R.bool.config_enable_show_voice_key_option);
|
||
|
if (!showVoiceKeyOption) {
|
||
|
removePreference(Settings.PREF_VOICE_INPUT_KEY);
|
||
|
}
|
||
|
if (!AudioAndHapticFeedbackManager.getInstance().hasVibrator()) {
|
||
|
removePreference(Settings.PREF_VIBRATE_ON);
|
||
|
}
|
||
|
if (!Settings.readFromBuildConfigIfToShowKeyPreviewPopupOption(res)) {
|
||
|
removePreference(Settings.PREF_POPUP_ON);
|
||
|
}
|
||
|
|
||
|
refreshEnablingsOfKeypressSoundAndVibrationSettings();
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void onResume() {
|
||
|
super.onResume();
|
||
|
final Preference voiceInputKeyOption = findPreference(Settings.PREF_VOICE_INPUT_KEY);
|
||
|
if (voiceInputKeyOption != null) {
|
||
|
final boolean isShortcutImeEnabled = SubtypeSwitcher.getInstance()
|
||
|
.isShortcutImeEnabled();
|
||
|
voiceInputKeyOption.setEnabled(isShortcutImeEnabled);
|
||
|
voiceInputKeyOption.setSummary(
|
||
|
isShortcutImeEnabled ? null : getText(R.string.voice_input_disabled_summary));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void onSharedPreferenceChanged(final SharedPreferences prefs, final String key) {
|
||
|
final Resources res = getResources();
|
||
|
if (key.equals(Settings.PREF_POPUP_ON)) {
|
||
|
setPreferenceEnabled(Settings.PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY,
|
||
|
Settings.readKeyPreviewPopupEnabled(prefs, res));
|
||
|
}
|
||
|
refreshEnablingsOfKeypressSoundAndVibrationSettings();
|
||
|
}
|
||
|
|
||
|
private void refreshEnablingsOfKeypressSoundAndVibrationSettings() {
|
||
|
final SharedPreferences prefs = getSharedPreferences();
|
||
|
final Resources res = getResources();
|
||
|
setPreferenceEnabled(Settings.PREF_VIBRATION_DURATION_SETTINGS,
|
||
|
Settings.readVibrationEnabled(prefs, res));
|
||
|
setPreferenceEnabled(Settings.PREF_KEYPRESS_SOUND_VOLUME,
|
||
|
Settings.readKeypressSoundEnabled(prefs, res));
|
||
|
}
|
||
|
}
|