Loading packages/SystemUI/customization/src/com/android/systemui/shared/clocks/AnimatableClockView.kt +18 −18 Original line number Diff line number Diff line Loading @@ -54,7 +54,6 @@ class AnimatableClockView @JvmOverloads constructor( defStyleAttr: Int = 0, defStyleRes: Int = 0 ) : TextView(context, attrs, defStyleAttr, defStyleRes) { var tag: String = "UnnamedClockView" var logBuffer: LogBuffer? = null private val time = Calendar.getInstance() Loading Loading @@ -132,7 +131,7 @@ class AnimatableClockView @JvmOverloads constructor( override fun onAttachedToWindow() { super.onAttachedToWindow() logBuffer?.log(tag, DEBUG, "onAttachedToWindow") logBuffer?.log(TAG, DEBUG, "onAttachedToWindow") refreshFormat() } Loading @@ -148,7 +147,7 @@ class AnimatableClockView @JvmOverloads constructor( time.timeInMillis = timeOverrideInMillis ?: System.currentTimeMillis() contentDescription = DateFormat.format(descFormat, time) val formattedText = DateFormat.format(format, time) logBuffer?.log(tag, DEBUG, logBuffer?.log(TAG, DEBUG, { str1 = formattedText?.toString() }, { "refreshTime: new formattedText=$str1" } ) Loading @@ -157,7 +156,7 @@ class AnimatableClockView @JvmOverloads constructor( // relayout if the text didn't actually change. if (!TextUtils.equals(text, formattedText)) { text = formattedText logBuffer?.log(tag, DEBUG, logBuffer?.log(TAG, DEBUG, { str1 = formattedText?.toString() }, { "refreshTime: done setting new time text to: $str1" } ) Loading @@ -167,17 +166,17 @@ class AnimatableClockView @JvmOverloads constructor( // without being notified TextInterpolator being notified. if (layout != null) { textAnimator?.updateLayout(layout) logBuffer?.log(tag, DEBUG, "refreshTime: done updating textAnimator layout") logBuffer?.log(TAG, DEBUG, "refreshTime: done updating textAnimator layout") } requestLayout() logBuffer?.log(tag, DEBUG, "refreshTime: after requestLayout") logBuffer?.log(TAG, DEBUG, "refreshTime: after requestLayout") } } fun onTimeZoneChanged(timeZone: TimeZone?) { time.timeZone = timeZone refreshFormat() logBuffer?.log(tag, DEBUG, logBuffer?.log(TAG, DEBUG, { str1 = timeZone?.toString() }, { "onTimeZoneChanged newTimeZone=$str1" } ) Loading @@ -194,7 +193,7 @@ class AnimatableClockView @JvmOverloads constructor( } else { animator.updateLayout(layout) } logBuffer?.log(tag, DEBUG, "onMeasure") logBuffer?.log(TAG, DEBUG, "onMeasure") } override fun onDraw(canvas: Canvas) { Loading @@ -206,12 +205,12 @@ class AnimatableClockView @JvmOverloads constructor( } else { super.onDraw(canvas) } logBuffer?.log(tag, DEBUG, "onDraw lastDraw") logBuffer?.log(TAG, DEBUG, "onDraw") } override fun invalidate() { super.invalidate() logBuffer?.log(tag, DEBUG, "invalidate") logBuffer?.log(TAG, DEBUG, "invalidate") } override fun onTextChanged( Loading @@ -221,7 +220,7 @@ class AnimatableClockView @JvmOverloads constructor( lengthAfter: Int ) { super.onTextChanged(text, start, lengthBefore, lengthAfter) logBuffer?.log(tag, DEBUG, logBuffer?.log(TAG, DEBUG, { str1 = text.toString() }, { "onTextChanged text=$str1" } ) Loading @@ -238,7 +237,7 @@ class AnimatableClockView @JvmOverloads constructor( } fun animateColorChange() { logBuffer?.log(tag, DEBUG, "animateColorChange") logBuffer?.log(TAG, DEBUG, "animateColorChange") setTextStyle( weight = lockScreenWeight, textSize = -1f, Loading @@ -260,7 +259,7 @@ class AnimatableClockView @JvmOverloads constructor( } fun animateAppearOnLockscreen() { logBuffer?.log(tag, DEBUG, "animateAppearOnLockscreen") logBuffer?.log(TAG, DEBUG, "animateAppearOnLockscreen") setTextStyle( weight = dozingWeight, textSize = -1f, Loading @@ -285,7 +284,7 @@ class AnimatableClockView @JvmOverloads constructor( if (isAnimationEnabled && textAnimator == null) { return } logBuffer?.log(tag, DEBUG, "animateFoldAppear") logBuffer?.log(TAG, DEBUG, "animateFoldAppear") setTextStyle( weight = lockScreenWeightInternal, textSize = -1f, Loading @@ -312,7 +311,7 @@ class AnimatableClockView @JvmOverloads constructor( // Skip charge animation if dozing animation is already playing. return } logBuffer?.log(tag, DEBUG, "animateCharge") logBuffer?.log(TAG, DEBUG, "animateCharge") val startAnimPhase2 = Runnable { setTextStyle( weight = if (isDozing()) dozingWeight else lockScreenWeight, Loading @@ -336,7 +335,7 @@ class AnimatableClockView @JvmOverloads constructor( } fun animateDoze(isDozing: Boolean, animate: Boolean) { logBuffer?.log(tag, DEBUG, "animateDoze") logBuffer?.log(TAG, DEBUG, "animateDoze") setTextStyle( weight = if (isDozing) dozingWeight else lockScreenWeight, textSize = -1f, Loading Loading @@ -455,7 +454,7 @@ class AnimatableClockView @JvmOverloads constructor( isSingleLineInternal && !use24HourFormat -> Patterns.sClockView12 else -> DOUBLE_LINE_FORMAT_12_HOUR } logBuffer?.log(tag, DEBUG, logBuffer?.log(TAG, DEBUG, { str1 = format?.toString() }, { "refreshFormat format=$str1" } ) Loading @@ -466,6 +465,7 @@ class AnimatableClockView @JvmOverloads constructor( fun dump(pw: PrintWriter) { pw.println("$this") pw.println(" alpha=$alpha") pw.println(" measuredWidth=$measuredWidth") pw.println(" measuredHeight=$measuredHeight") pw.println(" singleLineInternal=$isSingleLineInternal") Loading Loading @@ -626,7 +626,7 @@ class AnimatableClockView @JvmOverloads constructor( } companion object { private val TAG = AnimatableClockView::class.simpleName private val TAG = AnimatableClockView::class.simpleName!! const val ANIMATION_DURATION_FOLD_TO_AOD: Int = 600 private const val DOUBLE_LINE_FORMAT_12_HOUR = "hh\nmm" private const val DOUBLE_LINE_FORMAT_24_HOUR = "HH\nmm" Loading packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockController.kt +6 −7 Original line number Diff line number Diff line Loading @@ -88,13 +88,6 @@ class DefaultClockController( events.onTimeTick() } override fun setLogBuffer(logBuffer: LogBuffer) { smallClock.view.tag = "smallClockView" largeClock.view.tag = "largeClockView" smallClock.view.logBuffer = logBuffer largeClock.view.logBuffer = logBuffer } open inner class DefaultClockFaceController( override val view: AnimatableClockView, ) : ClockFaceController { Loading @@ -104,6 +97,12 @@ class DefaultClockController( private var isRegionDark = false protected var targetRegion: Rect? = null override var logBuffer: LogBuffer? get() = view.logBuffer set(value) { view.logBuffer = value } init { view.setColors(currentColor, currentColor) } Loading packages/SystemUI/plugin/src/com/android/systemui/plugins/ClockProviderPlugin.kt +3 −3 Original line number Diff line number Diff line Loading @@ -71,9 +71,6 @@ interface ClockController { /** Optional method for dumping debug information */ fun dump(pw: PrintWriter) {} /** Optional method for debug logging */ fun setLogBuffer(logBuffer: LogBuffer) {} } /** Interface for a specific clock face version rendered by the clock */ Loading @@ -83,6 +80,9 @@ interface ClockFaceController { /** Events specific to this clock face */ val events: ClockFaceEvents /** Some clocks may log debug information */ var logBuffer: LogBuffer? } /** Events that should call when various rendering parameters change */ Loading packages/SystemUI/plugin/src/com/android/systemui/plugins/log/LogBuffer.kt +7 −2 Original line number Diff line number Diff line Loading @@ -159,8 +159,13 @@ constructor( * bug report more actionable, so using the [log] with a messagePrinter to add more detail to * every log may do more to improve overall logging than adding more logs with this method. */ fun log(tag: String, level: LogLevel, @CompileTimeConstant message: String) = log(tag, level, { str1 = message }, { str1!! }) @JvmOverloads fun log( tag: String, level: LogLevel, @CompileTimeConstant message: String, exception: Throwable? = null, ) = log(tag, level, { str1 = message }, { str1!! }, exception) /** * You should call [log] instead of this method. Loading packages/SystemUI/src/com/android/keyguard/ClockEventController.kt +13 −5 Original line number Diff line number Diff line Loading @@ -38,9 +38,11 @@ import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.lifecycle.repeatWhenAttached import com.android.systemui.log.dagger.KeyguardClockLog import com.android.systemui.log.dagger.KeyguardSmallClockLog import com.android.systemui.log.dagger.KeyguardLargeClockLog import com.android.systemui.plugins.ClockController import com.android.systemui.plugins.log.LogBuffer import com.android.systemui.plugins.log.LogLevel.DEBUG import com.android.systemui.shared.regionsampling.RegionSampler import com.android.systemui.statusbar.policy.BatteryController import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback Loading Loading @@ -73,16 +75,18 @@ open class ClockEventController @Inject constructor( private val context: Context, @Main private val mainExecutor: Executor, @Background private val bgExecutor: Executor, @KeyguardClockLog private val logBuffer: LogBuffer?, @KeyguardSmallClockLog private val smallLogBuffer: LogBuffer?, @KeyguardLargeClockLog private val largeLogBuffer: LogBuffer?, private val featureFlags: FeatureFlags ) { var clock: ClockController? = null set(value) { field = value if (value != null) { if (logBuffer != null) { value.setLogBuffer(logBuffer) } smallLogBuffer?.log(TAG, DEBUG, {}, { "New Clock" }) value.smallClock.logBuffer = smallLogBuffer largeLogBuffer?.log(TAG, DEBUG, {}, { "New Clock" }) value.largeClock.logBuffer = largeLogBuffer value.initialize(resources, dozeAmount, 0f) updateRegionSamplers(value) Loading Loading @@ -325,4 +329,8 @@ open class ClockEventController @Inject constructor( } } } companion object { private val TAG = ClockEventController::class.simpleName!! } } Loading
packages/SystemUI/customization/src/com/android/systemui/shared/clocks/AnimatableClockView.kt +18 −18 Original line number Diff line number Diff line Loading @@ -54,7 +54,6 @@ class AnimatableClockView @JvmOverloads constructor( defStyleAttr: Int = 0, defStyleRes: Int = 0 ) : TextView(context, attrs, defStyleAttr, defStyleRes) { var tag: String = "UnnamedClockView" var logBuffer: LogBuffer? = null private val time = Calendar.getInstance() Loading Loading @@ -132,7 +131,7 @@ class AnimatableClockView @JvmOverloads constructor( override fun onAttachedToWindow() { super.onAttachedToWindow() logBuffer?.log(tag, DEBUG, "onAttachedToWindow") logBuffer?.log(TAG, DEBUG, "onAttachedToWindow") refreshFormat() } Loading @@ -148,7 +147,7 @@ class AnimatableClockView @JvmOverloads constructor( time.timeInMillis = timeOverrideInMillis ?: System.currentTimeMillis() contentDescription = DateFormat.format(descFormat, time) val formattedText = DateFormat.format(format, time) logBuffer?.log(tag, DEBUG, logBuffer?.log(TAG, DEBUG, { str1 = formattedText?.toString() }, { "refreshTime: new formattedText=$str1" } ) Loading @@ -157,7 +156,7 @@ class AnimatableClockView @JvmOverloads constructor( // relayout if the text didn't actually change. if (!TextUtils.equals(text, formattedText)) { text = formattedText logBuffer?.log(tag, DEBUG, logBuffer?.log(TAG, DEBUG, { str1 = formattedText?.toString() }, { "refreshTime: done setting new time text to: $str1" } ) Loading @@ -167,17 +166,17 @@ class AnimatableClockView @JvmOverloads constructor( // without being notified TextInterpolator being notified. if (layout != null) { textAnimator?.updateLayout(layout) logBuffer?.log(tag, DEBUG, "refreshTime: done updating textAnimator layout") logBuffer?.log(TAG, DEBUG, "refreshTime: done updating textAnimator layout") } requestLayout() logBuffer?.log(tag, DEBUG, "refreshTime: after requestLayout") logBuffer?.log(TAG, DEBUG, "refreshTime: after requestLayout") } } fun onTimeZoneChanged(timeZone: TimeZone?) { time.timeZone = timeZone refreshFormat() logBuffer?.log(tag, DEBUG, logBuffer?.log(TAG, DEBUG, { str1 = timeZone?.toString() }, { "onTimeZoneChanged newTimeZone=$str1" } ) Loading @@ -194,7 +193,7 @@ class AnimatableClockView @JvmOverloads constructor( } else { animator.updateLayout(layout) } logBuffer?.log(tag, DEBUG, "onMeasure") logBuffer?.log(TAG, DEBUG, "onMeasure") } override fun onDraw(canvas: Canvas) { Loading @@ -206,12 +205,12 @@ class AnimatableClockView @JvmOverloads constructor( } else { super.onDraw(canvas) } logBuffer?.log(tag, DEBUG, "onDraw lastDraw") logBuffer?.log(TAG, DEBUG, "onDraw") } override fun invalidate() { super.invalidate() logBuffer?.log(tag, DEBUG, "invalidate") logBuffer?.log(TAG, DEBUG, "invalidate") } override fun onTextChanged( Loading @@ -221,7 +220,7 @@ class AnimatableClockView @JvmOverloads constructor( lengthAfter: Int ) { super.onTextChanged(text, start, lengthBefore, lengthAfter) logBuffer?.log(tag, DEBUG, logBuffer?.log(TAG, DEBUG, { str1 = text.toString() }, { "onTextChanged text=$str1" } ) Loading @@ -238,7 +237,7 @@ class AnimatableClockView @JvmOverloads constructor( } fun animateColorChange() { logBuffer?.log(tag, DEBUG, "animateColorChange") logBuffer?.log(TAG, DEBUG, "animateColorChange") setTextStyle( weight = lockScreenWeight, textSize = -1f, Loading @@ -260,7 +259,7 @@ class AnimatableClockView @JvmOverloads constructor( } fun animateAppearOnLockscreen() { logBuffer?.log(tag, DEBUG, "animateAppearOnLockscreen") logBuffer?.log(TAG, DEBUG, "animateAppearOnLockscreen") setTextStyle( weight = dozingWeight, textSize = -1f, Loading @@ -285,7 +284,7 @@ class AnimatableClockView @JvmOverloads constructor( if (isAnimationEnabled && textAnimator == null) { return } logBuffer?.log(tag, DEBUG, "animateFoldAppear") logBuffer?.log(TAG, DEBUG, "animateFoldAppear") setTextStyle( weight = lockScreenWeightInternal, textSize = -1f, Loading @@ -312,7 +311,7 @@ class AnimatableClockView @JvmOverloads constructor( // Skip charge animation if dozing animation is already playing. return } logBuffer?.log(tag, DEBUG, "animateCharge") logBuffer?.log(TAG, DEBUG, "animateCharge") val startAnimPhase2 = Runnable { setTextStyle( weight = if (isDozing()) dozingWeight else lockScreenWeight, Loading @@ -336,7 +335,7 @@ class AnimatableClockView @JvmOverloads constructor( } fun animateDoze(isDozing: Boolean, animate: Boolean) { logBuffer?.log(tag, DEBUG, "animateDoze") logBuffer?.log(TAG, DEBUG, "animateDoze") setTextStyle( weight = if (isDozing) dozingWeight else lockScreenWeight, textSize = -1f, Loading Loading @@ -455,7 +454,7 @@ class AnimatableClockView @JvmOverloads constructor( isSingleLineInternal && !use24HourFormat -> Patterns.sClockView12 else -> DOUBLE_LINE_FORMAT_12_HOUR } logBuffer?.log(tag, DEBUG, logBuffer?.log(TAG, DEBUG, { str1 = format?.toString() }, { "refreshFormat format=$str1" } ) Loading @@ -466,6 +465,7 @@ class AnimatableClockView @JvmOverloads constructor( fun dump(pw: PrintWriter) { pw.println("$this") pw.println(" alpha=$alpha") pw.println(" measuredWidth=$measuredWidth") pw.println(" measuredHeight=$measuredHeight") pw.println(" singleLineInternal=$isSingleLineInternal") Loading Loading @@ -626,7 +626,7 @@ class AnimatableClockView @JvmOverloads constructor( } companion object { private val TAG = AnimatableClockView::class.simpleName private val TAG = AnimatableClockView::class.simpleName!! const val ANIMATION_DURATION_FOLD_TO_AOD: Int = 600 private const val DOUBLE_LINE_FORMAT_12_HOUR = "hh\nmm" private const val DOUBLE_LINE_FORMAT_24_HOUR = "HH\nmm" Loading
packages/SystemUI/customization/src/com/android/systemui/shared/clocks/DefaultClockController.kt +6 −7 Original line number Diff line number Diff line Loading @@ -88,13 +88,6 @@ class DefaultClockController( events.onTimeTick() } override fun setLogBuffer(logBuffer: LogBuffer) { smallClock.view.tag = "smallClockView" largeClock.view.tag = "largeClockView" smallClock.view.logBuffer = logBuffer largeClock.view.logBuffer = logBuffer } open inner class DefaultClockFaceController( override val view: AnimatableClockView, ) : ClockFaceController { Loading @@ -104,6 +97,12 @@ class DefaultClockController( private var isRegionDark = false protected var targetRegion: Rect? = null override var logBuffer: LogBuffer? get() = view.logBuffer set(value) { view.logBuffer = value } init { view.setColors(currentColor, currentColor) } Loading
packages/SystemUI/plugin/src/com/android/systemui/plugins/ClockProviderPlugin.kt +3 −3 Original line number Diff line number Diff line Loading @@ -71,9 +71,6 @@ interface ClockController { /** Optional method for dumping debug information */ fun dump(pw: PrintWriter) {} /** Optional method for debug logging */ fun setLogBuffer(logBuffer: LogBuffer) {} } /** Interface for a specific clock face version rendered by the clock */ Loading @@ -83,6 +80,9 @@ interface ClockFaceController { /** Events specific to this clock face */ val events: ClockFaceEvents /** Some clocks may log debug information */ var logBuffer: LogBuffer? } /** Events that should call when various rendering parameters change */ Loading
packages/SystemUI/plugin/src/com/android/systemui/plugins/log/LogBuffer.kt +7 −2 Original line number Diff line number Diff line Loading @@ -159,8 +159,13 @@ constructor( * bug report more actionable, so using the [log] with a messagePrinter to add more detail to * every log may do more to improve overall logging than adding more logs with this method. */ fun log(tag: String, level: LogLevel, @CompileTimeConstant message: String) = log(tag, level, { str1 = message }, { str1!! }) @JvmOverloads fun log( tag: String, level: LogLevel, @CompileTimeConstant message: String, exception: Throwable? = null, ) = log(tag, level, { str1 = message }, { str1!! }, exception) /** * You should call [log] instead of this method. Loading
packages/SystemUI/src/com/android/keyguard/ClockEventController.kt +13 −5 Original line number Diff line number Diff line Loading @@ -38,9 +38,11 @@ import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.lifecycle.repeatWhenAttached import com.android.systemui.log.dagger.KeyguardClockLog import com.android.systemui.log.dagger.KeyguardSmallClockLog import com.android.systemui.log.dagger.KeyguardLargeClockLog import com.android.systemui.plugins.ClockController import com.android.systemui.plugins.log.LogBuffer import com.android.systemui.plugins.log.LogLevel.DEBUG import com.android.systemui.shared.regionsampling.RegionSampler import com.android.systemui.statusbar.policy.BatteryController import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback Loading Loading @@ -73,16 +75,18 @@ open class ClockEventController @Inject constructor( private val context: Context, @Main private val mainExecutor: Executor, @Background private val bgExecutor: Executor, @KeyguardClockLog private val logBuffer: LogBuffer?, @KeyguardSmallClockLog private val smallLogBuffer: LogBuffer?, @KeyguardLargeClockLog private val largeLogBuffer: LogBuffer?, private val featureFlags: FeatureFlags ) { var clock: ClockController? = null set(value) { field = value if (value != null) { if (logBuffer != null) { value.setLogBuffer(logBuffer) } smallLogBuffer?.log(TAG, DEBUG, {}, { "New Clock" }) value.smallClock.logBuffer = smallLogBuffer largeLogBuffer?.log(TAG, DEBUG, {}, { "New Clock" }) value.largeClock.logBuffer = largeLogBuffer value.initialize(resources, dozeAmount, 0f) updateRegionSamplers(value) Loading Loading @@ -325,4 +329,8 @@ open class ClockEventController @Inject constructor( } } } companion object { private val TAG = ClockEventController::class.simpleName!! } }