diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2017-05-04 00:14:30 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-05-04 00:14:31 +0000 |
commit | 825c3db194fea8f032b2b7c829cbfc5f03e2d9c4 (patch) | |
tree | fbbc60cdbbefb6ecbd67e368b901461ebd83c744 | |
parent | 2868d7ca4ec55a603947fb5a9677d91f4082b9bc (diff) | |
parent | 2b823f452b6c0b7c0bb5ef67f77510ce75800809 (diff) | |
download | android_packages_apps_Trebuchet-825c3db194fea8f032b2b7c829cbfc5f03e2d9c4.tar.gz android_packages_apps_Trebuchet-825c3db194fea8f032b2b7c829cbfc5f03e2d9c4.tar.bz2 android_packages_apps_Trebuchet-825c3db194fea8f032b2b7c829cbfc5f03e2d9c4.zip |
Merge "Show icon in PendingAppWidgetHostView immediately." into ub-launcher3-dorval-polish
-rw-r--r-- | src/com/android/launcher3/Launcher.java | 3 | ||||
-rw-r--r-- | src/com/android/launcher3/LauncherAppWidgetInfo.java | 6 | ||||
-rw-r--r-- | src/com/android/launcher3/LauncherModel.java | 10 | ||||
-rw-r--r-- | src/com/android/launcher3/PendingAppWidgetHostView.java | 11 |
4 files changed, 26 insertions, 4 deletions
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 5eacbbe5f..0d1e9e152 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -3615,6 +3615,9 @@ public class Launcher extends BaseActivity LauncherAppWidgetInfo info = (LauncherAppWidgetInfo) view.getTag(); info.restoreStatus = finalRestoreFlag; + if (info.restoreStatus == LauncherAppWidgetInfo.RESTORE_COMPLETED) { + info.pendingItemInfo = null; + } mWorkspace.reinflateWidgetsIfNecessary(); getModelWriter().updateItemInDatabase(info); diff --git a/src/com/android/launcher3/LauncherAppWidgetInfo.java b/src/com/android/launcher3/LauncherAppWidgetInfo.java index 1e0f28546..6f23e56b3 100644 --- a/src/com/android/launcher3/LauncherAppWidgetInfo.java +++ b/src/com/android/launcher3/LauncherAppWidgetInfo.java @@ -21,6 +21,7 @@ import android.content.ComponentName; import android.content.Intent; import android.os.Process; +import com.android.launcher3.model.PackageItemInfo; import com.android.launcher3.util.ContentWriter; /** @@ -95,6 +96,11 @@ public class LauncherAppWidgetInfo extends ItemInfo { */ public Intent bindOptions; + /** + * Nonnull for pending widgets. We use this to get the icon and title for the widget. + */ + public PackageItemInfo pendingItemInfo; + private boolean mHasNotifiedInitialWidgetSizeChanged; public LauncherAppWidgetInfo(int appWidgetId, ComponentName providerName) { diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java index 53d938506..c84eecbc2 100644 --- a/src/com/android/launcher3/LauncherModel.java +++ b/src/com/android/launcher3/LauncherModel.java @@ -1216,6 +1216,16 @@ public class LauncherModel extends BroadcastReceiver .commit(); } } + + if (appWidgetInfo.restoreStatus != + LauncherAppWidgetInfo.RESTORE_COMPLETED) { + String pkg = appWidgetInfo.providerName.getPackageName(); + appWidgetInfo.pendingItemInfo = new PackageItemInfo(pkg); + appWidgetInfo.pendingItemInfo.user = appWidgetInfo.user; + mIconCache.getTitleAndIconForApp( + appWidgetInfo.pendingItemInfo, false); + } + c.checkAndAddItem(appWidgetInfo, sBgDataModel); } break; diff --git a/src/com/android/launcher3/PendingAppWidgetHostView.java b/src/com/android/launcher3/PendingAppWidgetHostView.java index b163464dd..de424aba1 100644 --- a/src/com/android/launcher3/PendingAppWidgetHostView.java +++ b/src/com/android/launcher3/PendingAppWidgetHostView.java @@ -80,10 +80,13 @@ public class PendingAppWidgetHostView extends LauncherAppWidgetHostView updateAppWidget(null); setOnClickListener(mLauncher); - // Load icon - PackageItemInfo item = new PackageItemInfo(info.providerName.getPackageName()); - item.user = info.user; - cache.updateIconInBackground(this, item); + if (info.pendingItemInfo == null) { + info.pendingItemInfo = new PackageItemInfo(info.providerName.getPackageName()); + info.pendingItemInfo.user = info.user; + cache.updateIconInBackground(this, info.pendingItemInfo); + } else { + reapplyItemInfo(info.pendingItemInfo); + } } @Override |