Revert "Set down time when event slips into Wallpaper"

This reverts commit 9e2eb1f709fc78f8fdd231c25047fa511944ff01.

Reason for revert: Droidmonitor created revert due to breakages in b/357919724.

Change-Id: I51260eb42628e3d4fdd37ad41c24395217586806
diff --git a/services/inputflinger/dispatcher/InputDispatcher.cpp b/services/inputflinger/dispatcher/InputDispatcher.cpp
index d36a24a..af4a04d 100644
--- a/services/inputflinger/dispatcher/InputDispatcher.cpp
+++ b/services/inputflinger/dispatcher/InputDispatcher.cpp
@@ -2683,7 +2683,7 @@
 
                 // Check if the wallpaper window should deliver the corresponding event.
                 slipWallpaperTouch(targetFlags, oldTouchedWindowHandle, newTouchedWindowHandle,
-                                   tempTouchState, entry, targets);
+                                   tempTouchState, entry.deviceId, pointer, targets);
                 tempTouchState.removeTouchingPointerFromWindow(entry.deviceId, pointer.id,
                                                                oldTouchedWindowHandle);
             }
@@ -7096,11 +7096,9 @@
 void InputDispatcher::slipWallpaperTouch(ftl::Flags<InputTarget::Flags> targetFlags,
                                          const sp<WindowInfoHandle>& oldWindowHandle,
                                          const sp<WindowInfoHandle>& newWindowHandle,
-                                         TouchState& state, const MotionEntry& entry,
+                                         TouchState& state, DeviceId deviceId,
+                                         const PointerProperties& pointerProperties,
                                          std::vector<InputTarget>& targets) const {
-    LOG_IF(FATAL, entry.getPointerCount() != 1) << "Entry not eligible for slip: " << entry;
-    const DeviceId deviceId = entry.deviceId;
-    const PointerProperties& pointerProperties = entry.pointerProperties[0];
     std::vector<PointerProperties> pointers{pointerProperties};
     const bool oldHasWallpaper = oldWindowHandle->getInfo()->inputConfig.test(
             gui::WindowInfo::InputConfig::DUPLICATE_TOUCH_TO_WALLPAPER);
@@ -7127,7 +7125,7 @@
         state.addOrUpdateWindow(newWallpaper, InputTarget::DispatchMode::SLIPPERY_ENTER,
                                 InputTarget::Flags::WINDOW_IS_OBSCURED |
                                         InputTarget::Flags::WINDOW_IS_PARTIALLY_OBSCURED,
-                                deviceId, pointers, entry.eventTime);
+                                deviceId, pointers);
     }
 }
 
diff --git a/services/inputflinger/dispatcher/InputDispatcher.h b/services/inputflinger/dispatcher/InputDispatcher.h
index 87dfd1d..698bdba 100644
--- a/services/inputflinger/dispatcher/InputDispatcher.h
+++ b/services/inputflinger/dispatcher/InputDispatcher.h
@@ -709,23 +709,11 @@
 
     sp<InputReporterInterface> mReporter;
 
-    /**
-     * Slip the wallpaper touch if necessary.
-     *
-     * @param targetFlags the target flags
-     * @param oldWindowHandle the old window that the touch slipped out of
-     * @param newWindowHandle the new window that the touch is slipping into
-     * @param state the current touch state. This will be updated if necessary to reflect the new
-     *        windows that are receiving touch.
-     * @param deviceId the device id of the current motion being processed
-     * @param pointerProperties the pointer properties of the current motion being processed
-     * @param targets the current targets to add the walpaper ones to
-     * @param eventTime the new downTime for the wallpaper target
-     */
     void slipWallpaperTouch(ftl::Flags<InputTarget::Flags> targetFlags,
                             const sp<android::gui::WindowInfoHandle>& oldWindowHandle,
                             const sp<android::gui::WindowInfoHandle>& newWindowHandle,
-                            TouchState& state, const MotionEntry& entry,
+                            TouchState& state, DeviceId deviceId,
+                            const PointerProperties& pointerProperties,
                             std::vector<InputTarget>& targets) const REQUIRES(mLock);
     void transferWallpaperTouch(ftl::Flags<InputTarget::Flags> oldTargetFlags,
                                 ftl::Flags<InputTarget::Flags> newTargetFlags,
diff --git a/services/inputflinger/dispatcher/TouchState.h b/services/inputflinger/dispatcher/TouchState.h
index 5a70dd5..9d4bb3d 100644
--- a/services/inputflinger/dispatcher/TouchState.h
+++ b/services/inputflinger/dispatcher/TouchState.h
@@ -47,7 +47,7 @@
             const sp<android::gui::WindowInfoHandle>& windowHandle,
             InputTarget::DispatchMode dispatchMode, ftl::Flags<InputTarget::Flags> targetFlags,
             DeviceId deviceId, const std::vector<PointerProperties>& touchingPointers,
-            std::optional<nsecs_t> firstDownTimeInTarget);
+            std::optional<nsecs_t> firstDownTimeInTarget = std::nullopt);
     void addHoveringPointerToWindow(const sp<android::gui::WindowInfoHandle>& windowHandle,
                                     DeviceId deviceId, const PointerProperties& pointer);
     void removeHoveringPointer(DeviceId deviceId, int32_t pointerId);
