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

Commit 1559d46a authored by Siarhei Vishniakou's avatar Siarhei Vishniakou Committed by Android (Google) Code Review
Browse files

Merge "Revert "Fix press HOME logging tests."" into main

parents 90beb7aa e840da7c
Loading
Loading
Loading
Loading
+4 −18
Original line number Diff line number Diff line
@@ -1983,7 +1983,6 @@ public class PhoneWindowManager implements WindowManagerPolicy {
            public void run() {
                if (mPendingHomeKeyEvent != null) {
                    handleShortPressOnHome(mPendingHomeKeyEvent);
                    mPendingHomeKeyEvent.recycle();
                    mPendingHomeKeyEvent = null;
                }
            }
@@ -2028,7 +2027,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                    if (mDoubleTapOnHomeBehavior != DOUBLE_TAP_HOME_PIP_MENU
                            || mPictureInPictureVisible) {
                        mHandler.removeCallbacks(mHomeDoubleTapTimeoutRunnable); // just in case
                        mPendingHomeKeyEvent = KeyEvent.obtain(event);
                        mPendingHomeKeyEvent = event;
                        mHandler.postDelayed(mHomeDoubleTapTimeoutRunnable,
                                ViewConfiguration.getDoubleTapTimeout());
                        return true;
@@ -2036,11 +2035,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                }

                // Post to main thread to avoid blocking input pipeline.
                final KeyEvent shortPressEvent = KeyEvent.obtain(event);
                mHandler.post(() -> {
                    handleShortPressOnHome(shortPressEvent);
                    shortPressEvent.recycle();
                });
                mHandler.post(() -> handleShortPressOnHome(event));
                return true;
            }

@@ -2067,14 +2062,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {
            if (repeatCount == 0) {
                mHomePressed = true;
                if (mPendingHomeKeyEvent != null) {
                    mPendingHomeKeyEvent.recycle();
                    mPendingHomeKeyEvent = null;
                    mHandler.removeCallbacks(mHomeDoubleTapTimeoutRunnable);
                    final KeyEvent doublePressEvent = KeyEvent.obtain(event);
                    mHandler.post(() -> {
                        handleDoubleTapOnHome(doublePressEvent);
                        doublePressEvent.recycle();
                    });
                    mHandler.post(() -> handleDoubleTapOnHome(event));
                // TODO(multi-display): Remove display id check once we support recents on
                // multi-display
                } else if (mDoubleTapOnHomeBehavior == DOUBLE_TAP_HOME_RECENT_SYSTEM_UI
@@ -2084,11 +2074,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
            } else if ((event.getFlags() & KeyEvent.FLAG_LONG_PRESS) != 0) {
                if (!keyguardOn) {
                    // Post to main thread to avoid blocking input pipeline.
                    final KeyEvent longPressEvent = KeyEvent.obtain(event);
                    mHandler.post(() -> {
                        handleLongPressOnHome(longPressEvent);
                        longPressEvent.recycle();
                    });
                    mHandler.post(() -> handleLongPressOnHome(event));
                }
            }
            return true;
+5 −0
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ import static com.android.server.policy.WindowManagerPolicy.ACTION_PASS_TO_USER;
import static java.util.Collections.unmodifiableMap;

import android.content.Context;
import android.os.Looper;
import android.os.SystemClock;
import android.util.ArrayMap;
import android.view.InputDevice;
@@ -98,6 +99,10 @@ class ShortcutKeyTestBase {
     *      settings values.
     */
    protected final void setUpPhoneWindowManager(boolean supportSettingsUpdate) {
        if (Looper.myLooper() == null) {
            Looper.prepare();
        }

        doReturn(mSettingsProviderRule.mockContentResolver(mContext))
                .when(mContext).getContentResolver();
        mPhoneWindowManager = new TestPhoneWindowManager(mContext, supportSettingsUpdate);
+9 −7
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ import android.hardware.display.DisplayManagerInternal;
import android.hardware.input.InputManager;
import android.media.AudioManagerInternal;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.IBinder;
import android.os.PowerManager;
import android.os.PowerManagerInternal;
@@ -77,7 +78,6 @@ import android.os.RemoteException;
import android.os.UserHandle;
import android.os.Vibrator;
import android.os.VibratorInfo;
import android.os.test.TestLooper;
import android.service.dreams.DreamManagerInternal;
import android.telecom.TelecomManager;
import android.util.FeatureFlagUtils;
@@ -160,8 +160,8 @@ class TestPhoneWindowManager {
    @Mock private KeyguardServiceDelegate mKeyguardServiceDelegate;

    private StaticMockitoSession mMockitoSession;
    private HandlerThread mHandlerThread;
    private Handler mHandler;
    private TestLooper mTestLooper;

    private class TestInjector extends PhoneWindowManager.Injector {
        TestInjector(Context context, WindowManagerPolicy.WindowManagerFuncs funcs) {
@@ -184,11 +184,12 @@ class TestPhoneWindowManager {

    TestPhoneWindowManager(Context context, boolean supportSettingsUpdate) {
        MockitoAnnotations.initMocks(this);
        mTestLooper = new TestLooper();
        mHandler = new Handler(mTestLooper.getLooper());
        mHandlerThread = new HandlerThread("fake window manager");
        mHandlerThread.start();
        mHandler = new Handler(mHandlerThread.getLooper());
        mContext = mockingDetails(context).isSpy() ? context : spy(context);
        mHandler.post(() -> setUp(supportSettingsUpdate));
        mTestLooper.dispatchAll();
        mHandler.runWithScissors(() -> setUp(supportSettingsUpdate),  0 /* timeout */);
        waitForIdle();
    }

    private void setUp(boolean supportSettingsUpdate) {
@@ -300,6 +301,7 @@ class TestPhoneWindowManager {
    }

    void tearDown() {
        mHandlerThread.quitSafely();
        LocalServices.removeServiceForTest(InputMethodManagerInternal.class);
        Mockito.reset(mPhoneWindowManager);
        mMockitoSession.finishMocking();
@@ -326,7 +328,7 @@ class TestPhoneWindowManager {
    }

    void waitForIdle() {
        mTestLooper.dispatchAll();
        mHandler.runWithScissors(() -> { }, 0 /* timeout */);
    }

    /**