summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJens Doll <jens.doll@gmail.com>2013-06-19 15:01:35 +0200
committerGerrit Code Review <gerrit@cyanogenmod.org>2013-06-24 23:47:34 -0700
commitfaf556956cb8d33ef496aff0a897cf26c7ade6e1 (patch)
tree41f4e2f9d1832920dd459a497334cc2ef97443cd
parentee0783a5c1f97ac763a74d0cc7a28cd9f9e4eac3 (diff)
downloadframeworks_base-faf556956cb8d33ef496aff0a897cf26c7ade6e1.zip
frameworks_base-faf556956cb8d33ef496aff0a897cf26c7ade6e1.tar.gz
frameworks_base-faf556956cb8d33ef496aff0a897cf26c7ade6e1.tar.bz2
Pie controls: Fix multi-user handling
This commit adds multi user support for pie controls: * React on user changes * Respect per user expanded desktop settings Change-Id: I513b00f2745f309bf21b971f96276da40003b224
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java15
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/PieController.java50
2 files changed, 36 insertions, 29 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
index 2320ed4..633687a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
@@ -297,6 +297,12 @@ public abstract class BaseStatusBar extends SystemUI implements
));
}
+ if (PieManager.getInstance().isPresent()) {
+ mPieController = new PieController(mContext);
+ mPieController.attachStatusBar(this);
+ addNavigationBarCallback(mPieController);
+ }
+
mCurrentUserId = ActivityManager.getCurrentUser();
IntentFilter filter = new IntentFilter();
@@ -309,15 +315,12 @@ public abstract class BaseStatusBar extends SystemUI implements
mCurrentUserId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, -1);
if (true) Slog.v(TAG, "userId " + mCurrentUserId + " is in the house");
userSwitched(mCurrentUserId);
+ if (mPieController != null) {
+ mPieController.userSwitched(mCurrentUserId);
+ }
}
}
}, filter);
-
- if (PieManager.getInstance().isPresent()) {
- mPieController = new PieController(mContext);
- mPieController.attachStatusBar(this);
- addNavigationBarCallback(mPieController);
- }
}
public void userSwitched(int newUserId) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/PieController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/PieController.java
index 046d6b7..1c37140 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/PieController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/PieController.java
@@ -208,31 +208,31 @@ public class PieController implements BaseStatusBar.NavigationBarCallback, PieVi
ContentResolver resolver = mContext.getContentResolver();
// trigger setupNavigationItems()
resolver.registerContentObserver(Settings.System.getUriFor(
- Settings.System.NAV_BUTTONS), false, this);
+ Settings.System.NAV_BUTTONS), false, this, UserHandle.USER_ALL);
resolver.registerContentObserver(Settings.Secure.getUriFor(
- Settings.Secure.KILL_APP_LONGPRESS_BACK), false, this);
+ Settings.Secure.KILL_APP_LONGPRESS_BACK), false, this, UserHandle.USER_ALL);
// trigger setupContainer()
resolver.registerContentObserver(Settings.System.getUriFor(
- Settings.System.PIE_CONTROLS), false, this);
+ Settings.System.PIE_CONTROLS), false, this, UserHandle.USER_ALL);
resolver.registerContentObserver(Settings.System.getUriFor(
- Settings.System.EXPANDED_DESKTOP_STATE), false, this);
+ Settings.System.EXPANDED_DESKTOP_STATE), false, this, UserHandle.USER_ALL);
resolver.registerContentObserver(Settings.System.getUriFor(
- Settings.System.EXPANDED_DESKTOP_STYLE), false, this);
+ Settings.System.EXPANDED_DESKTOP_STYLE), false, this, UserHandle.USER_ALL);
// trigger setupListener()
resolver.registerContentObserver(Settings.System.getUriFor(
- Settings.System.PIE_POSITIONS), false, this);
+ Settings.System.PIE_POSITIONS), false, this, UserHandle.USER_ALL);
resolver.registerContentObserver(Settings.System.getUriFor(
- Settings.System.PIE_SENSITIVITY), false, this);
+ Settings.System.PIE_SENSITIVITY), false, this, UserHandle.USER_ALL);
}
@Override
public void onChange(boolean selfChange) {
ContentResolver resolver = mContext.getContentResolver();
- boolean expanded = Settings.System.getInt(resolver,
- Settings.System.EXPANDED_DESKTOP_STATE, 0) == 1;
+ boolean expanded = Settings.System.getIntForUser(resolver,
+ Settings.System.EXPANDED_DESKTOP_STATE, 0, UserHandle.USER_CURRENT) == 1;
if (expanded) {
- mExpandedDesktopState = Settings.System.getInt(resolver,
- Settings.System.EXPANDED_DESKTOP_STYLE, 0);
+ mExpandedDesktopState = Settings.System.getIntForUser(resolver,
+ Settings.System.EXPANDED_DESKTOP_STYLE, 0, UserHandle.USER_CURRENT);
} else {
mExpandedDesktopState = 0;
}
@@ -300,6 +300,10 @@ public class PieController implements BaseStatusBar.NavigationBarCallback, PieVi
mSettingsObserver.onChange(true);
}
+ public void userSwitched(int newUserId) {
+ mSettingsObserver.onChange(true);
+ }
+
public void attachStatusBar(BaseStatusBar statusBar) {
mStatusBar = statusBar;
}
@@ -370,11 +374,11 @@ public class PieController implements BaseStatusBar.NavigationBarCallback, PieVi
private void setupListener() {
ContentResolver resolver = mContext.getContentResolver();
- mPieTriggerSlots = Settings.System.getInt(resolver,
- Settings.System.PIE_POSITIONS, PiePosition.BOTTOM.FLAG);
+ mPieTriggerSlots = Settings.System.getIntForUser(resolver,
+ Settings.System.PIE_POSITIONS, PiePosition.BOTTOM.FLAG, UserHandle.USER_CURRENT);
- int sensitivity = Settings.System.getInt(resolver,
- Settings.System.PIE_SENSITIVITY, 3);
+ int sensitivity = Settings.System.getIntForUser(resolver,
+ Settings.System.PIE_SENSITIVITY, 3, UserHandle.USER_CURRENT);
if (sensitivity < PieServiceConstants.SENSITIVITY_LOWEST
|| sensitivity > PieServiceConstants.SENSITIVITY_HIGHEST) {
sensitivity = PieServiceConstants.SENSITIVITY_DEFAULT;
@@ -387,8 +391,8 @@ public class PieController implements BaseStatusBar.NavigationBarCallback, PieVi
private void setupNavigationItems() {
int minimumImageSize = (int)mContext.getResources().getDimension(R.dimen.pie_item_size);
- boolean killAppLongPress = Settings.Secure.getInt(mContext.getContentResolver(),
- Settings.Secure.KILL_APP_LONGPRESS_BACK, 0) == 1;
+ boolean killAppLongPress = Settings.Secure.getIntForUser(mContext.getContentResolver(),
+ Settings.Secure.KILL_APP_LONGPRESS_BACK, 0, UserHandle.USER_CURRENT) == 1;
ButtonInfo[] buttons = NavigationButtons.loadButtonMap(mContext);
mNavigationSlice.clear();
@@ -591,13 +595,13 @@ public class PieController implements BaseStatusBar.NavigationBarCallback, PieVi
Slog.d(TAG, "onSnap from " + position.name());
}
- int triggerSlots = Settings.System.getInt(mContext.getContentResolver(),
- Settings.System.PIE_POSITIONS, PiePosition.BOTTOM.FLAG);
+ int triggerSlots = Settings.System.getIntForUser(mContext.getContentResolver(),
+ Settings.System.PIE_POSITIONS, PiePosition.BOTTOM.FLAG, UserHandle.USER_CURRENT);
triggerSlots = triggerSlots & ~mPosition.FLAG | position.FLAG;
- Settings.System.putInt(mContext.getContentResolver(),
- Settings.System.PIE_POSITIONS, triggerSlots);
+ Settings.System.putIntForUser(mContext.getContentResolver(),
+ Settings.System.PIE_POSITIONS, triggerSlots, UserHandle.USER_CURRENT);
}
@Override
@@ -693,8 +697,8 @@ public class PieController implements BaseStatusBar.NavigationBarCallback, PieVi
}
public boolean isEnabled() {
- int pie = Settings.System.getInt(mContext.getContentResolver(),
- Settings.System.PIE_CONTROLS, 0);
+ int pie = Settings.System.getIntForUser(mContext.getContentResolver(),
+ Settings.System.PIE_CONTROLS, 0, UserHandle.USER_CURRENT);
return (pie == 1 && mExpandedDesktopState != 0) || pie == 2;
}