Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Oztechan/CCC#4196] Move Rootbeer reporting to MainActivity #4197

Merged
merged 1 commit into from
Feb 4, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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.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 @@

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

Check warning on line 40 in android/ui/mobile/src/main/kotlin/com/oztechan/ccc/android/ui/mobile/content/main/MainActivity.kt

View check run for this annotation

Codecov / codecov/patch

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

Added line #L40 was not covered by tests

init {
// use dark mode default for old devices
Expand All @@ -44,10 +48,16 @@

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)))

Check warning on line 59 in android/ui/mobile/src/main/kotlin/com/oztechan/ccc/android/ui/mobile/content/main/MainActivity.kt

View check run for this annotation

Codecov / codecov/patch

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

Added line #L59 was not covered by tests

observeStates()
observeEffects()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
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 isDeviceRooted(context: Context) = if (RootBeer(context).isRooted) {
true.toString()

Check warning on line 27 in android/ui/mobile/src/main/kotlin/com/oztechan/ccc/android/ui/mobile/util/DeviceUtil.kt

View check run for this annotation

Codecov / codecov/patch

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

Added line #L27 was not covered by tests
} else {
false.toString()

Check warning on line 29 in android/ui/mobile/src/main/kotlin/com/oztechan/ccc/android/ui/mobile/util/DeviceUtil.kt

View check run for this annotation

Codecov / codecov/patch

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

Added line #L29 was not covered by tests
}

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 {

Check warning on line 11 in client/core/analytics/src/androidMain/kotlin/com/oztechan/ccc/client/core/analytics/AnalyticsManagerImpl.kt

View check run for this annotation

Codecov / codecov/patch

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

Added line #L11 was not covered by tests
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.

Loading