Skip to content

Commit 2abb080

Browse files
authored
Merge pull request #399 from elimu-ai/default-sorting
refactor: set default sorting for cursor and entities
2 parents 8b9258f + a6cb382 commit 2abb080

23 files changed

+61
-79
lines changed

app/src/main/java/ai/elimu/analytics/dao/LetterSoundAssessmentEventDao.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ interface LetterSoundAssessmentEventDao {
1111
@Insert
1212
fun insert(letterSoundAssessmentEvent: LetterSoundAssessmentEvent)
1313

14-
@Query("SELECT * FROM LetterSoundAssessmentEvent ORDER BY id")
15-
fun loadAll(): List<LetterSoundAssessmentEvent>
14+
@Query("SELECT * FROM LetterSoundAssessmentEvent ORDER BY time ASC")
15+
fun loadAllOrderedByTimestampAsc(): List<LetterSoundAssessmentEvent>
1616

17-
@Query("SELECT * FROM LetterSoundAssessmentEvent ORDER BY id")
18-
fun loadAllCursor(): Cursor
17+
@Query("SELECT * FROM LetterSoundAssessmentEvent ORDER BY time DESC")
18+
fun loadAllOrderedByTimestampDesc(): Cursor
1919

20-
@Query("SELECT * FROM LetterSoundAssessmentEvent WHERE letterSoundId = :letterSoundId ORDER BY id")
21-
fun loadAllCursor(letterSoundId: Long): Cursor
20+
@Query("SELECT * FROM LetterSoundAssessmentEvent WHERE letterSoundId = :letterSoundId ORDER BY time DESC")
21+
fun loadAllOrderedByTimestampDesc(letterSoundId: Long): Cursor
2222

2323
@Query("SELECT COUNT(*) FROM LetterSoundAssessmentEvent")
2424
fun getCount(): Int

app/src/main/java/ai/elimu/analytics/dao/LetterSoundLearningEventDao.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ interface LetterSoundLearningEventDao {
1111
@Insert
1212
fun insert(letterSoundLearningEvent: LetterSoundLearningEvent)
1313

14-
@Query("SELECT * FROM LetterSoundLearningEvent ORDER BY timestamp")
15-
fun loadAllOrderedByTime(): List<LetterSoundLearningEvent>
14+
@Query("SELECT * FROM LetterSoundLearningEvent ORDER BY timestamp ASC")
15+
fun loadAllOrderedByTimestampAsc(): List<LetterSoundLearningEvent>
1616

17-
@Query("SELECT * FROM LetterSoundLearningEvent ORDER BY timestamp")
18-
fun loadAllOrderedByTimeCursor(): Cursor
17+
@Query("SELECT * FROM LetterSoundLearningEvent ORDER BY timestamp DESC")
18+
fun loadAllOrderedByTimestampDesc(): Cursor
1919

2020
@Query("SELECT COUNT(*) FROM LetterSoundLearningEvent")
2121
fun getCount(): Int

app/src/main/java/ai/elimu/analytics/dao/NumberAssessmentEventDao.kt

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,11 @@ interface NumberAssessmentEventDao {
1111
@Insert
1212
fun insert(numberAssessmentEvent: NumberAssessmentEvent)
1313

14-
@Query("SELECT * FROM NumberAssessmentEvent ORDER BY " +
15-
"CASE WHEN :isAsc = 1 THEN time END ASC," +
16-
"CASE WHEN :isAsc = 0 THEN time END DESC"
17-
)
18-
fun loadAllOrderedByTimestamp(isAsc: Boolean): List<NumberAssessmentEvent>
14+
@Query("SELECT * FROM NumberAssessmentEvent ORDER BY time ASC")
15+
fun loadAllOrderedByTimestampAsc(): List<NumberAssessmentEvent>
1916

20-
@Query("SELECT * FROM NumberAssessmentEvent ORDER BY " +
21-
"CASE WHEN :isDesc = 1 THEN time END DESC," +
22-
"CASE WHEN :isDesc = 0 THEN time END ASC"
23-
)
24-
fun loadAllOrderedByTimestampCursor(isDesc: Boolean): Cursor
17+
@Query("SELECT * FROM NumberAssessmentEvent ORDER BY time DESC")
18+
fun loadAllOrderedByTimestampDesc(): Cursor
2519

2620
@Query("SELECT COUNT(*) FROM NumberAssessmentEvent")
2721
fun getCount(): Int

app/src/main/java/ai/elimu/analytics/dao/NumberLearningEventDao.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,11 @@ interface NumberLearningEventDao {
1111
@Insert
1212
fun insert(numberLearningEvent: NumberLearningEvent)
1313

14-
@Query("SELECT * FROM NumberLearningEvent ORDER BY " +
15-
"CASE WHEN :isDesc = 1 THEN timestamp END DESC," +
16-
"CASE WHEN :isDesc = 0 THEN timestamp END ASC"
17-
)
18-
fun loadAllOrderedByTime(isDesc: Boolean = true): List<NumberLearningEvent>
14+
@Query("SELECT * FROM NumberLearningEvent ORDER BY timestamp ASC")
15+
fun loadAllOrderedByTimestampAsc(): List<NumberLearningEvent>
1916

20-
@Query("SELECT * FROM NumberLearningEvent ORDER BY timestamp")
21-
fun loadAllOrderedByTime(): Cursor
17+
@Query("SELECT * FROM NumberLearningEvent ORDER BY timestamp DESC")
18+
fun loadAllOrderedByTimestampDesc(): Cursor
2219

2320
@Query("SELECT COUNT(*) FROM NumberLearningEvent")
2421
fun getCount(): Int

app/src/main/java/ai/elimu/analytics/dao/StoryBookLearningEventDao.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,8 @@ interface StoryBookLearningEventDao {
1010
@Insert
1111
fun insert(storyBookLearningEvent: StoryBookLearningEvent)
1212

13-
@Query("SELECT * FROM StoryBookLearningEvent ORDER BY " +
14-
"CASE WHEN :isDesc = 1 THEN timestamp END DESC," +
15-
"CASE WHEN :isDesc = 0 THEN timestamp END ASC"
16-
)
17-
fun loadAll(isDesc: Boolean = true): List<StoryBookLearningEvent>
13+
@Query("SELECT * FROM StoryBookLearningEvent ORDER BY timestamp ASC")
14+
fun loadAllOrderedByTimestampAsc(): List<StoryBookLearningEvent>
1815

1916
@Query("SELECT COUNT(*) FROM StoryBookLearningEvent")
2017
fun getCount(): Int

app/src/main/java/ai/elimu/analytics/dao/VideoLearningEventDao.kt

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,11 @@ interface VideoLearningEventDao {
1414
@Insert(onConflict = OnConflictStrategy.REPLACE)
1515
fun insert(videoLearningEvent: VideoLearningEvent)
1616

17-
@Query(
18-
"SELECT * FROM VideoLearningEvent ORDER BY " +
19-
"CASE WHEN :isDesc = 1 THEN timestamp END DESC," +
20-
"CASE WHEN :isDesc = 0 THEN timestamp END ASC"
21-
)
22-
fun loadAll(isDesc: Boolean = true): List<VideoLearningEvent>
17+
@Query("SELECT * FROM VideoLearningEvent ORDER BY timestamp ASC")
18+
fun loadAllOrderedByTimestampAsc(): List<VideoLearningEvent>
2319

24-
@Query("SELECT * FROM VideoLearningEvent ORDER BY timestamp")
25-
fun loadAllToCursor(): Cursor
20+
@Query("SELECT * FROM VideoLearningEvent ORDER BY timestamp DESC")
21+
fun loadAllOrderedByTimestampDesc(): Cursor
2622

2723
@Query("SELECT COUNT(*) FROM VideoLearningEvent")
2824
fun getCount(): Int

app/src/main/java/ai/elimu/analytics/dao/WordAssessmentEventDao.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ interface WordAssessmentEventDao {
1212
fun insert(wordAssessmentEvent: WordAssessmentEvent)
1313

1414
@Query("SELECT * FROM WordAssessmentEvent ORDER BY time ASC")
15-
fun loadAllOrderedByTimeAsc(): List<WordAssessmentEvent>
15+
fun loadAllOrderedByTimestampAsc(): List<WordAssessmentEvent>
1616

1717
@Query("SELECT * FROM WordAssessmentEvent ORDER BY time DESC")
18-
fun loadAllOrderedByTimeDesc(): Cursor
18+
fun loadAllOrderedByTimestampDesc(): Cursor
1919

2020
@Query("SELECT * FROM WordAssessmentEvent WHERE wordId = :wordId ORDER BY time DESC")
21-
fun loadAllOrderedByTimeDesc(wordId: Long?): Cursor
21+
fun loadAllOrderedByTimestampDesc(wordId: Long?): Cursor
2222

2323
@Query("SELECT COUNT(*) FROM WordAssessmentEvent")
2424
fun getCount(): Int

app/src/main/java/ai/elimu/analytics/dao/WordLearningEventDao.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,11 @@ interface WordLearningEventDao {
1111
@Insert
1212
fun insert(wordLearningEvent: WordLearningEvent)
1313

14-
@Query("SELECT * FROM WordLearningEvent ORDER BY " +
15-
"CASE WHEN :isDesc = 1 THEN timestamp END DESC," +
16-
"CASE WHEN :isDesc = 0 THEN timestamp END ASC"
17-
)
18-
fun loadAllOrderedByTime(isDesc: Boolean = true): List<WordLearningEvent>
14+
@Query("SELECT * FROM WordLearningEvent ORDER BY timestamp ASC")
15+
fun loadAllOrderedByTimestampAsc(): List<WordLearningEvent>
1916

20-
@Query("SELECT * FROM WordLearningEvent ORDER BY timestamp")
21-
fun loadAllOrderedByTime(): Cursor
17+
@Query("SELECT * FROM WordLearningEvent ORDER BY timestamp DESC")
18+
fun loadAllOrderedByTimestampDesc(): Cursor
2219

2320
@Query("SELECT COUNT(*) FROM WordLearningEvent")
2421
fun getCount(): Int

app/src/main/java/ai/elimu/analytics/db/AnalyticEventDBExtension.kt

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,25 +22,25 @@ fun EventType.getAllEvents(context: Context): List<BaseEntity> {
2222
val roomDb = RoomDb.getDatabase(context)
2323
return when(this) {
2424
EventType.LETTER_SOUND_ASSESSMENT -> {
25-
roomDb.letterSoundAssessmentEventDao().loadAll()
25+
roomDb.letterSoundAssessmentEventDao().loadAllOrderedByTimestampAsc()
2626
}
2727
EventType.LETTER_SOUND_LEARNING -> {
28-
roomDb.letterSoundLearningEventDao().loadAllOrderedByTime()
28+
roomDb.letterSoundLearningEventDao().loadAllOrderedByTimestampAsc()
2929
}
3030
EventType.STORY_BOOK_LEARNING -> {
31-
roomDb.storyBookLearningEventDao().loadAll(isDesc = false)
31+
roomDb.storyBookLearningEventDao().loadAllOrderedByTimestampAsc()
3232
}
3333
EventType.WORD_ASSESSMENT -> {
34-
roomDb.wordAssessmentEventDao().loadAllOrderedByTimeAsc()
34+
roomDb.wordAssessmentEventDao().loadAllOrderedByTimestampAsc()
3535
}
3636
EventType.WORD_LEARNING -> {
37-
roomDb.wordLearningEventDao().loadAllOrderedByTime(isDesc = false)
37+
roomDb.wordLearningEventDao().loadAllOrderedByTimestampAsc()
3838
}
3939
EventType.VIDEO_LEARNING -> {
40-
roomDb.videoLearningEventDao().loadAll(isDesc = false)
40+
roomDb.videoLearningEventDao().loadAllOrderedByTimestampAsc()
4141
}
4242
EventType.NUMBER_LEARNING -> {
43-
roomDb.numberLearningEventDao().loadAllOrderedByTime(isDesc = false)
43+
roomDb.numberLearningEventDao().loadAllOrderedByTimestampAsc()
4444
}
4545
}
4646
}
@@ -70,7 +70,6 @@ fun BaseEntity.persistEvent(context: Context) {
7070
is NumberLearningEvent -> {
7171
roomDb.numberLearningEventDao().insert(this)
7272
}
73-
// TODO: number assessment
7473

7574
is StoryBookLearningEvent -> {
7675
roomDb.storyBookLearningEventDao().insert(this)

app/src/main/java/ai/elimu/analytics/enum/EventType.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ enum class EventType(val type: String) {
3434
WORD_ASSESSMENT("word-assessment-events"),
3535
WORD_LEARNING("word-learning-events"),
3636

37-
// TODO: number assessment
3837
NUMBER_LEARNING("number-learning-events"),
3938

4039
STORY_BOOK_LEARNING("storybook-learning-events"),
@@ -51,7 +50,6 @@ fun EventType.toServiceClass(): Class<out UploadService> {
5150
EventType.WORD_LEARNING -> WordLearningEventService::class.java
5251

5352
EventType.NUMBER_LEARNING -> NumberLearningEventService::class.java
54-
// TODO: number assessment
5553

5654
EventType.STORY_BOOK_LEARNING -> StoryBookLearningEventService::class.java
5755

@@ -83,7 +81,6 @@ fun EventType.getCSVHeaders(): Array<String> {
8381
EventType.WORD_LEARNING -> CSVHeaders.WORD_LEARNING
8482

8583
EventType.NUMBER_LEARNING -> CSVHeaders.NUMBER_LEARNING
86-
// TODO: number assessment
8784

8885
EventType.STORY_BOOK_LEARNING -> CSVHeaders.STORYBOOK_LEARNING
8986

0 commit comments

Comments
 (0)