Skip to content

Commit 91677d5

Browse files
author
Arpit Singh
committed
[6/n InputDispatcher refactor] Move createInputTarget to anonymous
namespace Moving createInputTarget to anonymous namespace, as it does not requires any state. Bug: 367661487 Bug: 245989146 Test: atest inputflinger_tests Flag: EXEMPT refactor Change-Id: Iadb30c8400ffc09b8c37e407807534e7163b4410
1 parent 9bad23a commit 91677d5

2 files changed

Lines changed: 44 additions & 42 deletions

File tree

services/inputflinger/dispatcher/InputDispatcher.cpp

Lines changed: 44 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -924,6 +924,23 @@ Error<EnumErrorWrapper<InputEventInjectionResult>> injectionError(InputEventInje
924924
std::forward<InputEventInjectionResult>(e));
925925
}
926926

927+
InputTarget createInputTarget(const std::shared_ptr<Connection>& connection,
928+
const sp<android::gui::WindowInfoHandle>& windowHandle,
929+
InputTarget::DispatchMode dispatchMode,
930+
ftl::Flags<InputTarget::Flags> targetFlags,
931+
const ui::Transform& displayTransform,
932+
std::optional<nsecs_t> firstDownTimeInTarget) {
933+
LOG_ALWAYS_FATAL_IF(connection == nullptr);
934+
InputTarget inputTarget{connection};
935+
inputTarget.windowHandle = windowHandle;
936+
inputTarget.dispatchMode = dispatchMode;
937+
inputTarget.flags = targetFlags;
938+
inputTarget.globalScaleFactor = windowHandle->getInfo()->globalScaleFactor;
939+
inputTarget.displayTransform = displayTransform;
940+
inputTarget.firstDownTimeInTarget = firstDownTimeInTarget;
941+
return inputTarget;
942+
}
943+
927944
} // namespace
928945

929946
// --- InputDispatcher ---
@@ -2975,26 +2992,6 @@ void InputDispatcher::addDragEventLocked(const MotionEntry& entry) {
29752992
}
29762993
}
29772994

