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

Commit e19a36ec authored by Adrian Roos's avatar Adrian Roos Committed by Android (Google) Code Review
Browse files

Merge "AOD: Delay wakeup until interaction with notification"

parents 85a40116 500263a9
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -75,6 +75,9 @@
    <!-- The color of the material notification background when dimmed -->
    <color name="notification_material_background_dimmed_color">#ccffffff</color>

    <!-- The color of the material notification background when dark -->
    <color name="notification_material_background_dark_color">#ff333333</color>

    <!-- The color of the material notification background when low priority -->
    <color name="notification_material_background_low_priority_color">#fff5f5f5</color>

+6 −2
Original line number Diff line number Diff line
@@ -463,6 +463,7 @@ public abstract class ActivatableNotificationView extends ExpandableOutlineView
        }
        mDark = dark;
        updateBackground();
        updateBackgroundTint(fade);
        if (!dark && fade && !shouldHideBackground()) {
            fadeInFromDark(delay);
        }
@@ -700,8 +701,8 @@ public abstract class ActivatableNotificationView extends ExpandableOutlineView
    protected void updateBackground() {
        cancelFadeAnimations();
        if (shouldHideBackground()) {
            mBackgroundDimmed.setVisibility(View.INVISIBLE);
            mBackgroundNormal.setVisibility(View.INVISIBLE);
            mBackgroundDimmed.setVisibility(INVISIBLE);
            mBackgroundNormal.setVisibility(mActivated ? VISIBLE : INVISIBLE);
        } else if (mDimmed) {
            // When groups are animating to the expanded state from the lockscreen, show the
            // normal background instead of the dimmed background
@@ -940,6 +941,9 @@ public abstract class ActivatableNotificationView extends ExpandableOutlineView
     * @return the calculated background color
     */
    private int calculateBgColor(boolean withTint, boolean withOverRide) {
        if (mDark) {
            return getContext().getColor(R.color.notification_material_background_dark_color);
        }
        if (withOverRide && mOverrideTint != NO_COLOR) {
            int defaultTint = calculateBgColor(withTint, false);
            return NotificationUtils.interpolateColors(defaultTint, mOverrideTint, mOverrideAmount);
+18 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.UserInfo;
import android.content.res.Configuration;
import android.database.ContentObserver;
import android.graphics.PointF;
import android.graphics.Rect;
import android.os.AsyncTask;
import android.os.Build;
@@ -52,6 +53,7 @@ import android.os.Message;
import android.os.PowerManager;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserManager;
@@ -317,9 +319,16 @@ public abstract class BaseStatusBar extends SystemUI implements
    };

    private RemoteViews.OnClickHandler mOnClickHandler = new RemoteViews.OnClickHandler() {
        private final int[] mTmpInt2 = new int[2];

        @Override
        public boolean onClickHandler(
                final View view, final PendingIntent pendingIntent, final Intent fillInIntent) {
            view.getLocationInWindow(mTmpInt2);
            wakeUpIfDozing(SystemClock.uptimeMillis(), new PointF(
                    mTmpInt2[0] + view.getWidth() / 2, mTmpInt2[1] + view.getHeight() / 2));


            if (handleRemoteInput(view, pendingIntent, fillInIntent)) {
                return true;
            }
@@ -1787,13 +1796,22 @@ public abstract class BaseStatusBar extends SystemUI implements
        return false;
    }

    public void wakeUpIfDozing(long time, PointF where) {
    }

    private final class NotificationClicker implements View.OnClickListener {
        private final int[] mTmpInt2 = new int[2];

        public void onClick(final View v) {
            if (!(v instanceof ExpandableNotificationRow)) {
                Log.e(TAG, "NotificationClicker called on a view that is not a notification row.");
                return;
            }

            v.getLocationInWindow(mTmpInt2);
            wakeUpIfDozing(SystemClock.uptimeMillis(),
                    new PointF(mTmpInt2[0] + v.getWidth() / 2, mTmpInt2[1] + v.getHeight() / 2));

            final ExpandableNotificationRow row = (ExpandableNotificationRow) v;
            final StatusBarNotification sbn = row.getStatusBarNotification();
            if (sbn == null) {
+3 −2
Original line number Diff line number Diff line
@@ -4604,12 +4604,13 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
        return !mNotificationData.getActiveNotifications().isEmpty();
    }

    public void wakeUpIfDozing(long time, MotionEvent event) {
    @Override
    public void wakeUpIfDozing(long time, PointF where) {
        if (mDozing && mDozeScrimController.isPulsing()) {
            PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
            pm.wakeUp(time, "com.android.systemui:NODOZE");
            mWakeUpComingFromTouch = true;
            mWakeUpTouchLocation = new PointF(event.getX(), event.getY());
            mWakeUpTouchLocation = where;
            mNotificationPanel.setTouchDisabled(false);
            mStatusBarKeyguardViewManager.notifyDeviceWakeUpRequested();
            mFalsingManager.onScreenOnFromTouch();
+2 −5
Original line number Diff line number Diff line
@@ -263,12 +263,9 @@ public class StatusBarWindowView extends FrameLayout {
        if (mNotificationPanel.isFullyExpanded()
                && mStackScrollLayout.getVisibility() == View.VISIBLE
                && mService.getBarState() == StatusBarState.KEYGUARD
                && !mService.isBouncerShowing()) {
                && !mService.isBouncerShowing()
                && !mService.isDozing()) {
            intercept = mDragDownHelper.onInterceptTouchEvent(ev);
            // wake up on a touch down event, if dozing
            if (ev.getActionMasked() == MotionEvent.ACTION_DOWN) {
                mService.wakeUpIfDozing(ev.getEventTime(), ev);
            }
        }
        if (!intercept) {
            super.onInterceptTouchEvent(ev);