@@ -1178,6 +1178,7 @@ status_t SurfaceFlinger::getStaticDisplayInfo(int64_t displayId, ui::StaticDispl
11781178 info->connectionType = snapshot.connectionType ();
11791179 info->port = snapshot.port ();
11801180 info->deviceProductInfo = snapshot.deviceProductInfo ();
1181+ info->screenPartStatus = snapshot.screenPartStatus ();
11811182
11821183 if (mEmulatedDisplayDensity ) {
11831184 info->density = mEmulatedDisplayDensity ;
@@ -3782,6 +3783,7 @@ std::optional<DisplayModeId> SurfaceFlinger::processHotplugConnect(PhysicalDispl
37823783 const auto & display = displayOpt->get ();
37833784 const auto & snapshot = display.snapshot ();
37843785 const uint8_t port = snapshot.port ();
3786+ const android::ScreenPartStatus screenPartStatus = snapshot.screenPartStatus ();
37853787
37863788 std::optional<DeviceProductInfo> deviceProductInfo;
37873789 if (getHwComposer ().updatesDeviceProductInfoOnHotplugReconnect ()) {
@@ -3794,8 +3796,9 @@ std::optional<DisplayModeId> SurfaceFlinger::processHotplugConnect(PhysicalDispl
37943796 // display on reconnect.
37953797 const auto it =
37963798 mPhysicalDisplays .try_replace (displayId, display.token (), displayId, port,
3797- snapshot.connectionType (), std::move (displayModes),
3798- std::move (colorModes), std::move (deviceProductInfo));
3799+ screenPartStatus, snapshot.connectionType (),
3800+ std::move (displayModes), std::move (colorModes),
3801+ std::move (deviceProductInfo));
37993802
38003803 auto & state = mCurrentState .displays .editValueFor (it->second .token ());
38013804 state.sequenceId = DisplayDeviceState{}.sequenceId ; // Generate new sequenceId.
@@ -3812,8 +3815,8 @@ std::optional<DisplayModeId> SurfaceFlinger::processHotplugConnect(PhysicalDispl
38123815 const ui::DisplayConnectionType connectionType =
38133816 getHwComposer ().getDisplayConnectionType (displayId);
38143817
3815- mPhysicalDisplays .try_emplace (displayId, token, displayId, info.port , connectionType ,
3816- std::move (displayModes), std::move (colorModes),
3818+ mPhysicalDisplays .try_emplace (displayId, token, displayId, info.port , info. screenPartStatus ,
3819+ connectionType, std::move (displayModes), std::move (colorModes),
38173820 std::move (info.deviceProductInfo ));
38183821
38193822 DisplayDeviceState state;
@@ -8965,6 +8968,7 @@ binder::Status SurfaceComposerAIDL::getStaticDisplayInfo(int64_t displayId,
89658968 outInfo->density = info.density ;
89668969 outInfo->secure = info.secure ;
89678970 outInfo->installOrientation = static_cast <gui::Rotation>(info.installOrientation );
8971+ outInfo->screenPartStatus = static_cast <uint8_t >(info.screenPartStatus );
89688972
89698973 if (const std::optional<DeviceProductInfo> dpi = info.deviceProductInfo ) {
89708974 gui::DeviceProductInfo dinfo;
0 commit comments