Loading java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java +14 −2 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.content.SharedPreferences; import android.inputmethodservice.InputMethodService; import android.media.AudioManager; import android.os.SystemClock; import android.provider.Settings; import android.util.Log; import android.view.MotionEvent; import android.view.accessibility.AccessibilityEvent; Loading @@ -31,6 +32,7 @@ import com.android.inputmethod.compat.AccessibilityManagerCompatWrapper; import com.android.inputmethod.compat.AudioManagerCompatWrapper; import com.android.inputmethod.compat.InputTypeCompatUtils; import com.android.inputmethod.compat.MotionEventCompatUtils; import com.android.inputmethod.compat.SettingsSecureCompatUtils; import com.android.inputmethod.latin.R; public class AccessibilityUtils { Loading Loading @@ -113,13 +115,23 @@ public class AccessibilityUtils { } /** * @return {@code true} if the device should not speak text (eg. * non-control) characters * Returns whether the device should obscure typed password characters. * Typically this means speaking "dot" in place of non-control characters. * * @return {@code true} if the device should obscure password characters. */ public boolean shouldObscureInput(EditorInfo attribute) { if (attribute == null) return false; // The user can optionally force speaking passwords. if (SettingsSecureCompatUtils.ACCESSIBILITY_SPEAK_PASSWORD != null) { final boolean speakPassword = Settings.Secure.getInt(mContext.getContentResolver(), SettingsSecureCompatUtils.ACCESSIBILITY_SPEAK_PASSWORD, 0) != 0; if (speakPassword) return false; } // Always speak if the user is listening through headphones. if (mAudioManager.isWiredHeadsetOn() || mAudioManager.isBluetoothA2dpOn()) return false; Loading java/src/com/android/inputmethod/compat/SettingsSecureCompatUtils.java 0 → 100644 +34 −0 Original line number Diff line number Diff line /* * Copyright (C) 2011 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.compat; import java.lang.reflect.Field; public class SettingsSecureCompatUtils { private static final Field FIELD_ACCESSIBILITY_SPEAK_PASSWORD = CompatUtils.getField( android.provider.Settings.Secure.class, "ACCESSIBILITY_SPEAK_PASSWORD"); private SettingsSecureCompatUtils() { // This class is non-instantiable. } /** * Whether to speak passwords while in accessibility mode. */ public static final String ACCESSIBILITY_SPEAK_PASSWORD = (String) CompatUtils.getFieldValue( null, null, FIELD_ACCESSIBILITY_SPEAK_PASSWORD); } Loading
java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java +14 −2 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.content.SharedPreferences; import android.inputmethodservice.InputMethodService; import android.media.AudioManager; import android.os.SystemClock; import android.provider.Settings; import android.util.Log; import android.view.MotionEvent; import android.view.accessibility.AccessibilityEvent; Loading @@ -31,6 +32,7 @@ import com.android.inputmethod.compat.AccessibilityManagerCompatWrapper; import com.android.inputmethod.compat.AudioManagerCompatWrapper; import com.android.inputmethod.compat.InputTypeCompatUtils; import com.android.inputmethod.compat.MotionEventCompatUtils; import com.android.inputmethod.compat.SettingsSecureCompatUtils; import com.android.inputmethod.latin.R; public class AccessibilityUtils { Loading Loading @@ -113,13 +115,23 @@ public class AccessibilityUtils { } /** * @return {@code true} if the device should not speak text (eg. * non-control) characters * Returns whether the device should obscure typed password characters. * Typically this means speaking "dot" in place of non-control characters. * * @return {@code true} if the device should obscure password characters. */ public boolean shouldObscureInput(EditorInfo attribute) { if (attribute == null) return false; // The user can optionally force speaking passwords. if (SettingsSecureCompatUtils.ACCESSIBILITY_SPEAK_PASSWORD != null) { final boolean speakPassword = Settings.Secure.getInt(mContext.getContentResolver(), SettingsSecureCompatUtils.ACCESSIBILITY_SPEAK_PASSWORD, 0) != 0; if (speakPassword) return false; } // Always speak if the user is listening through headphones. if (mAudioManager.isWiredHeadsetOn() || mAudioManager.isBluetoothA2dpOn()) return false; Loading
java/src/com/android/inputmethod/compat/SettingsSecureCompatUtils.java 0 → 100644 +34 −0 Original line number Diff line number Diff line /* * Copyright (C) 2011 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.compat; import java.lang.reflect.Field; public class SettingsSecureCompatUtils { private static final Field FIELD_ACCESSIBILITY_SPEAK_PASSWORD = CompatUtils.getField( android.provider.Settings.Secure.class, "ACCESSIBILITY_SPEAK_PASSWORD"); private SettingsSecureCompatUtils() { // This class is non-instantiable. } /** * Whether to speak passwords while in accessibility mode. */ public static final String ACCESSIBILITY_SPEAK_PASSWORD = (String) CompatUtils.getFieldValue( null, null, FIELD_ACCESSIBILITY_SPEAK_PASSWORD); }