Remove Google Analytics and Crashlytics
This commit is contained in:
@@ -8,8 +8,6 @@ plugins {
|
|||||||
id("kotlin-kapt")
|
id("kotlin-kapt")
|
||||||
id("androidx.navigation.safeargs.kotlin")
|
id("androidx.navigation.safeargs.kotlin")
|
||||||
id("dagger.hilt.android.plugin")
|
id("dagger.hilt.android.plugin")
|
||||||
id("com.google.gms.google-services")
|
|
||||||
id("com.google.firebase.crashlytics")
|
|
||||||
alias(libs.plugins.ksp)
|
alias(libs.plugins.ksp)
|
||||||
alias(libs.plugins.appsweep)
|
alias(libs.plugins.appsweep)
|
||||||
}
|
}
|
||||||
@@ -41,7 +39,6 @@ android {
|
|||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
getByName("debug") {
|
getByName("debug") {
|
||||||
ext["enableCrashlytics"] = false
|
|
||||||
enableUnitTestCoverage = true
|
enableUnitTestCoverage = true
|
||||||
enableAndroidTestCoverage = true
|
enableAndroidTestCoverage = true
|
||||||
}
|
}
|
||||||
@@ -112,10 +109,6 @@ dependencies {
|
|||||||
|
|
||||||
implementation(libs.androidx.datastore.preferences)
|
implementation(libs.androidx.datastore.preferences)
|
||||||
|
|
||||||
implementation(platform(libs.google.firebase.bom))
|
|
||||||
implementation(libs.google.firebase.analyticsKtx)
|
|
||||||
implementation(libs.google.firebase.crashlyticsKtx)
|
|
||||||
|
|
||||||
testImplementation(libs.junit)
|
testImplementation(libs.junit)
|
||||||
|
|
||||||
implementation(libs.jetbrains.kotlinx.coroutinesAndroid)
|
implementation(libs.jetbrains.kotlinx.coroutinesAndroid)
|
||||||
|
|||||||
@@ -1,47 +0,0 @@
|
|||||||
{
|
|
||||||
"project_info": {
|
|
||||||
"project_number": "884522665560",
|
|
||||||
"project_id": "mealient",
|
|
||||||
"storage_bucket": "mealient.appspot.com"
|
|
||||||
},
|
|
||||||
"client": [
|
|
||||||
{
|
|
||||||
"client_info": {
|
|
||||||
"mobilesdk_app_id": "1:884522665560:android:929b43ee82b13a95f3ac2d",
|
|
||||||
"android_client_info": {
|
|
||||||
"package_name": "gq.kirmanak.mealient"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"oauth_client": [
|
|
||||||
{
|
|
||||||
"client_id": "884522665560-frdmmbdqh789nmdashj3fu4alk67pvjr.apps.googleusercontent.com",
|
|
||||||
"client_type": 1,
|
|
||||||
"android_info": {
|
|
||||||
"package_name": "gq.kirmanak.mealient",
|
|
||||||
"certificate_hash": "c6b9c7bcf7148e9c92a88f0992d5175e4144ca2b"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"client_id": "884522665560-hgumk6mcc0tq32kuhb71d7jbt4ml5ifd.apps.googleusercontent.com",
|
|
||||||
"client_type": 3
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"api_key": [
|
|
||||||
{
|
|
||||||
"current_key": "AIzaSyChGzjbOrF_aPwenmI85-sbV8zV_aSG6DY"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"services": {
|
|
||||||
"appinvite_service": {
|
|
||||||
"other_platform_oauth_client": [
|
|
||||||
{
|
|
||||||
"client_id": "884522665560-hgumk6mcc0tq32kuhb71d7jbt4ml5ifd.apps.googleusercontent.com",
|
|
||||||
"client_type": 3
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"configuration_version": "1"
|
|
||||||
}
|
|
||||||
@@ -4,7 +4,6 @@ import android.app.Application
|
|||||||
import com.google.android.material.color.DynamicColors
|
import com.google.android.material.color.DynamicColors
|
||||||
import dagger.hilt.android.HiltAndroidApp
|
import dagger.hilt.android.HiltAndroidApp
|
||||||
import gq.kirmanak.mealient.architecture.configuration.BuildConfiguration
|
import gq.kirmanak.mealient.architecture.configuration.BuildConfiguration
|
||||||
import gq.kirmanak.mealient.data.analytics.Analytics
|
|
||||||
import gq.kirmanak.mealient.logging.Logger
|
import gq.kirmanak.mealient.logging.Logger
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@@ -17,13 +16,9 @@ class App : Application() {
|
|||||||
@Inject
|
@Inject
|
||||||
lateinit var buildConfiguration: BuildConfiguration
|
lateinit var buildConfiguration: BuildConfiguration
|
||||||
|
|
||||||
@Inject
|
|
||||||
lateinit var analytics: Analytics
|
|
||||||
|
|
||||||
override fun onCreate() {
|
override fun onCreate() {
|
||||||
super.onCreate()
|
super.onCreate()
|
||||||
logger.v { "onCreate() called" }
|
logger.v { "onCreate() called" }
|
||||||
analytics.setIsEnabled(!buildConfiguration.isDebug())
|
|
||||||
DynamicColors.applyToActivitiesIfAvailable(this)
|
DynamicColors.applyToActivitiesIfAvailable(this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
package gq.kirmanak.mealient.data.analytics
|
|
||||||
|
|
||||||
interface Analytics {
|
|
||||||
|
|
||||||
fun setIsEnabled(enabled: Boolean)
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
package gq.kirmanak.mealient.data.analytics
|
|
||||||
|
|
||||||
import com.google.firebase.analytics.FirebaseAnalytics
|
|
||||||
import com.google.firebase.crashlytics.FirebaseCrashlytics
|
|
||||||
import gq.kirmanak.mealient.logging.Logger
|
|
||||||
import javax.inject.Inject
|
|
||||||
import javax.inject.Singleton
|
|
||||||
|
|
||||||
@Singleton
|
|
||||||
class AnalyticsImpl @Inject constructor(
|
|
||||||
private val firebaseAnalytics: FirebaseAnalytics,
|
|
||||||
private val firebaseCrashlytics: FirebaseCrashlytics,
|
|
||||||
private val logger: Logger,
|
|
||||||
) : Analytics {
|
|
||||||
|
|
||||||
override fun setIsEnabled(enabled: Boolean) {
|
|
||||||
logger.v { "setIsEnabled() called with: enabled = $enabled" }
|
|
||||||
firebaseAnalytics.setAnalyticsCollectionEnabled(enabled)
|
|
||||||
firebaseCrashlytics.setCrashlyticsCollectionEnabled(enabled)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -5,16 +5,12 @@ import androidx.datastore.core.DataStore
|
|||||||
import androidx.datastore.preferences.core.PreferenceDataStoreFactory
|
import androidx.datastore.preferences.core.PreferenceDataStoreFactory
|
||||||
import androidx.datastore.preferences.core.Preferences
|
import androidx.datastore.preferences.core.Preferences
|
||||||
import androidx.datastore.preferences.preferencesDataStoreFile
|
import androidx.datastore.preferences.preferencesDataStoreFile
|
||||||
import com.google.firebase.analytics.FirebaseAnalytics
|
|
||||||
import com.google.firebase.crashlytics.FirebaseCrashlytics
|
|
||||||
import dagger.Binds
|
import dagger.Binds
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.Provides
|
import dagger.Provides
|
||||||
import dagger.hilt.InstallIn
|
import dagger.hilt.InstallIn
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
import dagger.hilt.components.SingletonComponent
|
import dagger.hilt.components.SingletonComponent
|
||||||
import gq.kirmanak.mealient.data.analytics.Analytics
|
|
||||||
import gq.kirmanak.mealient.data.analytics.AnalyticsImpl
|
|
||||||
import gq.kirmanak.mealient.data.storage.PreferencesStorage
|
import gq.kirmanak.mealient.data.storage.PreferencesStorage
|
||||||
import gq.kirmanak.mealient.data.storage.PreferencesStorageImpl
|
import gq.kirmanak.mealient.data.storage.PreferencesStorageImpl
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
@@ -28,23 +24,9 @@ interface AppModule {
|
|||||||
@Singleton
|
@Singleton
|
||||||
fun provideDataStore(@ApplicationContext context: Context): DataStore<Preferences> =
|
fun provideDataStore(@ApplicationContext context: Context): DataStore<Preferences> =
|
||||||
PreferenceDataStoreFactory.create { context.preferencesDataStoreFile("settings") }
|
PreferenceDataStoreFactory.create { context.preferencesDataStoreFile("settings") }
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideFirebaseAnalytics(@ApplicationContext context: Context): FirebaseAnalytics =
|
|
||||||
FirebaseAnalytics.getInstance(context)
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideFirebaseCrashlytics(): FirebaseCrashlytics =
|
|
||||||
FirebaseCrashlytics.getInstance()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Binds
|
@Binds
|
||||||
@Singleton
|
@Singleton
|
||||||
fun bindPreferencesStorage(preferencesStorage: PreferencesStorageImpl): PreferencesStorage
|
fun bindPreferencesStorage(preferencesStorage: PreferencesStorageImpl): PreferencesStorage
|
||||||
|
|
||||||
@Binds
|
|
||||||
@Singleton
|
|
||||||
fun bindAnalytics(analyticsImpl: AnalyticsImpl): Analytics
|
|
||||||
}
|
}
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
package gq.kirmanak.mealient.data.analytics
|
|
||||||
|
|
||||||
import com.google.firebase.analytics.FirebaseAnalytics
|
|
||||||
import com.google.firebase.crashlytics.FirebaseCrashlytics
|
|
||||||
import gq.kirmanak.mealient.test.BaseUnitTest
|
|
||||||
import io.mockk.impl.annotations.MockK
|
|
||||||
import io.mockk.verify
|
|
||||||
import org.junit.Before
|
|
||||||
import org.junit.Test
|
|
||||||
|
|
||||||
class AnalyticsImplTest : BaseUnitTest() {
|
|
||||||
|
|
||||||
@MockK(relaxUnitFun = true)
|
|
||||||
lateinit var firebaseAnalytics: FirebaseAnalytics
|
|
||||||
|
|
||||||
@MockK(relaxUnitFun = true)
|
|
||||||
lateinit var firebaseCrashlytics: FirebaseCrashlytics
|
|
||||||
|
|
||||||
lateinit var subject: Analytics
|
|
||||||
|
|
||||||
@Before
|
|
||||||
override fun setUp() {
|
|
||||||
super.setUp()
|
|
||||||
subject = AnalyticsImpl(firebaseAnalytics, firebaseCrashlytics, logger)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun `when setIsEnabled expect call to analytics`() {
|
|
||||||
subject.setIsEnabled(true)
|
|
||||||
verify { firebaseAnalytics.setAnalyticsCollectionEnabled(eq(true)) }
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun `when setIsEnabled expect call to crashlytics`() {
|
|
||||||
subject.setIsEnabled(true)
|
|
||||||
verify { firebaseCrashlytics.setCrashlyticsCollectionEnabled(eq(true)) }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -7,8 +7,6 @@ buildscript {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath(libs.android.gradlePlugin)
|
classpath(libs.android.gradlePlugin)
|
||||||
classpath(libs.google.servicesPlugin)
|
|
||||||
classpath(libs.google.firebase.crashlyticsPlugin)
|
|
||||||
classpath(libs.google.dagger.hiltPlugin)
|
classpath(libs.google.dagger.hiltPlugin)
|
||||||
classpath(libs.jetbrains.kotlinPlugin)
|
classpath(libs.jetbrains.kotlinPlugin)
|
||||||
classpath(libs.jetbrains.serializationPlugin)
|
classpath(libs.jetbrains.serializationPlugin)
|
||||||
|
|||||||
@@ -1,10 +1,6 @@
|
|||||||
[versions]
|
[versions]
|
||||||
# https://maven.google.com/web/index.html?q=com.android.tools.build#com.android.tools.build:gradle
|
# https://maven.google.com/web/index.html?q=com.android.tools.build#com.android.tools.build:gradle
|
||||||
androidGradlePlugin = "7.3.1"
|
androidGradlePlugin = "7.3.1"
|
||||||
# https://developers.google.com/android/guides/google-services-plugin
|
|
||||||
googleServicesPlugin = "4.3.14"
|
|
||||||
# https://mvnrepository.com/artifact/com.google.firebase/firebase-crashlytics-gradle
|
|
||||||
firebaseCrashlytics = "2.9.2"
|
|
||||||
# https://kotlinlang.org/docs/gradle.html
|
# https://kotlinlang.org/docs/gradle.html
|
||||||
kotlin = "1.7.20"
|
kotlin = "1.7.20"
|
||||||
# https://developer.android.com/jetpack/androidx/releases/navigation
|
# https://developer.android.com/jetpack/androidx/releases/navigation
|
||||||
@@ -59,8 +55,6 @@ viewBindingDelegate = "1.5.6"
|
|||||||
datastore = "1.0.0"
|
datastore = "1.0.0"
|
||||||
# https://developer.android.com/jetpack/androidx/releases/security
|
# https://developer.android.com/jetpack/androidx/releases/security
|
||||||
security = "1.0.0"
|
security = "1.0.0"
|
||||||
# https://mvnrepository.com/artifact/com.google.firebase/firebase-bom?repo=google
|
|
||||||
firebase = "31.0.1"
|
|
||||||
# https://github.com/junit-team/junit4/releases
|
# https://github.com/junit-team/junit4/releases
|
||||||
junit = "4.13.2"
|
junit = "4.13.2"
|
||||||
# https://developer.android.com/jetpack/androidx/releases/test
|
# https://developer.android.com/jetpack/androidx/releases/test
|
||||||
@@ -87,8 +81,6 @@ android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", ver
|
|||||||
android-tools-desugar = { group = "com.android.tools", name = "desugar_jdk_libs", version.ref = "desugar" }
|
android-tools-desugar = { group = "com.android.tools", name = "desugar_jdk_libs", version.ref = "desugar" }
|
||||||
android-material-material = { group = "com.google.android.material", name = "material", version.ref = "material" }
|
android-material-material = { group = "com.google.android.material", name = "material", version.ref = "material" }
|
||||||
|
|
||||||
google-servicesPlugin = { group = "com.google.gms", name = "google-services", version.ref = "googleServicesPlugin" }
|
|
||||||
|
|
||||||
google-dagger-hiltPlugin = { group = "com.google.dagger", name = "hilt-android-gradle-plugin", version.ref = "hilt" }
|
google-dagger-hiltPlugin = { group = "com.google.dagger", name = "hilt-android-gradle-plugin", version.ref = "hilt" }
|
||||||
google-dagger-hiltAndroid = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" }
|
google-dagger-hiltAndroid = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" }
|
||||||
google-dagger-hiltCompiler = { group = "com.google.dagger", name = "hilt-compiler", version.ref = "hilt" }
|
google-dagger-hiltCompiler = { group = "com.google.dagger", name = "hilt-compiler", version.ref = "hilt" }
|
||||||
@@ -98,11 +90,6 @@ google-dagger-hiltAndroidTesting = { group = "com.google.dagger", name = "hilt-a
|
|||||||
google-protobuf-javalite = { group = "com.google.protobuf", name = "protobuf-javalite", version.ref = "protobuf" }
|
google-protobuf-javalite = { group = "com.google.protobuf", name = "protobuf-javalite", version.ref = "protobuf" }
|
||||||
google-protobuf-protoc = { group = "com.google.protobuf", name = "protoc", version.ref = "protobuf" }
|
google-protobuf-protoc = { group = "com.google.protobuf", name = "protoc", version.ref = "protobuf" }
|
||||||
|
|
||||||
google-firebase-crashlyticsPlugin = { group = "com.google.firebase", name = "firebase-crashlytics-gradle", version.ref = "firebaseCrashlytics" }
|
|
||||||
google-firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebase" }
|
|
||||||
google-firebase-analyticsKtx = { group = "com.google.firebase", name = "firebase-analytics-ktx" }
|
|
||||||
google-firebase-crashlyticsKtx = { group = "com.google.firebase", name = "firebase-crashlytics-ktx" }
|
|
||||||
|
|
||||||
google-truth = { group = "com.google.truth", name = "truth", version.ref = "truth" }
|
google-truth = { group = "com.google.truth", name = "truth", version.ref = "truth" }
|
||||||
|
|
||||||
jetbrains-kotlinPlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" }
|
jetbrains-kotlinPlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" }
|
||||||
|
|||||||
Reference in New Issue
Block a user