Handle disabled pre-approval

Pre-approval can be disabled and we get STATUS_FAILURE_BLOCKED which should be sufficient. There's also a hidden official error code we don't use for now:
https://cs.android.com/android/platform/superproject/+/android-latest-release:frameworks/base/core/java/android/content/pm/PackageManager.java;l=2644;drc=905556173324d48059d4bae77408748a76497ac9
This commit is contained in:
Torsten Grote
2026-01-07 10:04:41 -03:00
parent be67dba026
commit 32e4a04cd6

View File

@@ -150,12 +150,13 @@ class SessionInstallManager @Inject constructor(
context.unregisterReceiver(this)
}
}
else -> { // some error, can't help it now, continue
if (status == PackageInstaller.STATUS_FAILURE_ABORTED) {
cont.resume(PreApprovalResult.UserAborted)
} else {
cont.resume(PreApprovalResult.Error(msg))
else -> {
val result = when (status) {
PackageInstaller.STATUS_FAILURE_ABORTED -> PreApprovalResult.UserAborted
PackageInstaller.STATUS_FAILURE_BLOCKED -> PreApprovalResult.NotSupported
else -> PreApprovalResult.Error(msg)
}
cont.resume(result)
context.unregisterReceiver(this)
}
}