From ec08a04698e3cb5d66cb23602bee028f0f17bbe2 Mon Sep 17 00:00:00 2001 From: Thomas Wirth Date: Wed, 14 Sep 2022 00:37:52 +0200 Subject: [PATCH] Update compile sdk to 33 --- .../activities/apkinstall/ApkFile.kt | 10 +++++++++- .../activities/appmanager/AppInfo.kt | 8 +++++++- .../device/systemapps/SystemAppsDataProvider.kt | 16 ++++++++++++++-- buildSrc/src/main/kotlin/Versions.kt | 4 ++-- 4 files changed, 32 insertions(+), 6 deletions(-) diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/apkinstall/ApkFile.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/apkinstall/ApkFile.kt index 8f5436bf..847be9fc 100644 --- a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/apkinstall/ApkFile.kt +++ b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/apkinstall/ApkFile.kt @@ -73,7 +73,15 @@ class ApkFile private constructor() : Comparable { size = getFormattedSize(file.length()) file.absolutePath.let { filePath -> - packageManager.getPackageArchiveInfo(filePath, PackageManager.GET_PERMISSIONS)?.let { packageInfo -> + if (VERSION.SDK_INT >= VERSION_CODES.TIRAMISU) { + packageManager.getPackageArchiveInfo( + filePath, + PackageManager.PackageInfoFlags.of(PackageManager.GET_PERMISSIONS.toLong()) + ) + } else { + @Suppress("DEPRECATION") + packageManager.getPackageArchiveInfo(filePath, PackageManager.GET_PERMISSIONS) + }?.let { packageInfo -> packageInfo.versionName?.let { versionName = it } PackageInfoCompat.getLongVersionCode(packageInfo).let { versionCode = it.toString() } dangerousPermissions = extractDangerousPermissions(packageInfo.requestedPermissions) diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/appmanager/AppInfo.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/appmanager/AppInfo.kt index 320448c4..fbe041e4 100644 --- a/app/src/main/kotlin/com/g00fy2/developerwidget/activities/appmanager/AppInfo.kt +++ b/app/src/main/kotlin/com/g00fy2/developerwidget/activities/appmanager/AppInfo.kt @@ -1,6 +1,7 @@ package com.g00fy2.developerwidget.activities.appmanager import android.content.pm.PackageInfo +import android.content.pm.PackageManager import android.graphics.drawable.AdaptiveIconDrawable import android.graphics.drawable.Drawable import android.graphics.drawable.InsetDrawable @@ -60,7 +61,12 @@ class AppInfo private constructor() : Comparable { private val packageManager = activity.packageManager override fun getInstalledPackages(): List { - return packageManager.getInstalledPackages(0) + return if (VERSION.SDK_INT >= VERSION_CODES.TIRAMISU) { + packageManager.getInstalledPackages(PackageManager.PackageInfoFlags.of(0)) + } else { + @Suppress("DEPRECATION") + packageManager.getInstalledPackages(0) + } } override fun build(packageInfo: PackageInfo): AppInfo { diff --git a/app/src/main/kotlin/com/g00fy2/developerwidget/data/device/systemapps/SystemAppsDataProvider.kt b/app/src/main/kotlin/com/g00fy2/developerwidget/data/device/systemapps/SystemAppsDataProvider.kt index 316b0b5b..6ea39040 100644 --- a/app/src/main/kotlin/com/g00fy2/developerwidget/data/device/systemapps/SystemAppsDataProvider.kt +++ b/app/src/main/kotlin/com/g00fy2/developerwidget/data/device/systemapps/SystemAppsDataProvider.kt @@ -3,6 +3,7 @@ package com.g00fy2.developerwidget.data.device.systemapps import android.annotation.SuppressLint import android.content.Context import android.content.pm.PackageInfo +import android.content.pm.PackageManager import android.content.pm.PackageManager.NameNotFoundException import android.os.Build.VERSION import android.os.Build.VERSION_CODES @@ -13,7 +14,7 @@ object SystemAppsDataProvider { fun getGooglePlayServicesVersion(context: Context): String { return try { - context.packageManager.getPackageInfo("com.google.android.gms", 0).versionName + context.getPackageInfo("com.google.android.gms").versionName } catch (e: NameNotFoundException) { "" } @@ -41,11 +42,22 @@ object SystemAppsDataProvider { Version(VERSION.RELEASE).isAtLeast("4.4.3") -> "WebView v33.0.0.0" VERSION.SDK_INT >= VERSION_CODES.KITKAT -> "WebView v30.0.0.0" else -> try { - context.packageManager.getPackageInfo("com.google.android.webview", 0) + context.getPackageInfo("com.google.android.webview") } catch (e: NameNotFoundException) { null }?.let { context.packageManager.getApplicationLabel(it.applicationInfo).toString() + " " + it.versionName } .orEmpty() } } + + private fun Context.getPackageInfo(packageName: String): PackageInfo { + return packageManager.run { + if (VERSION.SDK_INT >= VERSION_CODES.TIRAMISU) { + getPackageInfo(packageName, PackageManager.PackageInfoFlags.of(0)) + } else { + @Suppress("DEPRECATION") + getPackageInfo(packageName, 0) + } + } + } } \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 42128c8e..3f852866 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -1,10 +1,10 @@ object Versions { const val androidMinSdk = 14 - const val androidCompileSdk = 32 + const val androidCompileSdk = 33 const val androidTargetSdk = 29 - const val androidBuildTools = "32.0.0" + const val androidBuildTools = "33.0.0" const val androidGradle = "7.2.2" const val kotlin = "1.7.10"