1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "session_manager/include/hidump_controller.h"
17 #include "session_helper.h"
18 #include "wm_single_instance.h"
19
20 namespace OHOS {
21 namespace Rosen {
22 constexpr int STRING_MAX_WIDTH = 21;
23
WM_IMPLEMENT_SINGLE_INSTANCE(HidumpController)24 WM_IMPLEMENT_SINGLE_INSTANCE(HidumpController)
25
26 void HidumpController::GetAllSessionDumpDetailedInfo(std::ostringstream& oss,
27 const std::vector<sptr<SceneSession>>& allSession, const std::vector<sptr<SceneSession>>& backgroundSession)
28 {
29 oss << std::endl
30 << "----------------------------------SessionDetailedInfo"
31 << "-----------------------------------" << std::endl;
32 if ((allSession.size() - backgroundSession.size()) < 0) {
33 oss << std::endl
34 << "sessionList Error" << std::endl;
35 return;
36 }
37 DumpSceneSessionParamList(oss);
38 uint32_t count = 0;
39 for (const auto& session : allSession) {
40 if (session == nullptr) {
41 continue;
42 }
43 if (count >= static_cast<uint32_t>(allSession.size() - backgroundSession.size())) {
44 break;
45 }
46 DumpSceneSessionParam(oss, session);
47 count++;
48 }
49 }
50
DumpSceneSessionParamList(std::ostringstream & oss)51 void HidumpController::DumpSceneSessionParamList(std::ostringstream& oss)
52 {
53 DumpSessionParamList(oss);
54 DumpLayoutRectParamList(oss);
55 DumpLayoutParamList(oss);
56 DumpAbilityParamList(oss);
57 DumpKeyboardParamList(oss);
58 DumpSysconfigParamList(oss);
59 DumpLifeParamList(oss);
60 DumpDisplayParamList(oss);
61 DumpFocusParamList(oss);
62 DumpInputParamList(oss);
63 DumpLakeParamList(oss);
64 DumpCOMParamList(oss);
65 DumpVisibleParamList(oss);
66 }
67
DumpSceneSessionParam(std::ostringstream & oss,sptr<SceneSession> session)68 void HidumpController::DumpSceneSessionParam(std::ostringstream& oss, sptr<SceneSession> session)
69 {
70 std::string sName = session->GetWindowNameAllType();
71 const std::string& windowName = sName.size() <= STRING_MAX_WIDTH ?
72 sName : sName.substr(0, STRING_MAX_WIDTH);
73 oss << "----------------------------------"
74 << windowName << "|"
75 << session->GetPersistentId()
76 << "----------------------------------" << std::endl;
77 sptr<WindowSessionProperty> property = session->GetSessionProperty();
78 if (property == nullptr) {
79 oss << "property is nullptr" << std::endl << std::endl;
80 return;
81 }
82 DumpSessionParam(oss, session, property);
83 DumpLayoutRectParam(oss, session, property);
84 DumpLayoutParam(oss, session, property);
85 DumpAbilityParam(oss, session, property);
86 DumpKeyboardParam(oss, session, property);
87 DumpSysconfigParam(oss, session);
88 DumpLifeParam(oss, session);
89 DumpDisplayParam(oss, session, property);
90 DumpFocusParam(oss, session, property);
91 DumpInputParam(oss, session, property);
92 DumpLakeParam(oss, session);
93 DumpCOMParam(oss, session);
94 DumpVisibleParam(oss, session);
95 oss << std::endl;
96 }
97
DumpSessionParamList(std::ostringstream & oss)98 void HidumpController::DumpSessionParamList(std::ostringstream& oss)
99 {
100 oss << "Session:"
101 << std::endl
102 << "callingPid callingUid isSystem reuse lockedState time type isSystemCalling topmost"
103 << std::endl
104 << "isPrivacyMode isSystemPrivacyMode parentId flag parentPersistentId mode "
105 << "state windowModeSupportType animationFlag"
106 << std::endl
107 << "isFloatingAppType isNonSystemFloating forceHide isNeedUpdateMode "
108 << "meedDefaultAnimationFlag shouldHideNonSecure forceHideState"
109 << std::endl;
110 }
111
DumpSessionParam(std::ostringstream & oss,sptr<SceneSession> session,sptr<WindowSessionProperty> property)112 void HidumpController::DumpSessionParam(
113 std::ostringstream& oss, sptr<SceneSession> session, sptr<WindowSessionProperty> property)
114 {
115 oss << "Session:"
116 << std::endl
117 << session->GetCallingPid() << "|"
118 << session->GetCallingUid() << "|"
119 << session->IsSystemSession() << "|"
120 << session->sessionInfo_.reuse << "|"
121 << session->sessionInfo_.lockedState << "|"
122 << session->sessionInfo_.time << "|"
123 << static_cast<uint32_t>(property->GetWindowType()) << "|"
124 << property->GetSystemCalling() << "|"
125 << property->IsTopmost() << "|"
126 << std::endl
127 << property->GetPrivacyMode() << "|"
128 << property->GetSystemPrivacyMode() << "|"
129 << property->GetParentId() << "|"
130 << property->GetWindowFlags() << "|"
131 << property->GetParentPersistentId() << "|"
132 << static_cast<uint32_t>(property->GetWindowMode()) << "|"
133 << static_cast<uint32_t>(property->GetWindowState()) << "|"
134 << property->GetWindowModeSupportType() << "|"
135 << property->GetAnimationFlag() << "|"
136 << std::endl
137 << property->IsFloatingWindowAppType() << "|"
138 << property->GetHideNonSystemFloatingWindows() << "|"
139 << property->GetForceHide() << "|"
140 << property->GetIsNeedUpdateWindowMode() << "|"
141 << session->IsNeedDefaultAnimation() << "|"
142 << session->shouldHideNonSecureWindows_.load() << "|"
143 << static_cast<uint32_t>(session->GetForceHideState()) << "|"
144 << std::endl;
145 }
146
DumpLayoutRectParamList(std::ostringstream & oss)147 void HidumpController::DumpLayoutRectParamList(std::ostringstream& oss)
148 {
149 oss << "LayoutRect:"
150 << std::endl
151 << "bounds requestRect windowRect"
152 << std::endl
153 << "limits userLimits configLimitsVP"
154 << std::endl
155 << "trans"
156 << std::endl;
157 }
158
DumpLayoutRectParam(std::ostringstream & oss,sptr<SceneSession> session,sptr<WindowSessionProperty> property)159 void HidumpController::DumpLayoutRectParam(
160 std::ostringstream& oss, sptr<SceneSession> session, sptr<WindowSessionProperty> property)
161 {
162 constexpr int precision = 1;
163 WSRectF bounds = session->GetBounds();
164 Rect requestRect = property->GetRequestRect();
165 Rect windowRect = property->GetWindowRect();
166 WindowLimits limits = property->GetWindowLimits();
167 WindowLimits userLimits = property->GetUserWindowLimits();
168 WindowLimits configLimitsVP = property->GetConfigWindowLimitsVP();
169 Transform trans = property->GetTransform();
170 oss << "LayoutRect:" << std::endl
171 << "[" << std::setprecision(precision) << bounds.posX_ << " "
172 << std::setprecision(precision) << bounds.posY_ << " "
173 << std::setprecision(precision) << bounds.width_ << " "
174 << std::setprecision(precision) << bounds.height_ << "]|"
175 << "[" << requestRect.posX_ << " " << requestRect.posY_ << " "
176 << requestRect.width_ << " " << requestRect.height_ << "]|"
177 << "[" << windowRect.posX_ << windowRect.posY_ << " "
178 << windowRect.width_ << " " << windowRect.height_ << "]|"
179 << std::endl
180 << "[" << limits.maxWidth_ << " " << limits.maxHeight_ << " "
181 << limits.minWidth_ << " " << limits.minHeight_ << " "
182 << std::setprecision(precision) << limits.maxRatio_ << " "
183 << std::setprecision(precision) << limits.minRatio_ << " "
184 << std::setprecision(precision) << limits.vpRatio_ << "]|"
185 << "[" << userLimits.maxWidth_ << " " << userLimits.maxHeight_ << " "
186 << userLimits.minWidth_ << " " << userLimits.minHeight_ << "]|"
187 << std::endl
188 << "[" << configLimitsVP.maxWidth_ << " " << configLimitsVP.maxHeight_ << " "
189 << configLimitsVP.minWidth_ << " " << configLimitsVP.minHeight_ << "]|"
190 << std::endl
191 << "[" << std::setprecision(precision) << trans.pivotX_ << " "
192 << std::setprecision(precision) << trans.pivotY_ << " "
193 << std::setprecision(precision) << trans.scaleX_ << " "
194 << std::setprecision(precision) << trans.scaleY_ << " "
195 << std::setprecision(precision) << trans.scaleZ_ << " "
196 << std::setprecision(precision) << trans.rotationX_ << " "
197 << std::setprecision(precision) << trans.rotationY_ << " "
198 << std::setprecision(precision) << trans.rotationZ_ << " "
199 << std::setprecision(precision) << trans.translateX_ << " "
200 << std::setprecision(precision) << trans.translateY_ << " "
201 << std::setprecision(precision) << trans.translateZ_ << "]|"
202 << std::endl;
203 }
204
DumpLayoutParamList(std::ostringstream & oss)205 void HidumpController::DumpLayoutParamList(std::ostringstream& oss)
206 {
207 oss << "Layout:"
208 << std::endl
209 << "rotation reason zOrder aspectRatio floatingScale isDirty dragEnabled raiseEnabled"
210 << std::endl
211 << "requestedOrientation maximizeMode lastVpr isDecorEnable isLayoutFullScreen "
212 << "isDisplayStatusTemp customDecorHeight isTempShowWhenLocked"
213 << std::endl;
214 }
215
DumpLayoutParam(std::ostringstream & oss,sptr<SceneSession> session,sptr<WindowSessionProperty> property)216 void HidumpController::DumpLayoutParam(
217 std::ostringstream& oss, sptr<SceneSession> session, sptr<WindowSessionProperty> property)
218 {
219 constexpr int precision = 1;
220 oss << "Layout:"
221 << std::endl
222 << static_cast<uint32_t>(session->GetRotation()) << "|"
223 << static_cast<uint32_t>(session->reason_) << "|"
224 << session->GetZOrder() << "|"
225 << std::setprecision(precision) << session->GetAspectRatio() << "|"
226 << std::setprecision(precision) << session->GetFloatingScale() << "|"
227 << session->IsDirtyWindow() << "|"
228 << session->IsDragAccessible() << "|"
229 << property->GetDragEnabled() << "|"
230 << property->GetRaiseEnabled() << "|"
231 << std::endl
232 << static_cast<uint32_t>(property->GetRequestedOrientation()) << "|"
233 << static_cast<uint32_t>(property->GetMaximizeMode()) << "|"
234 << std::setprecision(precision) << property->GetLastLimitsVpr() << "|"
235 << property->IsDecorEnable() << "|"
236 << property->IsLayoutFullScreen() << "|"
237 << session->GetIsDisplayStatusBarTemporarily() << "|"
238 << session->GetCustomDecorHeight() << "|"
239 << session->IsTemporarilyShowWhenLocked() << "|"
240 << std::endl;
241 }
242
DumpAbilityParamList(std::ostringstream & oss)243 void HidumpController::DumpAbilityParamList(std::ostringstream& oss)
244 {
245 oss << "Ability:"
246 << std::endl
247 << "callingBundleName bundleName moduleName abilityName"
248 << std::endl
249 << "errorCode errorReason callerPersistentId callerBundleName callerAbilityName clientIdentityToken"
250 << std::endl
251 << "appIndex resultCode requestCode callState callingTokenId "
252 << "continueState uiAbilityId tokenState accessTokenId callingSessionId"
253 << std::endl;
254 }
255
DumpAbilityParam(std::ostringstream & oss,sptr<SceneSession> session,sptr<WindowSessionProperty> property)256 void HidumpController::DumpAbilityParam(
257 std::ostringstream& oss, sptr<SceneSession> session, sptr<WindowSessionProperty> property)
258 {
259 oss << "Ability:"
260 << std::endl
261 << session->callingBundleName_ << "|"
262 << session->sessionInfo_.bundleName_ << "|"
263 << session->sessionInfo_.moduleName_ << "|"
264 << session->sessionInfo_.abilityName_ << "|"
265 << std::endl
266 << session->sessionInfo_.errorCode << "|"
267 << session->sessionInfo_.errorReason << "|"
268 << session->sessionInfo_.callerPersistentId_ << "|"
269 << session->sessionInfo_.callerBundleName_ << "|"
270 << session->sessionInfo_.callerAbilityName_ << "|"
271 << session->GetClientIdentityToken() << "|"
272 << std::endl
273 << session->sessionInfo_.appIndex_ << "|"
274 << session->sessionInfo_.resultCode << "|"
275 << session->sessionInfo_.requestCode << "|"
276 << session->sessionInfo_.callState_ << "|"
277 << session->sessionInfo_.callingTokenId_ << "|"
278 << static_cast<uint32_t>(session->sessionInfo_.continueState) << "|"
279 << session->sessionInfo_.uiAbilityId_ << "|"
280 << property->GetTokenState() << "|"
281 << property->GetAccessTokenId() << "|"
282 << property->GetCallingSessionId() << "|"
283 << std::endl;
284 }
285
DumpKeyboardParamList(std::ostringstream & oss)286 void HidumpController::DumpKeyboardParamList(std::ostringstream& oss)
287 {
288 oss << "Keyboard:"
289 << std::endl
290 << "scbKeepKeyboardFlag isSystemInput sessionGravity gravitySizePercent "
291 << "keepKeyboardFlag textFieldPositionY textFieldHeight"
292 << std::endl
293 << "keyboardLayoutParams"
294 << std::endl
295 << "lastSafeRect oriPosYBeforeRaisedByKeyboard_"
296 << std::endl;
297 }
298
DumpKeyboardParam(std::ostringstream & oss,sptr<SceneSession> session,sptr<WindowSessionProperty> property)299 void HidumpController::DumpKeyboardParam(
300 std::ostringstream& oss, sptr<SceneSession> session, sptr<WindowSessionProperty> property)
301 {
302 constexpr int precision = 1;
303 WSRect lastSafeRect = session->GetLastSafeRect();
304 int32_t oriPosYBeforeRaisedByKeyboard = session->GetOriPosYBeforeRaisedByKeyboard();
305 KeyboardLayoutParams keyboardLayoutParams = property->GetKeyboardLayoutParams();
306 Rect LandscapeKeyboardRect = keyboardLayoutParams.LandscapeKeyboardRect_;
307 Rect PortraitKeyboardRect = keyboardLayoutParams.PortraitKeyboardRect_;
308 Rect LandscapePanelRect = keyboardLayoutParams.LandscapePanelRect_;
309 Rect PortraitPanelRect = keyboardLayoutParams.PortraitPanelRect_;
310 oss << "Keyboard:"
311 << std::endl
312 << session->GetSCBKeepKeyboardFlag() << "|"
313 << session->IsSystemInput() << "|"
314 << property->GetKeepKeyboardFlag() << "|"
315 << std::setprecision(precision) << property->GetTextFieldPositionY() << "|"
316 << std::setprecision(precision) << property->GetTextFieldHeight() << "|"
317 << std::endl
318 << "{" << static_cast<uint32_t>(keyboardLayoutParams.gravity_) << "|"
319 << keyboardLayoutParams.landscapeAvoidHeight_ << "|"
320 << keyboardLayoutParams.portraitAvoidHeight_ << "|"
321 << "[" << LandscapeKeyboardRect.posX_ << " "
322 << LandscapeKeyboardRect.posY_ << " "
323 << LandscapeKeyboardRect.width_ << " "
324 << LandscapeKeyboardRect.height_ << "]|"
325 << "[" << PortraitKeyboardRect.posX_ << " "
326 << PortraitKeyboardRect.posY_ << " "
327 << PortraitKeyboardRect.width_ << " "
328 << PortraitKeyboardRect.height_ << "]|"
329 << "[" << LandscapePanelRect.posX_ << " "
330 << LandscapePanelRect.posY_ << " "
331 << LandscapePanelRect.width_ << " "
332 << LandscapePanelRect.height_ << "]|"
333 << "[" << PortraitPanelRect.posX_ << " "
334 << PortraitPanelRect.posY_ << " "
335 << PortraitPanelRect.width_ << " "
336 << PortraitPanelRect.height_ << "]}"
337 << std::endl
338 << "[" << lastSafeRect.posX_ << " "
339 << lastSafeRect.posY_ << " "
340 << lastSafeRect.width_ << " "
341 << lastSafeRect.height_ << "]|"
342 << "[" << oriPosYBeforeRaisedByKeyboard << "]|"
343 << std::endl;
344 }
345
DumpSysconfigParamList(std::ostringstream & oss)346 void HidumpController::DumpSysconfigParamList(std::ostringstream& oss)
347 {
348 oss << "Sysconfig:"
349 << std::endl
350 << "isSystemDecorEnable decorWindowModeSupportType isStretchable defaultWindowMode "
351 << "keyboardAnimationConfig maxFloatingWindowSize windowUIType"
352 << std::endl
353 << "miniWidthOfMainWindow miniHeightOfMainWindow miniWidthOfSubWindow miniHeightOfSubWindow backgroundswitch "
354 << "freeMultiWindowEnable freeMultiWindowSupport supportTypeFloatWindow freeMultiWindowConfig_"
355 << std::endl;
356 }
357
DumpSysconfigParam(std::ostringstream & oss,sptr<SceneSession> session)358 void HidumpController::DumpSysconfigParam(std::ostringstream& oss, sptr<SceneSession> session)
359 {
360 SystemSessionConfig systemConfig = session->GetSystemConfig();
361 FreeMultiWindowConfig freeMultiWindowConfig = systemConfig.freeMultiWindowConfig_;
362 oss << "Sysconfig:"
363 << std::endl
364 << systemConfig.isSystemDecorEnable_ << "|"
365 << systemConfig.decorWindowModeSupportType_ << "|"
366 << systemConfig.isStretchable_ << "|"
367 << static_cast<uint32_t>(systemConfig.defaultWindowMode_) << "|"
368 << "[" << systemConfig.animationIn_.curveType_ << " "
369 << systemConfig.animationIn_.duration_ << "]|"
370 << "[" << systemConfig.animationOut_.curveType_ << " "
371 << systemConfig.animationOut_.duration_ << "]|"
372 << systemConfig.maxFloatingWindowSize_ << "|"
373 << static_cast<uint8_t>(systemConfig.windowUIType_) << "|"
374 << std::endl
375 << systemConfig.miniWidthOfMainWindow_ << "|"
376 << systemConfig.miniHeightOfMainWindow_ << "|"
377 << systemConfig.miniWidthOfSubWindow_ << "|"
378 << systemConfig.miniHeightOfSubWindow_ << "|"
379 << systemConfig.miniWidthOfDialogWindow_ << "|"
380 << systemConfig.miniHeightOfDialogWindow_ << "|"
381 << systemConfig.backgroundswitch << "|"
382 << systemConfig.freeMultiWindowEnable_ << "|"
383 << systemConfig.freeMultiWindowSupport_ << "|"
384 << systemConfig.supportTypeFloatWindow_ << "|"
385 << "[" << freeMultiWindowConfig.isSystemDecorEnable_ << " "
386 << freeMultiWindowConfig.decorWindowModeSupportType_ << " "
387 << static_cast<uint32_t>(freeMultiWindowConfig.defaultWindowMode_) << " "
388 << freeMultiWindowConfig.maxMainFloatingWindowNumber_<< "]|"
389 << std::endl;
390 }
391
DumpLifeParamList(std::ostringstream & oss)392 void HidumpController::DumpLifeParamList(std::ostringstream& oss)
393 {
394 oss << "Life: "
395 << "state isActive isSystemActive isVisible uiNodeId showRecent bufferAvailable "
396 << "foregroundInteractiveStatus isAttach isPersistentRecover"
397 << std::endl;
398 }
399
DumpLifeParam(std::ostringstream & oss,sptr<SceneSession> session)400 void HidumpController::DumpLifeParam(std::ostringstream& oss, sptr<SceneSession> session)
401 {
402 oss << "Life: "
403 << static_cast<uint32_t>(session->GetSessionState()) << "|"
404 << session->IsActive() << "|"
405 << session->IsSystemActive() << "|"
406 << session->IsVisible() << "|"
407 << session->GetUINodeId() << "|"
408 << session->GetShowRecent() << "|"
409 << session->GetBufferAvailable() << "|"
410 << session->GetForegroundInteractiveStatus() << "|"
411 << session->GetAttachState() << "|"
412 << session->sessionInfo_.isPersistentRecover_ << "|"
413 << std::endl;
414 }
415
DumpDisplayParamList(std::ostringstream & oss)416 void HidumpController::DumpDisplayParamList(std::ostringstream& oss)
417 {
418 oss << "Display: "
419 << "snapshotScale vpr screenId brightness displayId"
420 << std::endl;
421 }
422
DumpDisplayParam(std::ostringstream & oss,sptr<SceneSession> session,sptr<WindowSessionProperty> property)423 void HidumpController::DumpDisplayParam(
424 std::ostringstream& oss, sptr<SceneSession> session, sptr<WindowSessionProperty> property)
425 {
426 constexpr int precision = 1;
427 oss << "Display: "
428 << std::setprecision(precision) << session->snapshotScale_ << "|"
429 << std::setprecision(precision) << session->vpr_ << "|"
430 << session->sessionInfo_.screenId_ << "|"
431 << std::setprecision(precision) << property->GetBrightness() << "|"
432 << property->GetDisplayId() << "|"
433 << std::endl;
434 }
435
DumpFocusParamList(std::ostringstream & oss)436 void HidumpController::DumpFocusParamList(std::ostringstream& oss)
437 {
438 oss << "Focus: "
439 << "isFocused blockingFocus focusedOnShow focusable"
440 << std::endl;
441 }
442
DumpFocusParam(std::ostringstream & oss,sptr<SceneSession> session,sptr<WindowSessionProperty> property)443 void HidumpController::DumpFocusParam(
444 std::ostringstream& oss, sptr<SceneSession> session, sptr<WindowSessionProperty> property)
445 {
446 oss << "Focus: "
447 << session->IsFocused() << "|"
448 << session->GetBlockingFocus() << "|"
449 << session->IsFocusedOnShow() << "|"
450 << property->GetFocusable() << "|"
451 << std::endl;
452 }
453
DumpInputParamList(std::ostringstream & oss)454 void HidumpController::DumpInputParamList(std::ostringstream& oss)
455 {
456 oss << "Input: "
457 << "forceTouchable systemTouchable isSetPointerAreas touchable"
458 << std::endl;
459 }
460
DumpInputParam(std::ostringstream & oss,sptr<SceneSession> session,sptr<WindowSessionProperty> property)461 void HidumpController::DumpInputParam(
462 std::ostringstream& oss, sptr<SceneSession> session, sptr<WindowSessionProperty> property)
463 {
464 oss << "Input: "
465 << session->forceTouchable_ << "|"
466 << session->systemTouchable_ << "|"
467 << session->sessionInfo_.isSetPointerAreas_ << "|"
468 << property->GetTouchable() << "|"
469 << std::endl;
470 }
471
DumpLakeParamList(std::ostringstream & oss)472 void HidumpController::DumpLakeParamList(std::ostringstream& oss)
473 {
474 oss << "Lake: "
475 << "sessionAffinity collaboratorType"
476 << std::endl;
477 }
478
DumpLakeParam(std::ostringstream & oss,sptr<SceneSession> session)479 void HidumpController::DumpLakeParam(std::ostringstream& oss, sptr<SceneSession> session)
480 {
481 oss << "Lake: "
482 << session->sessionInfo_.sessionAffinity << "|"
483 << session->sessionInfo_.collaboratorType_ << "|"
484 << std::endl;
485 }
486
DumpCOMParamList(std::ostringstream & oss)487 void HidumpController::DumpCOMParamList(std::ostringstream& oss)
488 {
489 oss << "COM: "
490 << "isRSDrawing"
491 << std::endl;
492 }
493
DumpCOMParam(std::ostringstream & oss,sptr<SceneSession> session)494 void HidumpController::DumpCOMParam(std::ostringstream& oss, sptr<SceneSession> session)
495 {
496 oss << "COM: "
497 << session->GetDrawingContentState() << "|"
498 << std::endl;
499 }
500
DumpVisibleParamList(std::ostringstream & oss)501 void HidumpController::DumpVisibleParamList(std::ostringstream& oss)
502 {
503 oss << "Visible: "
504 << "isRSVisible visibilityState"
505 << std::endl;
506 }
507
DumpVisibleParam(std::ostringstream & oss,sptr<SceneSession> session)508 void HidumpController::DumpVisibleParam(std::ostringstream& oss, sptr<SceneSession> session)
509 {
510 oss << "Visible: "
511 << session->GetRSVisible() << "|"
512 << static_cast<uint32_t>(session->GetVisibilityState()) << "|"
513 << std::endl;
514 }
515 }
516 } // namespace OHOS::Rosen
517