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
Fixes: 233081863
Change-Id: I4ea5dae1dc8018478cc98e5e2520ef2afd2fdc58
Merged-In: I4ea5dae1dc8018478cc98e5e2520ef2afd2fdc58
This commit is contained in:
Beverly
2022-06-03 19:00:38 +00:00
committed by Beverly Tai
parent a147b66f61
commit 4d8243c0ec
3 changed files with 1 additions and 31 deletions

View File

@@ -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;
@@ -144,7 +143,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));
@@ -162,7 +160,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);

View File

@@ -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.R
import com.android.systemui.animation.Interpolators
@@ -133,22 +132,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"
)
}
}
@@ -169,20 +152,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)
}

View File

@@ -304,7 +304,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;