1 |
|
|
2 |
|
package pl.magot.vetch.ancal.reminder; |
3 |
|
|
4 |
|
|
5 |
|
import java.util.*; |
6 |
|
import android.content.Context; |
7 |
|
import pl.magot.vetch.ancal.Utils; |
8 |
|
import pl.magot.vetch.ancal.database.*; |
9 |
|
import pl.magot.vetch.ancal.dataview.*; |
10 |
|
import pl.magot.vetch.ancal.agenda.*; |
11 |
|
|
12 |
|
|
|
|
| 92,6% |
Uncovered Elements: 5 (68) |
Complexity: 16 |
Complexity Density: 0,36 |
|
13 |
|
public class AlarmDataView |
14 |
|
{ |
15 |
|
|
|
|
| 20% |
Uncovered Elements: 32 (40) |
Complexity: 10 |
Complexity Density: 0,43 |
|
16 |
|
public class ApptsItemsComparator implements Comparator<AlarmDataViewItem> |
17 |
|
{ |
|
|
| 17,9% |
Uncovered Elements: 32 (39) |
Complexity: 10 |
Complexity Density: 0,43 |
|
18 |
2
|
public int compare(AlarmDataViewItem item1, AlarmDataViewItem item2)... |
19 |
|
{ |
20 |
2
|
if (item1.IsOverdue() || item2.IsOverdue()) |
21 |
|
{ |
22 |
|
|
23 |
0
|
if (item1.GetOverdueDays() < item2.GetOverdueDays()) |
24 |
0
|
return 1; |
25 |
0
|
if (item1.GetOverdueDays() > item2.GetOverdueDays()) |
26 |
0
|
return -1; |
27 |
|
|
28 |
0
|
if (item1.GetOverdueDays() == item2.GetOverdueDays()) |
29 |
|
{ |
30 |
0
|
String s1 = item1.sSubject; |
31 |
0
|
String s2 = item2.sSubject; |
32 |
0
|
return s1.compareTo(s2); |
33 |
|
} |
34 |
|
|
35 |
0
|
return 0; |
36 |
|
} else { |
37 |
|
|
38 |
2
|
if (item1.TimeAsSeconds() == item2.TimeAsSeconds()) |
39 |
|
{ |
40 |
2
|
String s1 = item1.sSubject; |
41 |
2
|
String s2 = item2.sSubject; |
42 |
2
|
return s1.compareTo(s2); |
43 |
|
} else { |
44 |
|
|
45 |
0
|
if (item1.TimeAsSeconds() > item2.TimeAsSeconds()) |
46 |
0
|
return 1; |
47 |
0
|
if (item1.TimeAsSeconds() < item2.TimeAsSeconds()) |
48 |
0
|
return -1; |
49 |
|
|
50 |
0
|
if (item1.TimeAsSeconds() == item2.TimeAsSeconds()) |
51 |
|
{ |
52 |
0
|
String s1 = item1.sSubject; |
53 |
0
|
String s2 = item2.sSubject; |
54 |
0
|
return s1.compareTo(s2); |
55 |
|
} |
56 |
|
} |
57 |
|
|
58 |
|
} |
59 |
0
|
return 0; |
60 |
|
} |
61 |
|
}; |
62 |
|
|
63 |
|
|
|
|
| 27,3% |
Uncovered Elements: 16 (22) |
Complexity: 5 |
Complexity Density: 0,38 |
|
64 |
|
public class TasksItemsComparator implements Comparator<AlarmDataViewItem> |
65 |
|
{ |
|
|
| 23,8% |
Uncovered Elements: 16 (21) |
Complexity: 5 |
Complexity Density: 0,38 |
|
66 |
2
|
public int compare(AlarmDataViewItem item1, AlarmDataViewItem item2)... |
67 |
|
{ |
68 |
2
|
if (item1.lPriority == item2.lPriority) |
69 |
|
{ |
70 |
2
|
String s1 = item1.sSubject; |
71 |
2
|
String s2 = item2.sSubject; |
72 |
2
|
return s1.compareTo(s2); |
73 |
|
} else { |
74 |
|
|
75 |
0
|
if (item1.lPriority > item2.lPriority) |
76 |
0
|
return 1; |
77 |
0
|
if (item1.lPriority < item2.lPriority) |
78 |
0
|
return -1; |
79 |
|
|
80 |
0
|
if (item1.lPriority == item2.lPriority) |
81 |
|
{ |
82 |
0
|
String s1 = item1.sSubject; |
83 |
0
|
String s2 = item2.sSubject; |
84 |
0
|
return s1.compareTo(s2); |
85 |
|
} |
86 |
|
} |
87 |
0
|
return 0; |
88 |
|
} |
89 |
|
}; |
90 |
|
|
91 |
|
|
92 |
|
|
93 |
|
protected ArrayList<AlarmDataViewItem> alarmItemsAppts = new ArrayList<AlarmDataViewItem>(); |
94 |
|
protected ArrayList<AlarmDataViewItem> alarmItemsTasks = new ArrayList<AlarmDataViewItem>(); |
95 |
|
private ApptsItemsComparator fnApptsItemsCmp = null; |
96 |
|
private TasksItemsComparator fnTasksItemsCmp = null; |
97 |
|
|
98 |
|
|
99 |
|
protected Context ctx = null; |
100 |
|
protected Database db = null; |
101 |
|
protected Utils utils = null; |
102 |
|
protected AlarmService.AlarmPrefs prefs = null; |
103 |
|
|
104 |
|
|
105 |
|
private DataViewAppointment dataViewAppt = null; |
106 |
|
private DataViewTask dataViewTask = null; |
107 |
|
|
108 |
|
|
109 |
|
private final AgendaViewType agendaViewType = AgendaViewType.TODAY_ALARM; |
110 |
|
private Calendar calStartDate = Calendar.getInstance(); |
111 |
|
private AlarmsManager alarmsManager = null; |
112 |
|
|
113 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (9) |
Complexity: 1 |
Complexity Density: 0,11 |
|
114 |
1
|
public AlarmDataView(Context ctx, Database db, AlarmService.AlarmPrefs prefs, Utils utils)... |
115 |
|
{ |
116 |
1
|
this.ctx = ctx; |
117 |
1
|
this.db = db; |
118 |
1
|
this.prefs = prefs; |
119 |
1
|
this.utils = utils; |
120 |
|
|
121 |
|
|
122 |
1
|
alarmsManager = new AlarmsManager(this.db, this.prefs); |
123 |
|
|
124 |
1
|
this.fnApptsItemsCmp = new ApptsItemsComparator(); |
125 |
1
|
this.fnTasksItemsCmp = new TasksItemsComparator(); |
126 |
|
|
127 |
1
|
dataViewAppt = new DataViewAppointment(db, prefs); |
128 |
1
|
dataViewTask = new DataViewTask(db, prefs); |
129 |
|
} |
130 |
|
|
|
|
| 77,8% |
Uncovered Elements: 2 (9) |
Complexity: 2 |
Complexity Density: 0,29 |
|
131 |
30
|
private boolean ReloadData()... |
132 |
|
{ |
133 |
30
|
if (db.DatabaseReady()) |
134 |
|
{ |
135 |
30
|
dataViewAppt.ReloadTable(); |
136 |
30
|
dataViewTask.ReloadTable(); |
137 |
|
|
138 |
30
|
dataViewAppt.FilterData(calStartDate, agendaViewType); |
139 |
30
|
dataViewTask.FilterData(calStartDate, agendaViewType); |
140 |
|
|
141 |
30
|
return true; |
142 |
|
} |
143 |
|
|
144 |
0
|
return false; |
145 |
|
} |
146 |
|
|
|
|
| 93% |
Uncovered Elements: 3 (43) |
Complexity: 11 |
Complexity Density: 0,41 |
|
147 |
30
|
public boolean CollectAlarmItems()... |
148 |
|
{ |
149 |
30
|
calStartDate.setTimeInMillis(System.currentTimeMillis()); |
150 |
|
|
151 |
30
|
final int iHour = calStartDate.get(Calendar.HOUR_OF_DAY); |
152 |
30
|
final int iMinute = calStartDate.get(Calendar.MINUTE); |
153 |
30
|
final int iCurrTimeKey = (iHour * 100) + iMinute; |
154 |
|
|
155 |
30
|
alarmItemsAppts.clear(); |
156 |
30
|
alarmItemsTasks.clear(); |
157 |
|
|
158 |
30
|
if (ReloadData()) |
159 |
|
{ |
160 |
|
|
161 |
|
|
162 |
113
|
for (int i = 0; i < dataViewAppt.GetRowsCountTotal(); i++) |
163 |
|
{ |
164 |
83
|
DataViewItem row = dataViewAppt.GetRow(i, agendaViewType); |
165 |
83
|
if ((row != null) && (row.bAlarm)) |
166 |
|
{ |
167 |
23
|
if (row.TimeOverdue(iCurrTimeKey)) |
168 |
|
{ |
169 |
15
|
if (alarmsManager.CanShowAlarmToday(AlarmDataViewItem.iOrderAppts, row.lID, row.IsRepeat())) |
170 |
|
{ |
171 |
9
|
AlarmDataViewItem item = new AlarmDataViewItem(row.lID, row.sSubject, AlarmDataViewItem.iOrderAppts, row.bAlarm); |
172 |
9
|
item.SetRepeatDays(row.GetVisibleDays()); |
173 |
9
|
item.Set(row.GetStartHour(), row.GetStartMinute(), row.GetDuration()); |
174 |
9
|
alarmItemsAppts.add(item); |
175 |
|
} |
176 |
|
} |
177 |
|
} |
178 |
|
} |
179 |
|
|
180 |
|
|
181 |
70
|
for (int i = 0; i < dataViewTask.GetRowsCountTotal(); i++) |
182 |
|
{ |
183 |
40
|
DataViewItem row = dataViewTask.GetRow(i, agendaViewType); |
184 |
40
|
if ((row != null) && (row.bAlarm)) |
185 |
|
{ |
186 |
6
|
if (alarmsManager.CanShowAlarmToday(AlarmDataViewItem.iOrderTasks, row.lID, row.IsRepeat())) |
187 |
|
{ |
188 |
6
|
AlarmDataViewItem item = new AlarmDataViewItem(row.lID, row.sSubject, AlarmDataViewItem.iOrderTasks, row.bAlarm); |
189 |
6
|
item.Set(row.GetPriority()); |
190 |
6
|
alarmItemsTasks.add(item); |
191 |
|
} |
192 |
|
} |
193 |
|
} |
194 |
|
|
195 |
30
|
Collections.sort(alarmItemsAppts, fnApptsItemsCmp); |
196 |
30
|
Collections.sort(alarmItemsTasks, fnTasksItemsCmp); |
197 |
|
|
198 |
30
|
return true; |
199 |
|
} |
200 |
0
|
return false; |
201 |
|
} |
202 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
203 |
30
|
public ArrayList<AlarmDataViewItem> GetApptsData()... |
204 |
|
{ |
205 |
30
|
return alarmItemsAppts; |
206 |
|
} |
207 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
208 |
30
|
public ArrayList<AlarmDataViewItem> GetTasksData()... |
209 |
|
{ |
210 |
30
|
return alarmItemsTasks; |
211 |
|
} |
212 |
|
|
213 |
|
} |