113 lines
2.3 KiB
Plaintext
113 lines
2.3 KiB
Plaintext
@startuml
|
|
|
|
|
|
Actor Activity
|
|
participant "AbstractFragment" as A
|
|
participant "AbstractInfoFragment" as B
|
|
participant "ConcreteInfoFragment" as C
|
|
participant "AbstractAdditionalInfoFragment" as D
|
|
participant "ConcreteAdditionalInfoFragment" as E
|
|
participant "RefreshItem" as F
|
|
|
|
Activity -> A: onCreate
|
|
activate A
|
|
A -> A: setup DataHolder
|
|
activate A
|
|
deactivate A
|
|
deactivate A
|
|
|
|
Activity -> B: onCreateView
|
|
activate B
|
|
B -> B: set poster size to square or rectangular
|
|
B -> B: connect this class as swipe refresh listener
|
|
B -> C: getAdditionalInfoFragment()
|
|
activate C
|
|
C -> B: return AbstractAdditionalInfoFragment or null if none
|
|
deactivate C
|
|
B -> C: setupMediaActionBar()
|
|
activate C
|
|
C -> B: setOn...Listener(View.OnClickListener)
|
|
activate B
|
|
C -> B: setOn...Listener(View.OnClickListener)
|
|
C -> B: ...
|
|
note over C: setting a listener for each\naction button required, will\nmake it visible in the UI
|
|
note over B: Make button(s) visible\nin action bar and\nattach listener
|
|
B --> C
|
|
deactivate B
|
|
deactivate C
|
|
B -> C: setupFAB(ImageButton FAB)
|
|
activate C
|
|
note over C: add a listener for the FAB if needed
|
|
C -> B: return true to enable the FAB, false to disable it
|
|
B -> B: updateView(dataholder)
|
|
deactivate C
|
|
note left : updateView uses dataholder to fill views
|
|
activate B
|
|
deactivate B
|
|
B --> Activity: return view
|
|
deactivate B
|
|
|
|
Activity -> B: onStart
|
|
Activate B
|
|
B -> B: bind to library sync service
|
|
activate B
|
|
deactivate B
|
|
deactivate B
|
|
|
|
Activity -> B: onResume
|
|
Activate B
|
|
B -> B: register refresh item if it exists
|
|
activate B
|
|
deactivate B
|
|
deactivate B
|
|
|
|
== UI active ==
|
|
...
|
|
|
|
note over B: user requests a refresh
|
|
Activity -> B: onRefresh
|
|
activate B
|
|
B -> B: getRefreshItem()
|
|
B -> C: if no refreshItem then call createRefreshItem()
|
|
activate B
|
|
activate C
|
|
C -> B: return refresh item
|
|
deactivate C
|
|
deactivate B
|
|
B ->> F: startSync()
|
|
activate F
|
|
F -> F: start LibrarySyncService
|
|
B -> D: refresh()
|
|
activate D
|
|
D -> E: refresh()
|
|
activate E
|
|
E --> D
|
|
deactivate E
|
|
D --> B
|
|
deactivate D
|
|
deactivate B
|
|
...
|
|
F -> C: onSyncProcessEnded(MediaSyncEvent)
|
|
deactivate F
|
|
activate C
|
|
note over C: update dataholder
|
|
C -> B: updateView(dataholder)
|
|
deactivate C
|
|
|
|
...
|
|
== UI inactive ==
|
|
|
|
Activity -> B: onPause
|
|
activate B
|
|
B -> B: unregister refresh item if it exists
|
|
activate B
|
|
deactivate B
|
|
deactivate B
|
|
|
|
Activity -> B: onStop
|
|
activate B
|
|
B -> B: unbind from library sync service
|
|
activate B
|
|
deactivate B
|
|
deactivate B
|
|
@enduml |