diff options
Diffstat (limited to 'src/com/android/launcher3/Workspace.java')
-rw-r--r-- | src/com/android/launcher3/Workspace.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 6eb87f2db..e646dd916 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -78,6 +78,7 @@ import com.android.launcher3.userevent.nano.LauncherLogProto.Target; import com.android.launcher3.util.ItemInfoMatcher; import com.android.launcher3.util.LongArrayMap; import com.android.launcher3.util.MultiStateAlphaController; +import com.android.launcher3.util.PackageUserKey; import com.android.launcher3.util.Thunk; import com.android.launcher3.util.VerticalFlingDetector; import com.android.launcher3.util.WallpaperOffsetInterpolator; @@ -86,6 +87,7 @@ import com.android.launcher3.widget.PendingAddWidgetInfo; import java.util.ArrayList; import java.util.HashSet; +import java.util.Set; /** * The workspace is a wide area with a wallpaper and a finite number of pages. @@ -3957,6 +3959,23 @@ public class Workspace extends PagedView }); } + public void updateIconBadges(final Set<PackageUserKey> updatedBadges) { + final PackageUserKey packageUserKey = new PackageUserKey(null, null); + mapOverItems(MAP_RECURSE, new ItemOperator() { + @Override + public boolean evaluate(ItemInfo info, View v) { + if (info instanceof ShortcutInfo && v instanceof BubbleTextView) { + packageUserKey.updateFromItemInfo(info); + if (updatedBadges.contains(packageUserKey)) { + ((BubbleTextView) v).applyBadgeState(info); + } + } + // process all the shortcuts + return false; + } + }); + } + public void removeAbandonedPromise(String packageName, UserHandle user) { HashSet<String> packages = new HashSet<>(1); packages.add(packageName); |