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

Commit d8769634 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Dump additional AnimatableClock updates" into tm-qpr-dev

parents 05c4cbd7 4466bbb4
Loading
Loading
Loading
Loading
+34 −2
Original line number Diff line number Diff line
@@ -47,7 +47,12 @@ class AnimatableClockView @JvmOverloads constructor(
    defStyleRes: Int = 0
) : TextView(context, attrs, defStyleAttr, defStyleRes) {

    private var lastMeasureCall: CharSequence = ""
    private var lastMeasureCall: CharSequence? = null
    private var lastDraw: CharSequence? = null
    private var lastTextUpdate: CharSequence? = null
    private var lastOnTextChanged: CharSequence? = null
    private var lastInvalidate: CharSequence? = null
    private var lastTimeZoneChange: CharSequence? = null

    private val time = Calendar.getInstance()

@@ -135,18 +140,19 @@ class AnimatableClockView @JvmOverloads constructor(
        // relayout if the text didn't actually change.
        if (!TextUtils.equals(text, formattedText)) {
            text = formattedText
            lastTextUpdate = getTimestamp()
        }
    }

    fun onTimeZoneChanged(timeZone: TimeZone?) {
        time.timeZone = timeZone
        refreshFormat()
        lastTimeZoneChange = "${getTimestamp()} timeZone=${time.timeZone}"
    }

    @SuppressLint("DrawAllocation")
    override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec)
        lastMeasureCall = DateFormat.format(descFormat, System.currentTimeMillis())
        val animator = textAnimator
        if (animator == null) {
            textAnimator = TextAnimator(layout) { invalidate() }
@@ -155,13 +161,34 @@ class AnimatableClockView @JvmOverloads constructor(
        } else {
            animator.updateLayout(layout)
        }
        lastMeasureCall = getTimestamp()
    }

    override fun onDraw(canvas: Canvas) {
        lastDraw = getTimestamp()
        // intentionally doesn't call super.onDraw here or else the text will be rendered twice
        textAnimator?.draw(canvas)
    }

    override fun invalidate() {
        super.invalidate()
        lastInvalidate = getTimestamp()
    }

    private fun getTimestamp(): CharSequence {
        return "${DateFormat.format("HH:mm:ss", System.currentTimeMillis())} text=$text"
    }

    override fun onTextChanged(
            text: CharSequence,
            start: Int,
            lengthBefore: Int,
            lengthAfter: Int
    ) {
        super.onTextChanged(text, start, lengthBefore, lengthAfter)
        lastOnTextChanged = "${getTimestamp()}"
    }

    fun setLineSpacingScale(scale: Float) {
        lineSpacingScale = scale
        setLineSpacing(0f, lineSpacingScale)
@@ -354,7 +381,12 @@ class AnimatableClockView @JvmOverloads constructor(
        pw.println("    measuredWidth=$measuredWidth")
        pw.println("    measuredHeight=$measuredHeight")
        pw.println("    singleLineInternal=$isSingleLineInternal")
        pw.println("    lastTextUpdate=$lastTextUpdate")
        pw.println("    lastOnTextChanged=$lastOnTextChanged")
        pw.println("    lastInvalidate=$lastInvalidate")
        pw.println("    lastMeasureCall=$lastMeasureCall")
        pw.println("    lastDraw=$lastDraw")
        pw.println("    lastTimeZoneChange=$lastTimeZoneChange")
        pw.println("    currText=$text")
        pw.println("    currTimeContextDesc=$contentDescription")
        pw.println("    time=$time")