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

Commit 5869363b authored by Jeff Brown's avatar Jeff Brown Committed by Android (Google) Code Review
Browse files

Merge "Suppress pausing activities when screen off due to proximity." into mnc-dev

parents 725f145e e1633add
Loading
Loading
Loading
Loading
+24 −14
Original line number Diff line number Diff line
@@ -231,6 +231,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
    // The elapsed real time when the screen on was blocked.
    private long mScreenOnBlockStartRealTime;

    // True if we told the window manager policy that the screen was off.
    private boolean mReportedScreenOffToPolicy;

    // Remembers whether certain kinds of brightness adjustments
    // were recently applied so that we can decide how to transition.
    private boolean mAppliedAutoBrightness;
@@ -764,16 +767,21 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
            } catch (RemoteException ex) {
                // same process
            }
        }

            // Tell the window manager what's happening.
            // Temporarily block turning the screen on until the window manager is ready
            // by leaving a black surface covering the screen.  This surface is essentially
            // the final state of the color fade animation.
            boolean isOn = (state != Display.STATE_OFF);
            if (wasOn && !isOn) {
        // Tell the window manager policy when the screen is turned off or on unless it's due
        // to the proximity sensor.  We temporarily block turning the screen on until the
        // window manager is ready by leaving a black surface covering the screen.
        // This surface is essentially the final state of the color fade animation and
        // it is only removed once the window manager tells us that the activity has
        // finished drawing underneath.
        final boolean isOff = (state == Display.STATE_OFF);
        if (isOff && !mReportedScreenOffToPolicy && !mScreenOffBecauseOfProximity) {
            mReportedScreenOffToPolicy = true;
            unblockScreenOn();
            mWindowManagerPolicy.screenTurnedOff();
            } else if (!wasOn && isOn) {
        } else if (!isOff && mReportedScreenOffToPolicy) {
            mReportedScreenOffToPolicy = false;
            if (mPowerState.getColorFadeLevel() == 0.0f) {
                blockScreenOn();
            } else {
@@ -781,7 +789,8 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
            }
            mWindowManagerPolicy.screenTurningOn(mPendingScreenOnUnblocker);
        }
        }

        // Return true if the screen isn't blocked.
        return mPendingScreenOnUnblocker == null;
    }

@@ -1086,6 +1095,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
        pw.println("  mAppliedLowPower=" + mAppliedLowPower);
        pw.println("  mPendingScreenOnUnblocker=" + mPendingScreenOnUnblocker);
        pw.println("  mPendingScreenOff=" + mPendingScreenOff);
        pw.println("  mReportedScreenOffToPolicy=" + mReportedScreenOffToPolicy);

        pw.println("  mScreenBrightnessRampAnimator.isAnimating()=" +
                mScreenBrightnessRampAnimator.isAnimating());