Skip to content

Commit 40de96e

Browse files
committed
perf: compat android17 api
1 parent 179e35b commit 40de96e

File tree

5 files changed

+30
-4
lines changed

5 files changed

+30
-4
lines changed

app/src/main/kotlin/li/songe/gkd/shizuku/PackageManager.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package li.songe.gkd.shizuku
22

33
import android.Manifest
44
import android.content.pm.IPackageManager
5+
import android.content.pm.IPackageManagerCompat
56
import android.content.pm.PackageInfo
67
import li.songe.gkd.META
78
import li.songe.gkd.app
@@ -26,7 +27,9 @@ class SafePackageManager(private val value: IPackageManager) {
2627
flags: Int,
2728
userId: Int = currentUserId,
2829
): List<PackageInfo> = safeInvokeShizuku {
29-
if (AndroidTarget.TIRAMISU) {
30+
if (AndroidTarget.CINNAMON_BUN) {
31+
(value as IPackageManagerCompat).getInstalledPackages(flags.toLong(), userId).list
32+
} else if (AndroidTarget.TIRAMISU) {
3033
value.getInstalledPackages(flags.toLong(), userId).list
3134
} else {
3235
value.getInstalledPackages(flags, userId).list

app/src/main/kotlin/li/songe/gkd/util/AndroidTarget.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,8 @@ object AndroidTarget {
3131
/** Android 16+ */
3232
@get:ChecksSdkIntAtLeast(api = Build.VERSION_CODES.BAKLAVA)
3333
val BAKLAVA = Build.VERSION.SDK_INT >= Build.VERSION_CODES.BAKLAVA
34+
35+
/** Android 17+ */
36+
@get:ChecksSdkIntAtLeast(api = Build.VERSION_CODES.CINNAMON_BUN)
37+
val CINNAMON_BUN = Build.VERSION.SDK_INT >= Build.VERSION_CODES.CINNAMON_BUN
3438
}

build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
33

44
ext {
55
set("android.namespace", "li.songe.gkd")
6-
set("android.buildToolsVersion", "36.1.0")
7-
set("android.compileSdk", 36)
8-
set("android.targetSdk", 36)
6+
set("android.buildToolsVersion", "37.0.0")
7+
set("android.compileSdk", 37)
8+
set("android.targetSdk", 37)
99
set("android.minSdk", 26)
1010
set("android.javaVersion", JavaVersion.VERSION_11)
1111
set("kotlin.jvmTarget", JvmTarget.JVM_11)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package android.content.pm;
2+
3+
import dev.rikka.tools.refine.RefineAs;
4+
5+
/**
6+
* @noinspection unused
7+
*/
8+
@RefineAs(IPackageManager.class)
9+
public interface IPackageManagerCompat {
10+
// android 17+
11+
PackageInfoList getInstalledPackages(long flags, int userId);
12+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package android.content.pm;
2+
3+
/**
4+
* @noinspection unused
5+
*/
6+
public class PackageInfoList extends ParceledListSlice<PackageInfo> {
7+
}

0 commit comments

Comments
 (0)