summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/Workspace.java
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2014-07-22 13:48:29 -0700
committerSunny Goyal <sunnygoyal@google.com>2014-08-01 14:45:39 -0700
commite755d469d40b95e763a9dcb67d0e4f511d1948dd (patch)
treeefeb5b14ebf555a41f37bac96b8eb198e61c7899 /src/com/android/launcher3/Workspace.java
parentc5b6ac7215329d9f827731a43c330451f38b9965 (diff)
downloadandroid_packages_apps_Trebuchet-e755d469d40b95e763a9dcb67d0e4f511d1948dd.tar.gz
android_packages_apps_Trebuchet-e755d469d40b95e763a9dcb67d0e4f511d1948dd.tar.bz2
android_packages_apps_Trebuchet-e755d469d40b95e763a9dcb67d0e4f511d1948dd.zip
Implementing a package install progress listener for L
issue: 15835307 Change-Id: I71aaea087963f2e0e1206447190cbe23c174057d
Diffstat (limited to 'src/com/android/launcher3/Workspace.java')
-rw-r--r--src/com/android/launcher3/Workspace.java41
1 files changed, 24 insertions, 17 deletions
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 6d9b34e21..7c8708b50 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -67,6 +67,7 @@ import android.widget.TextView;
import com.android.launcher3.FolderIcon.FolderRingAnimator;
import com.android.launcher3.Launcher.CustomContentCallbacks;
import com.android.launcher3.LauncherSettings.Favorites;
+import com.android.launcher3.compat.PackageInstallerCompat.PackageInstallInfo;
import com.android.launcher3.compat.UserHandleCompat;
import java.util.ArrayList;
@@ -4864,26 +4865,32 @@ public class Workspace extends SmoothPagedView
}
}
- public void updatePackageState(final String pkgName, final int state) {
- mapOverItems(MAP_RECURSE, new ItemOperator() {
- @Override
- public boolean evaluate(ItemInfo info, View v, View parent) {
- if (info instanceof ShortcutInfo
- && ((ShortcutInfo) info).isPromiseFor(pkgName)
- && v instanceof BubbleTextView) {
- ((ShortcutInfo) info).setState(state);
- ((BubbleTextView)v).applyState();
+ public void updatePackageState(ArrayList<PackageInstallInfo> installInfos) {
+ HashSet<String> completedPackages = new HashSet<>();
+
+ for (final PackageInstallInfo installInfo : installInfos) {
+ mapOverItems(MAP_RECURSE, new ItemOperator() {
+ @Override
+ public boolean evaluate(ItemInfo info, View v, View parent) {
+ if (info instanceof ShortcutInfo
+ && ((ShortcutInfo) info).isPromiseFor(installInfo.packageName)
+ && v instanceof BubbleTextView) {
+ ((ShortcutInfo) info).setProgress(installInfo.progress);
+ ((ShortcutInfo) info).setState(installInfo.state);
+ ((BubbleTextView)v).applyState();
+ }
+ // process all the shortcuts
+ return false;
}
- // process all the shortcuts
- return false;
+ });
+
+ if (installInfo.state == ShortcutInfo.PACKAGE_STATE_DEFAULT) {
+ completedPackages.add(installInfo.packageName);
}
- });
+ }
- if (state == ShortcutInfo.PACKAGE_STATE_DEFAULT) {
- // Update any pending widget
- HashSet<String> packages = new HashSet<String>();
- packages.add(pkgName);
- restorePendingWidgets(packages);
+ if (!completedPackages.isEmpty()) {
+ restorePendingWidgets(completedPackages);
}
}