diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ccca534..02baf45 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -65,6 +65,7 @@ android { dependencies { + implementation(project(":architecture")) implementation(project(":database")) implementation(project(":datastore")) implementation(project(":datasource")) diff --git a/app/src/main/java/gq/kirmanak/mealient/App.kt b/app/src/main/java/gq/kirmanak/mealient/App.kt index 0d8dfde..24332c9 100644 --- a/app/src/main/java/gq/kirmanak/mealient/App.kt +++ b/app/src/main/java/gq/kirmanak/mealient/App.kt @@ -2,8 +2,8 @@ package gq.kirmanak.mealient import android.app.Application import dagger.hilt.android.HiltAndroidApp +import gq.kirmanak.mealient.architecture.configuration.BuildConfiguration import gq.kirmanak.mealient.data.analytics.Analytics -import gq.kirmanak.mealient.data.configuration.BuildConfiguration import gq.kirmanak.mealient.logging.Logger import javax.inject.Inject diff --git a/app/src/main/java/gq/kirmanak/mealient/data/configuration/BuildConfigurationImpl.kt b/app/src/main/java/gq/kirmanak/mealient/data/configuration/BuildConfigurationImpl.kt deleted file mode 100644 index a260ae4..0000000 --- a/app/src/main/java/gq/kirmanak/mealient/data/configuration/BuildConfigurationImpl.kt +++ /dev/null @@ -1,11 +0,0 @@ -package gq.kirmanak.mealient.data.configuration - -import gq.kirmanak.mealient.BuildConfig -import javax.inject.Inject -import javax.inject.Singleton - -@Singleton -class BuildConfigurationImpl @Inject constructor() : BuildConfiguration { - - override fun isDebug(): Boolean = BuildConfig.DEBUG -} \ No newline at end of file diff --git a/app/src/main/java/gq/kirmanak/mealient/di/AppModule.kt b/app/src/main/java/gq/kirmanak/mealient/di/AppModule.kt index 88a0b25..aef7ee1 100644 --- a/app/src/main/java/gq/kirmanak/mealient/di/AppModule.kt +++ b/app/src/main/java/gq/kirmanak/mealient/di/AppModule.kt @@ -15,8 +15,6 @@ 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.configuration.BuildConfiguration -import gq.kirmanak.mealient.data.configuration.BuildConfigurationImpl import gq.kirmanak.mealient.data.storage.PreferencesStorage import gq.kirmanak.mealient.data.storage.PreferencesStorageImpl import javax.inject.Singleton @@ -46,10 +44,6 @@ interface AppModule { @Singleton fun bindPreferencesStorage(preferencesStorage: PreferencesStorageImpl): PreferencesStorage - @Binds - @Singleton - fun bindBuildConfiguration(buildConfigurationImpl: BuildConfigurationImpl): BuildConfiguration - @Binds @Singleton fun bindAnalytics(analyticsImpl: AnalyticsImpl): Analytics diff --git a/architecture/build.gradle.kts b/architecture/build.gradle.kts new file mode 100644 index 0000000..011e9ed --- /dev/null +++ b/architecture/build.gradle.kts @@ -0,0 +1,14 @@ +plugins { + id("gq.kirmanak.mealient.library") + id("dagger.hilt.android.plugin") + id("kotlin-kapt") +} + +android { + namespace = "gq.kirmanak.mealient.architecture" +} + +dependencies { + implementation(libs.google.dagger.hiltAndroid) + kapt(libs.google.dagger.hiltCompiler) +} \ No newline at end of file diff --git a/architecture/src/main/kotlin/gq/kirmanak/mealient/architecture/ArchitectureModule.kt b/architecture/src/main/kotlin/gq/kirmanak/mealient/architecture/ArchitectureModule.kt new file mode 100644 index 0000000..59a979e --- /dev/null +++ b/architecture/src/main/kotlin/gq/kirmanak/mealient/architecture/ArchitectureModule.kt @@ -0,0 +1,18 @@ +package gq.kirmanak.mealient.architecture + +import dagger.Binds +import dagger.Module +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import gq.kirmanak.mealient.architecture.configuration.BuildConfiguration +import gq.kirmanak.mealient.architecture.configuration.BuildConfigurationImpl +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +interface ArchitectureModule { + + @Binds + @Singleton + fun bindBuildConfiguration(buildConfigurationImpl: BuildConfigurationImpl): BuildConfiguration +} \ No newline at end of file diff --git a/app/src/main/java/gq/kirmanak/mealient/data/configuration/BuildConfiguration.kt b/architecture/src/main/kotlin/gq/kirmanak/mealient/architecture/configuration/BuildConfiguration.kt similarity index 51% rename from app/src/main/java/gq/kirmanak/mealient/data/configuration/BuildConfiguration.kt rename to architecture/src/main/kotlin/gq/kirmanak/mealient/architecture/configuration/BuildConfiguration.kt index 8aeb61c..e076468 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/configuration/BuildConfiguration.kt +++ b/architecture/src/main/kotlin/gq/kirmanak/mealient/architecture/configuration/BuildConfiguration.kt @@ -1,5 +1,6 @@ -package gq.kirmanak.mealient.data.configuration +package gq.kirmanak.mealient.architecture.configuration interface BuildConfiguration { + fun isDebug(): Boolean } \ No newline at end of file diff --git a/architecture/src/main/kotlin/gq/kirmanak/mealient/architecture/configuration/BuildConfigurationImpl.kt b/architecture/src/main/kotlin/gq/kirmanak/mealient/architecture/configuration/BuildConfigurationImpl.kt new file mode 100644 index 0000000..378b1a8 --- /dev/null +++ b/architecture/src/main/kotlin/gq/kirmanak/mealient/architecture/configuration/BuildConfigurationImpl.kt @@ -0,0 +1,14 @@ +package gq.kirmanak.mealient.architecture.configuration + +import androidx.viewbinding.BuildConfig +import javax.inject.Inject +import javax.inject.Singleton + +@Singleton +class BuildConfigurationImpl @Inject constructor() : BuildConfiguration { + + @get:JvmName("_isDebug") + private val isDebug by lazy { BuildConfig.DEBUG } + + override fun isDebug(): Boolean = isDebug +} \ No newline at end of file diff --git a/logging/build.gradle.kts b/logging/build.gradle.kts index 518b450..efd2aee 100644 --- a/logging/build.gradle.kts +++ b/logging/build.gradle.kts @@ -9,6 +9,8 @@ android { } dependencies { + implementation(project(":architecture")) + implementation(libs.google.dagger.hiltAndroid) kapt(libs.google.dagger.hiltCompiler) } \ No newline at end of file diff --git a/logging/src/main/kotlin/gq/kirmanak/mealient/logging/LogcatAppender.kt b/logging/src/main/kotlin/gq/kirmanak/mealient/logging/LogcatAppender.kt index f7a25f7..e916fcf 100644 --- a/logging/src/main/kotlin/gq/kirmanak/mealient/logging/LogcatAppender.kt +++ b/logging/src/main/kotlin/gq/kirmanak/mealient/logging/LogcatAppender.kt @@ -1,13 +1,17 @@ package gq.kirmanak.mealient.logging import android.util.Log +import gq.kirmanak.mealient.architecture.configuration.BuildConfiguration import javax.inject.Inject import javax.inject.Singleton @Singleton -class LogcatAppender @Inject constructor() : Appender { +class LogcatAppender @Inject constructor( + private val buildConfiguration: BuildConfiguration, +) : Appender { - private val isLoggable: Boolean by lazy { BuildConfig.DEBUG } + private val isLoggable: Boolean + get() = buildConfiguration.isDebug() override fun isLoggable(logLevel: LogLevel): Boolean = isLoggable diff --git a/settings.gradle.kts b/settings.gradle.kts index 3c9d35e..a5dfdaf 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -20,6 +20,7 @@ dependencyResolutionManagement { rootProject.name = "Mealient" include(":app") +include(":architecture") include(":database") include(":datastore") include(":logging")