Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 69e76cce authored by Jason Monk's avatar Jason Monk
Browse files

Add user switcher back to QS

Change-Id: Ie3f8139782aee06ad932ded9145162de5e22a824
parent 37e65a40
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -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"
+1 −1
Original line number Diff line number Diff line
@@ -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];
+4 −0
Original line number Diff line number Diff line
@@ -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();
+19 −1
Original line number Diff line number Diff line
@@ -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