summaryrefslogtreecommitdiffstats
path: root/doc/parts/show_hide_onscreen.pu
blob: b72ccb17dda76539cbc5ce757c20029e51c37121 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
@startuml

title Show/Hide Onscreenapp Sequence

actor User
entity HomeScreen_Service as HSS
entity App
entity Onscreenapp
entity WindowManagere as WM

== show Onscreenapp ==
User->App: display Onscreenapp by user operation
App->HSS: subscribe replyShowWindow event
App->HSS: call showWindow()
note right
{ "application_id": "onscreenapp", 
  "parameter": { 
    "file": "qml file path", 
    "data": {...}
  }
}
end note
HSS->HSS: get app's id
HSS->Onscreenapp: push showWindow event
note right
{ "application_id": "onscreenapp", 
  "parameter": {
    "file": "qml file path", 
    "data": {...},
    "replyid": "app's id"
 }
}
end note
Onscreenapp->WM: activateWindow("on_screen.app")

alt display able
WM->Onscreenapp: SyncDraw
Onscreenapp->Onscreenapp: load app's qml
Onscreenapp->WM: EndDraw("on_screen.app")
WM->Onscreenapp: VISIBLE("on_screen.app")

else display disable
rnote over Onscreenapp
do nothing
end rnote
end

== hide Onscreenapp ==
alt touch Onscreenapp's button
User->Onscreenapp: touch Onscreenapp's button
Onscreenapp->WM: deactivateWindow("on_screen.app")
Onscreenapp->Onscreenapp: unload qml
Onscreenapp->HSS: call replyShowWindow()
note right
{ "application_id": "app's id", 
  "parameter": {
    "method": "Buttons.ButtonPress", 
    "buttonName": "pressed button name", 
    "buttonPressMode": "Short"
 }
}
end note
WM->Onscreenapp: INVISIBLE("on_screen.app")
HSS->App: push replyShowWindow event
App->App: call button function

else hide by App

App->HSS: call hideWindow("onscreenapp")
note right
{ "application_id": "onscreenapp"}
end note
HSS->Onscreenapp: push hideWindow event
Onscreenapp->Onscreenapp: unload qml
Onscreenapp->WM: deactivateWindow("on_screen.app")
WM->Onscreenapp: INVISIBLE("on_screen.app")

end

@enduml