Merge "Fix ColorInversionTile for secondary users" into lmp-dev
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSTile.java b/packages/SystemUI/src/com/android/systemui/qs/QSTile.java
index cb685fe..6ef6e9e 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSTile.java
@@ -123,7 +123,7 @@
}
public void userSwitch(int newUserId) {
- mHandler.obtainMessage(H.USER_SWITCH, newUserId).sendToTarget();
+ mHandler.obtainMessage(H.USER_SWITCH, newUserId, 0).sendToTarget();
}
public void fireToggleStateChanged(boolean state) {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/SecureSetting.java b/packages/SystemUI/src/com/android/systemui/qs/SecureSetting.java
index 3ed3d30..0ab6626 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/SecureSetting.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/SecureSetting.java
@@ -16,6 +16,7 @@
package com.android.systemui.qs;
+import android.app.ActivityManager;
import android.content.Context;
import android.database.ContentObserver;
import android.os.Handler;
@@ -28,32 +29,33 @@
private final Context mContext;
private final String mSettingName;
+ private boolean mListening;
+ private int mUserId;
+
protected abstract void handleValueChanged(int value);
public SecureSetting(Context context, Handler handler, String settingName) {
super(handler);
mContext = context;
mSettingName = settingName;
- rebindForCurrentUser();
- }
-
- public void rebindForCurrentUser() {
+ mUserId = ActivityManager.getCurrentUser();
setListening(true);
}
public int getValue() {
- return Secure.getInt(mContext.getContentResolver(), mSettingName, 0);
+ return Secure.getIntForUser(mContext.getContentResolver(), mSettingName, 0, mUserId);
}
public void setValue(int value) {
- Secure.putInt(mContext.getContentResolver(), mSettingName, value);
+ Secure.putIntForUser(mContext.getContentResolver(), mSettingName, value, mUserId);
}
@Override
public void setListening(boolean listening) {
+ mListening = listening;
if (listening) {
mContext.getContentResolver().registerContentObserver(
- Secure.getUriFor(mSettingName), false, this);
+ Secure.getUriFor(mSettingName), false, this, mUserId);
} else {
mContext.getContentResolver().unregisterContentObserver(this);
}
@@ -63,4 +65,12 @@
public void onChange(boolean selfChange) {
handleValueChanged(getValue());
}
+
+ public void setUserId(int userId) {
+ mUserId = userId;
+ if (mListening) {
+ setListening(false);
+ setListening(true);
+ }
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/ColorInversionTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/ColorInversionTile.java
index a62bbff..01849c1 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/ColorInversionTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/ColorInversionTile.java
@@ -71,7 +71,8 @@
@Override
protected void handleUserSwitch(int newUserId) {
- mSetting.rebindForCurrentUser();
+ mSetting.setUserId(newUserId);
+ handleRefreshState(mSetting.getValue());
}
@Override