diff --git a/services/inputflinger/tests/InputDispatcher_test.cpp b/services/inputflinger/tests/InputDispatcher_test.cpp
index a573b9e..e505850 100644
--- a/services/inputflinger/tests/InputDispatcher_test.cpp
+++ b/services/inputflinger/tests/InputDispatcher_test.cpp
@@ -5663,147 +5663,6 @@
 }
 
 /**
- * Three windows:
- * 1) A window on the left, with flag dup_to_wallpaper
- * 2) A window on the right, with flag slippery
- * 3) A wallpaper window  under the left window
- * When touch slips from right window to left, the wallpaper should receive a similar slippery
- * enter event. Later on, when another device becomes active, the wallpaper should receive
- * consistent streams from the new device, and also from the old device.
- * This test attempts to reproduce a crash in the dispatcher where the wallpaper target's downTime
- * was not getting set during slippery entrance.
- */
-TEST_F(InputDispatcherTest, WallpaperWindowWhenSlipperyAndMultiWindowMultiTouch) {
-    std::shared_ptr<FakeApplicationHandle> application1 = std::make_shared<FakeApplicationHandle>();
-    std::shared_ptr<FakeApplicationHandle> application2 = std::make_shared<FakeApplicationHandle>();
-    std::shared_ptr<FakeApplicationHandle> application3 = std::make_shared<FakeApplicationHandle>();
-    sp<FakeWindowHandle> wallpaper =
-            sp<FakeWindowHandle>::make(application1, mDispatcher, "wallpaper",
-                                       ui::LogicalDisplayId::DEFAULT);
-    wallpaper->setIsWallpaper(true);
-    wallpaper->setPreventSplitting(true);
-    wallpaper->setTouchable(false);
-
-    sp<FakeWindowHandle> leftWindow = sp<FakeWindowHandle>::make(application2, mDispatcher, "Left",
-                                                                 ui::LogicalDisplayId::DEFAULT);
-    leftWindow->setTouchableRegion(Region{{0, 0, 100, 100}});
-    leftWindow->setDupTouchToWallpaper(true);
-
-    sp<FakeWindowHandle> rightWindow =
-            sp<FakeWindowHandle>::make(application3, mDispatcher, "Right",
-                                       ui::LogicalDisplayId::DEFAULT);
-    rightWindow->setTouchableRegion(Region{{100, 0, 200, 100}});
-    rightWindow->setSlippery(true);
-    rightWindow->setWatchOutsideTouch(true);
-    rightWindow->setTrustedOverlay(true);
-
-    mDispatcher->onWindowInfosChanged(
-            {{*rightWindow->getInfo(), *leftWindow->getInfo(), *wallpaper->getInfo()}, {}, 0, 0});
-
-    const DeviceId deviceA = 3;
-    const DeviceId deviceB = 9;
-
-    // First finger from device A into right window
-    NotifyMotionArgs deviceADownArgs =
-            MotionArgsBuilder(ACTION_DOWN, AINPUT_SOURCE_TOUCHSCREEN)
-                    .pointer(PointerBuilder(0, ToolType::FINGER).x(150).y(50))
-                    .deviceId(deviceA)
-                    .build();
-
-    mDispatcher->notifyMotion(deviceADownArgs);
-    rightWindow->consumeMotionEvent(WithMotionAction(ACTION_DOWN));
-
-    // Move the finger of device A from right window into left window. It should slip.
-    mDispatcher->notifyMotion(MotionArgsBuilder(ACTION_MOVE, AINPUT_SOURCE_TOUCHSCREEN)
-                                      .pointer(PointerBuilder(0, ToolType::FINGER).x(80).y(50))
-                                      .deviceId(deviceA)
-                                      .downTime(deviceADownArgs.downTime)
-                                      .build());
-
-    leftWindow->consumeMotionEvent(WithMotionAction(ACTION_DOWN));
-    rightWindow->consumeMotionEvent(WithMotionAction(ACTION_CANCEL));
-    wallpaper->consumeMotionEvent(WithMotionAction(ACTION_DOWN));
-
-    // Finger from device B down into left window
-    NotifyMotionArgs deviceBDownArgs =
-            MotionArgsBuilder(ACTION_DOWN, AINPUT_SOURCE_TOUCHSCREEN)
-                    .pointer(PointerBuilder(0, ToolType::FINGER).x(40).y(40))
-                    .deviceId(deviceB)
-                    .build();
-    mDispatcher->notifyMotion(deviceBDownArgs);
-    leftWindow->consumeMotionEvent(AllOf(WithDeviceId(deviceB), WithMotionAction(ACTION_DOWN)));
-    wallpaper->consumeMotionEvent(AllOf(WithDeviceId(deviceB), WithMotionAction(ACTION_DOWN)));
-
-    rightWindow->consumeMotionEvent(AllOf(WithDeviceId(deviceB), WithMotionAction(ACTION_OUTSIDE)));
-
-    // Move finger from device B, still keeping it in the left window
-    mDispatcher->notifyMotion(MotionArgsBuilder(ACTION_MOVE, AINPUT_SOURCE_TOUCHSCREEN)
-                                      .pointer(PointerBuilder(0, ToolType::FINGER).x(40).y(50))
-                                      .deviceId(deviceB)
-                                      .downTime(deviceBDownArgs.downTime)
-                                      .build());
-    leftWindow->consumeMotionEvent(AllOf(WithDeviceId(deviceB), WithMotionAction(ACTION_MOVE)));
-    wallpaper->consumeMotionEvent(AllOf(WithDeviceId(deviceB), WithMotionAction(ACTION_MOVE)));
-
-    // Lift the finger from device B
-    mDispatcher->notifyMotion(MotionArgsBuilder(ACTION_UP, AINPUT_SOURCE_TOUCHSCREEN)
-                                      .pointer(PointerBuilder(0, ToolType::FINGER).x(40).y(50))
-                                      .deviceId(deviceB)
-                                      .downTime(deviceBDownArgs.downTime)
-                                      .build());
-    leftWindow->consumeMotionEvent(AllOf(WithDeviceId(deviceB), WithMotionAction(ACTION_UP)));
-    wallpaper->consumeMotionEvent(AllOf(WithDeviceId(deviceB), WithMotionAction(ACTION_UP)));
-
-    // Move the finger of device A, keeping it in the left window
-    mDispatcher->notifyMotion(MotionArgsBuilder(ACTION_MOVE, AINPUT_SOURCE_TOUCHSCREEN)
-                                      .pointer(PointerBuilder(0, ToolType::FINGER).x(70).y(50))
-                                      .deviceId(deviceA)
-                                      .downTime(deviceADownArgs.downTime)
-                                      .build());
-
-    leftWindow->consumeMotionEvent(AllOf(WithDeviceId(deviceA), WithMotionAction(ACTION_MOVE)));
-    wallpaper->consumeMotionEvent(AllOf(WithDeviceId(deviceA), WithMotionAction(ACTION_MOVE)));
-
-    // Second finger down from device A, into the right window. It should be split into:
-    // MOVE for the left window (due to existing implementation) + a DOWN into the right window
-    // Wallpaper will not receive this new pointer, and it will only get the MOVE event.
-    mDispatcher->notifyMotion(MotionArgsBuilder(POINTER_1_DOWN, AINPUT_SOURCE_TOUCHSCREEN)
-                                      .pointer(PointerBuilder(0, ToolType::FINGER).x(70).y(50))
-                                      .pointer(PointerBuilder(1, ToolType::FINGER).x(140).y(50))
-                                      .deviceId(deviceA)
-                                      .downTime(deviceADownArgs.downTime)
-                                      .build());
-    auto firstFingerMoveFromDeviceA = AllOf(WithDeviceId(deviceA), WithMotionAction(ACTION_MOVE),
-                                            WithPointerCount(1), WithPointerId(0, 0));
-    leftWindow->consumeMotionEvent(firstFingerMoveFromDeviceA);
-    wallpaper->consumeMotionEvent(firstFingerMoveFromDeviceA);
-    rightWindow->consumeMotionEvent(
-            AllOf(WithDeviceId(deviceA), WithMotionAction(ACTION_DOWN), WithPointerId(0, 1)));
-
-    // Lift up the second finger.
-    mDispatcher->notifyMotion(MotionArgsBuilder(POINTER_1_UP, AINPUT_SOURCE_TOUCHSCREEN)
-                                      .pointer(PointerBuilder(0, ToolType::FINGER).x(70).y(50))
-                                      .pointer(PointerBuilder(1, ToolType::FINGER).x(140).y(50))
-                                      .deviceId(deviceA)
-                                      .downTime(deviceADownArgs.downTime)
-                                      .build());
-
-    rightWindow->consumeMotionEvent(AllOf(WithDeviceId(deviceA), WithMotionAction(ACTION_UP)));
-    leftWindow->consumeMotionEvent(firstFingerMoveFromDeviceA);
-    wallpaper->consumeMotionEvent(firstFingerMoveFromDeviceA);
-
-    mDispatcher->notifyMotion(MotionArgsBuilder(ACTION_UP, AINPUT_SOURCE_TOUCHSCREEN)
-                                      .pointer(PointerBuilder(0, ToolType::FINGER).x(70).y(50))
-                                      .deviceId(deviceA)
-                                      .downTime(deviceADownArgs.downTime)
-                                      .build());
-
-    leftWindow->consumeMotionEvent(AllOf(WithDeviceId(deviceA), WithMotionAction(ACTION_UP)));
-    wallpaper->consumeMotionEvent(AllOf(WithDeviceId(deviceA), WithMotionAction(ACTION_UP)));
-    rightWindow->assertNoEvents();
-}
-
-/**
  * Two windows: left and right. The left window has PREVENT_SPLITTING input config. Device A sends a
  * down event to the right window. Device B sends a down event to the left window, and then a
  * POINTER_DOWN event to the right window. However, since the left window prevents splitting, the