Skip to content

Commit

Permalink
[#4196] Move Rootbeer reporting to MainActivity (#4197)
Browse files Browse the repository at this point in the history
  • Loading branch information
mustafaozhan authored Feb 4, 2025
1 parent 41299a3 commit 571083c
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 23 deletions.
1 change: 1 addition & 0 deletions android/ui/mobile/android-ui-mobile.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ dependencies {
implementation(koinCompose)
implementation(lifecycleRuntime)
implementation(splashScreen)
implementation(rootBeer)
}

android.google.apply {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,13 @@ import com.oztechan.ccc.android.core.ad.AdManager
import com.oztechan.ccc.android.ui.mobile.BuildConfig
import com.oztechan.ccc.android.ui.mobile.R
import com.oztechan.ccc.android.ui.mobile.util.getThemeMode
import com.oztechan.ccc.android.ui.mobile.util.isDeviceRooted
import com.oztechan.ccc.android.ui.mobile.util.requestAppReview
import com.oztechan.ccc.android.ui.mobile.util.resolveAndStartIntent
import com.oztechan.ccc.android.ui.mobile.util.showDialog
import com.oztechan.ccc.android.ui.mobile.util.updateBaseContextLocale
import com.oztechan.ccc.client.core.analytics.AnalyticsManager
import com.oztechan.ccc.client.core.analytics.model.UserProperty
import com.oztechan.ccc.client.viewmodel.main.MainEffect
import com.oztechan.ccc.client.viewmodel.main.MainViewModel
import kotlinx.coroutines.flow.launchIn
Expand All @@ -34,6 +37,7 @@ class MainActivity : BaseActivity() {

private val adManager: AdManager by inject()
private val viewModel: MainViewModel by viewModel()
private val analyticsManager by inject<AnalyticsManager>()

init {
// use dark mode default for old devices
Expand All @@ -44,10 +48,16 @@ class MainActivity : BaseActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
installSplashScreen()

super.onCreate(savedInstanceState)

Logger.i { "MainActivity onCreate" }

setContentView(R.layout.activity_main)

adManager.initAds(this)
analyticsManager.setUserProperty(UserProperty.IsRooted(isDeviceRooted(this)))

observeStates()
observeEffects()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import android.content.res.Resources
import android.os.Build
import androidx.appcompat.app.AppCompatDelegate
import com.oztechan.ccc.client.core.shared.model.AppTheme
import com.scottyab.rootbeer.RootBeer
import java.util.Locale

fun updateBaseContextLocale(context: Context): Context? {
Expand All @@ -22,6 +23,12 @@ fun updateBaseContextLocale(context: Context): Context? {
}
}

fun isDeviceRooted(context: Context) = if (RootBeer(context).isRooted) {
true.toString()
} else {
false.toString()
}

fun getThemeMode(appThemeValue: Int) = when (AppTheme.getThemeByValue(appThemeValue)) {
AppTheme.LIGHT -> AppCompatDelegate.MODE_NIGHT_NO
AppTheme.DARK -> AppCompatDelegate.MODE_NIGHT_YES
Expand Down
5 changes: 1 addition & 4 deletions client/core/analytics/client-core-analytics.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,7 @@ kotlin {
implementation(libs.common.test)
}
androidMain.dependencies {
libs.android.apply {
implementation(firebaseAnalytics)
implementation(rootBeer)
}
implementation(libs.android.firebaseAnalytics)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,16 @@
package com.oztechan.ccc.client.core.analytics

import android.content.Context
import com.google.firebase.Firebase
import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.analytics.analytics
import com.google.firebase.analytics.logEvent
import com.oztechan.ccc.client.core.analytics.model.Event
import com.oztechan.ccc.client.core.analytics.model.ScreenName
import com.oztechan.ccc.client.core.analytics.model.UserProperty
import com.oztechan.ccc.client.core.analytics.util.isDeviceRooted

internal class AnalyticsManagerImpl(
context: Context
) : AnalyticsManager {
internal class AnalyticsManagerImpl : AnalyticsManager {
private val firebaseAnalytics by lazy { Firebase.analytics }

init {
setUserProperty(UserProperty.IsRooted(isDeviceRooted(context)))
}

override fun trackScreen(screenName: ScreenName) {
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW) {
param(FirebaseAnalytics.Param.SCREEN_NAME, screenName.getScreenName())
Expand Down

This file was deleted.

0 comments on commit 571083c

Please sign in to comment.