summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Zhi Dou <zhidou@google.com> 2025-03-19 20:14:04 +0000
committer Zhi Dou <zhidou@google.com> 2025-03-19 19:05:00 -0700
commit324bea02b44b8ba12e470e9f7c56bc8c087bb64a (patch)
treee44f43e3b20ae8671c4ada644a3dd8c060f1ac05
parenta80bdd287a292e2a619b2543bc92d594120ac1c8 (diff)
Replace flag check to sdk version check
This change replace flag check to sdk version check to fix the problem that when the new module is installed on the new version of mainline the exported flags will have inconsistent flag value. Test: atest PermissionControllerMockingTests GtsPermissionUiTestCases Bug: 401592182 Flag: EXEMPT remove flag call Relnote: M05 Change-Id: Ieb5245856d0c306870edd4211d206af8f979445f
-rw-r--r--PermissionController/src/com/android/permissioncontroller/appops/data/repository/v31/AppOpRepository.kt17
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/domain/usecase/v31/GetPermissionGroupUsageDetailsUseCase.kt3
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/domain/usecase/v31/PermissionUsageUtils.kt4
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageDetailsViewModel.kt4
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/utils/PermissionMapping.kt12
-rw-r--r--PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/permission/domain/usecase/GetPermissionGroupUsageDetailsUseCaseTest.kt12
6 files changed, 24 insertions, 28 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/appops/data/repository/v31/AppOpRepository.kt b/PermissionController/src/com/android/permissioncontroller/appops/data/repository/v31/AppOpRepository.kt
index 21ced3b28..7a59aa2bc 100644
--- a/PermissionController/src/com/android/permissioncontroller/appops/data/repository/v31/AppOpRepository.kt
+++ b/PermissionController/src/com/android/permissioncontroller/appops/data/repository/v31/AppOpRepository.kt
@@ -27,7 +27,6 @@ import android.app.AppOpsManager.OP_FLAG_TRUSTED_PROXIED
import android.app.AppOpsManager.OP_FLAG_TRUSTED_PROXY
import android.app.Application
import android.os.UserHandle
-import android.permission.flags.Flags
import android.util.Log
import com.android.modules.utils.build.SdkLevel
import com.android.permissioncontroller.DeviceUtils
@@ -74,7 +73,7 @@ interface AppOpRepository {
*/
fun getDiscreteOps(
opNames: List<String>,
- coroutineScope: CoroutineScope
+ coroutineScope: CoroutineScope,
): Flow<List<DiscretePackageOpsModel>>
companion object {
@@ -82,7 +81,7 @@ interface AppOpRepository {
fun getInstance(
application: Application,
- permissionRepository: PermissionRepository
+ permissionRepository: PermissionRepository,
): AppOpRepository =
instance
?: synchronized(this) {
@@ -104,7 +103,7 @@ class AppOpRepositoryImpl(
override fun getDiscreteOps(
opNames: List<String>,
- coroutineScope: CoroutineScope
+ coroutineScope: CoroutineScope,
): Flow<List<DiscretePackageOpsModel>> {
return callbackFlow {
var job: Job? = null
@@ -112,9 +111,7 @@ class AppOpRepositoryImpl(
fun sendUpdate() {
if (job == null || job?.isActive == false) {
- job = coroutineScope.launch(dispatcher) {
- trySend(getDiscreteOps(opNames))
- }
+ job = coroutineScope.launch(dispatcher) { trySend(getDiscreteOps(opNames)) }
}
}
@@ -229,10 +226,10 @@ class AppOpRepositoryImpl(
packageOps.ops.map { opEntry ->
AppOpUsageModel(
opEntry.opStr,
- opEntry.getLastAccessTime(OPS_LAST_ACCESS_FLAGS)
+ opEntry.getLastAccessTime(OPS_LAST_ACCESS_FLAGS),
)
},
- UserHandle.getUserHandleForUid(packageOps.uid).identifier
+ UserHandle.getUserHandleForUid(packageOps.uid).identifier,
)
}
}
@@ -254,7 +251,7 @@ class AppOpRepositoryImpl(
if (SdkLevel.isAtLeastT()) {
opNames.add(AppOpsManager.OPSTR_RECEIVE_AMBIENT_TRIGGER_AUDIO)
}
- if (SdkLevel.isAtLeastV() && Flags.locationBypassPrivacyDashboardEnabled()) {
+ if (SdkLevel.isAtLeastV()) {
opNames.add(AppOpsManager.OPSTR_EMERGENCY_LOCATION)
}
return opNames
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/domain/usecase/v31/GetPermissionGroupUsageDetailsUseCase.kt b/PermissionController/src/com/android/permissioncontroller/permission/domain/usecase/v31/GetPermissionGroupUsageDetailsUseCase.kt
index 5ba649fd3..cc49b4ef3 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/domain/usecase/v31/GetPermissionGroupUsageDetailsUseCase.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/domain/usecase/v31/GetPermissionGroupUsageDetailsUseCase.kt
@@ -227,8 +227,7 @@ class GetPermissionGroupUsageDetailsUseCase(
}
}
- private fun isLocationByPassEnabled(): Boolean =
- SdkLevel.isAtLeastV() && Flags.locationBypassPrivacyDashboardEnabled()
+ private fun isLocationByPassEnabled(): Boolean = SdkLevel.isAtLeastV()
/**
* Determine if an op should be in its own cluster and hence display as an individual entry in
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/domain/usecase/v31/PermissionUsageUtils.kt b/PermissionController/src/com/android/permissioncontroller/permission/domain/usecase/v31/PermissionUsageUtils.kt
index 7f5910ac1..9526d0bdd 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/domain/usecase/v31/PermissionUsageUtils.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/domain/usecase/v31/PermissionUsageUtils.kt
@@ -21,7 +21,6 @@ import android.content.pm.ApplicationInfo
import android.content.pm.PackageInfo
import android.content.pm.PackageManager
import android.os.UserHandle
-import android.permission.flags.Flags
import androidx.annotation.VisibleForTesting
import com.android.modules.utils.build.SdkLevel
import com.android.permissioncontroller.permission.data.repository.v31.PermissionRepository
@@ -99,5 +98,4 @@ private fun isTelecomPackage(packageName: String, permissionGroup: String): Bool
permissionGroup == Manifest.permission_group.MICROPHONE)
}
-fun isLocationByPassEnabled(): Boolean =
- SdkLevel.isAtLeastV() && Flags.locationBypassPrivacyDashboardEnabled()
+fun isLocationByPassEnabled(): Boolean = SdkLevel.isAtLeastV()
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageDetailsViewModel.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageDetailsViewModel.kt
index ad21ab220..d8eeb8fd9 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageDetailsViewModel.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageDetailsViewModel.kt
@@ -30,7 +30,6 @@ import android.graphics.drawable.Drawable
import android.location.LocationManager
import android.os.Build
import android.os.UserHandle
-import android.permission.flags.Flags
import androidx.annotation.RequiresApi
import androidx.annotation.VisibleForTesting
import androidx.lifecycle.AndroidViewModel
@@ -406,8 +405,7 @@ class PermissionUsageDetailsViewModel(
}
}
- private fun isLocationByPassEnabled(): Boolean =
- SdkLevel.isAtLeastV() && Flags.locationBypassPrivacyDashboardEnabled()
+ private fun isLocationByPassEnabled(): Boolean = SdkLevel.isAtLeastV()
fun create(
app: Application,
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/utils/PermissionMapping.kt b/PermissionController/src/com/android/permissioncontroller/permission/utils/PermissionMapping.kt
index 93a1a66df..1693b32d1 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/utils/PermissionMapping.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/utils/PermissionMapping.kt
@@ -45,7 +45,7 @@ object PermissionMapping {
listOf(
Manifest.permission_group.LOCATION,
Manifest.permission_group.CAMERA,
- Manifest.permission_group.MICROPHONE
+ Manifest.permission_group.MICROPHONE,
)
@JvmField
@@ -55,7 +55,7 @@ object PermissionMapping {
listOf(
Manifest.permission_group.STORAGE,
Manifest.permission_group.READ_MEDIA_AURAL,
- Manifest.permission_group.READ_MEDIA_VISUAL
+ Manifest.permission_group.READ_MEDIA_VISUAL,
)
val PARTIAL_MEDIA_PERMISSIONS: MutableSet<String> = mutableSetOf()
@@ -370,7 +370,7 @@ object PermissionMapping {
val appSupportsPickerPrompt =
group.permissions[Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED]?.isImplicit ==
- false
+ false
return if (appSupportsPickerPrompt) {
PARTIAL_MEDIA_PERMISSIONS
@@ -402,11 +402,7 @@ object PermissionMapping {
if (opName == AppOpsManager.OPSTR_PHONE_CALL_CAMERA) {
return Manifest.permission_group.CAMERA
}
- if (
- SdkLevel.isAtLeastV() &&
- Flags.locationBypassPrivacyDashboardEnabled() &&
- opName == AppOpsManager.OPSTR_EMERGENCY_LOCATION
- ) {
+ if (SdkLevel.isAtLeastV() && opName == AppOpsManager.OPSTR_EMERGENCY_LOCATION) {
return Manifest.permission_group.LOCATION
}
diff --git a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/permission/domain/usecase/GetPermissionGroupUsageDetailsUseCaseTest.kt b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/permission/domain/usecase/GetPermissionGroupUsageDetailsUseCaseTest.kt
index cb36de2b1..b73113ffc 100644
--- a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/permission/domain/usecase/GetPermissionGroupUsageDetailsUseCaseTest.kt
+++ b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/permission/domain/usecase/GetPermissionGroupUsageDetailsUseCaseTest.kt
@@ -21,10 +21,12 @@ import android.content.Context
import android.content.pm.ApplicationInfo
import android.content.pm.PackageInfo
import android.content.pm.PackageManager
+import android.os.Build
import android.os.UserHandle
import android.permission.flags.Flags
import android.platform.test.annotations.RequiresFlagsEnabled
import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SdkSuppress
import com.android.dx.mockito.inline.extended.ExtendedMockito
import com.android.modules.utils.build.SdkLevel
import com.android.permissioncontroller.PermissionControllerApplication
@@ -846,7 +848,10 @@ class GetPermissionGroupUsageDetailsUseCaseTest {
@Test
@Ignore("b/365004787")
- @RequiresFlagsEnabled(Flags.FLAG_LOCATION_BYPASS_PRIVACY_DASHBOARD_ENABLED)
+ @SdkSuppress(
+ minSdkVersion = Build.VERSION_CODES.VANILLA_ICE_CREAM,
+ codeName = "VanillaIceCream",
+ )
fun emergencyAccessesAreNotClusteredWithRegularAccesses() = runTest {
Assume.assumeTrue(SdkLevel.isAtLeastV())
val appOpEvents =
@@ -870,7 +875,10 @@ class GetPermissionGroupUsageDetailsUseCaseTest {
}
@Test
- @RequiresFlagsEnabled(Flags.FLAG_LOCATION_BYPASS_PRIVACY_DASHBOARD_ENABLED)
+ @SdkSuppress(
+ minSdkVersion = Build.VERSION_CODES.VANILLA_ICE_CREAM,
+ codeName = "VanillaIceCream",
+ )
fun emergencyAccessesAreClustered() = runTest {
Assume.assumeTrue(SdkLevel.isAtLeastV())
val appOpEvents =