From a97972aac01f57a78efcef5cdb3950dcb30a85b5 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Tue, 23 Jul 2019 00:33:16 -0700 Subject: [PATCH] Update notification once per second --- .../com/topjohnwu/magisk/utils/ProgInputStream.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/topjohnwu/magisk/utils/ProgInputStream.kt b/app/src/main/java/com/topjohnwu/magisk/utils/ProgInputStream.kt index cc49f9cd8..bee8e1a6c 100644 --- a/app/src/main/java/com/topjohnwu/magisk/utils/ProgInputStream.kt +++ b/app/src/main/java/com/topjohnwu/magisk/utils/ProgInputStream.kt @@ -10,12 +10,21 @@ class ProgInputStream( ) : FilterInputStream(base) { private var bytesRead = 0L + private var lastUpdate = 0L + + private fun emitProgress() { + val cur = System.currentTimeMillis() + if (cur - lastUpdate > 1000) { + lastUpdate = cur + UiThreadHandler.run { progressEmitter(bytesRead) } + } + } override fun read(): Int { val b = read() if (b >= 0) { bytesRead++ - UiThreadHandler.run { progressEmitter(bytesRead) } + emitProgress() } return b } @@ -28,7 +37,7 @@ class ProgInputStream( val sz = super.read(b, off, len) if (sz > 0) { bytesRead += sz - UiThreadHandler.run { progressEmitter(bytesRead) } + emitProgress() } return sz }