diff options
author | Svetoslav Ganov <svetoslavganov@google.com> | 2012-05-29 20:02:50 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-05-29 20:02:50 -0700 |
commit | a99d1125e2ede99391e8cff6c4bee179fdc81d06 (patch) | |
tree | d10b6e99106672ccba524493c2df362c15af2def /src | |
parent | 10be9eaa812b38d4ad5d40afaeb05dfdf7d448b1 (diff) | |
parent | 3aa58b0f35c60f7bf4c97a6e12c201abf90824c7 (diff) | |
download | packages_apps_settings-a99d1125e2ede99391e8cff6c4bee179fdc81d06.zip packages_apps_settings-a99d1125e2ede99391e8cff6c4bee179fdc81d06.tar.gz packages_apps_settings-a99d1125e2ede99391e8cff6c4bee179fdc81d06.tar.bz2 |
Merge "Lock screen rotation accessibility preference not updated." into jb-dev
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/settings/AccessibilitySettings.java | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/com/android/settings/AccessibilitySettings.java b/src/com/android/settings/AccessibilitySettings.java index 7647d01..d2bfc0d 100644 --- a/src/com/android/settings/AccessibilitySettings.java +++ b/src/com/android/settings/AccessibilitySettings.java @@ -30,6 +30,7 @@ import android.content.SharedPreferences; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.content.res.Configuration; +import android.database.ContentObserver; import android.net.Uri; import android.os.Bundle; import android.os.Handler; @@ -44,6 +45,7 @@ import android.preference.PreferenceActivity; import android.preference.PreferenceCategory; import android.preference.PreferenceScreen; import android.provider.Settings; +import android.provider.Settings.SettingNotFoundException; import android.text.TextUtils; import android.text.TextUtils.SimpleStringSplitter; import android.util.Log; @@ -149,6 +151,25 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements } }; + private final Uri mLockScreenRotationUri = Uri.withAppendedPath(Settings.System.CONTENT_URI, + Settings.System.ACCELEROMETER_ROTATION); + + private final ContentObserver mSettingsContentObserver = new ContentObserver(mHandler) { + @Override + public void onChange(boolean selfChange, Uri uri) { + if (mLockScreenRotationUri.equals(uri)) { + try { + final boolean lockRotationEnabled = (Settings.System.getInt( + getActivity().getContentResolver(), + Settings.System.ACCELEROMETER_ROTATION) == 0); + mToggleLockScreenRotationPreference.setChecked(lockRotationEnabled); + } catch (SettingNotFoundException e) { + /* ignore */ + } + } + } + }; + // Preference controls. private PreferenceCategory mServicesCategory; private PreferenceCategory mSystemsCategory; @@ -179,11 +200,14 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements offerInstallAccessibilitySerivceOnce(); } mSettingsPackageMonitor.register(getActivity(), getActivity().getMainLooper(), false); + getActivity().getContentResolver().registerContentObserver(mLockScreenRotationUri, false, + mSettingsContentObserver); } @Override public void onPause() { mSettingsPackageMonitor.unregister(); + getContentResolver().unregisterContentObserver(mSettingsContentObserver); super.onPause(); } |