From e745aa87fca096f928c34cbc571bea090ffc8aa6 Mon Sep 17 00:00:00 2001 From: Charlie Anderson Date: Mon, 26 Aug 2024 15:33:33 -0400 Subject: [PATCH] Add logging around InstallSessionTracker to verify PackageInstaller is communicating with Launcher. Bug: 350144057 Flag: NONE just logs Test: Locally Change-Id: I600cac50d7202458abf968fc0707eba58ffc0e65 --- .../launcher3/model/ItemInstallQueue.java | 10 +++------- .../launcher3/pm/InstallSessionTracker.java | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/com/android/launcher3/model/ItemInstallQueue.java b/src/com/android/launcher3/model/ItemInstallQueue.java index 551c2d8ba8..59d1d00204 100644 --- a/src/com/android/launcher3/model/ItemInstallQueue.java +++ b/src/com/android/launcher3/model/ItemInstallQueue.java @@ -192,22 +192,18 @@ public class ItemInstallQueue implements SafeCloseable { } private void queuePendingShortcutInfo(PendingInstallShortcutInfo info) { - final Exception stackTrace = new Exception(); // Queue the item up for adding if launcher has not loaded properly yet MODEL_EXECUTOR.post(() -> { Pair itemInfo = info.getItemInfo(mContext); if (itemInfo == null) { FileLog.d(LOG, - "Adding PendingInstallShortcutInfo with no attached info to queue.", - stackTrace); + "Adding PendingInstallShortcutInfo with no attached info to queue."); } else { FileLog.d(LOG, - "Adding PendingInstallShortcutInfo to queue. Attached info: " - + itemInfo.first, - stackTrace); + "Adding PendingInstallShortcutInfo to queue." + + " Attached info: " + itemInfo.first); } - addToQueue(info); }); flushInstallQueue(); diff --git a/src/com/android/launcher3/pm/InstallSessionTracker.java b/src/com/android/launcher3/pm/InstallSessionTracker.java index c117be4601..856c294a3a 100644 --- a/src/com/android/launcher3/pm/InstallSessionTracker.java +++ b/src/com/android/launcher3/pm/InstallSessionTracker.java @@ -25,6 +25,7 @@ import android.content.pm.PackageInstaller; import android.content.pm.PackageInstaller.SessionInfo; import android.os.Build; import android.os.UserHandle; +import android.util.Log; import android.util.SparseArray; import androidx.annotation.NonNull; @@ -32,6 +33,7 @@ import androidx.annotation.Nullable; import androidx.annotation.WorkerThread; import com.android.launcher3.Flags; +import com.android.launcher3.logging.FileLog; import com.android.launcher3.util.PackageUserKey; import java.lang.ref.WeakReference; @@ -41,6 +43,8 @@ import java.util.Objects; @WorkerThread public class InstallSessionTracker extends PackageInstaller.SessionCallback { + public static final String TAG = "InstallSessionTracker"; + // Lazily initialized private SparseArray mActiveSessions = null; @@ -75,6 +79,11 @@ public class InstallSessionTracker extends PackageInstaller.SessionCallback { } SessionInfo sessionInfo = pushSessionDisplayToLauncher(sessionId, helper, callback); if (sessionInfo != null) { + FileLog.d(TAG, "onCreated: Install session created for" + + " appPackageName=" + sessionInfo.getAppPackageName() + + ", sessionId=" + sessionInfo.getSessionId() + + ", appIcon=" + sessionInfo.getAppIcon() + + ", appLabel=" + sessionInfo.getAppLabel()); callback.onInstallSessionCreated(PackageInstallInfo.fromInstallingState(sessionInfo)); } @@ -102,6 +111,10 @@ public class InstallSessionTracker extends PackageInstaller.SessionCallback { activeSessions.remove(sessionId); if (key != null && key.mPackageName != null) { + FileLog.d(TAG, "onFinished: active install session finished for" + + " appPackageName=" + key.mPackageName + + ", sessionId=" + sessionId + + ", success=" + success); String packageName = key.mPackageName; PackageInstallInfo info = PackageInstallInfo.fromState( success ? STATUS_INSTALLED : STATUS_FAILED, @@ -141,6 +154,11 @@ public class InstallSessionTracker extends PackageInstaller.SessionCallback { } SessionInfo sessionInfo = pushSessionDisplayToLauncher(sessionId, helper, callback); if (sessionInfo != null) { + Log.d(TAG, "onBadgingChanged: badging info changed for" + + " appPackageName=" + sessionInfo.getAppPackageName() + + ", sessionId=" + sessionInfo.getSessionId() + + ", appIcon=" + sessionInfo.getAppIcon() + + ", appLabel=" + sessionInfo.getAppLabel()); helper.tryQueuePromiseAppIcon(sessionInfo); } }