summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/compat
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2014-09-18 13:25:15 -0700
committerSunny Goyal <sunnygoyal@google.com>2014-09-19 12:16:52 -0700
commita22666f68151269853e7ab6ab696ee6361bac793 (patch)
tree1ce68e4e4bea07383e7584e3349319d6058b77d0 /src/com/android/launcher3/compat
parent136882c1950da1e5f0a24a8b6807b186a3297d8e (diff)
downloadandroid_packages_apps_Trebuchet-a22666f68151269853e7ab6ab696ee6361bac793.tar.gz
android_packages_apps_Trebuchet-a22666f68151269853e7ab6ab696ee6361bac793.tar.bz2
android_packages_apps_Trebuchet-a22666f68151269853e7ab6ab696ee6361bac793.zip
Updating promise icon's bitmap and label when onBadgingChanged is received
Bug: 17583799 Change-Id: I68b4f9d4086c43bd949ad8b46b574ec78edb32db
Diffstat (limited to 'src/com/android/launcher3/compat')
-rw-r--r--src/com/android/launcher3/compat/PackageInstallerCompatVL.java33
1 files changed, 26 insertions, 7 deletions
diff --git a/src/com/android/launcher3/compat/PackageInstallerCompatVL.java b/src/com/android/launcher3/compat/PackageInstallerCompatVL.java
index 2d56adf91..557a9a321 100644
--- a/src/com/android/launcher3/compat/PackageInstallerCompatVL.java
+++ b/src/com/android/launcher3/compat/PackageInstallerCompatVL.java
@@ -27,6 +27,7 @@ import com.android.launcher3.IconCache;
import com.android.launcher3.LauncherAppState;
import java.util.ArrayList;
+import java.util.HashSet;
public class PackageInstallerCompatVL extends PackageInstallerCompat {
@@ -34,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;
@@ -133,18 +135,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
@@ -152,6 +156,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.
@@ -173,6 +178,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);
+ }
+ }
};
}