Merge "Show icon in PendingAppWidgetHostView immediately." into ub-launcher3-dorval-polish
This commit is contained in:
committed by
Android (Google) Code Review
commit
825c3db194
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user