@@ -3,25 +3,45 @@ package org.openedx.app
33import android.content.Context
44import android.os.Bundle
55import androidx.core.os.bundleOf
6- import com.google.firebase.analytics.FirebaseAnalytics
6+ import org.openedx.app.analytics.Analytics
7+ import org.openedx.app.analytics.FirebaseAnalytics
78import org.openedx.auth.presentation.AuthAnalytics
9+ import org.openedx.core.config.Config
810import org.openedx.course.presentation.CourseAnalytics
9- import org.openedx.dashboard.presentation.DashboardAnalytics
11+ import org.openedx.dashboard.presentation.dashboard. DashboardAnalytics
1012import org.openedx.discovery.presentation.DiscoveryAnalytics
1113import org.openedx.discussion.presentation.DiscussionAnalytics
1214import org.openedx.profile.presentation.ProfileAnalytics
1315
14- class AnalyticsManager (context : Context ) : DashboardAnalytics, AuthAnalytics, AppAnalytics,
16+ class AnalyticsManager (
17+ context : Context ,
18+ config : Config ,
19+ ) : DashboardAnalytics, AuthAnalytics, AppAnalytics,
1520 DiscoveryAnalytics , ProfileAnalytics , CourseAnalytics , DiscussionAnalytics {
1621
17- private val analytics = FirebaseAnalytics .getInstance(context)
22+ private val services: ArrayList <Analytics > = arrayListOf ()
23+
24+ init {
25+ // Initialise all the analytics libraries here
26+ if (config.getFirebaseConfig().projectId.isNotEmpty()) {
27+ addAnalyticsTracker(FirebaseAnalytics (context = context))
28+ }
29+ }
30+
31+ private fun addAnalyticsTracker (analytic : Analytics ) {
32+ services.add(analytic)
33+ }
1834
1935 private fun logEvent (event : Event , params : Bundle = bundleOf()) {
20- analytics.logEvent(event.eventName, params)
36+ services.forEach { analytics ->
37+ analytics.logEvent(event.eventName, params)
38+ }
2139 }
2240
2341 private fun setUserId (userId : Long ) {
24- analytics.setUserId(userId.toString())
42+ services.forEach { analytics ->
43+ analytics.logUserId(userId)
44+ }
2545 }
2646
2747 override fun dashboardCourseClickedEvent (courseId : String , courseName : String ) {
@@ -143,10 +163,22 @@ class AnalyticsManager(context: Context) : DashboardAnalytics, AuthAnalytics, Ap
143163 logEvent(Event .PRIVACY_POLICY_CLICKED )
144164 }
145165
166+ override fun termsOfUseClickedEvent () {
167+ logEvent(Event .TERMS_OF_USE_CLICKED )
168+ }
169+
146170 override fun cookiePolicyClickedEvent () {
147171 logEvent(Event .COOKIE_POLICY_CLICKED )
148172 }
149173
174+ override fun dataSellClickedEvent () {
175+ logEvent(Event .DATE_SELL_CLICKED )
176+ }
177+
178+ override fun faqClickedEvent () {
179+ logEvent(Event .FAQ_CLICKED )
180+ }
181+
150182 override fun emailSupportClickedEvent () {
151183 logEvent(Event .EMAIL_SUPPORT_CLICKED )
152184 }
@@ -320,6 +352,15 @@ class AnalyticsManager(context: Context) : DashboardAnalytics, AuthAnalytics, Ap
320352 )
321353 }
322354
355+ override fun datesTabClickedEvent (courseId : String , courseName : String ) {
356+ logEvent(
357+ Event .DATES_TAB_CLICKED , bundleOf(
358+ Key .COURSE_ID .keyName to courseId,
359+ Key .COURSE_NAME .keyName to courseName
360+ )
361+ )
362+ }
363+
323364 override fun handoutsTabClickedEvent (courseId : String , courseName : String ) {
324365 logEvent(
325366 Event .HANDOUTS_TAB_CLICKED , bundleOf(
@@ -386,7 +427,10 @@ private enum class Event(val eventName: String) {
386427 PROFILE_DELETE_ACCOUNT_CLICKED (" Profile_Delete_Account_Clicked" ),
387428 PROFILE_VIDEO_SETTINGS_CLICKED (" Profile_Video_settings_Clicked" ),
388429 PRIVACY_POLICY_CLICKED (" Privacy_Policy_Clicked" ),
430+ TERMS_OF_USE_CLICKED (" Terms_Of_Use_Clicked" ),
389431 COOKIE_POLICY_CLICKED (" Cookie_Policy_Clicked" ),
432+ DATE_SELL_CLICKED (" Data_Sell_Clicked" ),
433+ FAQ_CLICKED (" FAQ_Clicked" ),
390434 EMAIL_SUPPORT_CLICKED (" Email_Support_Clicked" ),
391435 COURSE_ENROLL_CLICKED (" Course_Enroll_Clicked" ),
392436 COURSE_ENROLL_SUCCESS (" Course_Enroll_Success" ),
@@ -402,6 +446,7 @@ private enum class Event(val eventName: String) {
402446 COURSE_TAB_CLICKED (" Course_Outline_Course_tab_Clicked" ),
403447 VIDEO_TAB_CLICKED (" Course_Outline_Videos_tab_Clicked" ),
404448 DISCUSSION_TAB_CLICKED (" Course_Outline_Discussion_tab_Clicked" ),
449+ DATES_TAB_CLICKED (" Course_Outline_Dates_tab_Clicked" ),
405450 HANDOUTS_TAB_CLICKED (" Course_Outline_Handouts_tab_Clicked" ),
406451 DISCUSSION_ALL_POSTS_CLICKED (" Discussion_All_Posts_Clicked" ),
407452 DISCUSSION_FOLLOWING_CLICKED (" Discussion_Following_Clicked" ),
0 commit comments