Don't make assumptions about the current user serial

Fix #1157
This commit is contained in:
MM20 2024-12-21 18:45:54 +01:00
parent 9d98756fa7
commit f11b20a865
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
3 changed files with 6 additions and 5 deletions

View File

@ -6,7 +6,6 @@ import android.os.UserHandle
import android.os.UserManager
fun UserHandle.getSerialNumber(context: Context): Long {
if (this == Process.myUserHandle()) return 0L
val userManager = context.getSystemService(Context.USER_SERVICE) as UserManager
return userManager.getSerialNumberForUser(this)
}

View File

@ -4,6 +4,7 @@ import android.content.ComponentName
import android.content.Context
import android.content.Intent
import android.content.pm.LauncherApps
import android.os.Process
import android.os.UserManager
import android.util.Log
import androidx.core.content.getSystemService
@ -47,8 +48,8 @@ class LauncherAppDeserializer(val context: Context) : SearchableDeserializer {
val json = JSONObject(serialized)
val launcherApps = context.getSystemService<LauncherApps>()!!
val userManager = context.getSystemService<UserManager>()!!
val userSerial = json.optLong("user")
val user = userManager.getUserForSerialNumber(userSerial) ?: return null
val userSerial = json.optLong("user", -1L)
val user = if (userSerial == -1L) Process.myUserHandle() else (userManager.getUserForSerialNumber(userSerial) ?: return null)
val pkg = json.getString("package")
val activity = json.getString("activity")

View File

@ -5,6 +5,7 @@ import android.content.Intent
import android.content.Intent.ShortcutIconResource
import android.content.pm.LauncherApps
import android.content.pm.PackageManager
import android.os.Process
import android.os.UserManager
import android.util.Log
import androidx.core.content.getSystemService
@ -43,10 +44,10 @@ class LauncherShortcutDeserializer(
val json = JSONObject(serialized)
val packageName = json.getString("packagename")
val id = json.getString("id")
val userSerial = json.optLong("user")
val userSerial = json.optLong("user", -1L)
val userManager = context.getSystemService<UserManager>()!!
val user = userManager.getUserForSerialNumber(userSerial) ?: return null
val user = if (userSerial == -1L) Process.myUserHandle() else (userManager.getUserForSerialNumber(userSerial) ?: return null)
if (!launcherApps.hasShortcutHostPermission()) {
return UnavailableShortcut(context, id, packageName, user, userSerial)