From eeced2fb5b07b0f544bbfc0714d4be12b1e39239 Mon Sep 17 00:00:00 2001 From: vvb2060 Date: Thu, 8 Oct 2020 00:32:19 +0800 Subject: [PATCH] Only care about the main process when not expanded --- .../topjohnwu/magisk/ui/hide/HideRvItems.kt | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/topjohnwu/magisk/ui/hide/HideRvItems.kt b/app/src/main/java/com/topjohnwu/magisk/ui/hide/HideRvItems.kt index 90511ea70..dbaa840b1 100644 --- a/app/src/main/java/com/topjohnwu/magisk/ui/hide/HideRvItems.kt +++ b/app/src/main/java/com/topjohnwu/magisk/ui/hide/HideRvItems.kt @@ -39,14 +39,19 @@ class HideItem( get() = state set(value) = set(value, state, { state = it }, BR.hiddenState) { if (value == true) { - processes.filterNot { it.isHidden } + processes + .filterNot { it.isHidden } + .filter { isExpanded || it.process.name == it.process.packageName } } else { processes + .filter { it.isHidden } + .filter { isExpanded || it.process.name == it.process.packageName } }.forEach { it.toggle() } } init { processes.forEach { it.addOnPropertyChangedCallback(BR.hidden) { recalculateChecked() } } + addOnPropertyChangedCallback(BR.expanded) { recalculateChecked() } recalculateChecked() } @@ -57,10 +62,14 @@ class HideItem( private fun recalculateChecked() { itemsChecked = processes.count { it.isHidden } - state = when (itemsChecked) { - 0 -> false - processes.size -> true - else -> null + state = if (isExpanded) { + when (itemsChecked) { + 0 -> false + processes.size -> true + else -> null + } + } else { + processes.find { it.isHidden && it.process.name == it.process.packageName } != null } }