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

Commit 10c60135 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Don't register multiple predraw listeners" into sc-v2-dev am: e07b60ab

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16094262

Change-Id: Ief2855876fcf2aacb9484bfce58c3fe86147a8d5
parents f26c4dba e07b60ab
Loading
Loading
Loading
Loading
+16 −9
Original line number Diff line number Diff line
@@ -89,6 +89,7 @@ public class KeyguardClockSwitch extends RelativeLayout {

    private int mClockSwitchYAmount;
    @VisibleForTesting boolean mChildrenAreLaidOut = false;
    private OnPreDrawListener mPreDrawListener;

    public KeyguardClockSwitch(Context context, AttributeSet attrs) {
        super(context, attrs);
@@ -284,15 +285,14 @@ public class KeyguardClockSwitch extends RelativeLayout {
        if (mChildrenAreLaidOut) {
            animateClockChange(clockSize == LARGE);
            mDisplayedClockSize = clockSize;
        } else {
            getViewTreeObserver().addOnPreDrawListener(new OnPreDrawListener() {
                @Override
                public boolean onPreDraw() {
        } else if (mPreDrawListener == null) {
            mPreDrawListener = () -> {
                switchToClock(clockSize);
                    getViewTreeObserver().removeOnPreDrawListener(this);
                getViewTreeObserver().removeOnPreDrawListener(mPreDrawListener);
                mPreDrawListener = null;
                return true;
                }
            });
            };
            getViewTreeObserver().addOnPreDrawListener(mPreDrawListener);
        }
        return true;
    }
@@ -303,6 +303,13 @@ public class KeyguardClockSwitch extends RelativeLayout {
        mChildrenAreLaidOut = true;
    }

    void onViewDetached() {
        if (mPreDrawListener != null) {
            getViewTreeObserver().removeOnPreDrawListener(mPreDrawListener);
            mPreDrawListener = null;
        }
    }

    public Paint getPaint() {
        return mClockView.getPaint();
    }
+1 −0
Original line number Diff line number Diff line
@@ -238,6 +238,7 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
        }
        mColorExtractor.removeOnColorsChangedListener(mColorsListener);
        mView.setClockPlugin(null, mStatusBarStateController.getState());
        mView.onViewDetached();
    }

    /**
+1 −1
Original line number Diff line number Diff line
@@ -194,7 +194,7 @@ public class KeyguardClockSwitchControllerTest extends SysuiTestCase {
        verifyAttachment(times(1));

        listenerArgumentCaptor.getValue().onViewDetachedFromWindow(mView);

        verify(mView).onViewDetached();
        verify(mColorExtractor).removeOnColorsChangedListener(
                any(ColorExtractor.OnColorsChangedListener.class));
    }