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

Commit f3dd83db authored by Josh Tsuji's avatar Josh Tsuji Committed by Android (Google) Code Review
Browse files

Merge "Disable screen off animation in situations where it currently looks bad." into sc-dev

parents d77459a2 77484f35
Loading
Loading
Loading
Loading
+10 −0
Original line number Original line Diff line number Diff line
@@ -249,6 +249,16 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
        public void onStateChanged(int newState) {
        public void onStateChanged(int newState) {
            mStatusBarState = newState;
            mStatusBarState = newState;
        }
        }

        @Override
        public void onExpandedChanged(boolean isExpanded) {
            for (int i = 0; i < mCallbacks.size(); i++) {
                KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
                if (cb != null) {
                    cb.onShadeExpandedChanged(isExpanded);
                }
            }
        }
    };
    };


    HashMap<Integer, SimData> mSimDatas = new HashMap<>();
    HashMap<Integer, SimData> mSimDatas = new HashMap<>();
+4 −0
Original line number Original line Diff line number Diff line
@@ -333,4 +333,8 @@ public class KeyguardUpdateMonitorCallback {
     */
     */
    public void onRequireUnlockForNfc() { }
    public void onRequireUnlockForNfc() { }


    /**
     * Called when the notification shade is expanded or collapsed.
     */
    public void onShadeExpandedChanged(boolean expanded) { }
}
}
+21 −2
Original line number Original line Diff line number Diff line
@@ -21,6 +21,7 @@ import static com.android.systemui.doze.DozeMachine.State.DOZE_AOD_PAUSED;


import android.app.AlarmManager;
import android.app.AlarmManager;
import android.content.Context;
import android.content.Context;
import android.content.res.Configuration;
import android.os.Handler;
import android.os.Handler;
import android.os.SystemClock;
import android.os.SystemClock;
import android.provider.Settings;
import android.provider.Settings;
@@ -34,6 +35,7 @@ import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.doze.dagger.DozeScope;
import com.android.systemui.doze.dagger.DozeScope;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.phone.DozeParameters;
import com.android.systemui.statusbar.phone.DozeParameters;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.tuner.TunerService;
import com.android.systemui.tuner.TunerService;
import com.android.systemui.util.AlarmTimeout;
import com.android.systemui.util.AlarmTimeout;
import com.android.systemui.util.wakelock.WakeLock;
import com.android.systemui.util.wakelock.WakeLock;
@@ -48,7 +50,8 @@ import dagger.Lazy;
 * The policy controlling doze.
 * The policy controlling doze.
 */
 */
@DozeScope
@DozeScope
public class DozeUi implements DozeMachine.Part, TunerService.Tunable {
public class DozeUi implements DozeMachine.Part, TunerService.Tunable,
        ConfigurationController.ConfigurationListener {
    // if enabled, calls dozeTimeTick() whenever the time changes:
    // if enabled, calls dozeTimeTick() whenever the time changes:
    private static final boolean BURN_IN_TESTING_ENABLED = false;
    private static final boolean BURN_IN_TESTING_ENABLED = false;
    private static final long TIME_TICK_DEADLINE_MILLIS = 90 * 1000; // 1.5min
    private static final long TIME_TICK_DEADLINE_MILLIS = 90 * 1000; // 1.5min
@@ -63,6 +66,7 @@ public class DozeUi implements DozeMachine.Part, TunerService.Tunable {
    private final DozeLog mDozeLog;
    private final DozeLog mDozeLog;
    private final Lazy<StatusBarStateController> mStatusBarStateController;
    private final Lazy<StatusBarStateController> mStatusBarStateController;
    private final TunerService mTunerService;
    private final TunerService mTunerService;
    private final ConfigurationController mConfigurationController;


    private boolean mKeyguardShowing;
    private boolean mKeyguardShowing;
    private final KeyguardUpdateMonitorCallback mKeyguardVisibilityCallback =
    private final KeyguardUpdateMonitorCallback mKeyguardVisibilityCallback =
@@ -84,6 +88,11 @@ public class DozeUi implements DozeMachine.Part, TunerService.Tunable {
                        mHandler.post(mWakeLock.wrap(() -> {}));
                        mHandler.post(mWakeLock.wrap(() -> {}));
                    }
                    }
                }
                }

                @Override
                public void onShadeExpandedChanged(boolean expanded) {
                    updateAnimateScreenOff();
                }
            };
            };


    private long mLastTimeTickElapsed = 0;
    private long mLastTimeTickElapsed = 0;
