From 2434d40ef271966096fea707ac4207d80d1b2901 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Tue, 17 Feb 2015 11:44:15 -0800 Subject: [PATCH] Fixing crash when dragging and dropping a restored widget. > When the widget is in pending state, AppWidgetProviderInfo is not available Bug: 19364311 Change-Id: If3126a375853e6e710c6eba4b8824e18f3f0d391 --- src/com/android/launcher3/LauncherAppWidgetHostView.java | 4 ++-- src/com/android/launcher3/Workspace.java | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/com/android/launcher3/LauncherAppWidgetHostView.java b/src/com/android/launcher3/LauncherAppWidgetHostView.java index 2d04df2de9..954d2d7116 100644 --- a/src/com/android/launcher3/LauncherAppWidgetHostView.java +++ b/src/com/android/launcher3/LauncherAppWidgetHostView.java @@ -145,9 +145,9 @@ public class LauncherAppWidgetHostView extends AppWidgetHostView implements Touc @Override public AppWidgetProviderInfo getAppWidgetInfo() { AppWidgetProviderInfo info = super.getAppWidgetInfo(); - if (!(info instanceof LauncherAppWidgetProviderInfo)) { + if (info != null && !(info instanceof LauncherAppWidgetProviderInfo)) { throw new IllegalStateException("Launcher widget must have" - + "LauncherAppWidgetProviderInfo"); + + " LauncherAppWidgetProviderInfo"); } return info; } diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 44d77571bc..69fa457ab8 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -3166,9 +3166,8 @@ public class Workspace extends SmoothPagedView // in its final location final LauncherAppWidgetHostView hostView = (LauncherAppWidgetHostView) cell; - LauncherAppWidgetProviderInfo pInfo = (LauncherAppWidgetProviderInfo) - hostView.getAppWidgetInfo(); - if (pInfo.resizeMode != AppWidgetProviderInfo.RESIZE_NONE) { + AppWidgetProviderInfo pInfo = hostView.getAppWidgetInfo(); + if (pInfo != null && pInfo.resizeMode != AppWidgetProviderInfo.RESIZE_NONE) { final Runnable addResizeFrame = new Runnable() { public void run() { DragLayer dragLayer = mLauncher.getDragLayer();