Skip to content

Commit 571083c

Browse files
authored
[#4196] Move Rootbeer reporting to MainActivity (#4197)
1 parent 41299a3 commit 571083c

File tree

6 files changed

+20
-23
lines changed

6 files changed

+20
-23
lines changed

android/ui/mobile/android-ui-mobile.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ dependencies {
6565
implementation(koinCompose)
6666
implementation(lifecycleRuntime)
6767
implementation(splashScreen)
68+
implementation(rootBeer)
6869
}
6970

7071
android.google.apply {

android/ui/mobile/src/main/kotlin/com/oztechan/ccc/android/ui/mobile/content/main/MainActivity.kt

+10
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,13 @@ import com.oztechan.ccc.android.core.ad.AdManager
1818
import com.oztechan.ccc.android.ui.mobile.BuildConfig
1919
import com.oztechan.ccc.android.ui.mobile.R
2020
import com.oztechan.ccc.android.ui.mobile.util.getThemeMode
21+
import com.oztechan.ccc.android.ui.mobile.util.isDeviceRooted
2122
import com.oztechan.ccc.android.ui.mobile.util.requestAppReview
2223
import com.oztechan.ccc.android.ui.mobile.util.resolveAndStartIntent
2324
import com.oztechan.ccc.android.ui.mobile.util.showDialog
2425
import com.oztechan.ccc.android.ui.mobile.util.updateBaseContextLocale
26+
import com.oztechan.ccc.client.core.analytics.AnalyticsManager
27+
import com.oztechan.ccc.client.core.analytics.model.UserProperty
2528
import com.oztechan.ccc.client.viewmodel.main.MainEffect
2629
import com.oztechan.ccc.client.viewmodel.main.MainViewModel
2730
import kotlinx.coroutines.flow.launchIn
@@ -34,6 +37,7 @@ class MainActivity : BaseActivity() {
3437

3538
private val adManager: AdManager by inject()
3639
private val viewModel: MainViewModel by viewModel()
40+
private val analyticsManager by inject<AnalyticsManager>()
3741

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

4549
override fun onCreate(savedInstanceState: Bundle?) {
4650
installSplashScreen()
51+
4752
super.onCreate(savedInstanceState)
53+
4854
Logger.i { "MainActivity onCreate" }
55+
4956
setContentView(R.layout.activity_main)
57+
5058
adManager.initAds(this)
59+
analyticsManager.setUserProperty(UserProperty.IsRooted(isDeviceRooted(this)))
60+
5161
observeStates()
5262
observeEffects()
5363
}

android/ui/mobile/src/main/kotlin/com/oztechan/ccc/android/ui/mobile/util/DeviceUtil.kt

+7
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import android.content.res.Resources
1010
import android.os.Build
1111
import androidx.appcompat.app.AppCompatDelegate
1212
import com.oztechan.ccc.client.core.shared.model.AppTheme
13+
import com.scottyab.rootbeer.RootBeer
1314
import java.util.Locale
1415

1516
fun updateBaseContextLocale(context: Context): Context? {
@@ -22,6 +23,12 @@ fun updateBaseContextLocale(context: Context): Context? {
2223
}
2324
}
2425

26+
fun isDeviceRooted(context: Context) = if (RootBeer(context).isRooted) {
27+
true.toString()
28+
} else {
29+
false.toString()
30+
}
31+
2532
fun getThemeMode(appThemeValue: Int) = when (AppTheme.getThemeByValue(appThemeValue)) {
2633
AppTheme.LIGHT -> AppCompatDelegate.MODE_NIGHT_NO
2734
AppTheme.DARK -> AppCompatDelegate.MODE_NIGHT_YES

client/core/analytics/client-core-analytics.gradle.kts

+1-4
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,7 @@ kotlin {
2020
implementation(libs.common.test)
2121
}
2222
androidMain.dependencies {
23-
libs.android.apply {
24-
implementation(firebaseAnalytics)
25-
implementation(rootBeer)
26-
}
23+
implementation(libs.android.firebaseAnalytics)
2724
}
2825
}
2926
}

client/core/analytics/src/androidMain/kotlin/com/oztechan/ccc/client/core/analytics/AnalyticsManagerImpl.kt

+1-9
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,16 @@
11
package com.oztechan.ccc.client.core.analytics
22

3-
import android.content.Context
43
import com.google.firebase.Firebase
54
import com.google.firebase.analytics.FirebaseAnalytics
65
import com.google.firebase.analytics.analytics
76
import com.google.firebase.analytics.logEvent
87
import com.oztechan.ccc.client.core.analytics.model.Event
98
import com.oztechan.ccc.client.core.analytics.model.ScreenName
109
import com.oztechan.ccc.client.core.analytics.model.UserProperty
11-
import com.oztechan.ccc.client.core.analytics.util.isDeviceRooted
1210

13-
internal class AnalyticsManagerImpl(
14-
context: Context
15-
) : AnalyticsManager {
11+
internal class AnalyticsManagerImpl : AnalyticsManager {
1612
private val firebaseAnalytics by lazy { Firebase.analytics }
1713

18-
init {
19-
setUserProperty(UserProperty.IsRooted(isDeviceRooted(context)))
20-
}
21-
2214
override fun trackScreen(screenName: ScreenName) {
2315
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW) {
2416
param(FirebaseAnalytics.Param.SCREEN_NAME, screenName.getScreenName())

client/core/analytics/src/androidMain/kotlin/com/oztechan/ccc/client/core/analytics/util/AnalyticsUtil.kt

-10
This file was deleted.

0 commit comments

Comments
 (0)