17
17
import java .util .List ;
18
18
19
19
import ai .elimu .analytics .dao .LetterAssessmentEventDao ;
20
- import ai .elimu .analytics .dao .LetterLearningEventDao ;
21
20
import ai .elimu .analytics .dao .LetterSoundLearningEventDao ;
22
21
import ai .elimu .analytics .dao .StoryBookLearningEventDao ;
23
22
import ai .elimu .analytics .dao .WordAssessmentEventDao ;
24
23
import ai .elimu .analytics .dao .WordLearningEventDao ;
25
24
import ai .elimu .analytics .db .RoomDb ;
26
25
import ai .elimu .analytics .entity .LetterAssessmentEvent ;
27
- import ai .elimu .analytics .entity .LetterLearningEvent ;
28
26
import ai .elimu .analytics .entity .LetterSoundLearningEvent ;
29
27
import ai .elimu .analytics .entity .StoryBookLearningEvent ;
30
28
import ai .elimu .analytics .entity .WordAssessmentEvent ;
@@ -47,7 +45,6 @@ public ExportEventsToCsvWorker(@NonNull Context context, @NonNull WorkerParamete
47
45
public Result doWork () {
48
46
Timber .i ("doWork" );
49
47
50
- exportLetterLearningEventsToCsv ();
51
48
exportLetterAssessmentEventsToCsv ();
52
49
exportLetterSoundLearningEventsToCsv ();
53
50
exportWordLearningEventsToCsv ();
@@ -57,71 +54,6 @@ public Result doWork() {
57
54
return Result .success ();
58
55
}
59
56
60
- private void exportLetterLearningEventsToCsv () {
61
- Timber .i ("exportLetterLearningEventsToCsv" );
62
-
63
- // Extract LetterLearningEvents from the database that have not yet been exported to CSV.
64
- RoomDb roomDb = RoomDb .getDatabase (getApplicationContext ());
65
- LetterLearningEventDao letterLearningEventDao = roomDb .letterLearningEventDao ();
66
- List <LetterLearningEvent > letterLearningEvents = letterLearningEventDao .loadAllOrderedByTimeDesc ();
67
- Timber .i ("letterLearningEvents.size(): " + letterLearningEvents .size ());
68
-
69
- CSVFormat csvFormat = CSVFormat .DEFAULT
70
- .withHeader (
71
- "id" ,
72
- "time" ,
73
- "android_id" ,
74
- "package_name" ,
75
- "letter_id" ,
76
- "letter_text" ,
77
- "learning_event_type"
78
- );
79
- StringWriter stringWriter = new StringWriter ();
80
- try {
81
- CSVPrinter csvPrinter = new CSVPrinter (stringWriter , csvFormat );
82
-
83
- // Generate one CSV file per day of events
84
- String dateOfPreviousEvent = null ;
85
- for (LetterLearningEvent letterLearningEvent : letterLearningEvents ) {
86
- // Export event to CSV file. Example format:
87
- // files/version-code-3001012/letter-learning-events/7161a85a0e4751cd_3001012_letter-learning-events_2020-03-21.csv
88
- Integer versionCode = VersionHelper .getAppVersionCode (getApplicationContext ());
89
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat ("yyyy-MM-dd" );
90
- String date = simpleDateFormat .format (letterLearningEvent .time .getTime ());
91
- if (!date .equals (dateOfPreviousEvent )) {
92
- // Reset file content
93
- stringWriter = new StringWriter ();
94
- csvPrinter = new CSVPrinter (stringWriter , csvFormat );
95
- }
96
- dateOfPreviousEvent = date ;
97
- String csvFilename = letterLearningEvent .androidId + "_" + versionCode + "_letter-learning-events_" + date + ".csv" ;
98
- Timber .i ("csvFilename: " + csvFilename );
99
-
100
- csvPrinter .printRecord (
101
- letterLearningEvent .getId (),
102
- letterLearningEvent .time .getTimeInMillis (),
103
- letterLearningEvent .androidId ,
104
- letterLearningEvent .packageName ,
105
- letterLearningEvent .getLetterId (),
106
- letterLearningEvent .getLetterText (),
107
- letterLearningEvent .getLearningEventType ()
108
- );
109
- csvPrinter .flush ();
110
-
111
- String csvFileContent = stringWriter .toString ();
112
-
113
- // Write the content to the CSV file
114
- File filesDir = getApplicationContext ().getFilesDir ();
115
- File versionCodeDir = new File (filesDir , "version-code-" + versionCode );
116
- File letterLearningEventsDir = new File (versionCodeDir , "letter-learning-events" );
117
- File csvFile = new File (letterLearningEventsDir , csvFilename );
118
- FileUtils .writeStringToFile (csvFile , csvFileContent , "UTF-8" );
119
- }
120
- } catch (IOException e ) {
121
- Timber .e (e );
122
- }
123
- }
124
-
125
57
private void exportLetterAssessmentEventsToCsv () {
126
58
Timber .i ("exportLetterAssessmentEventsToCsv" );
127
59
0 commit comments