diff options
author | John Spurlock <jspurlock@google.com> | 2012-05-22 13:40:35 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-05-22 13:40:35 -0700 |
commit | 638e012d2b5c2b075b48f86d08daec9b36319cfc (patch) | |
tree | 2cf86a57b51efa54035e4eaae130abb1c04a1f04 /packages | |
parent | 2bccea2461556a525c5c65be0364b5b9404c8651 (diff) | |
parent | 781f0f491a968b59a146b6159de6a9b265e219f1 (diff) | |
download | frameworks_base-638e012d2b5c2b075b48f86d08daec9b36319cfc.zip frameworks_base-638e012d2b5c2b075b48f86d08daec9b36319cfc.tar.gz frameworks_base-638e012d2b5c2b075b48f86d08daec9b36319cfc.tar.bz2 |
Merge "Status Bar: Register for rotation lock status updates." into jb-dev
Diffstat (limited to 'packages')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/policy/AutoRotateController.java | 37 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/tablet/SettingsView.java | 1 |
2 files changed, 28 insertions, 10 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/AutoRotateController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/AutoRotateController.java index a31e2a4..3d63781 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/AutoRotateController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/AutoRotateController.java @@ -18,32 +18,40 @@ package com.android.systemui.statusbar.policy; import android.content.ContentResolver; import android.content.Context; +import android.database.ContentObserver; import android.os.AsyncTask; +import android.os.Handler; import android.os.RemoteException; import android.os.ServiceManager; import android.provider.Settings; import android.util.Log; -import android.util.Slog; import android.view.IWindowManager; import android.widget.CompoundButton; -/** - * TODO: Listen for changes to the setting. - */ public class AutoRotateController implements CompoundButton.OnCheckedChangeListener { private static final String TAG = "StatusBar.AutoRotateController"; - private Context mContext; - private CompoundButton mCheckBox; + private final Context mContext; + private final CompoundButton mCheckbox; private boolean mAutoRotation; + private ContentObserver mAccelerometerRotationObserver = new ContentObserver(new Handler()) { + @Override + public void onChange(boolean selfChange) { + updateCheckbox(); + } + }; + public AutoRotateController(Context context, CompoundButton checkbox) { mContext = context; - mAutoRotation = getAutoRotation(); - mCheckBox = checkbox; - checkbox.setChecked(mAutoRotation); - checkbox.setOnCheckedChangeListener(this); + mCheckbox = checkbox; + updateCheckbox(); + mCheckbox.setOnCheckedChangeListener(this); + + mContext.getContentResolver().registerContentObserver( + Settings.System.getUriFor(Settings.System.ACCELEROMETER_ROTATION), true, + mAccelerometerRotationObserver); } public void onCheckedChanged(CompoundButton view, boolean checked) { @@ -52,6 +60,15 @@ public class AutoRotateController implements CompoundButton.OnCheckedChangeListe } } + public void release() { + mContext.getContentResolver().unregisterContentObserver(mAccelerometerRotationObserver); + } + + private void updateCheckbox() { + mAutoRotation = getAutoRotation(); + mCheckbox.setChecked(mAutoRotation); + } + private boolean getAutoRotation() { ContentResolver cr = mContext.getContentResolver(); return 0 != Settings.System.getInt(cr, Settings.System.ACCELEROMETER_ROTATION, 0); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/SettingsView.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/SettingsView.java index 9ca83e6..46ea940 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/SettingsView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/SettingsView.java @@ -75,6 +75,7 @@ public class SettingsView extends LinearLayout implements View.OnClickListener { super.onDetachedFromWindow(); mAirplane.release(); mDoNotDisturb.release(); + mRotate.release(); } public void onClick(View v) { |