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

Commit ef8871d5 authored by Lyn's avatar Lyn
Browse files

Improve avalanche debug logs

Bug: 332392653
Test: adb logcat
Flag: ACONFIG notification_throttle_hun STAGING
Change-Id: Idc095d1230c352273cc8640be4c01a8436cef786
parent 5e2c6fc0
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 {