Determine displayType in SurfaceFlinger
This change eliminates an assumption that the first hotplug connect
event is for the primary display, and all other events are for the
external display.
Bug: 38464421
Test: Boots, settings app navigable
Change-Id: I753deb9a4e99a7b225ab89562c7acf4ce284dbf5
diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h
index 921bb45..a18be9b 100644
--- a/services/surfaceflinger/SurfaceFlinger.h
+++ b/services/surfaceflinger/SurfaceFlinger.h
@@ -417,8 +417,7 @@
void onVsyncReceived(int32_t sequenceId, hwc2_display_t display,
int64_t timestamp) override;
void onHotplugReceived(int32_t sequenceId, hwc2_display_t display,
- HWC2::Connection connection,
- bool primaryDisplay) override;
+ HWC2::Connection connection) override;
void onRefreshReceived(int32_t sequenceId, hwc2_display_t display) override;
/* ------------------------------------------------------------------------
@@ -631,6 +630,8 @@
/* ------------------------------------------------------------------------
* Display management
*/
+ DisplayDevice::DisplayType determineDisplayType(hwc2_display_t display,
+ HWC2::Connection connection) const;
void processDisplayChangesLocked();
void processDisplayHotplugEventsLocked();
@@ -737,7 +738,6 @@
struct HotplugEvent {
hwc2_display_t display;
HWC2::Connection connection = HWC2::Connection::Invalid;
- bool isPrimaryDisplay;
};
// protected by mStateLock
std::vector<HotplugEvent> mPendingHotplugEvents;