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

Commit b559278c authored by Beverly's avatar Beverly Committed by Beverly Tai
Browse files

Post updateClockViews when called within onLayout

updateClockViews may change the view hiearchy and
calling it within onLayout was causing view measurement issues.

remove chatty debugging logs

Test: manually force updateClockViews to occur in onLayout,
  see the clock is cutoff when notifications are hidden (can use adb:
  adb shell locksettings require-strong-auth
  STRONG_AUTH_REQUIRED_AFTER_USER_LOCKDOWN) w/o change, with this
  change, the clock is never cutoff
Bug: 222260948
Bug: 233081863
Change-Id: I4ea5dae1dc8018478cc98e5e2520ef2afd2fdc58
parent 92ae59be
Loading
Loading
Loading
Loading
+0 −27
Original line number Diff line number Diff line
@@ -25,7 +25,6 @@ import android.graphics.Canvas
import android.text.TextUtils
import android.text.format.DateFormat
import android.util.AttributeSet
import android.util.Log
import android.widget.TextView
import com.android.systemui.animation.Interpolators
import com.android.systemui.animation.TextAnimator
@@ -134,22 +133,6 @@ class AnimatableClockView @JvmOverloads constructor(
        // relayout if the text didn't actually change.
        if (!TextUtils.equals(text, formattedText)) {
            text = formattedText
            Log.d(
                TAG, "refreshTime this=$this" +
                        " currTimeContextDesc=$contentDescription" +
                        " measuredHeight=$measuredHeight" +
                        " lastMeasureCall=$lastMeasureCall" +
                        " isSingleLineInternal=$isSingleLineInternal"
            )
        } else {
            Log.d(
                TAG, "refreshTime (skipped due to unchanged text)" +
                        " this=$this" +
                        " currTimeContextDesc=$contentDescription" +
                        " measuredHeight=$measuredHeight" +
                        " lastMeasureCall=$lastMeasureCall" +
                        " isSingleLineInternal=$isSingleLineInternal"
            )
        }
    }

@@ -170,20 +153,10 @@ class AnimatableClockView @JvmOverloads constructor(
        } else {
            animator.updateLayout(layout)
        }
        Log.v(TAG, "onMeasure this=$this" +
                " currTimeContextDesc=$contentDescription" +
                " heightMeasureSpecMode=${MeasureSpec.getMode(heightMeasureSpec)}" +
                " heightMeasureSpecSize=${MeasureSpec.getSize(heightMeasureSpec)}" +
                " measuredWidth=$measuredWidth" +
                " measuredHeight=$measuredHeight" +
                " isSingleLineInternal=$isSingleLineInternal")
    }

    override fun onDraw(canvas: Canvas) {
        // intentionally doesn't call super.onDraw here or else the text will be rendered twice
        Log.d(TAG, "onDraw this=$this" +
                " currTimeContextDesc=$contentDescription" +
                " isSingleLineInternal=$isSingleLineInternal")
        textAnimator?.draw(canvas)
    }

+0 −3
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import android.content.IntentFilter;
import android.content.res.Resources;
import android.graphics.Color;
import android.icu.text.NumberFormat;
import android.util.Log;

import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
@@ -160,7 +159,6 @@ public class AnimatableClockController extends ViewController<AnimatableClockVie

    @Override
    protected void onViewAttached() {
        Log.d(TAG, "onViewAttached mView=" + mView);
        updateLocale();
        mBroadcastDispatcher.registerReceiver(mLocaleBroadcastReceiver,
                new IntentFilter(Intent.ACTION_LOCALE_CHANGED));
@@ -178,7 +176,6 @@ public class AnimatableClockController extends ViewController<AnimatableClockVie

    @Override
    protected void onViewDetached() {
        Log.d(TAG, "onViewDetached mView=" + mView);
        mBroadcastDispatcher.unregisterReceiver(mLocaleBroadcastReceiver);
        mKeyguardUpdateMonitor.removeCallback(mKeyguardUpdateMonitorCallback);
        mBatteryController.removeCallback(mBatteryCallback);
+1 −1
Original line number Diff line number Diff line
@@ -305,7 +305,7 @@ public class KeyguardClockSwitch extends RelativeLayout {
        super.onLayout(changed, l, t, r, b);

        if (mDisplayedClockSize != null && !mChildrenAreLaidOut) {
            updateClockViews(mDisplayedClockSize == LARGE, /* animate */ true);
            post(() -> updateClockViews(mDisplayedClockSize == LARGE, /* animate */ true));
        }

        mChildrenAreLaidOut = true;