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

Commit 10be1f4a authored by Eugene Susla's avatar Eugene Susla
Browse files

Temporarily make false auto revokations more visible in droidfood

This disables:
  - removal of used apps from the unused apps screen
  - treating first boot time as a usage events

Test: presubmit
Bug: 153607914
Change-Id: I6808a046024859feffdcd9f995465082e126504d
parent 8ccd0080
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -19,8 +19,11 @@ package com.android.permissioncontroller.permission.data
import android.content.pm.PackageManager.FLAG_PERMISSION_AUTO_REVOKED
import android.os.UserHandle
import com.android.permissioncontroller.PermissionControllerApplication
import com.android.permissioncontroller.permission.data.AutoRevokedPackagesLiveData.addSource
import com.android.permissioncontroller.permission.data.PackagePermissionsLiveData.Companion.NON_RUNTIME_NORMAL_PERMS
import com.android.permissioncontroller.permission.data.UnusedAutoRevokedPackagesLiveData.addSource
import com.android.permissioncontroller.permission.service.getUnusedThresholdMs
import com.android.permissioncontroller.permission.service.isInAutoRevokeDogfood
import com.android.permissioncontroller.permission.utils.KotlinUtils

/**
@@ -192,8 +195,11 @@ object UnusedAutoRevokedPackagesLiveData
        for ((user, stats) in usageStatsLiveData.value!!) {
            for (stat in stats) {
                val userPackage = stat.packageName to user
                if (userPackage in autoRevokedPackages &&
                    (now - stat.lastTimeVisible) < unusedThreshold) {
                // TODO eugenesusla: temporarily showing packages regardless of
                //  usage recency for troubleshooting
                val isOldEnoughToShow = (now - stat.lastTimeVisible) >= unusedThreshold ||
                        isInAutoRevokeDogfood(PermissionControllerApplication.get())
                if (userPackage in autoRevokedPackages && !isOldEnoughToShow) {
                    unusedPackages.remove(userPackage)
                }
            }
+8 −1
Original line number Diff line number Diff line
@@ -163,6 +163,10 @@ fun isAutoRevokeEnabled(context: Context): Boolean {
            getUnusedThresholdMs(context) != Long.MAX_VALUE
}

fun isInAutoRevokeDogfood(context: Context): Boolean {
    return TeamfoodSettings.get(context)?.enabledForPreRApps ?: false
}

/**
 * @return dump of auto revoke service as a proto
 */
@@ -271,7 +275,10 @@ private suspend fun revokePermissionsOnUnusedApps(
            lastTimeVisible = Math.max(lastTimeVisible, packageInfo.firstInstallTime)

            // Limit by first boot time
            // TODO eugenesusla: temporarily disabled for dogfooders for troubleshooting
            if (!isInAutoRevokeDogfood(context)) {
                lastTimeVisible = Math.max(lastTimeVisible, firstBootTime)
            }

            // Handle cross-profile apps
            if (context.isPackageCrossProfile(pkgName)) {