Merge "Listen to changes in unused threshold" into sc-dev
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/data/UnusedPackagesLiveData.kt b/PermissionController/src/com/android/permissioncontroller/permission/data/UnusedPackagesLiveData.kt
index 85cbbf9..b97c275 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/data/UnusedPackagesLiveData.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/data/UnusedPackagesLiveData.kt
@@ -17,11 +17,15 @@
package com.android.permissioncontroller.permission.data
import android.os.UserHandle
+import android.provider.DeviceConfig
+import android.provider.DeviceConfig.NAMESPACE_PERMISSIONS
import android.util.ArraySet
import android.util.Log
+import com.android.permissioncontroller.PermissionControllerApplication
import com.android.permissioncontroller.hibernation.getUnusedThresholdMs
import com.android.permissioncontroller.hibernation.isHibernationEnabled
import com.android.permissioncontroller.hibernation.lastTimePackageUsed
+import com.android.permissioncontroller.permission.utils.Utils
/**
* Gets all unused packages from an existing live data that have not been opened in a few months
@@ -37,8 +41,8 @@
private val LOG_TAG = UnusedPackagesLiveData::class.java.simpleName
- private val unusedThreshold = getUnusedThresholdMs()
- private val usageStatsLiveData = UsageStatsLiveData[unusedThreshold]
+ private var unusedThreshold = getUnusedThresholdMs()
+ private var usageStatsLiveData = UsageStatsLiveData[unusedThreshold]
init {
addSource(usageStatsLiveData) {
@@ -50,6 +54,22 @@
addSource(sourceLiveData) {
update()
}
+ DeviceConfig.addOnPropertiesChangedListener(
+ NAMESPACE_PERMISSIONS,
+ PermissionControllerApplication.get().mainExecutor,
+ { properties ->
+ for (key in properties.keyset) {
+ if (key == Utils.PROPERTY_HIBERNATION_UNUSED_THRESHOLD_MILLIS) {
+ removeSource(usageStatsLiveData)
+ unusedThreshold = getUnusedThresholdMs()
+ usageStatsLiveData = UsageStatsLiveData[unusedThreshold]
+ addSource(usageStatsLiveData) {
+ update()
+ }
+ }
+ }
+ }
+ )
}
override fun onUpdate() {