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

Commit dc1b3660 authored by Yein Jo's avatar Yein Jo
Browse files

Migrate Launcher to use the new OnBackInvokedCallback

Bug: b/238475344
Test: Tapl & manual
Change-Id: Ieab329873f82890d95136e490086cc2cffff7ba8
parent 2886ff08
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -113,6 +113,7 @@ import android.view.accessibility.AccessibilityEvent;
import android.view.animation.OvershootInterpolator;
import android.widget.ImageView;
import android.widget.Toast;
import android.window.OnBackInvokedDispatcher;

import androidx.annotation.CallSuper;
import androidx.annotation.NonNull;
@@ -545,6 +546,8 @@ public class Launcher extends StatefulActivity<LauncherState>
            getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
        }
        setTitle(R.string.home_screen);

        registerOnBackInvokedCallback();
    }

    protected LauncherOverlayManager getDefaultOverlay() {
@@ -2085,6 +2088,17 @@ public class Launcher extends StatefulActivity<LauncherState>
        mStateManager.getState().onBackPressed(this);
    }

    private void registerOnBackInvokedCallback() {
        if (Utilities.ATLEAST_T) {
            getOnBackInvokedDispatcher().registerOnBackInvokedCallback(
                    OnBackInvokedDispatcher.PRIORITY_DEFAULT,
                    () -> {
                        onBackPressed();
                        TestLogging.recordEvent(TestProtocol.SEQUENCE_MAIN, "onBackInvoked");
                    });
        }
    }

    protected void onScreenOff() {
        // Reset AllApps to its initial state only if we are not in the middle of
        // processing a multi-step drop
+11 −4
Original line number Diff line number Diff line
@@ -111,8 +111,11 @@ public final class LauncherInstrumentation {
    static final Pattern EVENT_TOUCH_UP_TIS = getTouchEventPatternTIS("ACTION_UP");
    static final Pattern EVENT_TOUCH_CANCEL_TIS = getTouchEventPatternTIS("ACTION_CANCEL");

    static final Pattern EVENT_KEY_BACK_DOWN = getKeyEventPattern("ACTION_DOWN", "KEYCODE_BACK");
    static final Pattern EVENT_KEY_BACK_UP = getKeyEventPattern("ACTION_UP", "KEYCODE_BACK");
    private static final Pattern EVENT_KEY_BACK_DOWN =
            getKeyEventPattern("ACTION_DOWN", "KEYCODE_BACK");
    private static final Pattern EVENT_KEY_BACK_UP =
            getKeyEventPattern("ACTION_UP", "KEYCODE_BACK");
    private static final Pattern EVENT_ON_BACK_INVOKED = Pattern.compile("onBackInvoked");

    private final String mLauncherPackage;
    private Boolean mIsLauncher3;
@@ -984,11 +987,15 @@ public final class LauncherInstrumentation {
                }
            }
            if (launcherVisible) {
                if (getContext().getApplicationInfo().isOnBackInvokedCallbackEnabled()) {
                    expectEvent(TestProtocol.SEQUENCE_MAIN, EVENT_ON_BACK_INVOKED);
                } else {
                    expectEvent(TestProtocol.SEQUENCE_MAIN, EVENT_KEY_BACK_DOWN);
                    expectEvent(TestProtocol.SEQUENCE_MAIN, EVENT_KEY_BACK_UP);
                }
            }
        }
    }

    private static BySelector getAnyObjectSelector() {
        return By.textStartsWith("");