1
1
package ai.elimu.analytics.utils
2
2
3
+ import ai.elimu.analytics.utils.receiver.ErrorResultReceiver
3
4
import ai.elimu.model.v2.gson.content.LetterGson
4
5
import ai.elimu.model.v2.gson.content.LetterSoundGson
5
6
import ai.elimu.model.v2.gson.content.NumberGson
6
7
import ai.elimu.model.v2.gson.content.SoundGson
7
8
import ai.elimu.model.v2.gson.content.WordGson
9
+ import android.app.Activity
8
10
import android.content.Context
9
11
import android.content.Intent
12
+ import android.os.Bundle
10
13
import android.util.Log
14
+ import android.widget.Toast
11
15
import org.json.JSONObject
12
16
import java.util.stream.Collectors
13
17
@@ -17,8 +21,6 @@ import java.util.stream.Collectors
17
21
*/
18
22
object AssessmentEventUtil {
19
23
20
- private const val TAG = " AssessmentEventUtil"
21
-
22
24
/* *
23
25
* @param letterSoundGson The letter-sound correspondence that the student is being assessed for.
24
26
* @param masteryScore A value in the range [0.0, 1.0].
@@ -35,24 +37,32 @@ object AssessmentEventUtil {
35
37
context : Context ,
36
38
analyticsApplicationId : String
37
39
) {
38
- Log .i(TAG ," reportLetterSoundAssessmentEvent" )
40
+ Log .i(this ::class .simpleName," reportLetterSoundAssessmentEvent" )
41
+
42
+ try {
43
+ val broadcastIntent = Intent ()
44
+ broadcastIntent.setPackage(analyticsApplicationId)
45
+ broadcastIntent.setAction(LearningEventUtil .BROADCAST_INTENT_ACTION_ANALYTICS )
46
+ broadcastIntent.putExtra(" intent_action" , IntentAction .LETTER_SOUND_ASSESSMENT .action)
47
+ broadcastIntent.putExtra(BundleKeys .KEY_PACKAGE_NAME , context.packageName)
48
+ broadcastIntent.putExtra(BundleKeys .KEY_MASTERY_SCORE , masteryScore)
49
+ broadcastIntent.putExtra(BundleKeys .KEY_TIME_SPENT_MS , timeSpentMs)
50
+ additionalData?.let {
51
+ broadcastIntent.putExtra(BundleKeys .KEY_ADDITIONAL_DATA , additionalData.toString())
52
+ }
53
+ broadcastIntent.putExtra(BundleKeys .KEY_LETTER_SOUND_LETTERS ,
54
+ letterSoundGson.letters.stream().map(LetterGson ::getText).collect(Collectors .joining()))
55
+ broadcastIntent.putExtra(BundleKeys .KEY_LETTER_SOUND_SOUNDS ,
56
+ letterSoundGson.sounds.stream().map(SoundGson ::getValueIpa).collect(Collectors .joining()))
57
+ letterSoundGson.id?.let {
58
+ broadcastIntent.putExtra(BundleKeys .KEY_LETTER_SOUND_ID , letterSoundGson.id)
59
+ }
39
60
40
- val broadcastIntent = Intent ()
41
- broadcastIntent.setAction(LearningEventUtil .BROADCAST_INTENT_ACTION_ANALYTICS )
42
- broadcastIntent.putExtra(" intent_action" , IntentAction .LETTER_SOUND_ASSESSMENT .action)
43
- broadcastIntent.putExtra(BundleKeys .KEY_PACKAGE_NAME , context.packageName)
44
- broadcastIntent.putExtra(BundleKeys .KEY_LETTER_SOUND_LETTERS ,
45
- letterSoundGson.letters.stream().map(LetterGson ::getText).collect(Collectors .joining()))
46
- broadcastIntent.putExtra(BundleKeys .KEY_LETTER_SOUND_SOUNDS ,
47
- letterSoundGson.sounds.stream().map(SoundGson ::getValueIpa).collect(Collectors .joining()))
48
- broadcastIntent.putExtra(BundleKeys .KEY_LETTER_SOUND_ID , letterSoundGson.id)
49
- broadcastIntent.putExtra(BundleKeys .KEY_MASTERY_SCORE , masteryScore)
50
- broadcastIntent.putExtra(BundleKeys .KEY_TIME_SPENT_MS , timeSpentMs)
51
- additionalData?.let {
52
- broadcastIntent.putExtra(BundleKeys .KEY_ADDITIONAL_DATA , additionalData.toString())
61
+ context.sendOrderedBroadcast(broadcastIntent, null , ErrorResultReceiver (), null , Activity .RESULT_OK , null , null )
62
+ } catch (e: Exception ) {
63
+ Log .e(this ::class .simpleName, " Error during Intent preparation" , e)
64
+ Toast .makeText(context, e.message, Toast .LENGTH_SHORT ).show()
53
65
}
54
- broadcastIntent.setPackage(analyticsApplicationId)
55
- context.sendBroadcast(broadcastIntent)
56
66
}
57
67
58
68
/* *
@@ -71,21 +81,29 @@ object AssessmentEventUtil {
71
81
context : Context ,
72
82
analyticsApplicationId : String
73
83
) {
74
- Log .i(TAG , " reportWordAssessmentEvent" )
84
+ Log .i(this ::class .simpleName, " reportWordAssessmentEvent" )
85
+
86
+ try {
87
+ val broadcastIntent = Intent ()
88
+ broadcastIntent.setPackage(analyticsApplicationId)
89
+ broadcastIntent.setAction(LearningEventUtil .BROADCAST_INTENT_ACTION_ANALYTICS )
90
+ broadcastIntent.putExtra(" intent_action" , IntentAction .WORD_ASSESSMENT .action)
91
+ broadcastIntent.putExtra(BundleKeys .KEY_PACKAGE_NAME , context.packageName)
92
+ broadcastIntent.putExtra(BundleKeys .KEY_MASTERY_SCORE , masteryScore)
93
+ broadcastIntent.putExtra(BundleKeys .KEY_TIME_SPENT_MS , timeSpentMs)
94
+ additionalData?.let {
95
+ broadcastIntent.putExtra(BundleKeys .KEY_ADDITIONAL_DATA , additionalData.toString())
96
+ }
97
+ broadcastIntent.putExtra(BundleKeys .KEY_WORD_TEXT , wordGson.text)
98
+ wordGson.id?.let {
99
+ broadcastIntent.putExtra(BundleKeys .KEY_WORD_ID , wordGson.id)
100
+ }
75
101
76
- val broadcastIntent = Intent ()
77
- broadcastIntent.setAction(LearningEventUtil .BROADCAST_INTENT_ACTION_ANALYTICS )
78
- broadcastIntent.putExtra(" intent_action" , IntentAction .WORD_ASSESSMENT .action)
79
- broadcastIntent.putExtra(BundleKeys .KEY_PACKAGE_NAME , context.packageName)
80
- broadcastIntent.putExtra(BundleKeys .KEY_WORD_ID , wordGson.id)
81
- broadcastIntent.putExtra(BundleKeys .KEY_WORD_TEXT , wordGson.text)
82
- broadcastIntent.putExtra(BundleKeys .KEY_MASTERY_SCORE , masteryScore)
83
- broadcastIntent.putExtra(BundleKeys .KEY_TIME_SPENT_MS , timeSpentMs)
84
- additionalData?.let {
85
- broadcastIntent.putExtra(BundleKeys .KEY_ADDITIONAL_DATA , additionalData.toString())
102
+ context.sendOrderedBroadcast(broadcastIntent, null , ErrorResultReceiver (), null , Activity .RESULT_OK , null , null )
103
+ } catch (e: Exception ) {
104
+ Log .e(this ::class .simpleName, " Error during Intent preparation" , e)
105
+ Toast .makeText(context, e.message, Toast .LENGTH_SHORT ).show()
86
106
}
87
- broadcastIntent.setPackage(analyticsApplicationId)
88
- context.sendBroadcast(broadcastIntent)
89
107
}
90
108
91
109
/* *
@@ -104,20 +122,27 @@ object AssessmentEventUtil {
104
122
context : Context ,
105
123
analyticsApplicationId : String
106
124
) {
107
- Log .i(TAG , " reportNumberAssessmentEvent" )
125
+ Log .i(this :: class .simpleName , " reportNumberAssessmentEvent" )
108
126
109
- val broadcastIntent = Intent ()
110
- broadcastIntent.setPackage(analyticsApplicationId)
111
- broadcastIntent.setAction(" ai.elimu.intent.action.NUMBER_ASSESSMENT_EVENT" )
112
- broadcastIntent.putExtra(BundleKeys .KEY_PACKAGE_NAME , context.packageName)
113
- broadcastIntent.putExtra(BundleKeys .KEY_MASTERY_SCORE , masteryScore)
114
- broadcastIntent.putExtra(BundleKeys .KEY_TIME_SPENT_MS , timeSpentMs)
115
- additionalData?.let {
116
- broadcastIntent.putExtra(BundleKeys .KEY_ADDITIONAL_DATA , additionalData.toString())
117
- }
118
- broadcastIntent.putExtra(BundleKeys .KEY_NUMBER_VALUE , numberGson.value)
119
- broadcastIntent.putExtra(BundleKeys .KEY_NUMBER_ID , numberGson.id)
127
+ try {
128
+ val broadcastIntent = Intent ()
129
+ broadcastIntent.setPackage(analyticsApplicationId)
130
+ broadcastIntent.setAction(" ai.elimu.intent.action.NUMBER_ASSESSMENT_EVENT" )
131
+ broadcastIntent.putExtra(BundleKeys .KEY_PACKAGE_NAME , context.packageName)
132
+ broadcastIntent.putExtra(BundleKeys .KEY_MASTERY_SCORE , masteryScore)
133
+ broadcastIntent.putExtra(BundleKeys .KEY_TIME_SPENT_MS , timeSpentMs)
134
+ additionalData?.let {
135
+ broadcastIntent.putExtra(BundleKeys .KEY_ADDITIONAL_DATA , additionalData.toString())
136
+ }
137
+ broadcastIntent.putExtra(BundleKeys .KEY_NUMBER_VALUE , numberGson.value)
138
+ numberGson.id?.let {
139
+ broadcastIntent.putExtra(BundleKeys .KEY_NUMBER_ID , numberGson.id)
140
+ }
120
141
121
- context.sendBroadcast(broadcastIntent)
142
+ context.sendOrderedBroadcast(broadcastIntent, null , ErrorResultReceiver (), null , Activity .RESULT_OK , null , null )
143
+ } catch (e: Exception ) {
144
+ Log .e(this ::class .simpleName, " Error during Intent preparation" , e)
145
+ Toast .makeText(context, e.message, Toast .LENGTH_SHORT ).show()
146
+ }
122
147
}
123
148
}
0 commit comments