diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2014-09-19 19:58:07 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-09-19 19:58:07 +0000 |
commit | acefecbff3141b43dc55fe18146cf842d1d4a8ae (patch) | |
tree | 04a8869721e76d2963e64f6b4f1ac87276aa013e /src/com/android/launcher3/compat | |
parent | 7e053f8784c886359f911161db5fd8b61333450d (diff) | |
parent | a22666f68151269853e7ab6ab696ee6361bac793 (diff) | |
download | android_packages_apps_Trebuchet-acefecbff3141b43dc55fe18146cf842d1d4a8ae.tar.gz android_packages_apps_Trebuchet-acefecbff3141b43dc55fe18146cf842d1d4a8ae.tar.bz2 android_packages_apps_Trebuchet-acefecbff3141b43dc55fe18146cf842d1d4a8ae.zip |
Merge "Updating promise icon's bitmap and label when onBadgingChanged is received" into ub-now-porkchop
Diffstat (limited to 'src/com/android/launcher3/compat')
-rw-r--r-- | src/com/android/launcher3/compat/PackageInstallerCompatVL.java | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/src/com/android/launcher3/compat/PackageInstallerCompatVL.java b/src/com/android/launcher3/compat/PackageInstallerCompatVL.java index daacba834..a84bf0224 100644 --- a/src/com/android/launcher3/compat/PackageInstallerCompatVL.java +++ b/src/com/android/launcher3/compat/PackageInstallerCompatVL.java @@ -35,6 +35,7 @@ public class PackageInstallerCompatVL extends PackageInstallerCompat { private static final boolean DEBUG = false; private final SparseArray<SessionInfo> mPendingReplays = new SparseArray<SessionInfo>(); + private final HashSet<String> mPendingBadgeUpdates = new HashSet<String>(); private final PackageInstaller mInstaller; private final IconCache mCache; @@ -139,18 +140,20 @@ public class PackageInstallerCompatVL extends PackageInstallerCompat { if (!updates.isEmpty()) { app.setPackageState(updates); } + + if (!mPendingBadgeUpdates.isEmpty()) { + for (String pkg : mPendingBadgeUpdates) { + app.updatePackageBadge(pkg); + } + mPendingBadgeUpdates.clear(); + } } private final SessionCallback mCallback = new SessionCallback() { @Override public void onCreated(int sessionId) { - SessionInfo session = mInstaller.getSessionInfo(sessionId); - if (session != null) { - addSessionInfoToCahce(session, UserHandleCompat.myUserHandle()); - mPendingReplays.put(sessionId, session); - replayUpdates(null); - } + pushSessionBadgeToLauncher(sessionId); } @Override @@ -158,6 +161,7 @@ public class PackageInstallerCompatVL extends PackageInstallerCompat { mPendingReplays.remove(sessionId); SessionInfo session = mInstaller.getSessionInfo(sessionId); if ((session != null) && (session.getAppPackageName() != null)) { + mPendingBadgeUpdates.remove(session.getAppPackageName()); // Replay all updates with a one time update for this installed package. No // need to store this record for future updates, as the app list will get // refreshed on resume. @@ -179,6 +183,20 @@ public class PackageInstallerCompatVL extends PackageInstallerCompat { public void onActiveChanged(int sessionId, boolean active) { } @Override - public void onBadgingChanged(int sessionId) { } + public void onBadgingChanged(int sessionId) { + pushSessionBadgeToLauncher(sessionId); + } + + private void pushSessionBadgeToLauncher(int sessionId) { + SessionInfo session = mInstaller.getSessionInfo(sessionId); + if (session != null) { + addSessionInfoToCahce(session, UserHandleCompat.myUserHandle()); + if (session.getAppPackageName() != null) { + mPendingBadgeUpdates.add(session.getAppPackageName()); + } + mPendingReplays.put(sessionId, session); + replayUpdates(null); + } + } }; } |