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

Commit 2b3303c7 authored by vadimt's avatar vadimt Committed by Vadim Tryshev
Browse files

Not freezing All Apps during user interactions

Extremely rarely, All Apps will get stuck in a non-updating state even
after the interaction ends.

It would be impractical to try drilling to the root cause of this,
so it's better to just allow All Apps updates while the user interacts
with it.

Bug: 139384936
Change-Id: I2ed7fb052da77a9e47ef9b9aa7800499071b98c3
parent 89137e7b
Loading
Loading
Loading
Loading
+0 −16
Original line number Diff line number Diff line
@@ -628,20 +628,4 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo

        return super.performAccessibilityAction(action, arguments);
    }

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        final boolean result = super.dispatchTouchEvent(ev);
        switch (ev.getActionMasked()) {
            case MotionEvent.ACTION_DOWN:
                if (result) mAllAppsStore.enableDeferUpdates(
                        AllAppsStore.DEFER_UPDATES_USER_INTERACTION);
                break;
            case MotionEvent.ACTION_UP:
            case MotionEvent.ACTION_CANCEL:
                mAllAppsStore.disableDeferUpdates(AllAppsStore.DEFER_UPDATES_USER_INTERACTION);
                break;
        }
        return result;
    }
}
+1 −3
Original line number Diff line number Diff line
@@ -39,10 +39,8 @@ public class AllAppsStore {

    // Defer updates flag used to defer all apps updates to the next draw.
    public static final int DEFER_UPDATES_NEXT_DRAW = 1 << 0;
    // Defer updates flag used to defer all apps updates while the user interacts with all apps.
    public static final int DEFER_UPDATES_USER_INTERACTION = 1 << 1;
    // Defer updates flag used to defer all apps updates by a test's request.
    public static final int DEFER_UPDATES_TEST = 1 << 2;
    public static final int DEFER_UPDATES_TEST = 1 << 1;

    private PackageUserKey mTempKey = new PackageUserKey(null, null);
    private final HashMap<ComponentKey, AppInfo> mComponentToAppMap = new HashMap<>();