Skip to content

Commit aa0b4c7

Browse files
author
Christian Meier
committed
feature: everything works
1 parent 22ee820 commit aa0b4c7

File tree

10 files changed

+688
-533
lines changed

10 files changed

+688
-533
lines changed

app/src/main/java/com/example/activity_assistant_logger/ActivityFileHandler.java

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.util.Locale;
2626
import java.util.Map;
2727
import java.util.StringJoiner;
28+
import java.util.TimeZone;
2829

2930
import okhttp3.MediaType;
3031
import okhttp3.MultipartBody;
@@ -34,36 +35,37 @@
3435
public class ActivityFileHandler {
3536

3637
final static private String ACTIVITY_FILE_NAME="activity.csv";
37-
final static private String DATE_FORMAT="dd-MM-yyy HH:mm:ss.SSS";
38+
final static private String DATE_FORMAT="dd-MM-yyyy HH:mm:ss.SSS";
3839
final private SimpleDateFormat dataFormat;
3940
private boolean isFirstWrite;
4041

4142
public ActivityFileHandler(Context appContext){
42-
this.dataFormat = new SimpleDateFormat(DATE_FORMAT, Locale.getDefault());
43+
this.dataFormat = new SimpleDateFormat(DATE_FORMAT);
4344
this.isFirstWrite = isFirstWrite(appContext);
4445
}
4546

46-
private String getCurrentTimestamp(){
47+
private String getCurrentTimestamp(TimeZone tz){
4748
return this.dataFormat.format(
48-
Calendar.getInstance().getTime()
49+
Calendar.getInstance(tz).getTime()
4950
);
5051
}
5152

52-
public static String cal2Str(Calendar calendar, Locale locale){
53+
public static String cal2Str(Calendar calendar){
5354
// TODO critical, set timezone according to activity instance
54-
return new SimpleDateFormat(DATE_FORMAT, locale).format(calendar.getTime());
55+
return new SimpleDateFormat(DATE_FORMAT).format(calendar.getTime());
5556
}
56-
public static Calendar str2Cal(String timestamp, Locale locale) throws ParseException{
57-
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:s.S", locale);
57+
58+
public static Calendar str2Cal(String timestamp) throws ParseException{
59+
SimpleDateFormat formatter = new SimpleDateFormat(DATE_FORMAT);
5860
Date ts = formatter.parse(timestamp);
5961
Calendar res = Calendar.getInstance();
6062
res.setTime(ts);
6163
return res;
6264
}
6365

6466
public String getActivity(Context appContext, WeekViewEvent event) throws FileNotFoundException{
65-
String startTime = cal2Str(event.getStartTime(), Locale.getDefault());
66-
String endTime = cal2Str(event.getEndTime(), Locale.getDefault());
67+
String startTime = cal2Str(event.getStartTime());
68+
String endTime = cal2Str(event.getEndTime());
6769
String activity = event.getName().toString();
6870
String line = startTime + "," + endTime + "," + activity;
6971

@@ -83,8 +85,8 @@ public String getActivity(Context appContext, WeekViewEvent event) throws FileNo
8385
}
8486
public boolean isActivityInFile(Context appContext, WeekViewEvent activity){
8587
List<String[]> cur_file = null;
86-
String startTime = this.cal2Str(activity.getStartTime(), Locale.getDefault());
87-
String endTime = this.cal2Str(activity.getEndTime(), Locale.getDefault());
88+
String startTime = this.cal2Str(activity.getStartTime());
89+
String endTime = this.cal2Str(activity.getEndTime());
8890
String strActivity = activity.getName().toString();
8991
try {
9092
cur_file = new CSVFile(appContext.openFileInput(ACTIVITY_FILE_NAME)).read();
@@ -104,8 +106,8 @@ public void deleteActivity(Context appContext, WeekViewEvent event) throws IOExc
104106
}
105107

106108
public void deleteActivity(Context appContext, Calendar startTime, Calendar endTime, String activity) throws IOException{
107-
deleteActivity(appContext, cal2Str(startTime, Locale.getDefault()),
108-
cal2Str(endTime, Locale.getDefault()), activity);
109+
deleteActivity(appContext, cal2Str(startTime),
110+
cal2Str(endTime), activity);
109111
}
110112

111113
public void deleteActivity(Context appContext, String startTime, String endTime, String activity) throws IOException{
@@ -129,11 +131,13 @@ public void deleteActivity(Context appContext, String startTime, String endTime,
129131
}
130132

131133
public void insertActivity(Context appContext, WeekViewEvent event) throws IOException {
132-
insertActivity(appContext, event.getStartTime(), event.getEndTime(), event.getName());
134+
Calendar startTime = event.getStartTime();
135+
// todo check if timezone matches
136+
insertActivity(appContext, startTime, event.getEndTime(), event.getName());
133137
}
134138

135139
public void insertActivity(Context appContext, Calendar startTime, Calendar endTime, String activity) throws IOException{
136-
insertActivity(appContext, cal2Str(startTime, Locale.getDefault()), cal2Str(endTime, Locale.getDefault()), activity);
140+
insertActivity(appContext, cal2Str(startTime), cal2Str(endTime), activity);
137141
}
138142

139143
public void insertActivity(Context appContext, String startTime, String endTime, String activity) throws IOException{
@@ -142,7 +146,7 @@ public void insertActivity(Context appContext, String startTime, String endTime,
142146
StringBuffer inputBuffer = new StringBuffer();
143147
Calendar st = null;
144148
try {
145-
st = ActivityFileHandler.str2Cal(startTime, Locale.getDefault());
149+
st = ActivityFileHandler.str2Cal(startTime);
146150
} catch (ParseException e){};
147151
boolean lineInserted = false;
148152
for (int i = 0; i < cur_file.size(); i++) {
@@ -152,7 +156,7 @@ public void insertActivity(Context appContext, String startTime, String endTime,
152156
Calendar csv_st = null;
153157
boolean couldParseSt = true;
154158
try {
155-
csv_st = ActivityFileHandler.str2Cal(cur_file.get(i)[0], Locale.getDefault());
159+
csv_st = ActivityFileHandler.str2Cal(cur_file.get(i)[0]);
156160
}catch (ParseException e){couldParseSt = false;};
157161

158162
if (couldParseSt && st.compareTo(csv_st) < 0 && !lineInserted) {
@@ -182,12 +186,12 @@ public void overwriteActivity(Context appContext, WeekViewEvent oldActivity, Wee
182186
/* This
183187
184188
*/
185-
String startTime = this.cal2Str(oldActivity.getStartTime(), Locale.getDefault());
186-
String endTime = this.cal2Str(oldActivity.getEndTime(), Locale.getDefault());
189+
String startTime = this.cal2Str(oldActivity.getStartTime());
190+
String endTime = this.cal2Str(oldActivity.getEndTime());
187191
String strActivity = oldActivity.getName().toString();
188192

189-
String newStartTime = this.cal2Str(newActivity.getStartTime(), Locale.getDefault());
190-
String newEndTime = this.cal2Str(newActivity.getEndTime(), Locale.getDefault());
193+
String newStartTime = this.cal2Str(newActivity.getStartTime());
194+
String newEndTime = this.cal2Str(newActivity.getEndTime());
191195
String newStrActivity = newActivity.getName().toString();
192196

193197
final String new_row = newStartTime + "," + newEndTime + "," + newStrActivity;
@@ -248,8 +252,8 @@ public ArrayList<? extends WeekViewEvent> getActivitiesAsEvents(Context appconte
248252
String activity = values[2];
249253

250254
try{
251-
startTime = str2Cal(values[0], Locale.getDefault());
252-
endTime = str2Cal(values[1], Locale.getDefault());
255+
startTime = str2Cal(values[0]);
256+
endTime = str2Cal(values[1]);
253257
} catch(ParseException e){}
254258
WeekViewEvent event = new WeekViewEvent(
255259
startTime.getTimeInMillis(), activity, startTime, endTime);
@@ -413,31 +417,31 @@ public MultipartBody.Part getActivityMultipart(Context appContext){
413417
return body;
414418
}
415419

416-
public void createActivity(Context appContext, String new_activity) throws IOException {
420+
public void createActivity(Context appContext, String new_activity, TimeZone tz) throws IOException {
417421
FileOutputStream os = appContext.openFileOutput(ACTIVITY_FILE_NAME, Context.MODE_APPEND);
418422
String row;
419423
if (this.isFirstWrite){
420-
row = getCurrentTimestamp();
424+
row = getCurrentTimestamp(tz);
421425
this.isFirstWrite = false;
422426
}
423427
else {
424-
row = "\n" + getCurrentTimestamp();
428+
row = "\n" + getCurrentTimestamp(tz);
425429
}
426430
os.write(row.getBytes());
427431
os.close();
428432
}
429433

430-
public void addActivity(Context appContext, String old_activity, String new_activity) throws IOException {
434+
public void addActivity(Context appContext, String old_activity, String new_activity, TimeZone tz) throws IOException {
431435
/** finishes a begun line and starts a new one
432436
* */
433-
this.finishActivity(appContext, old_activity);
434-
this.createActivity(appContext, new_activity);
437+
this.finishActivity(appContext, old_activity, tz);
438+
this.createActivity(appContext, new_activity, tz);
435439
}
436440

437-
public void finishActivity(Context appContext, String activity) throws IOException {
441+
public void finishActivity(Context appContext, String activity, TimeZone tz) throws IOException {
438442
/** finishes a begun line
439443
* */
440-
final String cur_ts = getCurrentTimestamp();
444+
final String cur_ts = getCurrentTimestamp(tz);
441445
List<String[]> cur_file = new CSVFile(appContext.openFileInput(ACTIVITY_FILE_NAME)).read();
442446
String old_ts = cur_file.get(cur_file.size() - 1)[0];
443447
final String new_row = old_ts + "," + cur_ts + "," + activity;

0 commit comments

Comments
 (0)