2978-
std::optional<InputTarget> InputDispatcher::createInputTargetLocked(
2979-
const sp<android::gui::WindowInfoHandle>& windowHandle,
2980-
InputTarget::DispatchMode dispatchMode, ftl::Flags<InputTarget::Flags> targetFlags,
2981-
std::optional<nsecs_t> firstDownTimeInTarget) const {
2982-
std::shared_ptr<Connection> connection = getConnectionLocked(windowHandle->getToken());
2983-
if (connection == nullptr) {
2984-
ALOGW("Not creating InputTarget for %s, no input channel", windowHandle->getName().c_str());
2985-
return {};
2986-
}
2987-
InputTarget inputTarget{connection};
2988-
inputTarget.windowHandle = windowHandle;
2989-
inputTarget.dispatchMode = dispatchMode;
2990-
inputTarget.flags = targetFlags;
2991-
inputTarget.globalScaleFactor = windowHandle->getInfo()->globalScaleFactor;
2992-
inputTarget.firstDownTimeInTarget = firstDownTimeInTarget;
2993-
inputTarget.displayTransform =
2994-
mWindowInfos.getDisplayTransform(windowHandle->getInfo()->displayId);
2995-
return inputTarget;
2996-
}
2997-
29982995
void InputDispatcher::addWindowTargetLocked(const sp<WindowInfoHandle>& windowHandle,
29992996
InputTarget::DispatchMode dispatchMode,
30002997
ftl::Flags<InputTarget::Flags> targetFlags,
@@ -3009,13 +3006,17 @@ void InputDispatcher::addWindowTargetLocked(const sp<WindowInfoHandle>& windowHa
30093006
const WindowInfo* windowInfo = windowHandle->getInfo();
30103007

30113008
if (it == inputTargets.end()) {
3012-
std::optional<InputTarget> target =
3013-
createInputTargetLocked(windowHandle, dispatchMode, targetFlags,
3014-
firstDownTimeInTarget);
3015-
if (!target) {
3009+
std::shared_ptr<Connection> connection = getConnectionLocked(windowHandle->getToken());
3010+
if (connection == nullptr) {
3011+
ALOGW("Not creating InputTarget for %s, no input channel",
3012+
windowHandle->getName().c_str());
30163013
return;
30173014
}
3018-
inputTargets.push_back(*target);
3015+
inputTargets.push_back(createInputTarget(connection, windowHandle, dispatchMode,
3016+
targetFlags,
3017+
mWindowInfos.getDisplayTransform(
3018+
windowHandle->getInfo()->displayId),
3019+
firstDownTimeInTarget));
30193020
it = inputTargets.end() - 1;
30203021
}
30213022

@@ -3060,13 +3061,17 @@ void InputDispatcher::addPointerWindowTargetLocked(
30603061
const WindowInfo* windowInfo = windowHandle->getInfo();
30613062

30623063
if (it == inputTargets.end()) {
3063-
std::optional<InputTarget> target =
3064-
createInputTargetLocked(windowHandle, dispatchMode, targetFlags,
3065-
firstDownTimeInTarget);
3066-
if (!target) {
3064+
std::shared_ptr<Connection> connection = getConnectionLocked(windowHandle->getToken());
3065+
if (connection == nullptr) {
3066+
ALOGW("Not creating InputTarget for %s, no input channel",
3067+
windowHandle->getName().c_str());
30673068
return;
30683069
}
3069-
inputTargets.push_back(*target);
3070+
inputTargets.push_back(createInputTarget(connection, windowHandle, dispatchMode,
3071+
targetFlags,
3072+
mWindowInfos.getDisplayTransform(
3073+
windowHandle->getInfo()->displayId),
3074+
firstDownTimeInTarget));
30703075
it = inputTargets.end() - 1;
30713076
}
30723077

@@ -6556,14 +6561,15 @@ void InputDispatcher::doDispatchCycleFinishedCommand(nsecs_t finishTime,
65566561
const auto windowHandle = mWindowInfos.findWindowHandle(connection->getToken());
65576562
// Only dispatch fallbacks if there is a window for the connection.
65586563
if (windowHandle != nullptr) {
6559-
const auto inputTarget =
6560-
createInputTargetLocked(windowHandle, InputTarget::DispatchMode::AS_IS,
6561-
dispatchEntry->targetFlags,
6562-
fallbackKeyEntry->downTime);
6563-
if (inputTarget.has_value()) {
6564-
enqueueDispatchEntryLocked(connection, std::move(fallbackKeyEntry),
6565-
*inputTarget);
6566-
}
6564+
nsecs_t downTime = fallbackKeyEntry->downTime;
6565+
enqueueDispatchEntryLocked(connection, std::move(fallbackKeyEntry),
6566+
createInputTarget(connection, windowHandle,
6567+
InputTarget::DispatchMode::AS_IS,
6568+
dispatchEntry->targetFlags,
6569+
mWindowInfos.getDisplayTransform(
6570+
windowHandle->getInfo()
6571+
->displayId),
6572+
downTime));
65676573
}
65686574
}
65696575
releaseDispatchEntry(std::move(dispatchEntry));

services/inputflinger/dispatcher/InputDispatcher.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -582,10 +582,6 @@ class InputDispatcher : public android::InputDispatcherInterface {
582582
std::vector<Monitor> selectResponsiveMonitorsLocked(
583583
const std::vector<Monitor>& gestureMonitors) const REQUIRES(mLock);
584584

585-
std::optional<InputTarget> createInputTargetLocked(
586-
const sp<android::gui::WindowInfoHandle>& windowHandle,
587-
InputTarget::DispatchMode dispatchMode, ftl::Flags<InputTarget::Flags> targetFlags,
588-
std::optional<nsecs_t> firstDownTimeInTarget) const REQUIRES(mLock);
589585
void addWindowTargetLocked(const sp<android::gui::WindowInfoHandle>& windowHandle,
590586
InputTarget::DispatchMode dispatchMode,
591587
ftl::Flags<InputTarget::Flags> targetFlags,

0 commit comments

Comments
 (0)