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

Commit ecbc5e82 authored by John Spurlock's avatar John Spurlock
Browse files

PowerUI: Post/cancel notification as UserHandle.ALL.

- Post power-related notifications for all users.
- Update the pending intent actions on user switch.
- Listen for the intent actions for all users.

Bug: 17300571
Change-Id: I956f09ecf5395f31ae1c1ec0409ee251839fcef4
parent 4816ed65
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -144,7 +144,7 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI {
            showSaverNotification();
            mShowing = SHOWING_SAVER;
        } else {
            mNoMan.cancel(TAG_NOTIFICATION, ID_NOTIFICATION);
            mNoMan.cancelAsUser(TAG_NOTIFICATION, ID_NOTIFICATION, UserHandle.ALL);
            mShowing = SHOWING_NOTHING;
        }
    }
@@ -165,7 +165,7 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI {
        if (n.headsUpContentView != null) {
            n.headsUpContentView.setViewVisibility(com.android.internal.R.id.right_icon, View.GONE);
        }
        mNoMan.notifyAsUser(TAG_NOTIFICATION, ID_NOTIFICATION, n, UserHandle.CURRENT);
        mNoMan.notifyAsUser(TAG_NOTIFICATION, ID_NOTIFICATION, n, UserHandle.ALL);
    }

    private void showWarningNotification() {
@@ -202,7 +202,7 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI {
        if (n.headsUpContentView != null) {
            n.headsUpContentView.setViewVisibility(com.android.internal.R.id.right_icon, View.GONE);
        }
        mNoMan.notifyAsUser(TAG_NOTIFICATION, ID_NOTIFICATION, n, UserHandle.CURRENT);
        mNoMan.notifyAsUser(TAG_NOTIFICATION, ID_NOTIFICATION, n, UserHandle.ALL);
    }

    private void showSaverNotification() {
@@ -219,7 +219,7 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI {
        if (hasSaverSettings()) {
            nb.setContentIntent(pendingActivity(mOpenSaverSettings));
        }
        mNoMan.notifyAsUser(TAG_NOTIFICATION, ID_NOTIFICATION, nb.build(), UserHandle.CURRENT);
        mNoMan.notifyAsUser(TAG_NOTIFICATION, ID_NOTIFICATION, nb.build(), UserHandle.ALL);
    }

    private void addStopSaverAction(Notification.Builder nb) {
@@ -340,6 +340,11 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI {
        updateNotification();
    }

    @Override
    public void userSwitched() {
        updateNotification();
    }

    private void showStartSaverConfirmation() {
        if (mSaverConfirmation != null) return;
        final SystemUIDialog d = new SystemUIDialog(mContext);
@@ -369,7 +374,7 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI {
            filter.addAction(ACTION_SHOW_BATTERY_SETTINGS);
            filter.addAction(ACTION_START_SAVER);
            filter.addAction(ACTION_STOP_SAVER);
            mContext.registerReceiver(this, filter, null, mHandler);
            mContext.registerReceiverAsUser(this, UserHandle.ALL, filter, null, mHandler);
        }

        @Override
+4 −0
Original line number Diff line number Diff line
@@ -137,6 +137,7 @@ public class PowerUI extends SystemUI {
            filter.addAction(Intent.ACTION_BATTERY_CHANGED);
            filter.addAction(Intent.ACTION_SCREEN_OFF);
            filter.addAction(Intent.ACTION_SCREEN_ON);
            filter.addAction(Intent.ACTION_USER_SWITCHED);
            filter.addAction(PowerManager.ACTION_POWER_SAVE_MODE_CHANGING);
            filter.addAction(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED);
            mContext.registerReceiver(this, filter, null, mHandler);
@@ -207,6 +208,8 @@ public class PowerUI extends SystemUI {
                mScreenOffTime = SystemClock.elapsedRealtime();
            } else if (Intent.ACTION_SCREEN_ON.equals(action)) {
                mScreenOffTime = -1;
            } else if (Intent.ACTION_USER_SWITCHED.equals(action)) {
                mWarnings.userSwitched();
            } else if (PowerManager.ACTION_POWER_SAVE_MODE_CHANGED.equals(action)) {
                updateSaverMode();
            } else if (PowerManager.ACTION_POWER_SAVE_MODE_CHANGING.equals(action)) {
@@ -256,6 +259,7 @@ public class PowerUI extends SystemUI {
        void updateLowBatteryWarning();
        boolean isInvalidChargerWarningShowing();
        void dump(PrintWriter pw);
        void userSwitched();
    }
}