summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/compat
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2014-09-19 19:58:07 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-09-19 19:58:07 +0000
commitacefecbff3141b43dc55fe18146cf842d1d4a8ae (patch)
tree04a8869721e76d2963e64f6b4f1ac87276aa013e /src/com/android/launcher3/compat
parent7e053f8784c886359f911161db5fd8b61333450d (diff)
parenta22666f68151269853e7ab6ab696ee6361bac793 (diff)
downloadandroid_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.java32
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);
+ }
+ }
};
}