From 0e8be78021dfb3d839c81eddb3d92e85d412bfff Mon Sep 17 00:00:00 2001 From: Adnan Begovic Date: Mon, 2 Jun 2025 10:15:33 -0700 Subject: [PATCH] launcher3: Handle case where install session could be invalid. If the install session comes back as invalid, we can fail to add a promise icon which leads to icons not showing up on the workspace. Bug: 419426642 Test: None yet Flag: EXEMPT Bug fix Change-Id: I592948eb2b60c2249bb5b141d499d1d5ea01aebc --- src/com/android/launcher3/SessionCommitReceiver.java | 5 +++++ src/com/android/launcher3/pm/InstallSessionHelper.java | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/com/android/launcher3/SessionCommitReceiver.java b/src/com/android/launcher3/SessionCommitReceiver.java index ea5eb8f284..57eb1c9862 100644 --- a/src/com/android/launcher3/SessionCommitReceiver.java +++ b/src/com/android/launcher3/SessionCommitReceiver.java @@ -65,6 +65,11 @@ public class SessionCommitReceiver extends BroadcastReceiver { return; } + if (info.getSessionId() == -1) { + FileLog.d(LOG, "Session id for " + info.getAppPackageName() + " is -1"); + return; + } + InstallSessionHelper packageInstallerCompat = InstallSessionHelper.INSTANCE.get(context); boolean alreadyAddedPromiseIcon = packageInstallerCompat.promiseIconAddedForId(info.getSessionId()); diff --git a/src/com/android/launcher3/pm/InstallSessionHelper.java b/src/com/android/launcher3/pm/InstallSessionHelper.java index afc5117a63..d7b8af15f5 100644 --- a/src/com/android/launcher3/pm/InstallSessionHelper.java +++ b/src/com/android/launcher3/pm/InstallSessionHelper.java @@ -195,7 +195,8 @@ public class InstallSessionHelper { @WorkerThread public boolean promiseIconAddedForId(final int sessionId) { - return getPromiseIconIds().contains(sessionId); + // Make sure the session id is valid. + return sessionId != -1 && getPromiseIconIds().contains(sessionId); } @WorkerThread