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

Commit dd32d908 authored by Justin Klaassen's avatar Justin Klaassen
Browse files

Fix Night display QSTile for secondary users

Bug: 30459698
Change-Id: I8d56caabf6401239ab9e05ebbe54ecc64a1ab695
parent 5faa852c
Loading
Loading
Loading
Loading
+21 −2
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.systemui.qs.tiles;

import android.app.ActivityManager;
import android.content.Intent;
import android.provider.Settings;
import android.widget.Switch;
@@ -29,11 +30,12 @@ import com.android.systemui.qs.QSTile;
public class NightDisplayTile extends QSTile<QSTile.BooleanState>
        implements NightDisplayController.Callback {

    private final NightDisplayController mController;
    private NightDisplayController mController;
    private boolean mIsListening;

    public NightDisplayTile(Host host) {
        super(host);
        mController = new NightDisplayController(mContext);
        mController = new NightDisplayController(mContext, ActivityManager.getCurrentUser());
    }

    @Override
@@ -53,6 +55,22 @@ public class NightDisplayTile extends QSTile<QSTile.BooleanState>
        mController.setActivated(activated);
    }

    @Override
    protected void handleUserSwitch(int newUserId) {
        // Stop listening to the old controller.
        if (mIsListening) {
            mController.setListener(null);
        }

        // Make a new controller for the new user.
        mController = new NightDisplayController(mContext, newUserId);
        if (mIsListening) {
            mController.setListener(this);
        }

        super.handleUserSwitch(newUserId);
    }

    @Override
    protected void handleUpdateState(BooleanState state, Object arg) {
        final boolean isActivated = mController.isActivated();
@@ -79,6 +97,7 @@ public class NightDisplayTile extends QSTile<QSTile.BooleanState>

    @Override
    protected void setListening(boolean listening) {
        mIsListening = listening;
        if (listening) {
            mController.setListener(this);
            refreshState();
+3 −0
Original line number Diff line number Diff line
@@ -334,6 +334,9 @@ public class QSTileHost implements QSTile.Host, Tunable {
                    || ((CustomTile) tile).getUser() == currentUser)) {
                if (DEBUG) Log.d(TAG, "Adding " + tile);
                tile.removeCallbacks();
                if (!(tile instanceof CustomTile) && mCurrentUser != currentUser) {
                    tile.userSwitch(currentUser);
                }
                newTiles.put(tileSpec, tile);
            } else {
                if (DEBUG) Log.d(TAG, "Creating tile: " + tileSpec);