summaryrefslogtreecommitdiff
path: root/services/inputflinger/InputReaderBase.cpp
diff options
context:
space:
mode:
author Michael Wright <michaelwr@google.com> 2020-10-27 16:09:22 +0000
committer Michael Wright <michaelwr@google.com> 2020-11-03 15:17:02 +0000
commitdde67b898d10daf78a93527e1e866d67bb8c3f63 (patch)
tree9b33f933e46d596c3d017b3d6026e50348b56d5c /services/inputflinger/InputReaderBase.cpp
parent9febda8e05bbd924d14682454fdc7a846c38f954 (diff)
Support multiple internal and external viewports
The policy is still effectively the same by selecting the first display, but this lets devices which are configured with a specific unique ID to see the viewport that should be associated with it. Bug: 116824030 Bug: 171549575 Test: atest InputReader_test Change-Id: I3f78a122a3a8dce9c8dac3c88f3d51f29afa367c
Diffstat (limited to 'services/inputflinger/InputReaderBase.cpp')
-rw-r--r--services/inputflinger/InputReaderBase.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/services/inputflinger/InputReaderBase.cpp b/services/inputflinger/InputReaderBase.cpp
index b2dadf8460..9cc777d450 100644
--- a/services/inputflinger/InputReaderBase.cpp
+++ b/services/inputflinger/InputReaderBase.cpp
@@ -19,6 +19,9 @@
//#define LOG_NDEBUG 0
#include "InputReaderBase.h"
+#include "input/DisplayViewport.h"
+#include "input/Input.h"
+#include "input/NamedEnum.h"
#include <android/log.h>
#include <android-base/stringprintf.h>
@@ -99,17 +102,19 @@ std::optional<DisplayViewport> InputReaderConfiguration::getDisplayViewportByTyp
size_t count = 0;
std::optional<DisplayViewport> result = std::nullopt;
for (const DisplayViewport& currentViewport : mDisplays) {
- // Return the first match
+ // Return the first match, or the default display if we're looking for the internal viewport
if (currentViewport.type == type) {
- if (!result) {
+ if (!result ||
+ (type == ViewportType::INTERNAL &&
+ currentViewport.displayId == ADISPLAY_ID_DEFAULT)) {
result = std::make_optional(currentViewport);
}
count++;
}
}
if (count > 1) {
- ALOGE("Found %zu viewports with type %s, but expected 1 at most",
- count, viewportTypeToString(type));
+ ALOGW("Found %zu viewports with type %s, but expected 1 at most", count,
+ NamedEnum::string(type).c_str());
}
return result;
}