Pointer Icon Refactor: Show cursor immediately when mouse is connected

When a mouse or touchpad is connected, show the mouse cursor
immediately, instead of waiting for the first event to be generated by
the device.

This also means that the mouse cursor position will be valid whenever
there is a mouse or touchpad connected, whereas before, the cursor
position would be invalid until the first event is generated by the
device.

Bug: 315509086
Bug: 290924778
Bug: 293587049
Test: atest inputflinger_tests
Change-Id: I55898a3de1beb0f83f5da199521f26a886fb596c
diff --git a/services/inputflinger/tests/FakePointerController.h b/services/inputflinger/tests/FakePointerController.h
index 7668011..800f864 100644
--- a/services/inputflinger/tests/FakePointerController.h
+++ b/services/inputflinger/tests/FakePointerController.h
@@ -41,6 +41,7 @@
     void setDisplayViewport(const DisplayViewport& viewport) override;
     void updatePointerIcon(PointerIconStyle iconId) override;
     void setCustomPointerIcon(const SpriteIcon& icon) override;
+    void fade(Transition) override;
 
     void assertViewportSet(int32_t displayId);
     void assertViewportNotSet();
@@ -56,7 +57,6 @@
     std::string dump() override { return ""; }
     std::optional<FloatRect> getBounds() const override;
     void move(float deltaX, float deltaY) override;
-    void fade(Transition) override;
     void unfade(Transition) override;
     void setPresentation(Presentation) override {}
     void setSpots(const PointerCoords*, const uint32_t*, BitSet32 spotIdBits,