Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9b46c463 authored by Fengjiang Li's avatar Fengjiang Li
Browse files

[1/2] Fix resize frame showing at left top corner of workspace.

Some widget will show config activity and immediately dismiss it after user dropping widget onto workspace. This lead to 2 code paths triggered around same time:

1. Drop widget to workspace and show resize frame, after state is transitiion to NORMAL, show workspace
2. Close config activity and Launcher#onActivityResult, which triggers removing dropped widget and extract bitmap, then re-inflate another pending widget and show resize frame

Due to race condition between #1 and #2, we might remove the dropped widget first in #2, then show resize frame in #1 after workspace is transitione to NORMAL, leading showing resize frame at incorrect location

Next CL will fix the slight misalignment of resize frame with widget.

Bug: 331433240
Flag: NONE
Test: manual
Change-Id: Ie02f59b370271d517ed2e91b42d665f44a86095b
parent d6709b0a
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -200,6 +200,10 @@ public class AppWidgetResizeFrame extends AbstractFloatingView implements View.O
    }

    public static void showForWidget(LauncherAppWidgetHostView widget, CellLayout cellLayout) {
        // If widget is not added to view hierarchy, we cannot show resize frame at correct location
        if (widget.getParent() == null) {
            return;
        }
        Launcher launcher = Launcher.getLauncher(cellLayout.getContext());
        AbstractFloatingView.closeAllOpenViews(launcher);