-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUML_edith.drawio
331 lines (331 loc) · 41.6 KB
/
UML_edith.drawio
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
<mxfile host="app.diagrams.net" modified="2024-04-21T19:52:07.919Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36" etag="Eom5xyvIHM3TiDbg5dNb" version="24.2.3" type="github">
<diagram id="R2lEEEUBdFMjLlhIrx00" name="Page-1">
<mxGraphModel dx="4568" dy="1568" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0" extFonts="Permanent Marker^https://fonts.googleapis.com/css?family=Permanent+Marker">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-1" value="Task&nbsp;" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="60" y="710" width="220" height="272" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-2" value="<div>- taskStatus : int</div><div>- deadline: String</div><div>- priority: int</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="n1yPlHlh6JEWoWV6ZDrB-1" vertex="1">
<mxGeometry y="26" width="220" height="64" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-3" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="n1yPlHlh6JEWoWV6ZDrB-1" vertex="1">
<mxGeometry y="90" width="220" height="10" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-4" value="<div><span style="background-color: initial;">+ getTaskStatus()</span><br></div><div>+ getDeadline()</div><div>+ getPriority()</div><div><br></div><div>+ setTaskStatus()</div><div>+ setDeadline()</div><div>+ setPriority()</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="n1yPlHlh6JEWoWV6ZDrB-1" vertex="1">
<mxGeometry y="100" width="220" height="172" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-6" value="Event" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="60" y="1030" width="220" height="152" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-7" value="- calenderEntity : CalendarEntity" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="n1yPlHlh6JEWoWV6ZDrB-6" vertex="1">
<mxGeometry y="26" width="220" height="44" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-8" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="n1yPlHlh6JEWoWV6ZDrB-6" vertex="1">
<mxGeometry y="70" width="220" height="10" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-9" value="<br><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="n1yPlHlh6JEWoWV6ZDrB-6" vertex="1">
<mxGeometry y="80" width="220" height="72" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-10" value="DB_Operations" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="-490" y="500" width="340" height="220" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-11" value="- db : FirebaseFirestore" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="n1yPlHlh6JEWoWV6ZDrB-10" vertex="1">
<mxGeometry y="26" width="340" height="26" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-12" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="n1yPlHlh6JEWoWV6ZDrB-10" vertex="1">
<mxGeometry y="52" width="340" height="8" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-13" value="<div>+ getAllCalendarEntities(List&lt;CalendarEntity&gt;)</div>+ getTask(id): Task<div>+ addTask(Task)<br><div>+ removeTask(id)</div><div>+ removeTask(position)</div><div>+ updateTask(Task)</div></div><div>+ updateTaskStatus(id, status)</div><div>+ getSize()</div><div>+ repopulateTaskList(snapshot)</div><div>+ repopulateEventList(snapshot)</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="n1yPlHlh6JEWoWV6ZDrB-10" vertex="1">
<mxGeometry y="60" width="340" height="160" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-15" value="TaskList" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="20" y="20" width="350" height="190" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-16" value="- list : List&lt;Task&gt;<div>- db : DB_Operations</div><div>- adapter : TaskAdapter</div><div>- recyclerView : RecyclerView</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="n1yPlHlh6JEWoWV6ZDrB-15" vertex="1">
<mxGeometry y="26" width="350" height="74" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-17" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="n1yPlHlh6JEWoWV6ZDrB-15" vertex="1">
<mxGeometry y="100" width="350" height="8" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-18" value="+ showData()<div>+ getTasks() : return List&lt;Task&gt;</div><div>+ removeTask(id)&nbsp;</div><div>+ updateTasks(List&lt;Task&gt;) : return List&lt;Task&gt;</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="n1yPlHlh6JEWoWV6ZDrB-15" vertex="1">
<mxGeometry y="108" width="350" height="82" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-23" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>TaskAdapter</b></p><hr size="1" style="border-style:solid;"><p style="margin:0px;margin-left:4px;">- list : List&lt;Task&gt;</p><p style="margin:0px;margin-left:4px;">- db : DB_Operations</p><hr size="1" style="border-style:solid;"><p style="margin:0px;margin-left:4px;">+ onCreateViewHolder</p><p style="margin:0px;margin-left:4px;">+ onBindViewHolder</p><p style="margin:0px;margin-left:4px;">+ getItemCount() : return int</p>" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="97" y="300" width="160" height="130" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-24" value="TaskViewHolder" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="96" y="490" width="160" height="130" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-25" value="- view : View<div>- adapter : TaskAdapter</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="n1yPlHlh6JEWoWV6ZDrB-24" vertex="1">
<mxGeometry y="26" width="160" height="44" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-26" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="n1yPlHlh6JEWoWV6ZDrB-24" vertex="1">
<mxGeometry y="70" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-27" value="+ delete.onClickListener<div>+ edit.onClickListener</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="n1yPlHlh6JEWoWV6ZDrB-24" vertex="1">
<mxGeometry y="78" width="160" height="52" as="geometry" />
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-28" value="" style="endArrow=open;startArrow=circlePlus;endFill=0;startFill=0;endSize=8;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="n1yPlHlh6JEWoWV6ZDrB-23" target="n1yPlHlh6JEWoWV6ZDrB-24" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="280" y="360" as="sourcePoint" />
<mxPoint x="440" y="360" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-31" value="" style="endArrow=block;startArrow=block;endFill=1;startFill=1;html=1;rounded=0;exitX=0.455;exitY=1.035;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.508;entryY=-0.029;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="n1yPlHlh6JEWoWV6ZDrB-18" target="n1yPlHlh6JEWoWV6ZDrB-23" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="330" y="290" as="sourcePoint" />
<mxPoint x="490" y="290" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-32" value="Use" style="endArrow=none;endSize=12;dashed=1;html=1;rounded=0;exitX=0.004;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;" parent="1" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="60.88000000000011" y="807" as="sourcePoint" />
<mxPoint x="-320" y="807" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="n1yPlHlh6JEWoWV6ZDrB-34" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;rounded=0;exitX=0.462;exitY=1.022;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0.034;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="n1yPlHlh6JEWoWV6ZDrB-27" target="n1yPlHlh6JEWoWV6ZDrB-1" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="170" y="640" as="sourcePoint" />
<mxPoint x="330" y="640" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="jEJspqg6cz47ItQOXjEV-1" value="CalendarEntity" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="540" y="660" width="160" height="370" as="geometry" />
</mxCell>
<mxCell id="jEJspqg6cz47ItQOXjEV-2" value="- entityID: String<div>- entityTitle : String</div><div>- entityDescription : String</div><div>- durationInMinutes : long</div><div>- startDateTime : String</div><div>- endDateTime : String</div><div>- TimeSlot : TimeSlot</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="jEJspqg6cz47ItQOXjEV-1" vertex="1">
<mxGeometry y="26" width="160" height="114" as="geometry" />
</mxCell>
<mxCell id="jEJspqg6cz47ItQOXjEV-3" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="jEJspqg6cz47ItQOXjEV-1" vertex="1">
<mxGeometry y="140" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="jEJspqg6cz47ItQOXjEV-4" value="+ getEntityID()<div>+ getEntityTitle()</div><div>+ getEntityDescription()</div><div>+ getD<span style="background-color: initial;">urationInMinutes</span><span style="background-color: initial;">()&nbsp;</span></div><div>+ getStartDateTime()</div><div>+ getEndDateTime()</div><div>+ getTimeSlot()</div><div><br></div><div>+&nbsp;<span style="background-color: initial;">setEntityTitle()</span></div><div>+ setEntityDescription()</div><div>+ setDurationInMinutes()</div><div>+ setStartDateTime()</div><div>+ setEndDateTime()</div><div>+ setTimeSlot()</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="jEJspqg6cz47ItQOXjEV-1" vertex="1">
<mxGeometry y="148" width="160" height="222" as="geometry" />
</mxCell>
<mxCell id="jEJspqg6cz47ItQOXjEV-5" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;entryX=0.989;entryY=0.25;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" target="n1yPlHlh6JEWoWV6ZDrB-3" edge="1" source="jEJspqg6cz47ItQOXjEV-3">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="424.32" y="999.86" as="sourcePoint" />
<mxPoint x="423.99999999999983" y="870.14" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="jEJspqg6cz47ItQOXjEV-14" value="child" style="edgeLabel;resizable=0;html=1;align=right;verticalAlign=bottom;" parent="1" connectable="0" vertex="1">
<mxGeometry x="329.9999999999998" y="800.0023076923073" as="geometry" />
</mxCell>
<mxCell id="jEJspqg6cz47ItQOXjEV-20" value="TimeSlot" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="540" y="370" width="160" height="190" as="geometry">
<mxRectangle x="720" y="1270" width="90" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="jEJspqg6cz47ItQOXjEV-21" value="- startTime : String<div>- endTime : String</div><div>- duration : long&nbsp;</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="jEJspqg6cz47ItQOXjEV-20" vertex="1">
<mxGeometry y="26" width="160" height="54" as="geometry" />
</mxCell>
<mxCell id="jEJspqg6cz47ItQOXjEV-22" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="jEJspqg6cz47ItQOXjEV-20" vertex="1">
<mxGeometry y="80" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="jEJspqg6cz47ItQOXjEV-23" value="<div>+ getStartTime()</div><div>+ getEndTime()</div><div>+ getDuration()</div><div><br></div><div>+ setStartTime()</div><div>+ setEndTime()</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="jEJspqg6cz47ItQOXjEV-20" vertex="1">
<mxGeometry y="88" width="160" height="102" as="geometry" />
</mxCell>
<mxCell id="jEJspqg6cz47ItQOXjEV-24" value="Use" style="endArrow=none;endSize=12;dashed=1;html=1;rounded=0;endFill=0;startArrow=classic;startFill=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" edge="1" source="jEJspqg6cz47ItQOXjEV-1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="710" y="1110" as="sourcePoint" />
<mxPoint x="620" y="560" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-1" value="FirebaseOperations" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="-970" y="460" width="320" height="330" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-2" value="- firestore: FirebaseFirestore<div>- taskDataReference: CollectionReference</div><div>- eventDatabaseReference: CollectionReference</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="hMHwFGtnn4UnzWRsD6Ie-1">
<mxGeometry y="26" width="320" height="64" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-3" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="hMHwFGtnn4UnzWRsD6Ie-1">
<mxGeometry y="90" width="320" height="8" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-4" value="+ getInstance(): FirebaseOperations<div>+ setAdapter(adapter)</div><div>+ countListItems(snapshots)</div><div>+ repopulateTaskList(snapshots)</div><div>+ repopulateEventList(snapshots)</div><div>+ getTask(id) : Task</div><div>+ getAllTasks(): List&lt;Task&gt;</div><div>+ addTask(Task)</div><div>+ removeTask(position)</div><div>+ removeTask(id)</div><div>+ updateTask(Task)</div><div>+ getAllCalendarEntites(): List&lt;CalendarEntity&gt;</div><div>+ updateTaskStatus(id, status)</div><div>+ getSize()</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="hMHwFGtnn4UnzWRsD6Ie-1">
<mxGeometry y="98" width="320" height="232" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-6" value="TaskRequest" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="-930" y="1079" width="160" height="180" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-7" value="- entityName: String<div>- entityDescription: String</div><div>- taskDeadline: String</div><div>- duration: int</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="hMHwFGtnn4UnzWRsD6Ie-6">
<mxGeometry y="26" width="160" height="74" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-8" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="hMHwFGtnn4UnzWRsD6Ie-6">
<mxGeometry y="100" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-9" value="+ getDeadline()<div>+ getDuration()<div>+ getEntityName()</div></div><div>+ getDescription</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="hMHwFGtnn4UnzWRsD6Ie-6">
<mxGeometry y="108" width="160" height="72" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-10" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;exitX=0;exitY=1.25;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1.019;entryY=0.481;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="hMHwFGtnn4UnzWRsD6Ie-8" target="hMHwFGtnn4UnzWRsD6Ie-11">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="-1160" y="1009" as="sourcePoint" />
<mxPoint x="-1000" y="1069" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-11" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>addTaskRequest</b></p><hr size="1" style="border-style:solid;"><p style="margin:0px;margin-left:4px;">- taskTitle: String</p><p style="margin:0px;margin-left:4px;">- taskDescription: String</p><p style="margin:0px;margin-left:4px;">- taskDeadline: String</p><p style="margin:0px;margin-left:4px;">- duration: int</p><hr size="1" style="border-style:solid;"><p style="margin:0px;margin-left:4px;">+ addTaskRequest(taskTitle, taskDescription, taskDeadline, duration)</p>" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="-1300" y="1089" width="240" height="203" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-12" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>deleteTaskRequest</b></p><hr size="1" style="border-style:solid;"><p style="margin:0px;margin-left:4px;">+ id: String</p><hr size="1" style="border-style:solid;"><p style="margin:0px;margin-left:4px;">+ deleteTaskRequest(id)</p><p style="margin:0px;margin-left:4px;">+ getId()</p>" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="-930" y="1329" width="160" height="90" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-13" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;exitX=0.506;exitY=1.058;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="hMHwFGtnn4UnzWRsD6Ie-9" target="hMHwFGtnn4UnzWRsD6Ie-12">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="-930" y="1199" as="sourcePoint" />
<mxPoint x="-1045" y="1197" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-14" value="updateTaskRequest" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="-670" y="1070" width="230" height="240" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-15" value="- id: String<div>- entityName: String</div><div>- entityDescription: String</div><div>- taskDeadline: String</div><div>- duration: int</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="hMHwFGtnn4UnzWRsD6Ie-14">
<mxGeometry y="26" width="230" height="84" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-16" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="hMHwFGtnn4UnzWRsD6Ie-14">
<mxGeometry y="110" width="230" height="8" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-17" value="+ updateTaskRequest(id, entityName, entityDescription, taskDeadline, duration)<div>+ getId()</div><div>+ getEntityName()</div><div>+ getEntityDescription()</div><div>+ getTaskDeadline()</div><div>+ getDuration()</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="hMHwFGtnn4UnzWRsD6Ie-14">
<mxGeometry y="118" width="230" height="122" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-18" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;exitX=0.989;exitY=0.263;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.012;entryY=0.22;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="hMHwFGtnn4UnzWRsD6Ie-8" target="hMHwFGtnn4UnzWRsD6Ie-16">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="-930" y="1199" as="sourcePoint" />
<mxPoint x="-1045" y="1197" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-5" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;rounded=0;exitX=0.002;exitY=0.494;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.688;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="n1yPlHlh6JEWoWV6ZDrB-12" target="hMHwFGtnn4UnzWRsD6Ie-3">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="-376.5999999999999" y="837.6000000000001" as="sourcePoint" />
<mxPoint x="-600" y="560" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-22" value="parent" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=bottom;" connectable="0" vertex="1" parent="1">
<mxGeometry x="500" y="800" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-23" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;entryX=1.003;entryY=0.803;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" target="n1yPlHlh6JEWoWV6ZDrB-8">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="640" y="1108" as="sourcePoint" />
<mxPoint x="460" y="1010" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-28" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0.434;exitY=0.997;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="jEJspqg6cz47ItQOXjEV-4">
<mxGeometry relative="1" as="geometry">
<mxPoint x="550" y="1080" as="sourcePoint" />
<mxPoint x="640" y="1110" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-29" value="parent" style="edgeLabel;resizable=0;html=1;align=left;verticalAlign=bottom;" connectable="0" vertex="1" parent="hMHwFGtnn4UnzWRsD6Ie-28">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint y="21" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-30" value="child" style="edgeLabel;resizable=0;html=1;align=right;verticalAlign=bottom;" connectable="0" vertex="1" parent="hMHwFGtnn4UnzWRsD6Ie-28">
<mxGeometry x="1" relative="1" as="geometry">
<mxPoint x="-310" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-33" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;entryX=0.497;entryY=1.008;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" target="n1yPlHlh6JEWoWV6ZDrB-13">
<mxGeometry x="-1" y="-321" width="160" relative="1" as="geometry">
<mxPoint x="-321" y="810" as="sourcePoint" />
<mxPoint x="-260" y="880" as="targetPoint" />
<mxPoint x="-70" y="200" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-35" value="" style="endArrow=none;endSize=12;dashed=1;html=1;rounded=0;endFill=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" target="n1yPlHlh6JEWoWV6ZDrB-6">
<mxGeometry x="0.125" y="-60" width="160" relative="1" as="geometry">
<mxPoint x="-80" y="1106" as="sourcePoint" />
<mxPoint x="20" y="1060" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-36" value="" style="endArrow=none;endSize=12;dashed=1;html=1;rounded=0;endFill=0;" edge="1" parent="1">
<mxGeometry x="0.125" y="-60" width="160" relative="1" as="geometry">
<mxPoint x="-80" y="810" as="sourcePoint" />
<mxPoint x="-80" y="1110" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-38" value="" style="endArrow=block;startArrow=none;endFill=1;startFill=0;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="-850" y="920" as="sourcePoint" />
<mxPoint x="-850.1099999999999" y="1079" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-39" value="GoogleCalendarOperations" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="-1300" y="530" width="230" height="170" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-40" value="- account: GoogleSignInAccount<div>- instance: GoogleCalendarOperations</div><div>- credential: GoogleAccountCredential</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="hMHwFGtnn4UnzWRsD6Ie-39">
<mxGeometry y="26" width="230" height="64" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-41" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="hMHwFGtnn4UnzWRsD6Ie-39">
<mxGeometry y="90" width="230" height="8" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-42" value="+ getInstance()<div>+ setAccount(account, context)</div><div>+ syncCalendarEntities()</div><div>+ deleteCalendarEntity(id)</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="hMHwFGtnn4UnzWRsD6Ie-39">
<mxGeometry y="98" width="230" height="72" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-43" value="TaskController" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="-580" y="850" width="250" height="198" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-44" value="- databaseOperations: DatabaseOperations" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="hMHwFGtnn4UnzWRsD6Ie-43">
<mxGeometry y="26" width="250" height="54" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-45" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="hMHwFGtnn4UnzWRsD6Ie-43">
<mxGeometry y="80" width="250" height="8" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-46" value="+ addTask(addTaskRequest)<div>+ updateTask(updateTaskRequest)</div><div>+ deleteTask(deleteTaskRequest)</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="hMHwFGtnn4UnzWRsD6Ie-43">
<mxGeometry y="88" width="250" height="110" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-47" value="SchedulerController" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="-1308" y="790" width="250" height="198" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-48" value="- databaseOperations: DatabaseOperations" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="hMHwFGtnn4UnzWRsD6Ie-47">
<mxGeometry y="26" width="250" height="54" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-49" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="hMHwFGtnn4UnzWRsD6Ie-47">
<mxGeometry y="80" width="250" height="8" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-50" value="+ addTask(addTaskRequest)<div>+ updateTask(updateTaskRequest)</div><div>+ deleteTask(deleteTaskRequest)</div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="hMHwFGtnn4UnzWRsD6Ie-47">
<mxGeometry y="88" width="250" height="110" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-51" value="Use" style="endArrow=none;endSize=12;dashed=1;html=1;rounded=0;endFill=0;exitX=0.475;exitY=-0.011;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="hMHwFGtnn4UnzWRsD6Ie-43">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="-505" y="810" as="sourcePoint" />
<mxPoint x="-461" y="810" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-52" value="" style="endArrow=none;endSize=12;dashed=1;html=1;rounded=0;endFill=0;" edge="1" parent="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="-460" y="808" as="sourcePoint" />
<mxPoint x="-320" y="808" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-54" value="" style="endArrow=block;startArrow=none;endFill=1;startFill=0;html=1;rounded=0;entryX=-0.008;entryY=0.818;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" target="hMHwFGtnn4UnzWRsD6Ie-44">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="-850" y="920" as="sourcePoint" />
<mxPoint x="-759.9999999999999" y="1059" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-55" value="" style="endArrow=block;startArrow=block;endFill=1;startFill=1;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.511;entryY=1.006;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="hMHwFGtnn4UnzWRsD6Ie-11" target="hMHwFGtnn4UnzWRsD6Ie-50">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="-1240" y="1030" as="sourcePoint" />
<mxPoint x="-1160" y="990" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-56" value="<p style="margin:0px;margin-top:4px;text-align:center;"><b>GoogleCalendarListener</b></p><hr size="1" style="border-style:solid;"><p style="margin:0px;margin-left:4px;">- account: GoogleSignInAccount</p><p style="margin:0px;margin-left:4px;">- instance: GoogleCalendarListener</p><p style="margin:0px;margin-left:4px;">- credential: GoogleAccount Credential</p><hr size="1" style="border-style:solid;"><p style="margin:0px;margin-left:4px;">+ getInstance()</p><p style="margin:0px;margin-left:4px;">+ setAccount(account, context)</p><p style="margin:0px;margin-left:4px;">+ getAllCalendarEntities(): List&lt;CalendarEntity&gt;</p>" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="-1325" y="285" width="280" height="160" as="geometry" />
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-57" value="" style="endArrow=block;startArrow=block;endFill=1;startFill=1;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="hMHwFGtnn4UnzWRsD6Ie-56" target="hMHwFGtnn4UnzWRsD6Ie-39">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="-1210" y="470" as="sourcePoint" />
<mxPoint x="-1050" y="470" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="hMHwFGtnn4UnzWRsD6Ie-58" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;entryX=0.506;entryY=1.005;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="hMHwFGtnn4UnzWRsD6Ie-47" target="hMHwFGtnn4UnzWRsD6Ie-42">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="-1230" y="740" as="sourcePoint" />
<mxPoint x="-1070" y="740" as="targetPoint" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>