@@ -93,7 +102,8 @@ public class DozeUi implements DozeMachine.Part, TunerService.Tunable {
            WakeLock wakeLock, DozeHost host, @Main Handler handler,
            WakeLock wakeLock, DozeHost host, @Main Handler handler,
            DozeParameters params, KeyguardUpdateMonitor keyguardUpdateMonitor,
            DozeParameters params, KeyguardUpdateMonitor keyguardUpdateMonitor,
            DozeLog dozeLog, TunerService tunerService,
            DozeLog dozeLog, TunerService tunerService,
            Lazy<StatusBarStateController> statusBarStateController) {
            Lazy<StatusBarStateController> statusBarStateController,
            ConfigurationController configurationController) {
        mContext = context;
        mContext = context;
        mWakeLock = wakeLock;
        mWakeLock = wakeLock;
        mHost = host;
        mHost = host;
@@ -107,11 +117,15 @@ public class DozeUi implements DozeMachine.Part, TunerService.Tunable {
        mStatusBarStateController = statusBarStateController;
        mStatusBarStateController = statusBarStateController;


        mTunerService.addTunable(this, Settings.Secure.DOZE_ALWAYS_ON);
        mTunerService.addTunable(this, Settings.Secure.DOZE_ALWAYS_ON);

        mConfigurationController = configurationController;
        mConfigurationController.addCallback(this);
    }
    }


    @Override
    @Override
    public void destroy() {
    public void destroy() {
        mTunerService.removeTunable(this);
        mTunerService.removeTunable(this);
        mConfigurationController.removeCallback(this);
    }
    }


    @Override
    @Override
@@ -274,4 +288,9 @@ public class DozeUi implements DozeMachine.Part, TunerService.Tunable {
            updateAnimateScreenOff();
            updateAnimateScreenOff();
        }
        }
    }
    }

    @Override
    public void onConfigChanged(Configuration newConfig) {
        updateAnimateScreenOff();
    }
}
}
+1 −1
Original line number Original line Diff line number Diff line
@@ -264,7 +264,7 @@ class NotificationWakeUpCoordinator @Inject constructor(
    }
    }


    override fun onStateChanged(newState: Int) {
    override fun onStateChanged(newState: Int) {
        if (unlockedScreenOffAnimationController.shouldPlayScreenOffAnimation()) {
        if (dozeParameters.shouldControlUnlockedScreenOff()) {
            if (unlockedScreenOffAnimationController.isScreenOffAnimationPlaying() &&
            if (unlockedScreenOffAnimationController.isScreenOffAnimationPlaying() &&
                    state == StatusBarState.KEYGUARD &&
                    state == StatusBarState.KEYGUARD &&
                    newState == StatusBarState.SHADE) {
                    newState == StatusBarState.SHADE) {
+6 −2
Original line number Original line Diff line number Diff line
@@ -63,6 +63,7 @@ public class DozeParameters implements TunerService.Tunable,
    private final Resources mResources;
    private final Resources mResources;
    private final BatteryController mBatteryController;
    private final BatteryController mBatteryController;
    private final FeatureFlags mFeatureFlags;
    private final FeatureFlags mFeatureFlags;
    private final UnlockedScreenOffAnimationController mUnlockedScreenOffAnimationController;


    private final Set<Callback> mCallbacks = new HashSet<>();
    private final Set<Callback> mCallbacks = new HashSet<>();


@@ -78,7 +79,8 @@ public class DozeParameters implements TunerService.Tunable,
            BatteryController batteryController,
            BatteryController batteryController,
            TunerService tunerService,
            TunerService tunerService,
            DumpManager dumpManager,
            DumpManager dumpManager,
            FeatureFlags featureFlags) {
            FeatureFlags featureFlags,
            UnlockedScreenOffAnimationController unlockedScreenOffAnimationController) {
        mResources = resources;
        mResources = resources;
        mAmbientDisplayConfiguration = ambientDisplayConfiguration;
        mAmbientDisplayConfiguration = ambientDisplayConfiguration;
        mAlwaysOnPolicy = alwaysOnDisplayPolicy;
        mAlwaysOnPolicy = alwaysOnDisplayPolicy;
@@ -89,6 +91,7 @@ public class DozeParameters implements TunerService.Tunable,
        mPowerManager = powerManager;
        mPowerManager = powerManager;
        mPowerManager.setDozeAfterScreenOff(!mControlScreenOffAnimation);
        mPowerManager.setDozeAfterScreenOff(!mControlScreenOffAnimation);
        mFeatureFlags = featureFlags;
        mFeatureFlags = featureFlags;
        mUnlockedScreenOffAnimationController = unlockedScreenOffAnimationController;


        tunerService.addTunable(
        tunerService.addTunable(
                this,
                this,
@@ -220,7 +223,8 @@ public class DozeParameters implements TunerService.Tunable,
     * then abruptly showing AOD.
     * then abruptly showing AOD.
     */
     */
    public boolean shouldControlUnlockedScreenOff() {
    public boolean shouldControlUnlockedScreenOff() {
        return getAlwaysOn() && mFeatureFlags.useNewLockscreenAnimations();
        return getAlwaysOn() && mFeatureFlags.useNewLockscreenAnimations()
                && mUnlockedScreenOffAnimationController.shouldPlayUnlockedScreenOffAnimation();
    }
    }


    private boolean getBoolean(String propName, int resId) {
    private boolean getBoolean(String propName, int resId) {
Loading