diff options
author | Joe Castro <joecastro@google.com> | 2023-02-23 02:11:05 +0000 |
---|---|---|
committer | Joe Castro <joecastro@google.com> | 2023-02-28 00:32:08 +0000 |
commit | adc3ef396064f7d8dcd03f58f9cd59f99d0f6932 (patch) | |
tree | f657e15adef851b799e733fce0ca8b4439d3b174 | |
parent | e5ff09143f44b2b96eec5c461604d117d423218c (diff) | |
download | Permission-adc3ef396064f7d8dcd03f58f9cd59f99d0f6932.tar.gz |
Fixing compiler warnings for PermissionController project
Test: atest
Bug: 195346174
Change-Id: Ic1c1098dab6aed52695c31dc6632c38f8e2b0caf
Merged-In: Ic1c1098dab6aed52695c31dc6632c38f8e2b0caf
57 files changed, 149 insertions, 139 deletions
diff --git a/PermissionController/Android.bp b/PermissionController/Android.bp index 14170e513..9b20819f0 100644 --- a/PermissionController/Android.bp +++ b/PermissionController/Android.bp @@ -38,7 +38,7 @@ genrule { tools: ["stats-log-api-gen"], cmd: "$(location stats-log-api-gen) --java $(out) --module permissioncontroller" + " --javaPackage com.android.permissioncontroller" + - " --javaClass PermissionControllerStatsLog --minApiLevel 29", + " --javaClass PermissionControllerStatsLog --minApiLevel 30", out: ["com/android/permissioncontroller/PermissionControllerStatsLog.java"], } @@ -86,6 +86,13 @@ android_app { srcs: [":permissioncontroller-sources"], + //javacflags: ["-Werror"], + kotlincflags: [ + "-Werror", + "-opt-in=kotlinx.coroutines.DelicateCoroutinesApi", + "-Xjvm-default=all" + ], + libs: [ "android.car-stubs", // Soong fails to automatically add this dependency because all the @@ -160,8 +167,6 @@ android_app { proguard_flags_files: ["proguard.flags"], }, - kotlincflags: ["-Xjvm-default=enable"], - apex_available: [ "//apex_available:platform", "com.android.permission", diff --git a/PermissionController/src/com/android/permissioncontroller/auto/DrivingDecisionReminderService.kt b/PermissionController/src/com/android/permissioncontroller/auto/DrivingDecisionReminderService.kt index 67c4cfac1..b62f8d721 100644 --- a/PermissionController/src/com/android/permissioncontroller/auto/DrivingDecisionReminderService.kt +++ b/PermissionController/src/com/android/permissioncontroller/auto/DrivingDecisionReminderService.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.auto diff --git a/PermissionController/src/com/android/permissioncontroller/incident/ConfirmationActivity.java b/PermissionController/src/com/android/permissioncontroller/incident/ConfirmationActivity.java index b5beb9922..0a8196524 100644 --- a/PermissionController/src/com/android/permissioncontroller/incident/ConfirmationActivity.java +++ b/PermissionController/src/com/android/permissioncontroller/incident/ConfirmationActivity.java @@ -180,7 +180,6 @@ public class ConfirmationActivity extends Activity implements OnClickListener, O final int height = res.getDimensionPixelSize(R.dimen.incident_image_height); for (int i = 0; i < imagesSize; i++) { - final Drawable drawable = images.get(i); final ImageView imageView = new ImageView(this); imageView.setImageDrawable(images.get(i)); imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); @@ -256,4 +255,3 @@ public class ConfirmationActivity extends Activity implements OnClickListener, O finish(); } } - diff --git a/PermissionController/src/com/android/permissioncontroller/incident/Formatting.java b/PermissionController/src/com/android/permissioncontroller/incident/Formatting.java index e5a189bc6..d8bcb3f8f 100644 --- a/PermissionController/src/com/android/permissioncontroller/incident/Formatting.java +++ b/PermissionController/src/com/android/permissioncontroller/incident/Formatting.java @@ -61,6 +61,7 @@ public class Formatting { /** * Format the date portion of a {@link System.currentTimeMillis} as a user-visible string. */ + @SuppressWarnings("JavaUtilDate") String getDate(long wallTimeMs) { return mDateFormat.format(new Date(wallTimeMs)); } @@ -68,6 +69,7 @@ public class Formatting { /** * Format the time portion of a {@link System.currentTimeMillis} as a user-visible string. */ + @SuppressWarnings("JavaUtilDate") String getTime(long wallTimeMs) { return mTimeFormat.format(new Date(wallTimeMs)); } diff --git a/PermissionController/src/com/android/permissioncontroller/incident/PendingList.java b/PermissionController/src/com/android/permissioncontroller/incident/PendingList.java index 898d9b500..dead300d7 100644 --- a/PermissionController/src/com/android/permissioncontroller/incident/PendingList.java +++ b/PermissionController/src/com/android/permissioncontroller/incident/PendingList.java @@ -297,6 +297,7 @@ class PendingList { /** * Get the sort key for the order of our notifications. */ + @SuppressWarnings("JavaUtilDate") private String getSortKey(long timestamp) { return sDateFormatter.format(new Date(timestamp)); } diff --git a/PermissionController/src/com/android/permissioncontroller/incident/ReportDetails.java b/PermissionController/src/com/android/permissioncontroller/incident/ReportDetails.java index d19ef460a..90cc17131 100644 --- a/PermissionController/src/com/android/permissioncontroller/incident/ReportDetails.java +++ b/PermissionController/src/com/android/permissioncontroller/incident/ReportDetails.java @@ -110,7 +110,7 @@ public class ReportDetails { /** * Read images from the IncidentMinimal. * - * @throw ParseException if there was an error reading them. + * @throws ParseException if there was an error reading them. */ private static void parseImages(ArrayList<Drawable> result, IncidentMinimal incident, Resources res) throws ParseException { diff --git a/PermissionController/src/com/android/permissioncontroller/permission/data/BroadcastReceiverLiveData.kt b/PermissionController/src/com/android/permissioncontroller/permission/data/BroadcastReceiverLiveData.kt index bc4bd12d2..0a296d977 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/data/BroadcastReceiverLiveData.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/data/BroadcastReceiverLiveData.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.data @@ -77,7 +78,7 @@ class BroadcastReceiverLiveData( if (resolveInfo?.activityInfo?.permission != permission) { return@mapNotNull null } - val packageName = resolveInfo?.activityInfo?.packageName + val packageName = resolveInfo.activityInfo?.packageName if (!isReceiverEnabled(packageName)) { if (DEBUG_HIBERNATION_POLICY) { DumpableLog.i(LOG_TAG, diff --git a/PermissionController/src/com/android/permissioncontroller/permission/data/LauncherPackagesLiveData.kt b/PermissionController/src/com/android/permissioncontroller/permission/data/LauncherPackagesLiveData.kt index f0d811821..b512c7e4a 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/data/LauncherPackagesLiveData.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/data/LauncherPackagesLiveData.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.data diff --git a/PermissionController/src/com/android/permissioncontroller/permission/data/LightPackageInfoLiveData.kt b/PermissionController/src/com/android/permissioncontroller/permission/data/LightPackageInfoLiveData.kt index 675e5ef75..2f26fedd1 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/data/LightPackageInfoLiveData.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/data/LightPackageInfoLiveData.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.data diff --git a/PermissionController/src/com/android/permissioncontroller/permission/data/LightPermInfoLiveData.kt b/PermissionController/src/com/android/permissioncontroller/permission/data/LightPermInfoLiveData.kt index 0aa77a5bc..6f33cb199 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/data/LightPermInfoLiveData.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/data/LightPermInfoLiveData.kt @@ -46,8 +46,10 @@ class LightPermInfoLiveData private constructor( * Callback from the PackageBroadcastReceiver. * * <p>Package updates might change permission properties + * + * Note: packageName is unused. */ - override fun onPackageUpdate(ignored: String) { + override fun onPackageUpdate(packageName: String) { updateAsync() } diff --git a/PermissionController/src/com/android/permissioncontroller/permission/data/OpUsageLiveData.kt b/PermissionController/src/com/android/permissioncontroller/permission/data/OpUsageLiveData.kt index a5b254250..805d497c4 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/data/OpUsageLiveData.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/data/OpUsageLiveData.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.data diff --git a/PermissionController/src/com/android/permissioncontroller/permission/data/PreinstalledUserPackageInfosLiveData.kt b/PermissionController/src/com/android/permissioncontroller/permission/data/PreinstalledUserPackageInfosLiveData.kt index bd7dfeb5e..b4205acff 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/data/PreinstalledUserPackageInfosLiveData.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/data/PreinstalledUserPackageInfosLiveData.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.data diff --git a/PermissionController/src/com/android/permissioncontroller/permission/data/ServiceLiveData.kt b/PermissionController/src/com/android/permissioncontroller/permission/data/ServiceLiveData.kt index 138418c26..6d59fd585 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/data/ServiceLiveData.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/data/ServiceLiveData.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.data @@ -167,7 +168,7 @@ class ServiceLiveData( if (resolveInfo?.serviceInfo?.permission != permission) { return@mapNotNull null } - val packageName = resolveInfo?.serviceInfo?.packageName + val packageName = resolveInfo.serviceInfo?.packageName if (!isServiceEnabled(packageName)) { if (DEBUG_HIBERNATION_POLICY) { DumpableLog.i(LOG_TAG, diff --git a/PermissionController/src/com/android/permissioncontroller/permission/data/SmartUpdateMediatorLiveData.kt b/PermissionController/src/com/android/permissioncontroller/permission/data/SmartUpdateMediatorLiveData.kt index cca266721..c1a8f5abd 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/data/SmartUpdateMediatorLiveData.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/data/SmartUpdateMediatorLiveData.kt @@ -61,8 +61,6 @@ abstract class SmartUpdateMediatorLiveData<T>(private val isStaticVal: Boolean = private val sources = mutableListOf<SmartUpdateMediatorLiveData<*>>() - private val stacktraceExceptionMessage = "Caller of coroutine" - @MainThread override fun setValue(newValue: T?) { ensureMainThread() @@ -126,17 +124,15 @@ abstract class SmartUpdateMediatorLiveData<T>(private val isStaticVal: Boolean = } override fun <S : Any?> addSource(source: LiveData<S>, onChanged: Observer<in S>) { - addSourceWithError(source, onChanged) + addSourceWithStackTraceAttribution(source, onChanged, + IllegalStateException().getStackTrace()) } - private fun <S : Any?> addSourceWithError( + private fun <S : Any?> addSourceWithStackTraceAttribution( source: LiveData<S>, onChanged: Observer<in S>, - e: IllegalStateException? = null + stackTrace: Array<StackTraceElement> ) { - // Get the stacktrace of the call to addSource, so it isn't lost in any errors - val exception = e ?: IllegalStateException(stacktraceExceptionMessage) - GlobalScope.launch(Main.immediate) { if (source is SmartUpdateMediatorLiveData) { if (source in sources) { @@ -147,8 +143,8 @@ abstract class SmartUpdateMediatorLiveData<T>(private val isStaticVal: Boolean = try { super.addSource(source, onChanged) } catch (ex: IllegalStateException) { - val other = ex as java.lang.Throwable - throw other.initCause(exception) + ex.setStackTrace(stackTrace) + throw ex } } } @@ -189,7 +185,7 @@ abstract class SmartUpdateMediatorLiveData<T>(private val isStaticVal: Boolean = val removed = toRemove.map { have.remove(it) }.toMutableList() - val stackTraceException = java.lang.IllegalStateException(stacktraceExceptionMessage) + val stackTrace = IllegalStateException().getStackTrace() GlobalScope.launch(Main.immediate) { // If any state got out of sorts before this coroutine ran, correct it @@ -212,7 +208,7 @@ abstract class SmartUpdateMediatorLiveData<T>(private val isStaticVal: Boolean = update() } } - addSourceWithError(liveData, observer, stackTraceException) + addSourceWithStackTraceAttribution(liveData, observer, stackTrace) } } return toAdd to toRemove diff --git a/PermissionController/src/com/android/permissioncontroller/permission/data/UserPackageInfosLiveData.kt b/PermissionController/src/com/android/permissioncontroller/permission/data/UserPackageInfosLiveData.kt index 92ee77d8e..36586e7cc 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/data/UserPackageInfosLiveData.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/data/UserPackageInfosLiveData.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.data diff --git a/PermissionController/src/com/android/permissioncontroller/permission/model/livedatatypes/LightPackageInfo.kt b/PermissionController/src/com/android/permissioncontroller/permission/model/livedatatypes/LightPackageInfo.kt index d76593ba5..0f6b6c000 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/model/livedatatypes/LightPackageInfo.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/model/livedatatypes/LightPackageInfo.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.model.livedatatypes diff --git a/PermissionController/src/com/android/permissioncontroller/permission/model/livedatatypes/LightPermGroupInfo.kt b/PermissionController/src/com/android/permissioncontroller/permission/model/livedatatypes/LightPermGroupInfo.kt index c73f24204..6aff2f3c9 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/model/livedatatypes/LightPermGroupInfo.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/model/livedatatypes/LightPermGroupInfo.kt @@ -41,11 +41,11 @@ data class LightPermGroupInfo( val isSinglePermGroup: Boolean ) { - constructor(pII: PackageItemInfo): this(pII.name, pII.packageName, pII.labelRes, pII.icon, + constructor(pII: PackageItemInfo) : this(pII.name, pII.packageName, pII.labelRes, pII.icon, 0, pII is PermissionInfo) - constructor(pGI: PermissionGroupInfo): this(pGI.name, pGI.packageName, pGI.labelRes, pGI.icon, - pGI.descriptionRes, pGI is PermissionInfo) + constructor(pGI: PermissionGroupInfo) : this(pGI.name, pGI.packageName, pGI.labelRes, pGI.icon, + pGI.descriptionRes, false) /** * Gets the PackageItemInfo for this permission group from the system. diff --git a/PermissionController/src/com/android/permissioncontroller/permission/model/v34/AppDataSharingUpdate.kt b/PermissionController/src/com/android/permissioncontroller/permission/model/v34/AppDataSharingUpdate.kt index ab0de7205..2f6d921f8 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/model/v34/AppDataSharingUpdate.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/model/v34/AppDataSharingUpdate.kt @@ -60,7 +60,7 @@ data class AppDataSharingUpdate( val categoryUpdateMap = mutableMapOf<String, DataSharingUpdateType>() for (category in categories) { - var categoryUpdateType: DataSharingUpdateType? = null + var categoryUpdateType: DataSharingUpdateType? val beforeSharesData = safetyLabelBefore.sharesData(category) val beforeSharesDataForAds = safetyLabelBefore.sharesDataForAdsPurpose(category) diff --git a/PermissionController/src/com/android/permissioncontroller/permission/service/AutoRevokePermissions.kt b/PermissionController/src/com/android/permissioncontroller/permission/service/AutoRevokePermissions.kt index 6aaa5e468..c42913c84 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/service/AutoRevokePermissions.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/service/AutoRevokePermissions.kt @@ -81,9 +81,9 @@ suspend fun revokeAppPermissions( val pkgPermChanges = PermissionChangeStorageImpl.getInstance().loadEvents() .associateBy { it.packageName } // For each autorevoke-eligible app... - userApps.forEachInParallel(Main) { pkg: LightPackageInfo -> + userApps.forEachInParallel(Main) forEachInParallelOuter@ { pkg: LightPackageInfo -> if (pkg.grantedPermissions.isEmpty()) { - return@forEachInParallel + return@forEachInParallelOuter } val packageName = pkg.packageName val pkgPermChange = pkgPermChanges[packageName] @@ -93,12 +93,12 @@ suspend fun revokeAppPermissions( DumpableLog.i(LOG_TAG, "Not revoking because permissions were changed " + "recently for package $packageName") } - return@forEachInParallel + return@forEachInParallelOuter } val targetSdk = pkg.targetSdkVersion val pkgPermGroups: Map<String, List<String>> = PackagePermissionsLiveData[packageName, user] - .getInitializedValue() ?: return@forEachInParallel + .getInitializedValue() ?: return@forEachInParallelOuter // Determine which permGroups are revocable val revocableGroups = mutableSetOf<String>() @@ -152,8 +152,7 @@ suspend fun revokeAppPermissions( val anyPermsRevoked = AtomicBoolean(false) pkgPermGroups.entries .filter { revocableGroups.contains(it.key) } - .forEachInParallel(Main) { (groupName, _) -> - + .forEachInParallel(Main) forEachInParallelInner@ { (groupName, _) -> val group: LightAppPermGroup = LightAppPermGroupLiveData[packageName, groupName, user] .getInitializedValue()!! @@ -161,7 +160,7 @@ suspend fun revokeAppPermissions( val revocablePermissions = group.permissions.keys.toList() if (revocablePermissions.isEmpty()) { - return@forEachInParallel + return@forEachInParallelInner } if (DEBUG_AUTO_REVOKE) { diff --git a/PermissionController/src/com/android/permissioncontroller/permission/service/PermissionChangeStorageImpl.kt b/PermissionController/src/com/android/permissioncontroller/permission/service/PermissionChangeStorageImpl.kt index eac97fed1..bdcf833fc 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/service/PermissionChangeStorageImpl.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/service/PermissionChangeStorageImpl.kt @@ -25,6 +25,7 @@ import com.android.permissioncontroller.PermissionControllerApplication import com.android.permissioncontroller.hibernation.getUnusedThresholdMs import com.android.permissioncontroller.permission.data.PermissionChange import com.android.permissioncontroller.permission.utils.Utils +import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch @@ -90,6 +91,7 @@ class PermissionChangeStorageImpl( return PermissionChangeStorageImpl(PermissionControllerApplication.get()) } + @OptIn(DelicateCoroutinesApi::class) fun recordPermissionChange(packageName: String) { GlobalScope.launch(Dispatchers.IO) { getInstance().storeEvent(PermissionChange(packageName, System.currentTimeMillis())) @@ -162,7 +164,7 @@ class PermissionChangeStorageImpl( ?: throw IllegalArgumentException( "Could not parse date $changeDate on package $packageName") if (truncateToDay) { - changeTime = dateFormat.parse(dateFormat.format(Date(changeTime))).time + changeTime = dateFormat.parse(dateFormat.format(Date(changeTime)))!!.time } change = PermissionChange(packageName, changeTime) } catch (e: XmlPullParserException) { diff --git a/PermissionController/src/com/android/permissioncontroller/permission/service/PermissionControllerServiceModel.kt b/PermissionController/src/com/android/permissioncontroller/permission/service/PermissionControllerServiceModel.kt index 0689e86e6..49a465898 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/service/PermissionControllerServiceModel.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/service/PermissionControllerServiceModel.kt @@ -291,9 +291,7 @@ class PermissionControllerServiceModel(private val service: PermissionController val unusedAppsCount = Transformations.map(getUnusedPackages()) { it?.size ?: 0 } - observeAndCheckForLifecycleState(unusedAppsCount) { unusedAppsCount -> - callback.accept(unusedAppsCount ?: 0) - } + observeAndCheckForLifecycleState(unusedAppsCount) { count -> callback.accept(count ?: 0) } } /** diff --git a/PermissionController/src/com/android/permissioncontroller/permission/service/RuntimePermissionsUpgradeController.kt b/PermissionController/src/com/android/permissioncontroller/permission/service/RuntimePermissionsUpgradeController.kt index 4ddbd6859..97f817cff 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/service/RuntimePermissionsUpgradeController.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/service/RuntimePermissionsUpgradeController.kt @@ -76,7 +76,7 @@ internal object RuntimePermissionsUpgradeController { } if (currentVersion != upgradedVersion) { - permissionManager!!.runtimePermissionsVersion = LATEST_VERSION + permissionManager.runtimePermissionsVersion = LATEST_VERSION } onComplete.run() } @@ -283,7 +283,6 @@ internal object RuntimePermissionsUpgradeController { val bgGroups = mutableListOf<LightAppPermGroup>() val storageGroups = mutableListOf<LightAppPermGroup>() - val bgMicGroups = mutableListOf<LightAppPermGroup>() for (group in permGroupProviders!!.mapNotNull { it.value }) { when (group.permGroupName) { @@ -299,9 +298,6 @@ internal object RuntimePermissionsUpgradeController { permission_group.READ_MEDIA_VISUAL -> { storageGroups.add(group) } - permission_group.MICROPHONE -> { - bgMicGroups.add(group) - } } } @@ -318,7 +314,7 @@ internal object RuntimePermissionsUpgradeController { } value = UpgradeData(preinstalledPkgInfoProvider.value!!, restrictedPermissions, - pkgInfoProvider.value!!, bgGroups, storageGroups, bgMicGroups) + pkgInfoProvider.value!!, bgGroups, storageGroups) } } } @@ -338,7 +334,7 @@ internal object RuntimePermissionsUpgradeController { val (newVersion, upgradeExemptions, grants) = onUpgradeLockedDataLoaded(currentVersion, upgradeData.pkgs, upgradeData.restrictedPermissions, upgradeData.bgGroups, upgradeData.storageGroups, - upgradeData.bgMicGroups, isDeviceUpgrading) + isDeviceUpgrading) // Do not run in parallel. Measurements have shown that this is slower than sequential for (exemption in (preinstalledAppExemptions union upgradeExemptions)) { @@ -358,7 +354,6 @@ internal object RuntimePermissionsUpgradeController { restrictedPermissions: Set<String>, bgApps: List<LightAppPermGroup>, storageAndMediaAppPermGroups: List<LightAppPermGroup>, - bgMicApps: List<LightAppPermGroup>, isDeviceUpgrading: Boolean ): Triple<Int, List<RestrictionExemption>, List<Grant>> { val exemptions = mutableListOf<RestrictionExemption>() @@ -565,11 +560,6 @@ internal object RuntimePermissionsUpgradeController { * Storage groups that need to be inspected by {@link #onUpgradeLockedDataLoaded} */ val storageGroups: List<LightAppPermGroup>, - /** - * Background Microphone groups that need to be inspected by - * {@link #onUpgradeLockedDataLoaded} - */ - val bgMicGroups: List<LightAppPermGroup> ) /** diff --git a/PermissionController/src/com/android/permissioncontroller/permission/service/SplitPermissionIndex.kt b/PermissionController/src/com/android/permissioncontroller/permission/service/SplitPermissionIndex.kt index c55651cc0..115200b2f 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/service/SplitPermissionIndex.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/service/SplitPermissionIndex.kt @@ -41,11 +41,11 @@ class SplitPermissionIndex() { val newPermGroup = PermissionMapping.getGroupOfPlatformPermission(newPerm) if (newPermGroup != null) { permToGroupSplits.add(SplitPermissionIndexEntry( - oldPerm, splitPerm.targetSdk, newPermGroup!!)) + oldPerm, splitPerm.targetSdk, newPermGroup)) } if (oldPermGroup != null && newPermGroup != null) { groupToGroupSplits.add(SplitPermissionIndexEntry( - oldPermGroup!!, splitPerm.targetSdk, newPermGroup!!)) + oldPermGroup, splitPerm.targetSdk, newPermGroup)) } } } diff --git a/PermissionController/src/com/android/permissioncontroller/permission/service/v33/SafetyCenterQsTileService.kt b/PermissionController/src/com/android/permissioncontroller/permission/service/v33/SafetyCenterQsTileService.kt index bd38b4df5..6ffd894ce 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/service/v33/SafetyCenterQsTileService.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/service/v33/SafetyCenterQsTileService.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.service.v33 diff --git a/PermissionController/src/com/android/permissioncontroller/permission/service/v34/SafetyLabelChangesJobService.kt b/PermissionController/src/com/android/permissioncontroller/permission/service/v34/SafetyLabelChangesJobService.kt index c15741d56..f8584048e 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/service/v34/SafetyLabelChangesJobService.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/service/v34/SafetyLabelChangesJobService.kt @@ -111,8 +111,7 @@ class SafetyLabelChangesJobService : JobService() { } private fun isContextInProfileUser(context: Context): Boolean { - val userManager: UserManager = - (context.getSystemService(UserManager::class.java) as UserManager?)!! + val userManager: UserManager = context.getSystemService(UserManager::class.java)!! return userManager.isProfile } } @@ -350,7 +349,7 @@ class SafetyLabelChangesJobService : JobService() { private suspend fun getAllPackagesGrantedLocation(): Set<Pair<String, UserHandle>> = SinglePermGroupPackagesUiInfoLiveData[Manifest.permission_group.LOCATION] .getInitializedValue(staleOk = false, forceUpdate = true) - .filter { (packageKey, appPermGroupUiInfo) -> appPermGroupUiInfo.isPermissionGranted() } + .filter { (_, appPermGroupUiInfo) -> appPermGroupUiInfo.isPermissionGranted() } .keys private fun AppPermGroupUiInfo.isPermissionGranted() = @@ -390,7 +389,7 @@ class SafetyLabelChangesJobService : JobService() { .filter { it.containsLocationCategoryUpdate() } .map { it.packageName } val packageNamesWithLocationGranted: List<String> = - getAllPackagesGrantedLocation().map { (packageName, user) -> packageName } + getAllPackagesGrantedLocation().map { (packageName, _) -> packageName } val packageNamesWithLocationGrantedAndUpdates = packageNamesWithLocationDataSharingUpdates.intersect(packageNamesWithLocationGranted) diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/UnusedAppsFragment.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/UnusedAppsFragment.kt index 48ac04ae5..68fb493eb 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/UnusedAppsFragment.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/UnusedAppsFragment.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.ui @@ -131,10 +132,7 @@ class UnusedAppsFragment<PF, UnusedAppPref> : Fragment() override fun onStart() { super.onStart() - val ab = activity?.actionBar - if (ab != null) { - ab!!.setElevation(ELEVATION_HIGH) - } + activity?.actionBar?.setElevation(ELEVATION_HIGH) } override fun onActivityCreated(savedInstanceState: Bundle?) { @@ -147,6 +145,7 @@ class UnusedAppsFragment<PF, UnusedAppPref> : Fragment() } } + @Suppress("UNCHECKED_CAST") private fun requirePreferenceFragment(): PF { return requireParentFragment() as PF } @@ -175,6 +174,7 @@ class UnusedAppsFragment<PF, UnusedAppPref> : Fragment() infoMsgCategory?.addPreference(footerPreference) } + @Suppress("UNCHECKED_CAST") private fun updatePackages(categorizedPackages: Map<UnusedPeriod, List<UnusedPackageInfo>>) { val preferenceFragment: PF = requirePreferenceFragment() if (preferenceFragment.preferenceScreen == null) { @@ -262,9 +262,7 @@ class UnusedAppsFragment<PF, UnusedAppPref> : Fragment() preferenceFragment.setEmptyState(allCategoriesEmpty) if (isFirstLoad) { - if (categorizedPackages.any { (_, packages) -> - packages!!.isNotEmpty() - }) { + if (categorizedPackages.any { (_, packages) -> packages.isNotEmpty() }) { isFirstLoad = false } Log.i(LOG_TAG, "sessionId: $sessionId Showed Auto Revoke Page") diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoReviewPermissionDecisionsFragment.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoReviewPermissionDecisionsFragment.kt index 1472de4f8..92917a342 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoReviewPermissionDecisionsFragment.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoReviewPermissionDecisionsFragment.kt @@ -13,6 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") + package com.android.permissioncontroller.permission.ui.auto import android.annotation.SuppressLint diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoReviewPermissionDecisionsViewAllFragment.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoReviewPermissionDecisionsViewAllFragment.kt index 35eb91299..9f9471fdf 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoReviewPermissionDecisionsViewAllFragment.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoReviewPermissionDecisionsViewAllFragment.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.ui.auto diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoUnusedAppsFragment.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoUnusedAppsFragment.kt index 0e0d8277c..61f77c81a 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoUnusedAppsFragment.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoUnusedAppsFragment.kt @@ -13,6 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") + package com.android.permissioncontroller.permission.ui.auto import android.app.Application diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/dashboard/AutoPermissionUsageDetailsFragment.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/dashboard/AutoPermissionUsageDetailsFragment.kt index d516b8de0..eee9e8b6e 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/dashboard/AutoPermissionUsageDetailsFragment.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/dashboard/AutoPermissionUsageDetailsFragment.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.ui.auto.dashboard @@ -203,8 +204,6 @@ class AutoPermissionUsageDetailsFragment : preferenceScreen.removeAll() setupHeaderPreferences() - val exemptedPackages = Utils.getExemptedPackages(roleManager) - val uiData = usageViewModel.buildPermissionUsageDetailsUiData( appPermissionUsages, showSystem, SHOW_7_DAYS) diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/dashboard/AutoPermissionUsageFragment.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/dashboard/AutoPermissionUsageFragment.kt index 1e4c4fadf..a21e257c3 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/dashboard/AutoPermissionUsageFragment.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/dashboard/AutoPermissionUsageFragment.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.ui.auto.dashboard diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/GrantPermissionsViewHandlerImpl.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/GrantPermissionsViewHandlerImpl.kt index ea3c27d73..c7616f0d8 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/GrantPermissionsViewHandlerImpl.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/GrantPermissionsViewHandlerImpl.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.ui.handheld diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/HandheldUnusedAppsFragment.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/HandheldUnusedAppsFragment.kt index 1c3dfe11e..e2fdfc86e 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/HandheldUnusedAppsFragment.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/HandheldUnusedAppsFragment.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.ui.handheld diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/HandheldUnusedAppsWrapperFragment.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/HandheldUnusedAppsWrapperFragment.kt index 2dce146d0..44a9f3d08 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/HandheldUnusedAppsWrapperFragment.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/HandheldUnusedAppsWrapperFragment.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.ui.handheld diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/UnusedAppPreference.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/UnusedAppPreference.kt index 6c94a304b..dfab55ed7 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/UnusedAppPreference.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/UnusedAppPreference.kt @@ -50,10 +50,10 @@ class UnusedAppPreference( super.onBindViewHolder(holder) val removeButton = holder.findViewById(R.id.uninstall_button) as ImageButton - removeButton?.setOnClickListener { + removeButton.setOnClickListener { removeRunnable?.run() } - removeButton?.isEnabled = removeButtonEnabled + removeButton.isEnabled = removeButtonEnabled } override fun setRemoveClickRunnable(runnable: Runnable) { diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/v34/AppDataSharingUpdatesFragment.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/v34/AppDataSharingUpdatesFragment.kt index 73b7dca77..7180fd526 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/v34/AppDataSharingUpdatesFragment.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/v34/AppDataSharingUpdatesFragment.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package com.android.permissioncontroller.permission.ui.handheld.v34 import android.graphics.Color @@ -131,7 +133,6 @@ class AppDataSharingUpdatesFragment : PermissionsFrameFragment() { getString(R.string.shares_location_with_third_parties) DataSharingUpdateType.ADDS_SHARING_WITH_ADVERTISING_PURPOSE -> getString(R.string.shares_location_with_third_parties_for_advertising) - else -> throw IllegalArgumentException("Invalid DataSharingUpdateType: $type") } } diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/AllAppPermissionsViewModel.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/AllAppPermissionsViewModel.kt index 504cb5231..d789f4e1e 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/AllAppPermissionsViewModel.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/AllAppPermissionsViewModel.kt @@ -80,7 +80,7 @@ class AllAppPermissionsViewModel( value = permissions .filter { filterGroup == null || it.key == filterGroup } .filter { (it.key != Manifest.permission_group.STORAGE || - Utils.shouldShowStorage(packageInfo!!)) } + Utils.shouldShowStorage(packageInfo)) } } } } diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/AppPermissionViewModel.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/AppPermissionViewModel.kt index ac20a7748..0673af10d 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/AppPermissionViewModel.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/AppPermissionViewModel.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.ui.model @@ -273,7 +274,7 @@ class AppPermissionViewModel( mediaStorageSupergroupPermGroups.remove(permGroupName) value = null } else { - mediaStorageSupergroupPermGroups[permGroupName] = permGroup!! + mediaStorageSupergroupPermGroups[permGroupName] = permGroup update() } } @@ -733,13 +734,13 @@ class AppPermissionViewModel( } val groupsToUpdate = expandToSupergroup(group) - for (group in groupsToUpdate) { - var newGroup = group - val oldGroup = group + for (group2 in groupsToUpdate) { + var newGroup = group2 + val oldGroup = group2 - if (shouldRevokeBackground && group.hasBackgroundGroup && - (wasBackgroundGranted || group.background.isUserFixed || - group.isOneTime != setOneTime)) { + if (shouldRevokeBackground && group2.hasBackgroundGroup && + (wasBackgroundGranted || group2.background.isUserFixed || + group2.isOneTime != setOneTime)) { newGroup = KotlinUtils .revokeBackgroundRuntimePermissions(app, newGroup, oneTime = setOneTime) @@ -750,7 +751,8 @@ class AppPermissionViewModel( } } - if (shouldRevokeForeground && (wasForegroundGranted || group.isOneTime != setOneTime)) { + if (shouldRevokeForeground && + (wasForegroundGranted || group2.isOneTime != setOneTime)) { newGroup = KotlinUtils .revokeForegroundRuntimePermissions(app, newGroup, false, setOneTime) @@ -775,7 +777,7 @@ class AppPermissionViewModel( } } - if (shouldGrantBackground && group.hasBackgroundGroup) { + if (shouldGrantBackground && group2.hasBackgroundGroup) { newGroup = KotlinUtils.grantBackgroundRuntimePermissions(app, newGroup) if (!wasBackgroundGranted) { @@ -915,10 +917,9 @@ class AppPermissionViewModel( * */ fun onDenyAnyWay(changeRequest: ChangeRequest, buttonPressed: Int, oneTime: Boolean) { - val group = lightAppPermGroup ?: return + val unexpandedGroup = lightAppPermGroup ?: return - val groupsToUpdate = expandToSupergroup(group) - for (group in groupsToUpdate) { + for (group in expandToSupergroup(unexpandedGroup)) { val wasForegroundGranted = group.foreground.isGranted val wasBackgroundGranted = group.background.isGranted var hasDefaultPermissions = false diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/GrantPermissionsViewModel.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/GrantPermissionsViewModel.kt index d539fd5a2..2d27d22fd 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/GrantPermissionsViewModel.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/GrantPermissionsViewModel.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.ui.model @@ -930,10 +931,10 @@ class GrantPermissionsViewModel( if (!alreadyRequestedStorageGroupsIfNeeded && groupName in PermissionMapping.STORAGE_SUPERGROUP_PERMISSIONS && packageInfo.targetSdkVersion <= Build.VERSION_CODES.S_V2) { - for (groupName in PermissionMapping.STORAGE_SUPERGROUP_PERMISSIONS) { - val groupPerms = appPermGroupLiveDatas[groupName] + for (storageGroupName in PermissionMapping.STORAGE_SUPERGROUP_PERMISSIONS) { + val groupPerms = appPermGroupLiveDatas[storageGroupName] ?.value?.allPermissions?.keys?.toList() - onPermissionGrantResult(groupName, groupPerms, result, true) + onPermissionGrantResult(storageGroupName, groupPerms, result, true) } return } @@ -1292,7 +1293,9 @@ class GrantPermissionsViewModel( if (activityResultCallback != null) { return } - val permissions = groupStates[READ_MEDIA_VISUAL to false]?.affectedPermissions ?: return + if (groupStates[READ_MEDIA_VISUAL to false]?.affectedPermissions == null) { + return + } activityResultCallback = Consumer { data -> val anySelected = data?.getBooleanExtra(INTENT_PHOTOS_SELECTED, true) == true if (anySelected) { @@ -1502,15 +1505,15 @@ class GrantPermissionsViewModel( * An enum that represents the type of message which should be shown- foreground, * background, upgrade, or no message. */ - enum class RequestMessage(request: Int) { - FG_MESSAGE(0), - BG_MESSAGE(1), - UPGRADE_MESSAGE(2), - NO_MESSAGE(3), - FG_FINE_LOCATION_MESSAGE(4), - FG_COARSE_LOCATION_MESSAGE(5), - STORAGE_SUPERGROUP_MESSAGE_Q_TO_S(6), - STORAGE_SUPERGROUP_MESSAGE_PRE_Q(7), + enum class RequestMessage { + FG_MESSAGE, + BG_MESSAGE, + UPGRADE_MESSAGE, + NO_MESSAGE, + FG_FINE_LOCATION_MESSAGE, + FG_COARSE_LOCATION_MESSAGE, + STORAGE_SUPERGROUP_MESSAGE_Q_TO_S, + STORAGE_SUPERGROUP_MESSAGE_PRE_Q, } /** diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/PermissionAppsViewModel.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/PermissionAppsViewModel.kt index cd1a936f7..1b17041b6 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/PermissionAppsViewModel.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/PermissionAppsViewModel.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.ui.model @@ -156,7 +157,7 @@ class PermissionAppsViewModel( } } - private val listener = { sensor: Int, status: Boolean -> + private val listener = { _: Int, status: Boolean -> value = status } @@ -464,7 +465,7 @@ class PermissionAppsViewModelFactory( defaultArgs: Bundle ) : AbstractSavedStateViewModelFactory(owner, defaultArgs) { - override fun <T : ViewModel?> create(p0: String, p1: Class<T>, state: SavedStateHandle): T { + override fun <T : ViewModel> create(p0: String, p1: Class<T>, state: SavedStateHandle): T { state.set(SHOULD_SHOW_SYSTEM_KEY, state.get<Boolean>(SHOULD_SHOW_SYSTEM_KEY) ?: false) state.set(HAS_SYSTEM_APPS_KEY, state.get<Boolean>(HAS_SYSTEM_APPS_KEY) ?: true) state.set(SHOW_ALWAYS_ALLOWED, state.get<Boolean>(SHOW_ALWAYS_ALLOWED) ?: false) diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/ReviewOngoingUsageViewModel.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/ReviewOngoingUsageViewModel.kt index 309b9eba1..17a1ee7a6 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/ReviewOngoingUsageViewModel.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/ReviewOngoingUsageViewModel.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.ui.model import android.Manifest @@ -139,14 +139,6 @@ class ReviewOngoingUsageViewModel( return } - // Update set of permGroupUiInfos if needed - val requiredUiInfos = permGroupUsages.value!!.flatMap { - (permissionGroupName, accesses) -> - accesses.map { access -> - Triple(access.packageName, permissionGroupName, access.user) - } - } - // Filter out system package val filteredUsages = mutableMapOf<PackageAttribution, MutableSet<String>>() for ((permGroupName, usages) in permGroupUsages.value!!) { @@ -559,7 +551,7 @@ class ReviewOngoingUsageViewModelFactory( owner: SavedStateRegistryOwner, defaultArgs: Bundle ) : AbstractSavedStateViewModelFactory(owner, defaultArgs) { - override fun <T : ViewModel?> create(p0: String, p1: Class<T>, state: SavedStateHandle): T { + override fun <T : ViewModel> create(p0: String, p1: Class<T>, state: SavedStateHandle): T { state.set(FIRST_OPENED_KEY, state.get<Long>(FIRST_OPENED_KEY) ?: System.currentTimeMillis()) @Suppress("UNCHECKED_CAST") diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/UnusedAppsViewModel.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/UnusedAppsViewModel.kt index ad4caa014..3c3f347a4 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/UnusedAppsViewModel.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/UnusedAppsViewModel.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.ui.model @@ -68,7 +69,7 @@ class UnusedAppsViewModel(private val app: Application, private val sessionId: L val months: Int = (duration.inWholeDays / 30).toInt() - inline fun isNewlyUnused(): Boolean { + fun isNewlyUnused(): Boolean { return (this == ONE_MONTH) || (this == THREE_MONTHS) } 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 0063e4157..e9a805375 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 @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.ui.model.v31 @@ -620,7 +621,7 @@ class PermissionUsageDetailsViewModel( owner: SavedStateRegistryOwner, private val permissionGroup: String, ) : AbstractSavedStateViewModelFactory(owner, Bundle()) { - override fun <T : ViewModel?> create( + override fun <T : ViewModel> create( key: String, modelClass: Class<T>, handle: SavedStateHandle, diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageDetailsViewModelLegacy.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageDetailsViewModelLegacy.kt index 5faa186d9..667667200 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageDetailsViewModelLegacy.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageDetailsViewModelLegacy.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.ui.model.v31 @@ -141,7 +142,7 @@ class PermissionUsageDetailsViewModelLegacy( val proxyLabel = getProxyPackageLabel(discreteAccessClusterData) val subattributionLabel = getSubattributionLabel(discreteAccessClusterData) val showingSubattribution = - subattributionLabel != null && subattributionLabel!!.isNotEmpty() + subattributionLabel != null && subattributionLabel.isNotEmpty() val summary = buildUsageSummary(durationSummaryLabel, proxyLabel, subattributionLabel, context) @@ -376,7 +377,7 @@ class PermissionUsageDetailsViewModelLegacy( getPackageLabel( PermissionControllerApplication.get(), it.proxy!!.packageName!!, - UserHandle.getUserHandleForUid(it.proxy!!.uid)) + UserHandle.getUserHandleForUid(it.proxy.uid)) } /** Returns the attribution label for the permission access, if any. */ diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageViewModel.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageViewModel.kt index c50d73a0b..2ea913804 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageViewModel.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageViewModel.kt @@ -347,7 +347,7 @@ class PermissionUsageViewModel( owner: SavedStateRegistryOwner, defaultArgs: Bundle ) : AbstractSavedStateViewModelFactory(owner, defaultArgs) { - override fun <T : ViewModel?> create( + override fun <T : ViewModel> create( key: String, modelClass: Class<T>, handle: SavedStateHandle diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageViewModelLegacy.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageViewModelLegacy.kt index 8f1dacbb2..ff21a7216 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageViewModelLegacy.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageViewModelLegacy.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.ui.model.v31 diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/television/TvUnusedAppsFragment.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/television/TvUnusedAppsFragment.kt index b21b4cb88..07e2ab08f 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/television/TvUnusedAppsFragment.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/television/TvUnusedAppsFragment.kt @@ -13,6 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") + package com.android.permissioncontroller.permission.ui.television import android.app.Application diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/widget/SafetyProtectionSectionView.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/widget/SafetyProtectionSectionView.kt index e20067d13..f1a1c972e 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/widget/SafetyProtectionSectionView.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/widget/SafetyProtectionSectionView.kt @@ -62,7 +62,7 @@ class SafetyProtectionSectionView : LinearLayout { LayoutInflater.from(context).inflate(R.layout.safety_protection_section, this) val safetyProtectionDisplayTextView = requireViewById<TextView>(R.id.safety_protection_display_text) - safetyProtectionDisplayTextView!!.setText(Html.fromHtml( + safetyProtectionDisplayTextView.setText(Html.fromHtml( context.getString(android.R.string.safety_protection_display_text), 0)) } } diff --git a/PermissionController/src/com/android/permissioncontroller/permission/utils/AndroidUtils.kt b/PermissionController/src/com/android/permissioncontroller/permission/utils/AndroidUtils.kt index 70b357ba3..6a6623da7 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/utils/AndroidUtils.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/utils/AndroidUtils.kt @@ -68,18 +68,12 @@ fun PackageManager.updatePermissionFlags( vararg flags: Pair<Int, Boolean> ) { val mask = flags.fold(0, { mask, (flag, _) -> mask or flag }) - val value = flags.fold(0, { mask, (flag, flagValue) -> if (flagValue) mask or flag else mask }) + val value = flags.fold(0, + { mask2, (flag, flagValue) -> if (flagValue) mask2 or flag else mask2 }) updatePermissionFlags(permissionName, packageName, mask, value, user) } /** - * @see UserHandle.getUid - */ -fun UserHandle.getUid(appId: Int): Int { - return identifier * 100000 + (appId % 100000) -} - -/** * Gets a [ComponentInfo] from a [ResolveInfo] */ val ResolveInfo.componentInfo: ComponentInfo diff --git a/PermissionController/src/com/android/permissioncontroller/permission/utils/KotlinUtils.kt b/PermissionController/src/com/android/permissioncontroller/permission/utils/KotlinUtils.kt index 95c0f6911..9bbb09cb8 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/utils/KotlinUtils.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/utils/KotlinUtils.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.utils @@ -527,7 +528,6 @@ object KotlinUtils { * * @return The package's icon, or null, if the package does not exist */ - @JvmOverloads fun getBadgedPackageIcon( app: Application, packageName: String, @@ -774,10 +774,10 @@ object KotlinUtils { if (!newPerms.isEmpty()) { val user = UserHandle.getUserHandleForUid(group.packageInfo.uid) for (groupPerm in group.allPermissions.values) { - var permFlags = groupPerm!!.flags + var permFlags = groupPerm.flags permFlags = permFlags.clearFlag(FLAG_PERMISSION_AUTO_REVOKED) - if (groupPerm!!.flags != permFlags) { - app.packageManager.updatePermissionFlags(groupPerm!!.name, + if (groupPerm.flags != permFlags) { + app.packageManager.updatePermissionFlags(groupPerm.name, group.packageInfo.packageName, PERMISSION_CONTROLLER_CHANGED_FLAG_MASK, permFlags, user) } @@ -1383,14 +1383,14 @@ object KotlinUtils { var resolveInfos = context.packageManager.queryIntentActivities(intentToResolve, MATCH_DIRECT_BOOT_AWARE or MATCH_DIRECT_BOOT_UNAWARE) - if (resolveInfos == null || resolveInfos.size <= 0) { + if (resolveInfos.size <= 0) { intentToResolve.removeCategory(CATEGORY_INFO) intentToResolve.addCategory(CATEGORY_LAUNCHER) intentToResolve.setPackage(packageName) resolveInfos = context.packageManager.queryIntentActivities(intentToResolve, MATCH_DIRECT_BOOT_AWARE or MATCH_DIRECT_BOOT_UNAWARE) } - return resolveInfos != null && resolveInfos.size > 0 + return resolveInfos.size > 0 } /** @@ -1489,7 +1489,7 @@ suspend fun <T, LD : LiveData<T>> LD.getInitializedValue( isInitialized: LD.() -> Boolean = { value != null } ): T { return if (isInitialized()) { - value as T + value!! } else { suspendCoroutine { continuation: Continuation<T> -> val observer = AtomicReference<Observer<T>>() diff --git a/PermissionController/src/com/android/permissioncontroller/permission/utils/PermissionMapping.kt b/PermissionController/src/com/android/permissioncontroller/permission/utils/PermissionMapping.kt index 3fde87108..c0b174c28 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/utils/PermissionMapping.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/utils/PermissionMapping.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.permission.utils diff --git a/PermissionController/src/com/android/permissioncontroller/privacysources/NotificationListenerCheck.kt b/PermissionController/src/com/android/permissioncontroller/privacysources/NotificationListenerCheck.kt index 83222bf4a..4e86c7d17 100644 --- a/PermissionController/src/com/android/permissioncontroller/privacysources/NotificationListenerCheck.kt +++ b/PermissionController/src/com/android/permissioncontroller/privacysources/NotificationListenerCheck.kt @@ -550,7 +550,7 @@ internal class NotificationListenerCheckInternal( .setDeleteIntent(deletePendingIntent) .setContentIntent(clickPendingIntent) - if (appLabel != null && appLabel.isNotEmpty()) { + if (appLabel.isNotEmpty()) { val appNameExtras = Bundle() appNameExtras.putString(Notification.EXTRA_SUBSTITUTE_APP_NAME, appLabel.toString()) b.addExtras(appNameExtras) diff --git a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyGroupPreference.kt b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyGroupPreference.kt index 75e8800c1..2a9f6f780 100644 --- a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyGroupPreference.kt +++ b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyGroupPreference.kt @@ -59,12 +59,12 @@ class SafetyGroupPreference( onCollapsedListener) } - override fun isSameItem(other: Preference): Boolean = - other is SafetyGroupPreference && TextUtils.equals(group.id, other.group.id) + override fun isSameItem(preference: Preference): Boolean = + preference is SafetyGroupPreference && TextUtils.equals(group.id, preference.group.id) - override fun hasSameContents(other: Preference): Boolean = - other is SafetyGroupPreference && - group == other.group && - isFirstCard == other.isFirstCard && - isLastCard == other.isLastCard + override fun hasSameContents(preference: Preference): Boolean = + preference is SafetyGroupPreference && + group == preference.group && + isFirstCard == preference.isFirstCard && + isLastCard == preference.isLastCard } diff --git a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/model/PrivacyControlsViewModel.kt b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/model/PrivacyControlsViewModel.kt index 606bdb5b3..be8b1e8c5 100644 --- a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/model/PrivacyControlsViewModel.kt +++ b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/model/PrivacyControlsViewModel.kt @@ -107,6 +107,7 @@ class PrivacyControlsViewModel(private val app: Application) : AndroidViewModel( sensorPrivacyManager.removeSensorPrivacyListener(this) } + @Suppress("OVERRIDE_DEPRECATION") override fun onSensorPrivacyChanged(sensor: Int, enabled: Boolean) { update() } diff --git a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/model/SafetyCenterQsViewModel.kt b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/model/SafetyCenterQsViewModel.kt index e3e881724..73c7da99f 100644 --- a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/model/SafetyCenterQsViewModel.kt +++ b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/model/SafetyCenterQsViewModel.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +@file:Suppress("DEPRECATION") package com.android.permissioncontroller.safetycenter.ui.model @@ -127,10 +128,9 @@ class SafetyCenterQsViewModel( UserHandle.getUserHandleForUid(usage.uid))] ?: return - if (group != null) { - KotlinUtils.revokeForegroundRuntimePermissions(app, group) - KotlinUtils.revokeBackgroundRuntimePermissions(app, group) - } + KotlinUtils.revokeForegroundRuntimePermissions(app, group) + KotlinUtils.revokeBackgroundRuntimePermissions(app, group) + revokedUsages.add(usage) } @@ -186,6 +186,7 @@ class SafetyCenterQsViewModel( LOCATION to SensorState(true, locationEnabled, locationEnforcedAdmin)) } + @Suppress("OVERRIDE_DEPRECATION") override fun onSensorPrivacyChanged(sensor: Int, enabled: Boolean) { update() } diff --git a/PermissionController/src/com/android/permissioncontroller/safetylabel/AppsSafetyLabelHistoryPersistence.kt b/PermissionController/src/com/android/permissioncontroller/safetylabel/AppsSafetyLabelHistoryPersistence.kt index 890f68e70..bd4619b3c 100644 --- a/PermissionController/src/com/android/permissioncontroller/safetylabel/AppsSafetyLabelHistoryPersistence.kt +++ b/PermissionController/src/com/android/permissioncontroller/safetylabel/AppsSafetyLabelHistoryPersistence.kt @@ -148,7 +148,7 @@ object AppsSafetyLabelHistoryPersistence { val appInfoToOrderedSafetyLabels = safetyLabelsToAdd .groupBy { it.appInfo } - .mapValues { (appInfo, safetyLabels) -> + .mapValues { (_, safetyLabels) -> safetyLabels.sortedBy { it.receivedAt } } val currentAppHistories = currentAppsSafetyLabelHistory.appSafetyLabelHistories diff --git a/service/Android.bp b/service/Android.bp index 11ff2c148..33cfa07a0 100644 --- a/service/Android.bp +++ b/service/Android.bp @@ -116,6 +116,7 @@ java_sdk_library { exclude_kotlinc_generated_files: true, jarjar_rules: "jarjar-rules.txt", kotlincflags: [ + "-Werror", "-Xjvm-default=all", "-Xno-call-assertions", "-Xno-param-assertions", |