diff options
4 files changed, 36 insertions, 2 deletions
diff --git a/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml b/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml index 237768422e2a..ab590f8f637b 100644 --- a/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml +++ b/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml @@ -70,6 +70,18 @@ </com.android.systemui.statusbar.AlphaOptimizedFrameLayout> + <com.android.systemui.statusbar.phone.MultiUserSwitch android:id="@+id/multi_user_switch" + android:layout_width="48dp" + android:layout_height="48dp" + android:layout_alignParentEnd="true" + android:background="@drawable/ripple_drawable" > + <ImageView android:id="@+id/multi_user_avatar" + android:layout_width="@dimen/multi_user_avatar_expanded_size" + android:layout_height="@dimen/multi_user_avatar_expanded_size" + android:layout_gravity="center" + android:scaleType="centerInside"/> + </com.android.systemui.statusbar.phone.MultiUserSwitch> + <ImageView android:layout_width="48dp" android:layout_height="48dp" diff --git a/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java b/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java index 543a2f32b090..8ae2d7bc50e5 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java +++ b/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java @@ -73,7 +73,7 @@ public class TileAdapter extends BaseAdapter { mCurrentTiles = tileSpecs; final TileGroup group = new TileGroup("com.android.settings", mContext); String possible = mContext.getString(R.string.quick_settings_tiles_default) - + ",user,hotspot,inversion,saver"; + + ",hotspot,inversion,saver"; String[] possibleTiles = possible.split(","); for (int i = 0; i < possibleTiles.length; i++) { final String spec = possibleTiles[i]; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitch.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitch.java index 71267cd7c582..8717a15aeef1 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitch.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitch.java @@ -65,6 +65,10 @@ public class MultiUserSwitch extends FrameLayout implements View.OnClickListener setUserSwitcherController(qsPanel.getHost().getUserSwitcherController()); } + public boolean hasMultipleUsers() { + return mUserListener.getCount() != 0; + } + public void setUserSwitcherController(UserSwitcherController userSwitcherController) { mUserSwitcherController = userSwitcherController; registerListener(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java index 5b44f0a4189f..f18c341639f8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java @@ -22,6 +22,7 @@ import android.content.Context; import android.content.Intent; import android.graphics.Rect; import android.graphics.drawable.Animatable; +import android.graphics.drawable.Drawable; import android.graphics.drawable.RippleDrawable; import android.util.AttributeSet; import android.view.View; @@ -70,6 +71,8 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements private QuickQSPanel mHeaderQsPanel; private boolean mShowEmergencyCallsOnly; private float mDateTimeTranslation; + private MultiUserSwitch mMultiUserSwitch; + private ImageView mMultiUserAvatar; public QuickStatusBarHeader(Context context, AttributeSet attrs) { super(context, attrs); @@ -100,6 +103,9 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements mQsDetailHeaderSwitch = (Switch) mQsDetailHeader.findViewById(android.R.id.toggle); mQsDetailHeaderProgress = (ImageView) findViewById(R.id.qs_detail_header_progress); + mMultiUserSwitch = (MultiUserSwitch) findViewById(R.id.multi_user_switch); + mMultiUserAvatar = (ImageView) mMultiUserSwitch.findViewById(R.id.multi_user_avatar); + // RenderThread is doing more harm than good when touching the header (to expand quick // settings), so disable it for this view ((RippleDrawable) getBackground()).setForceSoftware(true); @@ -173,6 +179,12 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements ? View.VISIBLE : View.INVISIBLE); mSettingsContainer.findViewById(R.id.tuner_icon).setVisibility( TunerService.isTunerEnabled(mContext) ? View.VISIBLE : View.INVISIBLE); + mMultiUserSwitch.setVisibility(mMultiUserSwitch.hasMultipleUsers() ? View.VISIBLE + : View.GONE); + } + + private boolean hasMultiUsers() { + return false; } private void updateListeners() { @@ -194,6 +206,7 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements setupHost(qsPanel.getHost()); if (mQsPanel != null) { mQsPanel.setCallback(mQsPanelCallback); + mMultiUserSwitch.setQsPanel(qsPanel); } } @@ -254,7 +267,12 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements @Override public void setUserInfoController(UserInfoController userInfoController) { - // Don't care. + userInfoController.addListener(new UserInfoController.OnUserInfoChangedListener() { + @Override + public void onUserInfoChanged(String name, Drawable picture) { + mMultiUserAvatar.setImageDrawable(picture); + } + }); } @Override |