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

Commit 6ca45aad authored by Hawkwood Glazier's avatar Hawkwood Glazier
Browse files

Add clockY logs to KeyguardClockPositionAlgorithm

Bug: 287529103
Test: atest NotificationPanelViewControllerTest
Change-Id: Ia4cc3e2b2148dbe90893d1771eb72c0afc6db507
parent 8f23adcc
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -414,9 +414,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
    private int mDisplayLeftInset = 0; // in pixels

    @VisibleForTesting
    KeyguardClockPositionAlgorithm
            mClockPositionAlgorithm =
            new KeyguardClockPositionAlgorithm();
    KeyguardClockPositionAlgorithm mClockPositionAlgorithm;
    private final KeyguardClockPositionAlgorithm.Result
            mClockPositionResult =
            new KeyguardClockPositionAlgorithm.Result();
@@ -779,7 +777,8 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
            KeyguardViewConfigurator keyguardViewConfigurator,
            KeyguardFaceAuthInteractor keyguardFaceAuthInteractor,
            SplitShadeStateController splitShadeStateController,
            PowerInteractor powerInteractor) {
            PowerInteractor powerInteractor,
            KeyguardClockPositionAlgorithm keyguardClockPositionAlgorithm) {
        keyguardStateController.addCallback(new KeyguardStateController.Callback() {
            @Override
            public void onKeyguardFadingAwayChanged() {
@@ -807,6 +806,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
        mKeyguardInteractor = keyguardInteractor;
        mPowerInteractor = powerInteractor;
        mKeyguardViewConfigurator = keyguardViewConfigurator;
        mClockPositionAlgorithm = keyguardClockPositionAlgorithm;
        mView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
            @Override
            public void onViewAttachedToWindow(View v) {
+27 −0
Original line number Diff line number Diff line
@@ -26,14 +26,20 @@ import android.util.MathUtils;
import com.android.app.animation.Interpolators;
import com.android.keyguard.BouncerPanelExpansionCalculator;
import com.android.keyguard.KeyguardStatusView;
import com.android.systemui.log.LogBuffer;
import com.android.systemui.log.core.Logger;
import com.android.systemui.log.dagger.KeyguardClockLog;
import com.android.systemui.res.R;
import com.android.systemui.shade.ShadeViewController;
import com.android.systemui.statusbar.policy.KeyguardUserSwitcherListView;

import javax.inject.Inject;

/**
 * Utility class to calculate the clock position and top padding of notifications on Keyguard.
 */
public class KeyguardClockPositionAlgorithm {
    private static final String TAG = "KeyguardClockPositionAlgorithm";

    /**
     * Margin between the bottom of the status view and the notification shade.
@@ -147,6 +153,13 @@ public class KeyguardClockPositionAlgorithm {
     */
    private boolean mIsClockTopAligned;

    private Logger mLogger;

    @Inject
    public KeyguardClockPositionAlgorithm(@KeyguardClockLog LogBuffer logBuffer) {
        mLogger = new Logger(logBuffer, TAG);
    }

    /**
     * Refreshes the dimension values.
     */
@@ -306,6 +319,20 @@ public class KeyguardClockPositionAlgorithm {
                + fullyDarkBurnInOffset
                + shift;
        mCurrentBurnInOffsetY = MathUtils.lerp(0, fullyDarkBurnInOffset, darkAmount);
        final String inputs = "panelExpansion: " + panelExpansion + " darkAmount: " + darkAmount;
        final String outputs = "clockY: " + clockY
                + " burnInPreventionOffsetY: " + burnInPreventionOffsetY
                + " fullyDarkBurnInOffset: " + fullyDarkBurnInOffset
                + " shift: " + shift
                + " mOverStretchAmount: " + mOverStretchAmount
                + " mCurrentBurnInOffsetY: " + mCurrentBurnInOffsetY;
        mLogger.i(msg -> {
            return msg.getStr1() + " -> " + msg.getStr2();
        }, msg -> {
            msg.setStr1(inputs);
            msg.setStr2(outputs);
            return kotlin.Unit.INSTANCE;
        });
        return (int) (MathUtils.lerp(clockY, clockYDark, darkAmount) + mOverStretchAmount);
    }

+4 −1
Original line number Diff line number Diff line
@@ -157,6 +157,7 @@ import com.android.systemui.statusbar.phone.HeadsUpTouchHelper;
import com.android.systemui.statusbar.phone.KeyguardBottomAreaView;
import com.android.systemui.statusbar.phone.KeyguardBottomAreaViewController;
import com.android.systemui.statusbar.phone.KeyguardBypassController;
import com.android.systemui.statusbar.phone.KeyguardClockPositionAlgorithm;
import com.android.systemui.statusbar.phone.KeyguardStatusBarView;
import com.android.systemui.statusbar.phone.KeyguardStatusBarViewController;
import com.android.systemui.statusbar.phone.LightBarController;
@@ -328,6 +329,7 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase {
    @Mock private CastController mCastController;
    @Mock private KeyguardRootView mKeyguardRootView;
    @Mock private SharedNotificationContainerInteractor mSharedNotificationContainerInteractor;
    @Mock private KeyguardClockPositionAlgorithm mKeyguardClockPositionAlgorithm;

    protected final int mMaxUdfpsBurnInOffsetY = 5;
    protected KeyguardBottomAreaInteractor mKeyguardBottomAreaInteractor;
@@ -667,7 +669,8 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase {
                mKeyguardViewConfigurator,
                mKeyguardFaceAuthInteractor,
                new ResourcesSplitShadeStateController(),
                mPowerInteractor);
                mPowerInteractor,
                mKeyguardClockPositionAlgorithm);
        mNotificationPanelViewController.initDependencies(
                mCentralSurfaces,
                null,
+6 −4
Original line number Diff line number Diff line
@@ -30,9 +30,11 @@ import android.testing.AndroidTestingRunner;

import androidx.test.filters.SmallTest;

import com.android.systemui.res.R;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.doze.util.BurnInHelperKt;
import com.android.systemui.log.LogBuffer;
import com.android.systemui.log.core.FakeLogBuffer;
import com.android.systemui.res.R;

import org.junit.After;
import org.junit.Before;
@@ -51,8 +53,7 @@ public class KeyguardClockPositionAlgorithmTest extends SysuiTestCase {
    private static final float OPAQUE = 1.f;
    private static final float TRANSPARENT = 0.f;

    @Mock
    private Resources mResources;
    @Mock private Resources mResources;

    private KeyguardClockPositionAlgorithm mClockPositionAlgorithm;
    private KeyguardClockPositionAlgorithm.Result mClockPosition;
@@ -80,7 +81,8 @@ public class KeyguardClockPositionAlgorithmTest extends SysuiTestCase {
                .mockStatic(BurnInHelperKt.class)
                .startMocking();

        mClockPositionAlgorithm = new KeyguardClockPositionAlgorithm();
        LogBuffer logBuffer = FakeLogBuffer.Factory.Companion.create();
        mClockPositionAlgorithm = new KeyguardClockPositionAlgorithm(logBuffer);
        when(mResources.getDimensionPixelSize(anyInt())).thenReturn(0);
        mClockPositionAlgorithm.loadDimens(mResources);