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

Commit 330044b8 authored by Lyn Han's avatar Lyn Han Committed by Android (Google) Code Review
Browse files

Merge "Improve avalanche debug logs" into main

parents 7e068848 ef8871d5
Loading
Loading
Loading
Loading
+21 −18
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ class AvalancheController @Inject constructor(
            runnable.run()
            return
        }
        val fn = "[$label] => AvalancheController.update ${getKey(entry)}"
        val fn = "[$label] => AvalancheController.update [${getKey(entry)}]"
        if (entry == null) {
            log { "Entry is NULL, stop update." }
            return;
@@ -78,13 +78,13 @@ class AvalancheController @Inject constructor(
            debugRunnableLabelMap[runnable] = label
        }
        if (isShowing(entry)) {
            log { "$fn => [update showing]" }
            log { "\n$fn => [update showing]" }
            runnable.run()
        } else if (entry in nextMap) {
            log { "$fn => [update next]" }
            log { "\n$fn => [update next]" }
            nextMap[entry]?.add(runnable)
        } else if (headsUpEntryShowing == null) {
            log { "$fn => [showNow]" }
            log { "\n$fn => [showNow]" }
            showNow(entry, arrayListOf(runnable))
        } else {
            // Clean up invalid state when entry is in list but not map and vice versa
@@ -208,24 +208,24 @@ class AvalancheController @Inject constructor(
    }

    private fun showNow(entry: HeadsUpEntry, runnableList: MutableList<Runnable>) {
        log { "show " + getKey(entry) + " backlog size: " + runnableList.size }
        log { "SHOW: " + getKey(entry) }

        headsUpEntryShowing = entry

        runnableList.forEach {
            if (it in debugRunnableLabelMap) {
                log { "run runnable from: ${debugRunnableLabelMap[it]}" }
                log { "RUNNABLE: ${debugRunnableLabelMap[it]}" }
            }
            it.run()
        }
    }

    private fun showNext() {
        log { "showNext" }
        log { "SHOW NEXT" }
        headsUpEntryShowing = null

        if (nextList.isEmpty()) {
            log { "no more to show!" }
            log { "NO MORE TO SHOW" }
            return
        }

@@ -265,41 +265,44 @@ class AvalancheController @Inject constructor(
    }

    private fun getStateStr(): String {
        return "SHOWING: ${getKey(headsUpEntryShowing)}" +
            "\tNEXT LIST: $nextListStr\tMAP: $nextMapStr" +
            "\tDROP: $dropSetStr"
        return "SHOWING: [${getKey(headsUpEntryShowing)}]" +
                "\nNEXT LIST: $nextListStr" +
                "\nNEXT MAP: $nextMapStr" +
                "\nDROPPED: $dropSetStr"
    }

    private fun logState(reason: String) {
        log { "REASON $reason" }
        log { "\n================================================================================="}
        log { "STATE $reason" }
        log { getStateStr() }
        log { "=================================================================================\n"}
    }

    private val dropSetStr: String
        get() {
            val queue = ArrayList<String>()
            for (entry in debugDropSet) {
                queue.add(getKey(entry))
                queue.add("[${getKey(entry)}]")
            }
            return java.lang.String.join(" ", queue)
            return java.lang.String.join("\n", queue)
        }

    private val nextListStr: String
        get() {
            val queue = ArrayList<String>()
            for (entry in nextList) {
                queue.add(getKey(entry))
                queue.add("[${getKey(entry)}]")
            }
            return java.lang.String.join(" ", queue)
            return java.lang.String.join("\n", queue)
        }

    private val nextMapStr: String
        get() {
            val queue = ArrayList<String>()
            for (entry in nextMap.keys) {
                queue.add(getKey(entry))
                queue.add("[${getKey(entry)}]")
            }
            return java.lang.String.join(" ", queue)
            return java.lang.String.join("\n", queue)
        }

    fun getKey(entry: HeadsUpEntry?): String {