Add alternative support for QUERY_ALL_PACKAGES in play flavor

This commit is contained in:
世界
2025-12-25 01:49:27 +08:00
parent 104da5d312
commit 08f51d5469
22 changed files with 855 additions and 169 deletions

View File

@@ -0,0 +1,47 @@
package io.nekohasekai.sfa.vendor
import android.content.pm.PackageInfo
import android.content.pm.PackageManager
import android.os.Build
import io.nekohasekai.sfa.Application
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
object PackageQueryManager {
val needsPrivilegedQuery: Boolean = false
private val _queryMode = MutableStateFlow("")
val queryMode: StateFlow<String> = _queryMode
val shizukuInstalled: StateFlow<Boolean> = MutableStateFlow(false)
val shizukuBinderReady: StateFlow<Boolean> = MutableStateFlow(false)
val shizukuPermissionGranted: StateFlow<Boolean> = MutableStateFlow(false)
val rootAvailable: StateFlow<Boolean?> = MutableStateFlow(null)
val rootServiceConnected: StateFlow<Boolean> = MutableStateFlow(false)
fun isShizukuAvailable(): Boolean = false
fun registerListeners() {}
fun unregisterListeners() {}
fun requestShizukuPermission() {}
suspend fun checkRootAvailable(): Boolean = false
fun setQueryMode(mode: String) {
_queryMode.value = mode
}
suspend fun getInstalledPackages(flags: Int): List<PackageInfo> {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
Application.packageManager.getInstalledPackages(
PackageManager.PackageInfoFlags.of(flags.toLong())
)
} else {
@Suppress("DEPRECATION")
Application.packageManager.getInstalledPackages(flags)
}
}
}