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:
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user