summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorJohn Spurlock <jspurlock@google.com>2012-05-22 13:40:35 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-05-22 13:40:35 -0700
commit638e012d2b5c2b075b48f86d08daec9b36319cfc (patch)
tree2cf86a57b51efa54035e4eaae130abb1c04a1f04 /packages
parent2bccea2461556a525c5c65be0364b5b9404c8651 (diff)
parent781f0f491a968b59a146b6159de6a9b265e219f1 (diff)
downloadframeworks_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.java37
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/tablet/SettingsView.java1
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) {