1 |
|
|
2 |
|
package pl.magot.vetch.ancal.activities; |
3 |
|
|
4 |
|
|
5 |
|
import java.util.*; |
6 |
|
import pl.magot.vetch.widgets.*; |
7 |
|
import pl.magot.vetch.ancal.AnCalDateUtils; |
8 |
|
import pl.magot.vetch.ancal.CommonActivity; |
9 |
|
import pl.magot.vetch.ancal.R; |
10 |
|
import pl.magot.vetch.ancal.database.DataRowTask; |
11 |
|
import pl.magot.vetch.ancal.database.DataTable; |
12 |
|
import pl.magot.vetch.widgets.DateWidget; |
13 |
|
import android.content.Intent; |
14 |
|
import android.os.Bundle; |
15 |
|
import android.view.*; |
16 |
|
import android.widget.*; |
17 |
|
|
18 |
|
|
19 |
|
|
|
|
| 87,8% |
Uncovered Elements: 23 (189) |
Complexity: 48 |
Complexity Density: 0,4 |
|
20 |
|
public class ActivityTask extends CommonActivity |
21 |
|
{ |
22 |
|
|
23 |
|
private Calendar dateDue = null; |
24 |
|
private DataRowTask dataRow = null; |
25 |
|
private DataTable dataTable = null; |
26 |
|
private int iTaskPriority = 2; |
27 |
|
|
28 |
|
|
29 |
|
private TouchEdit edSubject = null; |
30 |
|
private CheckBox chkDone = null; |
31 |
|
private CheckBox chkAlarm = null; |
32 |
|
private Button btnDueDate = null; |
33 |
|
private ImageButton btnDelete = null; |
34 |
|
private ImageButton btnSave = null; |
35 |
|
|
36 |
|
|
37 |
|
private Button btnTaskPriorityLow = null; |
38 |
|
private Button btnTaskPriorityDefault = null; |
39 |
|
private Button btnTaskPriorityHigh = null; |
40 |
|
|
41 |
|
|
|
|
| 84,6% |
Uncovered Elements: 2 (13) |
Complexity: 3 |
Complexity Density: 0,33 |
|
42 |
7
|
@Override... |
43 |
|
public void onCreate(Bundle icicle) |
44 |
|
{ |
45 |
7
|
super.onCreate(icicle); |
46 |
7
|
setContentView(R.layout.task); |
47 |
|
|
48 |
|
|
49 |
7
|
dataRow = new DataRowTask(userdb); |
50 |
7
|
dataTable = new DataTable(dataRow); |
51 |
|
|
52 |
|
|
53 |
7
|
if (GetStartMode() == StartMode.EDIT) |
54 |
3
|
if (!OpenDataForEdit(dataTable)) |
55 |
0
|
finish(); |
56 |
|
|
57 |
|
|
58 |
7
|
InitViews(); |
59 |
7
|
InitState(); |
60 |
|
} |
61 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
62 |
7
|
@Override... |
63 |
|
public void onStart() |
64 |
|
{ |
65 |
7
|
super.onStart(); |
66 |
|
|
67 |
|
} |
68 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
69 |
9
|
@Override... |
70 |
|
public void onResume() |
71 |
|
{ |
72 |
9
|
super.onResume(); |
73 |
|
|
74 |
|
} |
75 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
76 |
9
|
@Override... |
77 |
|
public void onPause() |
78 |
|
{ |
79 |
9
|
super.onPause(); |
80 |
|
|
81 |
|
} |
82 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (16) |
Complexity: 1 |
Complexity Density: 0,06 |
|
83 |
7
|
private void InitViews()... |
84 |
|
{ |
85 |
7
|
edSubject = (TouchEdit)findViewById(R.id.edTaskSubject); |
86 |
7
|
edSubject.setOnOpenKeyboard(new TouchEdit.OnOpenKeyboard() |
87 |
|
{ |
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
88 |
0
|
public void OnOpenKeyboardEvent()... |
89 |
|
{ |
90 |
0
|
KeyboardWidget.Open(ActivityTask.this, edSubject.getText().toString()); |
91 |
|
} |
92 |
|
}); |
93 |
|
|
94 |
7
|
chkDone = (CheckBox)findViewById(R.id.chkTaskDone); |
95 |
|
|
96 |
7
|
chkAlarm = (CheckBox)findViewById(R.id.chkTaskAlarm); |
97 |
7
|
btnDueDate = (Button)findViewById(R.id.btnTaskDueDate); |
98 |
|
|
99 |
7
|
btnSave = (ImageButton)findViewById(R.id.btnTaskSave); |
100 |
7
|
btnSave.setOnClickListener(new View.OnClickListener() { |
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
101 |
6
|
public void onClick(View v) {... |
102 |
6
|
SaveData(); |
103 |
|
} |
104 |
|
}); |
105 |
|
|
106 |
7
|
btnDelete = (ImageButton)findViewById(R.id.btnTaskDelete); |
107 |
7
|
btnDelete.setOnClickListener(new View.OnClickListener() { |
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
108 |
1
|
public void onClick(View v) {... |
109 |
1
|
DeleteData(); |
110 |
|
} |
111 |
|
}); |
112 |
|
|
113 |
7
|
btnDueDate.setOnClickListener(new View.OnClickListener() { |
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
114 |
2
|
public void onClick(View v) {... |
115 |
|
|
116 |
2
|
DateWidget.Open(ActivityTask.this, true, dateDue, prefs.iFirstDayOfWeek); |
117 |
|
|
118 |
|
} |
119 |
|
}); |
120 |
|
|
121 |
|
|
122 |
7
|
btnTaskPriorityLow = (Button)findViewById(R.id.btnTaskPriorityLow); |
123 |
7
|
btnTaskPriorityLow.setOnClickListener(new View.OnClickListener() { |
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
124 |
1
|
public void onClick(View v) {... |
125 |
1
|
SetPriority(3); |
126 |
|
} |
127 |
|
}); |
128 |
7
|
btnTaskPriorityDefault = (Button)findViewById(R.id.btnTaskPriorityDefault); |
129 |
7
|
btnTaskPriorityDefault.setOnClickListener(new View.OnClickListener() { |
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
130 |
1
|
public void onClick(View v) {... |
131 |
1
|
SetPriority(2); |
132 |
|
} |
133 |
|
}); |
134 |
7
|
btnTaskPriorityHigh = (Button)findViewById(R.id.btnTaskPriorityHigh); |
135 |
7
|
btnTaskPriorityHigh.setOnClickListener(new View.OnClickListener() { |
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
136 |
3
|
public void onClick(View v) {... |
137 |
3
|
SetPriority(1); |
138 |
|
} |
139 |
|
}); |
140 |
|
|
141 |
|
} |
142 |
|
|
|
|
| 95,2% |
Uncovered Elements: 1 (21) |
Complexity: 6 |
Complexity Density: 0,46 |
|
143 |
12
|
public void SetPriority(int iPriority)... |
144 |
|
{ |
145 |
|
|
146 |
12
|
this.iTaskPriority = iPriority; |
147 |
|
|
148 |
12
|
btnTaskPriorityHigh.setEnabled((iPriority != 1)); |
149 |
12
|
btnTaskPriorityDefault.setEnabled((iPriority != 2)); |
150 |
12
|
btnTaskPriorityLow.setEnabled((iPriority != 3)); |
151 |
12
|
Button btn = null; |
152 |
12
|
if (iPriority == 1) |
153 |
6
|
btn = btnTaskPriorityHigh; |
154 |
|
|
155 |
12
|
if (iPriority == 2) |
156 |
5
|
btn = btnTaskPriorityDefault; |
157 |
|
|
158 |
12
|
if (iPriority == 3) |
159 |
1
|
btn = btnTaskPriorityLow; |
160 |
|
|
161 |
12
|
if ((btn != null) && (!btn.isFocused())) |
162 |
12
|
btn.requestFocus(); |
163 |
|
} |
164 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (31) |
Complexity: 4 |
Complexity Density: 0,16 |
|
165 |
7
|
private void InitState()... |
166 |
|
{ |
167 |
|
|
168 |
7
|
String sSubTitle = utils.GetResStr(R.string.titleDefaultAppointment); |
169 |
|
|
170 |
7
|
dateDue = Calendar.getInstance(); |
171 |
|
|
172 |
|
|
173 |
7
|
if (GetStartMode() == StartMode.NEW) |
174 |
|
{ |
175 |
4
|
dateDue.setTimeInMillis(0); |
176 |
4
|
sSubTitle = utils.GetResStr(R.string.titleNewTask); |
177 |
4
|
btnDelete.setVisibility(View.INVISIBLE); |
178 |
4
|
chkDone.setChecked(false); |
179 |
4
|
chkDone.setVisibility(View.GONE); |
180 |
4
|
SetPriority(2); |
181 |
4
|
chkAlarm.setChecked(false); |
182 |
|
} |
183 |
|
|
184 |
|
|
185 |
7
|
if (GetStartMode() == StartMode.EDIT) |
186 |
|
{ |
187 |
3
|
dateDue.setTimeInMillis(dataRow.GetDueDate().getTimeInMillis()); |
188 |
3
|
sSubTitle = utils.GetResStr(R.string.titleEditTask); |
189 |
3
|
edSubject.setText(dataRow.GetSubject()); |
190 |
3
|
btnDelete.setVisibility(View.VISIBLE); |
191 |
3
|
chkDone.setChecked(dataRow.GetDone()); |
192 |
3
|
chkDone.setVisibility(View.VISIBLE); |
193 |
3
|
SetPriority(dataRow.GetPriority()); |
194 |
3
|
chkAlarm.setChecked(dataRow.GetAlarm()); |
195 |
|
} |
196 |
|
|
197 |
7
|
restoreStateFromFreezeIfRequired(); |
198 |
|
|
199 |
7
|
SetActivityTitle(sSubTitle); |
200 |
7
|
UpdateDueDateView(); |
201 |
|
|
202 |
|
|
203 |
7
|
edSubject.requestFocus(); |
204 |
7
|
if (GetStartMode() == StartMode.EDIT) |
205 |
3
|
edSubject.setSelection(edSubject.length()); |
206 |
|
} |
207 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (5) |
Complexity: 2 |
Complexity Density: 0,67 |
|
208 |
9
|
private void UpdateDueDateView()... |
209 |
|
{ |
210 |
9
|
if (dateDue.getTimeInMillis() != 0) |
211 |
|
{ |
212 |
4
|
btnDueDate.setText(AnCalDateUtils.formatMediumDate(this, dateDue)); |
213 |
|
} else { |
214 |
5
|
btnDueDate.setText(utils.GetResStr(R.string.labNoDate)); |
215 |
|
} |
216 |
|
} |
217 |
|
|
|
|
| 85% |
Uncovered Elements: 3 (20) |
Complexity: 5 |
Complexity Density: 0,42 |
|
218 |
6
|
public void SaveData()... |
219 |
|
{ |
220 |
6
|
if (dateDue.getTimeInMillis() != 0) |
221 |
3
|
if (DateBeforeNow(dateDue)) |
222 |
0
|
return; |
223 |
|
|
224 |
6
|
dataRow.SetSubject(edSubject.getText().toString()); |
225 |
6
|
dataRow.SetDone(chkDone.isChecked()); |
226 |
6
|
dataRow.SetPriority(this.iTaskPriority); |
227 |
6
|
dataRow.SetAlarm(chkAlarm.isChecked()); |
228 |
|
|
229 |
6
|
if (dateDue.getTimeInMillis() != 0) |
230 |
|
{ |
231 |
3
|
dataRow.SetDueDate(dateDue); |
232 |
|
} else { |
233 |
3
|
dataRow.SetDueDate(null); |
234 |
|
} |
235 |
|
|
236 |
6
|
if (SaveDataToTable(dataTable)) |
237 |
6
|
CloseActivity(dataTable); |
238 |
|
} |
239 |
|
|
|
|
| 75% |
Uncovered Elements: 1 (4) |
Complexity: 2 |
Complexity Density: 1 |
|
240 |
1
|
public void DeleteData()... |
241 |
|
{ |
242 |
1
|
if (DeleteDataFromTable(dataTable)) |
243 |
1
|
CloseActivity(dataTable); |
244 |
|
} |
245 |
|
|
|
|
| 87,5% |
Uncovered Elements: 1 (8) |
Complexity: 3 |
Complexity Density: 0,75 |
|
246 |
3
|
@Override... |
247 |
|
public void SaveDateValuesBeforeChange(Bundle data) |
248 |
|
{ |
249 |
3
|
super.SaveDateValuesBeforeChange(data); |
250 |
3
|
if (GetStartMode() == StartMode.EDIT) |
251 |
|
{ |
252 |
3
|
if (dataRow.UsingDueDate()) |
253 |
2
|
data.putLong("dateDue", dataRow.GetDueDate().getTimeInMillis()); |
254 |
|
} |
255 |
|
} |
256 |
|
|
|
|
| 83,3% |
Uncovered Elements: 2 (12) |
Complexity: 4 |
Complexity Density: 0,67 |
|
257 |
6
|
@Override... |
258 |
|
public boolean DateValuesChanged(Bundle data) |
259 |
|
{ |
260 |
6
|
super.DateValuesChanged(data); |
261 |
6
|
if (GetStartMode() == StartMode.EDIT) |
262 |
|
{ |
263 |
2
|
if (dataRow.UsingDueDate()) |
264 |
1
|
if (dateDue.getTimeInMillis() != data.getLong("dateDue")) |
265 |
0
|
return true; |
266 |
|
} |
267 |
6
|
return false; |
268 |
|
} |
269 |
|
|
|
|
| 66,7% |
Uncovered Elements: 6 (18) |
Complexity: 6 |
Complexity Density: 0,6 |
|
270 |
2
|
@Override... |
271 |
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) |
272 |
|
{ |
273 |
2
|
super.onActivityResult(requestCode, resultCode, data); |
274 |
|
|
275 |
2
|
Bundle extras = CommonActivity.getIntentExtras(data); |
276 |
2
|
if (extras != null) |
277 |
|
{ |
278 |
|
|
279 |
|
|
280 |
2
|
if (requestCode == DateWidget.SELECT_DATE_REQUEST) |
281 |
|
{ |
282 |
2
|
final long lDate = DateWidget.GetSelectedDateOnActivityResult(requestCode, resultCode, extras, dateDue); |
283 |
2
|
if (lDate != -1) |
284 |
|
{ |
285 |
2
|
UpdateDueDateView(); |
286 |
|
} |
287 |
|
} |
288 |
|
|
289 |
|
|
290 |
2
|
if ((requestCode == KeyboardWidget.EDIT_TEXT_REQUEST) && (resultCode == RESULT_OK)) |
291 |
|
{ |
292 |
0
|
String sText = KeyboardWidget.GetTextOnActivityResult(requestCode, resultCode, extras); |
293 |
0
|
edSubject.setText(sText); |
294 |
|
} |
295 |
|
|
296 |
|
} |
297 |
|
} |
298 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (5) |
Complexity: 1 |
Complexity Density: 0,2 |
|
299 |
2
|
@Override... |
300 |
|
protected void onSaveInstanceState(Bundle outState) |
301 |
|
{ |
302 |
2
|
super.onSaveInstanceState(outState); |
303 |
|
|
304 |
2
|
outState.putString("subject", edSubject.getText().toString()); |
305 |
2
|
outState.putBoolean("alarm", chkAlarm.isChecked()); |
306 |
2
|
outState.putInt("priority", this.iTaskPriority); |
307 |
2
|
outState.putLong("dateDue", dateDue.getTimeInMillis()); |
308 |
|
} |
309 |
|
|
|
|
| 0% |
Uncovered Elements: 4 (4) |
Complexity: 1 |
Complexity Density: 0,25 |
|
310 |
0
|
@Override... |
311 |
|
protected void restoreStateFromFreeze() |
312 |
|
{ |
313 |
0
|
edSubject.setText(freeze.getString("subject")); |
314 |
0
|
chkAlarm.setChecked(freeze.getBoolean("alarm")); |
315 |
0
|
SetPriority(freeze.getInt("priority")); |
316 |
0
|
dateDue.setTimeInMillis(freeze.getLong("dateDue")); |
317 |
|
} |
318 |
|
|
319 |
|
} |