summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/accessibility
diff options
context:
space:
mode:
authorPhil Weaver <pweaver@google.com>2018-03-02 16:07:51 -0800
committerPhil Weaver <pweaver@google.com>2018-03-03 03:35:24 +0000
commit203b923cb458d6dfd57874d873632a475d0b5f2b (patch)
tree80984ad9c05d6b5d865441e2973d497780cfc56b /src/com/android/settings/accessibility
parent68628c2eddbce5cd22d58bc46419c75ff9e152a2 (diff)
downloadpackages_apps_Settings-203b923cb458d6dfd57874d873632a475d0b5f2b.tar.gz
packages_apps_Settings-203b923cb458d6dfd57874d873632a475d0b5f2b.tar.bz2
packages_apps_Settings-203b923cb458d6dfd57874d873632a475d0b5f2b.zip
Settings reflect new a11y shortcut on lockscreen
Matching changes to the framework behavior. The setting is on by default iff the user has agreed to use the a11y shortcut. Bug: 70944865 Test: Adding new test for this fragment that checks this behavior Change-Id: I7831f64cf3ec59c2d266340cc570227433a4febb
Diffstat (limited to 'src/com/android/settings/accessibility')
-rw-r--r--src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
index d321783279..bc164ab515 100644
--- a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
@@ -20,7 +20,9 @@ import android.annotation.Nullable;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
+import android.database.ContentObserver;
import android.os.Bundle;
+import android.os.Handler;
import android.os.UserHandle;
import android.provider.Settings;
import android.support.v14.preference.SwitchPreference;
@@ -46,6 +48,12 @@ public class AccessibilityShortcutPreferenceFragment extends ToggleFeaturePrefer
private Preference mServicePreference;
private SwitchPreference mOnLockScreenSwitchPreference;
+ private final ContentObserver mContentObserver = new ContentObserver(new Handler()) {
+ @Override
+ public void onChange(boolean selfChange) {
+ updatePreferences();
+ }
+ };
@Override
public int getMetricsCategory() {
@@ -77,6 +85,15 @@ public class AccessibilityShortcutPreferenceFragment extends ToggleFeaturePrefer
public void onResume() {
super.onResume();
updatePreferences();
+ getContentResolver().registerContentObserver(
+ Settings.Secure.getUriFor(Settings.Secure.ACCESSIBILITY_SHORTCUT_DIALOG_SHOWN),
+ false, mContentObserver);
+ }
+
+ @Override
+ public void onPause() {
+ getContentResolver().unregisterContentObserver(mContentObserver);
+ super.onPause();
}
@Override
@@ -120,8 +137,13 @@ public class AccessibilityShortcutPreferenceFragment extends ToggleFeaturePrefer
boolean isEnabled = Settings.Secure
.getInt(cr, Settings.Secure.ACCESSIBILITY_SHORTCUT_ENABLED, 1) == 1;
mSwitchBar.setChecked(isEnabled);
- mOnLockScreenSwitchPreference.setChecked(Settings.Secure.getInt(
- cr, Settings.Secure.ACCESSIBILITY_SHORTCUT_ON_LOCK_SCREEN, 0) == 1);
+ // The shortcut is enabled by default on the lock screen as long as the user has
+ // enabled the shortcut with the warning dialog
+ final int dialogShown = Settings.Secure.getInt(
+ cr, Settings.Secure.ACCESSIBILITY_SHORTCUT_DIALOG_SHOWN, 0);
+ final boolean enabledFromLockScreen = Settings.Secure.getInt(
+ cr, Settings.Secure.ACCESSIBILITY_SHORTCUT_ON_LOCK_SCREEN, dialogShown) == 1;
+ mOnLockScreenSwitchPreference.setChecked(enabledFromLockScreen);
// Only enable changing the service and lock screen behavior if the shortcut is on
mServicePreference.setEnabled(mToggleSwitch.isChecked());
mOnLockScreenSwitchPreference.setEnabled(mToggleSwitch.isChecked());