~aleteoryx/muditaos

muditaos/module-apps/application-desktop/doc/appdesktop_pinflow_hotswap.pu -rw-r--r-- 3.3 KiB
a405cad6Aleteoryx trim readme 9 days ago
                                                                                
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
@startuml
skinparam BackgroundColor F0F0F0

participant "Service Cellular" as srvclr
participant "Application Manager" as appmgr
participant "ApplicaionDesktop" as appdsktp
participant "PinLockWindow" as pinwin
actor User

    == PIN required - HotSwap ==

note left of srvclr
    Cellular side data:
    State: PIN required
    SIM: SIM1
    phone: +48500500500
    attempts: 4
end note
/ note left of appdsktp
    Desktop side state:
    Screen Locked
end note
/ note left of pinwin
    Desktop side data:
    None
end note

[o->srvclr : need PIN1
activate srvclr
srvclr -> appmgr : ActionMessage{RequestPin1, {SIM1, attempts}} via sys::bus message
    activate appmgr
deactivate srvclr
    appmgr -> appmgr : translate request to action
    appmgr -> appdsktp : forward action
        activate appdsktp
    deactivate appmgr
        appdsktp -> appdsktp : handle(RequestPinAction) -> queued
        deactivate appdsktp

        ... ...
        appdsktp <- User : Unlock screen
        activate appdsktp

note left of pinwin
    Desktop side data:
    State: PIN required
    SIM: SIM1
    attempts: 4
end note
/ note left of appdsktp
    Desktop side state:
    Screen Unlocked
end note

        appdsktp -> pinwin ** : switchWindow(SIM1, requiredPIN, attempts)
            activate pinwin
        deactivate appdsktp
            pinwin -> pinwin : setVisiblePinRequired

            pinwin <- User : Enters PIN
            ... Entering PIN interrupted, user doing hot swap ...

[o->srvclr : need PIN2
activate srvclr

note left of srvclr
    Cellular side data:
    State: PIN required
    SIM: SIM2
    phone: +48600600600
    attempts: 4
end note
/ note left of pinwin
    Desktop side data:
    State: PIN required
    SIM: SIM1
    attempts: 4
end note

srvclr -> appmgr : ActionMessage{RequestPin1, {SIM2, attempts}} via sys::bus message
    activate appmgr
deactivate srvclr
    appmgr -> appmgr : translate request to action
    appmgr -> appdsktp : forward action
        activate appdsktp
    deactivate appmgr
        appdsktp -> appdsktp : handle(RequestPinAction)

note left of pinwin
    Desktop side data:
    State: PIN required
    SIM: SIM2
    attempts: 4
end note
        appdsktp -> pinwin : switchWindow(SIM2, requiredPIN, attempts)
            activate pinwin
        deactivate appdsktp
            pinwin -> pinwin : rebuild
            pinwin -> pinwin : setVisiblePinRequired
            pinwin <- User : Enters PIN
            pinwin <- User : Confirm
        appdsktp <- pinwin : handlePasscode(pinValue)
        activate appdsktp
            deactivate pinwin
            deactivate pinwin
srvclr <- appdsktp : PinData(pinValue) via sys::bus message
activate srvclr
        deactivate appdsktp
srvclr -> srvclr : verification passed
deactivate srvclr

note left of srvclr
    Cellular side data:
    State: PIN unlocked
    SIM: SIM2
    phone: +48600600600
    attempts: 4
end note

[o->srvclr : SIM unlocked
activate srvclr
srvclr -> appmgr : ActionMessage{SimUnlocked, {SIM1}} via sys::bus message
    activate appmgr
deactivate srvclr
    appmgr -> appmgr : translate request to action
    appmgr -> appdsktp : forward action
        activate appdsktp
    deactivate appmgr
        appdsktp -> appdsktp : handle(SimUnlockedAction)
        appdsktp -> pinwin !! : delete
        deactivate appdsktp
note left of pinwin
    Desktop side data:
    None
end note

@enduml