Remove Google Analytics and Crashlytics
This commit is contained in:
@@ -4,7 +4,6 @@ import android.app.Application
|
||||
import com.google.android.material.color.DynamicColors
|
||||
import dagger.hilt.android.HiltAndroidApp
|
||||
import gq.kirmanak.mealient.architecture.configuration.BuildConfiguration
|
||||
import gq.kirmanak.mealient.data.analytics.Analytics
|
||||
import gq.kirmanak.mealient.logging.Logger
|
||||
import javax.inject.Inject
|
||||
|
||||
@@ -17,13 +16,9 @@ class App : Application() {
|
||||
@Inject
|
||||
lateinit var buildConfiguration: BuildConfiguration
|
||||
|
||||
@Inject
|
||||
lateinit var analytics: Analytics
|
||||
|
||||
override fun onCreate() {
|
||||
super.onCreate()
|
||||
logger.v { "onCreate() called" }
|
||||
analytics.setIsEnabled(!buildConfiguration.isDebug())
|
||||
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.Preferences
|
||||
import androidx.datastore.preferences.preferencesDataStoreFile
|
||||
import com.google.firebase.analytics.FirebaseAnalytics
|
||||
import com.google.firebase.crashlytics.FirebaseCrashlytics
|
||||
import dagger.Binds
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
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.PreferencesStorageImpl
|
||||
import javax.inject.Singleton
|
||||
@@ -28,23 +24,9 @@ interface AppModule {
|
||||
@Singleton
|
||||
fun provideDataStore(@ApplicationContext context: Context): DataStore<Preferences> =
|
||||
PreferenceDataStoreFactory.create { context.preferencesDataStoreFile("settings") }
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideFirebaseAnalytics(@ApplicationContext context: Context): FirebaseAnalytics =
|
||||
FirebaseAnalytics.getInstance(context)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideFirebaseCrashlytics(): FirebaseCrashlytics =
|
||||
FirebaseCrashlytics.getInstance()
|
||||
}
|
||||
|
||||
@Binds
|
||||
@Singleton
|
||||
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)) }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user