From db4ec8ac1a30f76237efce8e751529b013b34037 Mon Sep 17 00:00:00 2001 From: Steven Ng Date: Mon, 7 Jun 2021 18:37:22 +0100 Subject: [PATCH] Fix preview layout crash upon screen rotation Preview layouts are rendered via LauncherAppWidgetHostView. These layouts are not yet added to the launcher. And thus, there is no LauncherAppWidgetInfo. Test: When a preview layout is shown in the recommended widget section, rotate the screen. No crash is observed. Bug: 190395009 Change-Id: Ib1d080a106681fbfe3a4293f9f51f9576ef9414b --- .../android/launcher3/widget/LauncherAppWidgetHostView.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/com/android/launcher3/widget/LauncherAppWidgetHostView.java b/src/com/android/launcher3/widget/LauncherAppWidgetHostView.java index 8685aae737..d9fb5f0e58 100644 --- a/src/com/android/launcher3/widget/LauncherAppWidgetHostView.java +++ b/src/com/android/launcher3/widget/LauncherAppWidgetHostView.java @@ -481,6 +481,10 @@ public class LauncherAppWidgetHostView extends NavigableAppWidgetHostView return; } LauncherAppWidgetInfo info = (LauncherAppWidgetInfo) getTag(); + if (info == null) { + // This occurs when LauncherAppWidgetHostView is used to render a preview layout. + return; + } // Remove and rebind the current widget (which was inflated in the wrong // orientation), but don't delete it from the database mLauncher.removeItem(this, info, false /* deleteFromDb */);