Revert "TouchEvent (4/n) Firing event when setting mInTouchMode"
This reverts commit 4eecba7daea5100d69bf8c2d3efbbba222dc8cf5.
Reason for revert: May have broken com.android.system.ui tests (b/201320240)
Change-Id: Ib5bdbd2804a46e1f4c0cfbeec70fa0db7fdadaa0
Bug: 201320240
Bug: 193718270
diff --git a/services/inputflinger/tests/InputDispatcher_test.cpp b/services/inputflinger/tests/InputDispatcher_test.cpp
index 3207495..7fb2ccf 100644
--- a/services/inputflinger/tests/InputDispatcher_test.cpp
+++ b/services/inputflinger/tests/InputDispatcher_test.cpp
@@ -817,9 +817,6 @@
case AINPUT_EVENT_TYPE_CAPTURE: {
FAIL() << "Use 'consumeCaptureEvent' for CAPTURE events";
}
- case AINPUT_EVENT_TYPE_TOUCH_MODE: {
- FAIL() << "Use 'consumeTouchModeEvent' for TOUCH_MODE events";
- }
case AINPUT_EVENT_TYPE_DRAG: {
FAIL() << "Use 'consumeDragEvent' for DRAG events";
}
@@ -877,20 +874,6 @@
EXPECT_EQ(y, dragEvent.getY());
}
- void consumeTouchModeEvent(bool inTouchMode) {
- const InputEvent* event = consume();
- ASSERT_NE(nullptr, event) << mName.c_str()
- << ": consumer should have returned non-NULL event.";
- ASSERT_EQ(AINPUT_EVENT_TYPE_TOUCH_MODE, event->getType())
- << "Got " << inputEventTypeToString(event->getType())
- << " event instead of TOUCH_MODE event";
-
- ASSERT_EQ(ADISPLAY_ID_NONE, event->getDisplayId())
- << mName.c_str() << ": event displayId should always be NONE.";
- const auto& touchModeEvent = static_cast<const TouchModeEvent&>(*event);
- EXPECT_EQ(inTouchMode, touchModeEvent.isInTouchMode());
- }
-
void assertNoEvents() {
InputEvent* event = consume();
if (event == nullptr) {
@@ -912,10 +895,6 @@
const auto& captureEvent = static_cast<CaptureEvent&>(*event);
ADD_FAILURE() << "Received capture event, pointerCaptureEnabled = "
<< (captureEvent.getPointerCaptureEnabled() ? "true" : "false");
- } else if (event->getType() == AINPUT_EVENT_TYPE_TOUCH_MODE) {
- const auto& touchModeEvent = static_cast<TouchModeEvent&>(*event);
- ADD_FAILURE() << "Received touch mode event, inTouchMode = "
- << (touchModeEvent.isInTouchMode() ? "true" : "false");
}
FAIL() << mName.c_str()
<< ": should not have received any events, so consume() should return NULL";
@@ -1108,12 +1087,6 @@
mInputReceiver->consumeDragEvent(isExiting, x, y);
}
- void consumeTouchModeEvent(bool inTouchMode) {
- ASSERT_NE(mInputReceiver, nullptr)
- << "Cannot consume events from a window with no receiver";
- mInputReceiver->consumeTouchModeEvent(inTouchMode);
- }
-
std::optional<uint32_t> receiveEvent(InputEvent** outEvent = nullptr) {
if (mInputReceiver == nullptr) {
ADD_FAILURE() << "Invalid receive event on window with no receiver";
@@ -2752,6 +2725,7 @@
SCOPED_TRACE("Check default value of touch mode");
mDispatcher->setInputWindows({{ADISPLAY_ID_DEFAULT, {window}}});
setFocusedWindow(window);
+
window->consumeFocusEvent(true /*hasFocus*/, true /*inTouchMode*/);
SCOPED_TRACE("Remove the window to trigger focus loss");
@@ -2761,7 +2735,6 @@
SCOPED_TRACE("Disable touch mode");
mDispatcher->setInTouchMode(false);
- window->consumeTouchModeEvent(false);
window->setFocusable(true);
mDispatcher->setInputWindows({{ADISPLAY_ID_DEFAULT, {window}}});
setFocusedWindow(window);
@@ -2774,7 +2747,6 @@
SCOPED_TRACE("Enable touch mode again");
mDispatcher->setInTouchMode(true);
- window->consumeTouchModeEvent(true);
window->setFocusable(true);
mDispatcher->setInputWindows({{ADISPLAY_ID_DEFAULT, {window}}});
setFocusedWindow(window);
@@ -5910,43 +5882,4 @@
window->assertNoEvents();
}
-class InputDispatcherTouchModeChangedTests : public InputDispatcherTest {
-protected:
- std::shared_ptr<FakeApplicationHandle> mApp;
- sp<FakeWindowHandle> mWindow;
- sp<FakeWindowHandle> mSecondWindow;
-
- void SetUp() override {
- InputDispatcherTest::SetUp();
-
- mApp = std::make_shared<FakeApplicationHandle>();
- mWindow = new FakeWindowHandle(mApp, mDispatcher, "TestWindow", ADISPLAY_ID_DEFAULT);
- mWindow->setFocusable(true);
- mSecondWindow = new FakeWindowHandle(mApp, mDispatcher, "TestWindow2", ADISPLAY_ID_DEFAULT);
- mSecondWindow->setFocusable(true);
-
- mDispatcher->setFocusedApplication(ADISPLAY_ID_DEFAULT, mApp);
- mDispatcher->setInputWindows({{ADISPLAY_ID_DEFAULT, {mWindow, mSecondWindow}}});
-
- setFocusedWindow(mWindow);
- mWindow->consumeFocusEvent(true);
- }
-
- void changeAndVerifyTouchMode(bool inTouchMode) {
- mDispatcher->setInTouchMode(inTouchMode);
- mWindow->consumeTouchModeEvent(inTouchMode);
- mSecondWindow->consumeTouchModeEvent(inTouchMode);
- }
-};
-
-TEST_F(InputDispatcherTouchModeChangedTests, ChangeTouchModeOnFocusedWindow) {
- changeAndVerifyTouchMode(!InputDispatcher::kDefaultInTouchMode);
-}
-
-TEST_F(InputDispatcherTouchModeChangedTests, EventIsNotGeneratedIfNotChangingTouchMode) {
- mDispatcher->setInTouchMode(InputDispatcher::kDefaultInTouchMode);
- mWindow->assertNoEvents();
- mSecondWindow->assertNoEvents();
-}
-
} // namespace android::inputdispatcher