From 53b40bbc6088d542dd17372b5c75bf798742b5f8 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Thu, 4 Aug 2022 19:34:21 +0200 Subject: [PATCH] Extract database module --- app/build.gradle.kts | 45 ++----------------- .../mealient/data/recipes/RecipeRepo.kt | 4 +- .../mealient/data/recipes/db/RecipeStorage.kt | 4 +- .../data/recipes/db/RecipeStorageImpl.kt | 6 +-- .../data/recipes/impl/RecipeRepoImpl.kt | 3 +- .../recipes/impl/RecipesRemoteMediator.kt | 2 +- .../java/gq/kirmanak/mealient/di/AppModule.kt | 7 --- .../mealient/di/GlideModuleEntryPoint.kt | 2 +- .../gq/kirmanak/mealient/di/RecipeModule.kt | 2 +- .../extensions/RemoteToLocalMappings.kt | 8 ++-- .../kirmanak/mealient/ui/MealieGlideModule.kt | 2 +- .../mealient/ui/recipes/RecipeViewHolder.kt | 2 +- .../mealient/ui/recipes/RecipesFragment.kt | 2 +- .../ui/recipes/RecipesPagingAdapter.kt | 2 +- .../ui/recipes/images/RecipeImageLoader.kt | 2 +- .../recipes/images/RecipeImageLoaderImpl.kt | 2 +- .../ui/recipes/images/RecipeModelLoader.kt | 2 +- .../images/RecipeModelLoaderFactory.kt | 2 +- .../images/RecipePreloadModelProvider.kt | 2 +- .../recipes/images/RecipePreloaderFactory.kt | 2 +- .../images/RecipePreloaderFactoryImpl.kt | 2 +- .../ui/recipes/info/RecipeInfoUiState.kt | 2 +- .../recipes/info/RecipeIngredientsAdapter.kt | 2 +- .../recipes/info/RecipeInstructionsAdapter.kt | 2 +- .../data/recipes/db/RecipeStorageImplTest.kt | 10 ++--- .../data/recipes/impl/RecipeRepoImplTest.kt | 2 +- .../recipes/impl/RecipesRemoteMediatorTest.kt | 2 +- .../mealient/test/RecipeImplTestData.kt | 6 +-- .../gq/kirmanak/mealient/KotlinAndroid.kt | 32 +++++++++++++ database/.gitignore | 1 + database/build.gradle.kts | 43 ++++++++++++++++++ .../1.json | 0 .../2.json | 0 database/src/main/AndroidManifest.xml | 1 + .../gq/kirmanak/mealient/database}/AppDb.kt | 7 ++- .../mealient/database/DatabaseModule.kt | 22 +++++++++ .../mealient/database}/RoomTypeConverters.kt | 2 +- .../mealient/database/recipe}/RecipeDao.kt | 5 +-- .../database/recipe}/entity/CategoryEntity.kt | 2 +- .../recipe}/entity/CategoryRecipeEntity.kt | 2 +- .../database/recipe/entity}/FullRecipeInfo.kt | 6 +-- .../database/recipe}/entity/RecipeEntity.kt | 2 +- .../recipe}/entity/RecipeIngredientEntity.kt | 2 +- .../recipe}/entity/RecipeInstructionEntity.kt | 2 +- .../recipe}/entity/RecipeSummaryEntity.kt | 2 +- .../database/recipe}/entity/TagEntity.kt | 2 +- .../recipe}/entity/TagRecipeEntity.kt | 2 +- .../database}/RoomTypeConvertersTest.kt | 2 +- settings.gradle.kts | 3 ++ 49 files changed, 159 insertions(+), 112 deletions(-) create mode 100644 database/.gitignore create mode 100644 database/build.gradle.kts rename {app/schemas/gq.kirmanak.mealient.data.AppDb => database/schemas/gq.kirmanak.mealient.database.AppDb}/1.json (100%) rename {app/schemas/gq.kirmanak.mealient.data.AppDb => database/schemas/gq.kirmanak.mealient.database.AppDb}/2.json (100%) create mode 100644 database/src/main/AndroidManifest.xml rename {app/src/main/java/gq/kirmanak/mealient/data => database/src/main/kotlin/gq/kirmanak/mealient/database}/AppDb.kt (77%) create mode 100644 database/src/main/kotlin/gq/kirmanak/mealient/database/DatabaseModule.kt rename {app/src/main/java/gq/kirmanak/mealient/extensions => database/src/main/kotlin/gq/kirmanak/mealient/database}/RoomTypeConverters.kt (94%) rename {app/src/main/java/gq/kirmanak/mealient/data/recipes/db => database/src/main/kotlin/gq/kirmanak/mealient/database/recipe}/RecipeDao.kt (94%) rename {app/src/main/java/gq/kirmanak/mealient/data/recipes/db => database/src/main/kotlin/gq/kirmanak/mealient/database/recipe}/entity/CategoryEntity.kt (87%) rename {app/src/main/java/gq/kirmanak/mealient/data/recipes/db => database/src/main/kotlin/gq/kirmanak/mealient/database/recipe}/entity/CategoryRecipeEntity.kt (94%) rename {app/src/main/java/gq/kirmanak/mealient/data/recipes/impl => database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity}/FullRecipeInfo.kt (63%) rename {app/src/main/java/gq/kirmanak/mealient/data/recipes/db => database/src/main/kotlin/gq/kirmanak/mealient/database/recipe}/entity/RecipeEntity.kt (84%) rename {app/src/main/java/gq/kirmanak/mealient/data/recipes/db => database/src/main/kotlin/gq/kirmanak/mealient/database/recipe}/entity/RecipeIngredientEntity.kt (92%) rename {app/src/main/java/gq/kirmanak/mealient/data/recipes/db => database/src/main/kotlin/gq/kirmanak/mealient/database/recipe}/entity/RecipeInstructionEntity.kt (89%) rename {app/src/main/java/gq/kirmanak/mealient/data/recipes/db => database/src/main/kotlin/gq/kirmanak/mealient/database/recipe}/entity/RecipeSummaryEntity.kt (94%) rename {app/src/main/java/gq/kirmanak/mealient/data/recipes/db => database/src/main/kotlin/gq/kirmanak/mealient/database/recipe}/entity/TagEntity.kt (87%) rename {app/src/main/java/gq/kirmanak/mealient/data/recipes/db => database/src/main/kotlin/gq/kirmanak/mealient/database/recipe}/entity/TagRecipeEntity.kt (93%) rename {app/src/test/java/gq/kirmanak/mealient/extensions => database/src/test/kotlin/gq/kirmanak/mealient/database}/RoomTypeConvertersTest.kt (96%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 4686eac..9b3c2f9 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -17,7 +17,6 @@ plugins { id("com.google.firebase.crashlytics") alias(libs.plugins.appsweep) alias(libs.plugins.protobuf) - alias(libs.plugins.ksp) } android { @@ -26,10 +25,6 @@ android { versionCode = 13 versionName = "0.2.4" - ksp { - arg("room.schemaLocation", "$projectDir/schemas") - } - buildConfigField("Boolean", "LOG_NETWORK", "false") } @@ -67,38 +62,6 @@ android { } } - buildFeatures { - viewBinding = true - } - - testOptions { - unitTests { - isIncludeAndroidResources = true - } - } - - lint { - disable += listOf("ObsoleteLintCustomCheck", "IconMissingDensityFolder") - enable += listOf( - "ConvertToWebp", - "DuplicateStrings", - "EasterEgg", - "ExpensiveAssertion", - "IconExpectedSize", - "ImplicitSamInstance", - "InvalidPackage", - "KotlinPropertyAccess", - "LambdaLast", - "MinSdkTooLow", - "NegativeMargin", - "NoHardKeywords", - "Registered", - "RequiredSize", - "UnknownNullness", - "WrongThreadInterprocedural" - ) - } - namespace = "gq.kirmanak.mealient" packagingOptions { @@ -107,6 +70,9 @@ android { } dependencies { + + implementation(project(":database")) + implementation(libs.android.material.material) implementation(libs.androidx.navigation.fragmentKtx) @@ -144,11 +110,6 @@ dependencies { implementation(libs.androidx.paging.runtimeKtx) testImplementation(libs.androidx.paging.commonKtx) - implementation(libs.androidx.room.runtime) - implementation(libs.androidx.room.ktx) - implementation(libs.androidx.room.paging) - ksp(libs.androidx.room.compiler) - testImplementation(libs.androidx.room.testing) implementation(libs.jetbrains.kotlinx.datetime) diff --git a/app/src/main/java/gq/kirmanak/mealient/data/recipes/RecipeRepo.kt b/app/src/main/java/gq/kirmanak/mealient/data/recipes/RecipeRepo.kt index 56f3086..503a7b2 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/recipes/RecipeRepo.kt +++ b/app/src/main/java/gq/kirmanak/mealient/data/recipes/RecipeRepo.kt @@ -1,8 +1,8 @@ package gq.kirmanak.mealient.data.recipes import androidx.paging.Pager -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity -import gq.kirmanak.mealient.data.recipes.impl.FullRecipeInfo +import gq.kirmanak.mealient.database.recipe.entity.FullRecipeInfo +import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity interface RecipeRepo { fun createPager(): Pager diff --git a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/RecipeStorage.kt b/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/RecipeStorage.kt index 16928e1..382d5a5 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/RecipeStorage.kt +++ b/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/RecipeStorage.kt @@ -1,10 +1,10 @@ package gq.kirmanak.mealient.data.recipes.db import androidx.paging.PagingSource -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity -import gq.kirmanak.mealient.data.recipes.impl.FullRecipeInfo import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeSummaryResponse +import gq.kirmanak.mealient.database.recipe.entity.FullRecipeInfo +import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity interface RecipeStorage { suspend fun saveRecipes(recipes: List) diff --git a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/RecipeStorageImpl.kt b/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/RecipeStorageImpl.kt index 3039b99..ab6886e 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/RecipeStorageImpl.kt +++ b/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/RecipeStorageImpl.kt @@ -2,11 +2,11 @@ package gq.kirmanak.mealient.data.recipes.db import androidx.paging.PagingSource import androidx.room.withTransaction -import gq.kirmanak.mealient.data.AppDb -import gq.kirmanak.mealient.data.recipes.db.entity.* -import gq.kirmanak.mealient.data.recipes.impl.FullRecipeInfo import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeSummaryResponse +import gq.kirmanak.mealient.database.AppDb +import gq.kirmanak.mealient.database.recipe.RecipeDao +import gq.kirmanak.mealient.database.recipe.entity.* import gq.kirmanak.mealient.extensions.recipeEntity import gq.kirmanak.mealient.extensions.toRecipeEntity import gq.kirmanak.mealient.extensions.toRecipeIngredientEntity diff --git a/app/src/main/java/gq/kirmanak/mealient/data/recipes/impl/RecipeRepoImpl.kt b/app/src/main/java/gq/kirmanak/mealient/data/recipes/impl/RecipeRepoImpl.kt index d0a199e..99c43d9 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/recipes/impl/RecipeRepoImpl.kt +++ b/app/src/main/java/gq/kirmanak/mealient/data/recipes/impl/RecipeRepoImpl.kt @@ -6,8 +6,9 @@ import androidx.paging.Pager import androidx.paging.PagingConfig import gq.kirmanak.mealient.data.recipes.RecipeRepo import gq.kirmanak.mealient.data.recipes.db.RecipeStorage -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity import gq.kirmanak.mealient.data.recipes.network.RecipeDataSource +import gq.kirmanak.mealient.database.recipe.entity.FullRecipeInfo +import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity import gq.kirmanak.mealient.extensions.runCatchingExceptCancel import timber.log.Timber import javax.inject.Inject diff --git a/app/src/main/java/gq/kirmanak/mealient/data/recipes/impl/RecipesRemoteMediator.kt b/app/src/main/java/gq/kirmanak/mealient/data/recipes/impl/RecipesRemoteMediator.kt index a194206..324ea30 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/recipes/impl/RecipesRemoteMediator.kt +++ b/app/src/main/java/gq/kirmanak/mealient/data/recipes/impl/RecipesRemoteMediator.kt @@ -5,8 +5,8 @@ import androidx.paging.* import androidx.paging.LoadType.PREPEND import androidx.paging.LoadType.REFRESH import gq.kirmanak.mealient.data.recipes.db.RecipeStorage -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity import gq.kirmanak.mealient.data.recipes.network.RecipeDataSource +import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity import gq.kirmanak.mealient.extensions.runCatchingExceptCancel import timber.log.Timber import javax.inject.Inject 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 43b19a5..8b3a7f7 100644 --- a/app/src/main/java/gq/kirmanak/mealient/di/AppModule.kt +++ b/app/src/main/java/gq/kirmanak/mealient/di/AppModule.kt @@ -5,14 +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 androidx.room.Room 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.AppDb import gq.kirmanak.mealient.data.storage.PreferencesStorage import gq.kirmanak.mealient.data.storage.PreferencesStorageImpl import javax.inject.Singleton @@ -22,11 +20,6 @@ import javax.inject.Singleton interface AppModule { companion object { - @Provides - @Singleton - fun createDb(@ApplicationContext context: Context): AppDb = - Room.databaseBuilder(context, AppDb::class.java, "app.db").build() - @Provides @Singleton fun provideDataStore(@ApplicationContext context: Context): DataStore = diff --git a/app/src/main/java/gq/kirmanak/mealient/di/GlideModuleEntryPoint.kt b/app/src/main/java/gq/kirmanak/mealient/di/GlideModuleEntryPoint.kt index b135470..9558359 100644 --- a/app/src/main/java/gq/kirmanak/mealient/di/GlideModuleEntryPoint.kt +++ b/app/src/main/java/gq/kirmanak/mealient/di/GlideModuleEntryPoint.kt @@ -4,7 +4,7 @@ import com.bumptech.glide.load.model.ModelLoaderFactory import dagger.hilt.EntryPoint import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity +import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity import okhttp3.OkHttpClient import java.io.InputStream import javax.inject.Named diff --git a/app/src/main/java/gq/kirmanak/mealient/di/RecipeModule.kt b/app/src/main/java/gq/kirmanak/mealient/di/RecipeModule.kt index fc015b5..8317f15 100644 --- a/app/src/main/java/gq/kirmanak/mealient/di/RecipeModule.kt +++ b/app/src/main/java/gq/kirmanak/mealient/di/RecipeModule.kt @@ -16,13 +16,13 @@ import gq.kirmanak.mealient.data.network.createServiceFactory import gq.kirmanak.mealient.data.recipes.RecipeRepo import gq.kirmanak.mealient.data.recipes.db.RecipeStorage import gq.kirmanak.mealient.data.recipes.db.RecipeStorageImpl -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity import gq.kirmanak.mealient.data.recipes.impl.RecipeImageUrlProvider import gq.kirmanak.mealient.data.recipes.impl.RecipeImageUrlProviderImpl import gq.kirmanak.mealient.data.recipes.impl.RecipeRepoImpl import gq.kirmanak.mealient.data.recipes.network.RecipeDataSource import gq.kirmanak.mealient.data.recipes.network.RecipeDataSourceImpl import gq.kirmanak.mealient.data.recipes.network.RecipeService +import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity import gq.kirmanak.mealient.ui.recipes.images.RecipeModelLoaderFactory import kotlinx.serialization.json.Json import okhttp3.OkHttpClient diff --git a/app/src/main/java/gq/kirmanak/mealient/extensions/RemoteToLocalMappings.kt b/app/src/main/java/gq/kirmanak/mealient/extensions/RemoteToLocalMappings.kt index 7686ddc..0dc2220 100644 --- a/app/src/main/java/gq/kirmanak/mealient/extensions/RemoteToLocalMappings.kt +++ b/app/src/main/java/gq/kirmanak/mealient/extensions/RemoteToLocalMappings.kt @@ -2,14 +2,14 @@ package gq.kirmanak.mealient.extensions import gq.kirmanak.mealient.data.baseurl.VersionInfo import gq.kirmanak.mealient.data.baseurl.impl.VersionResponse -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeEntity -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeIngredientEntity -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeInstructionEntity -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeIngredientResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeInstructionResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeSummaryResponse +import gq.kirmanak.mealient.database.recipe.entity.RecipeEntity +import gq.kirmanak.mealient.database.recipe.entity.RecipeIngredientEntity +import gq.kirmanak.mealient.database.recipe.entity.RecipeInstructionEntity +import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity fun GetRecipeResponse.toRecipeEntity() = RecipeEntity( remoteId = remoteId, diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/MealieGlideModule.kt b/app/src/main/java/gq/kirmanak/mealient/ui/MealieGlideModule.kt index 93a040f..022cf9d 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/MealieGlideModule.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/MealieGlideModule.kt @@ -8,7 +8,7 @@ import com.bumptech.glide.integration.okhttp3.OkHttpUrlLoader import com.bumptech.glide.load.model.GlideUrl import com.bumptech.glide.module.AppGlideModule import dagger.hilt.android.EntryPointAccessors.fromApplication -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity +import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity import gq.kirmanak.mealient.di.GlideModuleEntryPoint import timber.log.Timber import java.io.InputStream diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipeViewHolder.kt b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipeViewHolder.kt index f55c9fd..f64ac60 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipeViewHolder.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipeViewHolder.kt @@ -2,7 +2,7 @@ package gq.kirmanak.mealient.ui.recipes import androidx.recyclerview.widget.RecyclerView import gq.kirmanak.mealient.R -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity +import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity import gq.kirmanak.mealient.databinding.ViewHolderRecipeBinding import gq.kirmanak.mealient.ui.recipes.images.RecipeImageLoader import timber.log.Timber diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipesFragment.kt b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipesFragment.kt index 990c6fb..2bf424a 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipesFragment.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipesFragment.kt @@ -9,7 +9,7 @@ import androidx.navigation.fragment.findNavController import by.kirich1409.viewbindingdelegate.viewBinding import dagger.hilt.android.AndroidEntryPoint import gq.kirmanak.mealient.R -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity +import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity import gq.kirmanak.mealient.databinding.FragmentRecipesBinding import gq.kirmanak.mealient.extensions.collectWhenViewResumed import gq.kirmanak.mealient.extensions.refreshRequestFlow diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipesPagingAdapter.kt b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipesPagingAdapter.kt index a1d5ec0..002db21 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipesPagingAdapter.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/RecipesPagingAdapter.kt @@ -4,7 +4,7 @@ import android.view.LayoutInflater import android.view.ViewGroup import androidx.paging.PagingDataAdapter import androidx.recyclerview.widget.DiffUtil -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity +import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity import gq.kirmanak.mealient.databinding.ViewHolderRecipeBinding import gq.kirmanak.mealient.ui.recipes.images.RecipeImageLoader import timber.log.Timber diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipeImageLoader.kt b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipeImageLoader.kt index ea06a04..f338454 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipeImageLoader.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipeImageLoader.kt @@ -1,7 +1,7 @@ package gq.kirmanak.mealient.ui.recipes.images import android.widget.ImageView -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity +import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity interface RecipeImageLoader { diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipeImageLoaderImpl.kt b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipeImageLoaderImpl.kt index 1cedd13..f0e2692 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipeImageLoaderImpl.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipeImageLoaderImpl.kt @@ -5,7 +5,7 @@ import androidx.fragment.app.Fragment import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions import dagger.hilt.android.scopes.FragmentScoped -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity +import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity import timber.log.Timber import javax.inject.Inject diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipeModelLoader.kt b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipeModelLoader.kt index 267d4f1..11b8306 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipeModelLoader.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipeModelLoader.kt @@ -5,8 +5,8 @@ import com.bumptech.glide.load.model.GlideUrl import com.bumptech.glide.load.model.ModelCache import com.bumptech.glide.load.model.ModelLoader import com.bumptech.glide.load.model.stream.BaseGlideUrlLoader -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity import gq.kirmanak.mealient.data.recipes.impl.RecipeImageUrlProvider +import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity import kotlinx.coroutines.runBlocking import timber.log.Timber import java.io.InputStream diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipeModelLoaderFactory.kt b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipeModelLoaderFactory.kt index 59ee91f..2dcee04 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipeModelLoaderFactory.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipeModelLoaderFactory.kt @@ -1,8 +1,8 @@ package gq.kirmanak.mealient.ui.recipes.images import com.bumptech.glide.load.model.* -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity import gq.kirmanak.mealient.data.recipes.impl.RecipeImageUrlProvider +import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity import timber.log.Timber import java.io.InputStream import javax.inject.Inject diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipePreloadModelProvider.kt b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipePreloadModelProvider.kt index 577e988..5bd7411 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipePreloadModelProvider.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipePreloadModelProvider.kt @@ -7,7 +7,7 @@ import com.bumptech.glide.ListPreloader import com.bumptech.glide.RequestBuilder import com.bumptech.glide.request.RequestOptions import dagger.hilt.android.scopes.FragmentScoped -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity +import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity import timber.log.Timber import javax.inject.Inject diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipePreloaderFactory.kt b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipePreloaderFactory.kt index 0455fe5..9e94d3a 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipePreloaderFactory.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipePreloaderFactory.kt @@ -2,7 +2,7 @@ package gq.kirmanak.mealient.ui.recipes.images import androidx.paging.PagingDataAdapter import com.bumptech.glide.integration.recyclerview.RecyclerViewPreloader -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity +import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity interface RecipePreloaderFactory { diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipePreloaderFactoryImpl.kt b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipePreloaderFactoryImpl.kt index c9c707c..34481a1 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipePreloaderFactoryImpl.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/images/RecipePreloaderFactoryImpl.kt @@ -5,7 +5,7 @@ import androidx.paging.PagingDataAdapter import com.bumptech.glide.integration.recyclerview.RecyclerViewPreloader import com.bumptech.glide.util.ViewPreloadSizeProvider import dagger.hilt.android.scopes.FragmentScoped -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity +import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity import javax.inject.Inject @FragmentScoped diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/info/RecipeInfoUiState.kt b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/info/RecipeInfoUiState.kt index e6358df..4d1fff5 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/info/RecipeInfoUiState.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/info/RecipeInfoUiState.kt @@ -1,6 +1,6 @@ package gq.kirmanak.mealient.ui.recipes.info -import gq.kirmanak.mealient.data.recipes.impl.FullRecipeInfo +import gq.kirmanak.mealient.database.recipe.entity.FullRecipeInfo data class RecipeInfoUiState( val areIngredientsVisible: Boolean = false, diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/info/RecipeIngredientsAdapter.kt b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/info/RecipeIngredientsAdapter.kt index 1d6215f..b3d3a8f 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/info/RecipeIngredientsAdapter.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/info/RecipeIngredientsAdapter.kt @@ -5,7 +5,7 @@ import android.view.ViewGroup import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeIngredientEntity +import gq.kirmanak.mealient.database.recipe.entity.RecipeIngredientEntity import gq.kirmanak.mealient.databinding.ViewHolderIngredientBinding import gq.kirmanak.mealient.ui.recipes.info.RecipeIngredientsAdapter.RecipeIngredientViewHolder import timber.log.Timber diff --git a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/info/RecipeInstructionsAdapter.kt b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/info/RecipeInstructionsAdapter.kt index b84cd1b..de6d995 100644 --- a/app/src/main/java/gq/kirmanak/mealient/ui/recipes/info/RecipeInstructionsAdapter.kt +++ b/app/src/main/java/gq/kirmanak/mealient/ui/recipes/info/RecipeInstructionsAdapter.kt @@ -6,7 +6,7 @@ import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import gq.kirmanak.mealient.R -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeInstructionEntity +import gq.kirmanak.mealient.database.recipe.entity.RecipeInstructionEntity import gq.kirmanak.mealient.databinding.ViewHolderInstructionBinding import gq.kirmanak.mealient.ui.recipes.info.RecipeInstructionsAdapter.RecipeInstructionViewHolder import timber.log.Timber diff --git a/app/src/test/java/gq/kirmanak/mealient/data/recipes/db/RecipeStorageImplTest.kt b/app/src/test/java/gq/kirmanak/mealient/data/recipes/db/RecipeStorageImplTest.kt index 0ca38fe..f3c18ab 100644 --- a/app/src/test/java/gq/kirmanak/mealient/data/recipes/db/RecipeStorageImplTest.kt +++ b/app/src/test/java/gq/kirmanak/mealient/data/recipes/db/RecipeStorageImplTest.kt @@ -2,11 +2,11 @@ package gq.kirmanak.mealient.data.recipes.db import com.google.common.truth.Truth.assertThat import dagger.hilt.android.testing.HiltAndroidTest -import gq.kirmanak.mealient.data.AppDb -import gq.kirmanak.mealient.data.recipes.db.entity.CategoryEntity -import gq.kirmanak.mealient.data.recipes.db.entity.CategoryRecipeEntity -import gq.kirmanak.mealient.data.recipes.db.entity.TagEntity -import gq.kirmanak.mealient.data.recipes.db.entity.TagRecipeEntity +import gq.kirmanak.mealient.database.AppDb +import gq.kirmanak.mealient.database.recipe.entity.CategoryEntity +import gq.kirmanak.mealient.database.recipe.entity.CategoryRecipeEntity +import gq.kirmanak.mealient.database.recipe.entity.TagEntity +import gq.kirmanak.mealient.database.recipe.entity.TagRecipeEntity import gq.kirmanak.mealient.test.HiltRobolectricTest import gq.kirmanak.mealient.test.RecipeImplTestData.BREAD_INGREDIENT import gq.kirmanak.mealient.test.RecipeImplTestData.CAKE_BREAD_RECIPE_INGREDIENT_ENTITY diff --git a/app/src/test/java/gq/kirmanak/mealient/data/recipes/impl/RecipeRepoImplTest.kt b/app/src/test/java/gq/kirmanak/mealient/data/recipes/impl/RecipeRepoImplTest.kt index d982668..604f9a1 100644 --- a/app/src/test/java/gq/kirmanak/mealient/data/recipes/impl/RecipeRepoImplTest.kt +++ b/app/src/test/java/gq/kirmanak/mealient/data/recipes/impl/RecipeRepoImplTest.kt @@ -4,8 +4,8 @@ import androidx.paging.InvalidatingPagingSourceFactory import com.google.common.truth.Truth.assertThat import gq.kirmanak.mealient.data.recipes.RecipeRepo import gq.kirmanak.mealient.data.recipes.db.RecipeStorage -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity import gq.kirmanak.mealient.data.recipes.network.RecipeDataSource +import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity import gq.kirmanak.mealient.test.RecipeImplTestData.FULL_CAKE_INFO_ENTITY import gq.kirmanak.mealient.test.RecipeImplTestData.GET_CAKE_RESPONSE import io.mockk.MockKAnnotations diff --git a/app/src/test/java/gq/kirmanak/mealient/data/recipes/impl/RecipesRemoteMediatorTest.kt b/app/src/test/java/gq/kirmanak/mealient/data/recipes/impl/RecipesRemoteMediatorTest.kt index b470eb6..0f3c322 100644 --- a/app/src/test/java/gq/kirmanak/mealient/data/recipes/impl/RecipesRemoteMediatorTest.kt +++ b/app/src/test/java/gq/kirmanak/mealient/data/recipes/impl/RecipesRemoteMediatorTest.kt @@ -5,8 +5,8 @@ import androidx.paging.LoadType.* import com.google.common.truth.Truth.assertThat import gq.kirmanak.mealient.data.network.NetworkError.Unauthorized import gq.kirmanak.mealient.data.recipes.db.RecipeStorage -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity import gq.kirmanak.mealient.data.recipes.network.RecipeDataSource +import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity import gq.kirmanak.mealient.test.RecipeImplTestData.TEST_RECIPE_SUMMARIES import io.mockk.MockKAnnotations import io.mockk.coEvery diff --git a/app/src/test/java/gq/kirmanak/mealient/test/RecipeImplTestData.kt b/app/src/test/java/gq/kirmanak/mealient/test/RecipeImplTestData.kt index 487cb8a..2b9578c 100644 --- a/app/src/test/java/gq/kirmanak/mealient/test/RecipeImplTestData.kt +++ b/app/src/test/java/gq/kirmanak/mealient/test/RecipeImplTestData.kt @@ -1,14 +1,10 @@ package gq.kirmanak.mealient.test -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeEntity -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeIngredientEntity -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeInstructionEntity -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity -import gq.kirmanak.mealient.data.recipes.impl.FullRecipeInfo import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeIngredientResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeInstructionResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeResponse import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeSummaryResponse +import gq.kirmanak.mealient.database.recipe.entity.* import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDateTime diff --git a/build-logic/convention/src/main/kotlin/gq/kirmanak/mealient/KotlinAndroid.kt b/build-logic/convention/src/main/kotlin/gq/kirmanak/mealient/KotlinAndroid.kt index eba2143..7d1ba41 100644 --- a/build-logic/convention/src/main/kotlin/gq/kirmanak/mealient/KotlinAndroid.kt +++ b/build-logic/convention/src/main/kotlin/gq/kirmanak/mealient/KotlinAndroid.kt @@ -30,6 +30,38 @@ internal fun Project.configureKotlinAndroid( freeCompilerArgs = freeCompilerArgs + listOf("-opt-in=kotlin.RequiresOptIn") } + lint { + disable += listOf("ObsoleteLintCustomCheck", "IconMissingDensityFolder") + enable += listOf( + "ConvertToWebp", + "DuplicateStrings", + "EasterEgg", + "ExpensiveAssertion", + "IconExpectedSize", + "ImplicitSamInstance", + "InvalidPackage", + "KotlinPropertyAccess", + "LambdaLast", + "MinSdkTooLow", + "NegativeMargin", + "NoHardKeywords", + "Registered", + "RequiredSize", + "UnknownNullness", + "WrongThreadInterprocedural" + ) + } + + buildFeatures { + viewBinding = true + } + + testOptions { + unitTests { + isIncludeAndroidResources = true + } + } + dependencies { add("coreLibraryDesugaring", libs.findLibrary("android-tools-desugar").get()) } diff --git a/database/.gitignore b/database/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/database/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/database/build.gradle.kts b/database/build.gradle.kts new file mode 100644 index 0000000..afb1731 --- /dev/null +++ b/database/build.gradle.kts @@ -0,0 +1,43 @@ +plugins { + id("gq.kirmanak.mealient.library") + id("kotlin-kapt") + id("dagger.hilt.android.plugin") + alias(libs.plugins.ksp) +} + +android { + defaultConfig { + ksp { + arg("room.schemaLocation", "$projectDir/schemas") + } + } + + namespace = "gq.kirmanak.mealient.database" +} + +dependencies { + implementation(libs.google.dagger.hiltAndroid) + kapt(libs.google.dagger.hiltCompiler) + kaptTest(libs.google.dagger.hiltAndroidCompiler) + testImplementation(libs.google.dagger.hiltAndroidTesting) + + // withTransaction is used in the app module + api(libs.androidx.room.ktx) + + implementation(libs.androidx.room.runtime) + implementation(libs.androidx.room.paging) + ksp(libs.androidx.room.compiler) + testImplementation(libs.androidx.room.testing) + + implementation(libs.jetbrains.kotlinx.datetime) + + implementation(libs.jetbrains.kotlinx.coroutinesAndroid) + testImplementation(libs.jetbrains.kotlinx.coroutinesTest) + + testImplementation(libs.androidx.test.junit) + + testImplementation(libs.google.truth) + + testImplementation(libs.io.mockk) + +} \ No newline at end of file diff --git a/app/schemas/gq.kirmanak.mealient.data.AppDb/1.json b/database/schemas/gq.kirmanak.mealient.database.AppDb/1.json similarity index 100% rename from app/schemas/gq.kirmanak.mealient.data.AppDb/1.json rename to database/schemas/gq.kirmanak.mealient.database.AppDb/1.json diff --git a/app/schemas/gq.kirmanak.mealient.data.AppDb/2.json b/database/schemas/gq.kirmanak.mealient.database.AppDb/2.json similarity index 100% rename from app/schemas/gq.kirmanak.mealient.data.AppDb/2.json rename to database/schemas/gq.kirmanak.mealient.database.AppDb/2.json diff --git a/database/src/main/AndroidManifest.xml b/database/src/main/AndroidManifest.xml new file mode 100644 index 0000000..227314e --- /dev/null +++ b/database/src/main/AndroidManifest.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/java/gq/kirmanak/mealient/data/AppDb.kt b/database/src/main/kotlin/gq/kirmanak/mealient/database/AppDb.kt similarity index 77% rename from app/src/main/java/gq/kirmanak/mealient/data/AppDb.kt rename to database/src/main/kotlin/gq/kirmanak/mealient/database/AppDb.kt index eae931b..3f30751 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/AppDb.kt +++ b/database/src/main/kotlin/gq/kirmanak/mealient/database/AppDb.kt @@ -1,12 +1,11 @@ -package gq.kirmanak.mealient.data +package gq.kirmanak.mealient.database import androidx.room.AutoMigration import androidx.room.Database import androidx.room.RoomDatabase import androidx.room.TypeConverters -import gq.kirmanak.mealient.data.recipes.db.RecipeDao -import gq.kirmanak.mealient.data.recipes.db.entity.* -import gq.kirmanak.mealient.extensions.RoomTypeConverters +import gq.kirmanak.mealient.database.recipe.RecipeDao +import gq.kirmanak.mealient.database.recipe.entity.* @Database( version = 2, diff --git a/database/src/main/kotlin/gq/kirmanak/mealient/database/DatabaseModule.kt b/database/src/main/kotlin/gq/kirmanak/mealient/database/DatabaseModule.kt new file mode 100644 index 0000000..9fa9d7a --- /dev/null +++ b/database/src/main/kotlin/gq/kirmanak/mealient/database/DatabaseModule.kt @@ -0,0 +1,22 @@ +package gq.kirmanak.mealient.database + +import android.content.Context +import androidx.room.Room +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.android.qualifiers.ApplicationContext +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +interface DatabaseModule { + + companion object { + @Provides + @Singleton + fun createDb(@ApplicationContext context: Context): AppDb = + Room.databaseBuilder(context, AppDb::class.java, "app.db").build() + } +} \ No newline at end of file diff --git a/app/src/main/java/gq/kirmanak/mealient/extensions/RoomTypeConverters.kt b/database/src/main/kotlin/gq/kirmanak/mealient/database/RoomTypeConverters.kt similarity index 94% rename from app/src/main/java/gq/kirmanak/mealient/extensions/RoomTypeConverters.kt rename to database/src/main/kotlin/gq/kirmanak/mealient/database/RoomTypeConverters.kt index abfcfbb..2f5a29e 100644 --- a/app/src/main/java/gq/kirmanak/mealient/extensions/RoomTypeConverters.kt +++ b/database/src/main/kotlin/gq/kirmanak/mealient/database/RoomTypeConverters.kt @@ -1,4 +1,4 @@ -package gq.kirmanak.mealient.extensions +package gq.kirmanak.mealient.database import androidx.room.TypeConverter import kotlinx.datetime.* diff --git a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/RecipeDao.kt b/database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/RecipeDao.kt similarity index 94% rename from app/src/main/java/gq/kirmanak/mealient/data/recipes/db/RecipeDao.kt rename to database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/RecipeDao.kt index 67ac3f4..203953a 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/RecipeDao.kt +++ b/database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/RecipeDao.kt @@ -1,9 +1,8 @@ -package gq.kirmanak.mealient.data.recipes.db +package gq.kirmanak.mealient.database.recipe import androidx.paging.PagingSource import androidx.room.* -import gq.kirmanak.mealient.data.recipes.db.entity.* -import gq.kirmanak.mealient.data.recipes.impl.FullRecipeInfo +import gq.kirmanak.mealient.database.recipe.entity.* @Dao interface RecipeDao { diff --git a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/CategoryEntity.kt b/database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/CategoryEntity.kt similarity index 87% rename from app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/CategoryEntity.kt rename to database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/CategoryEntity.kt index fc40158..4384ded 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/CategoryEntity.kt +++ b/database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/CategoryEntity.kt @@ -1,4 +1,4 @@ -package gq.kirmanak.mealient.data.recipes.db.entity +package gq.kirmanak.mealient.database.recipe.entity import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/CategoryRecipeEntity.kt b/database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/CategoryRecipeEntity.kt similarity index 94% rename from app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/CategoryRecipeEntity.kt rename to database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/CategoryRecipeEntity.kt index 9c6ed30..d0fca2d 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/CategoryRecipeEntity.kt +++ b/database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/CategoryRecipeEntity.kt @@ -1,4 +1,4 @@ -package gq.kirmanak.mealient.data.recipes.db.entity +package gq.kirmanak.mealient.database.recipe.entity import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/app/src/main/java/gq/kirmanak/mealient/data/recipes/impl/FullRecipeInfo.kt b/database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/FullRecipeInfo.kt similarity index 63% rename from app/src/main/java/gq/kirmanak/mealient/data/recipes/impl/FullRecipeInfo.kt rename to database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/FullRecipeInfo.kt index 7b5a86f..27b02cc 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/recipes/impl/FullRecipeInfo.kt +++ b/database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/FullRecipeInfo.kt @@ -1,11 +1,7 @@ -package gq.kirmanak.mealient.data.recipes.impl +package gq.kirmanak.mealient.database.recipe.entity import androidx.room.Embedded import androidx.room.Relation -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeEntity -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeIngredientEntity -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeInstructionEntity -import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity data class FullRecipeInfo( @Embedded val recipeEntity: RecipeEntity, diff --git a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/RecipeEntity.kt b/database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/RecipeEntity.kt similarity index 84% rename from app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/RecipeEntity.kt rename to database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/RecipeEntity.kt index 025afcf..9db36b9 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/RecipeEntity.kt +++ b/database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/RecipeEntity.kt @@ -1,4 +1,4 @@ -package gq.kirmanak.mealient.data.recipes.db.entity +package gq.kirmanak.mealient.database.recipe.entity import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/RecipeIngredientEntity.kt b/database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/RecipeIngredientEntity.kt similarity index 92% rename from app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/RecipeIngredientEntity.kt rename to database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/RecipeIngredientEntity.kt index 86f75e1..e539674 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/RecipeIngredientEntity.kt +++ b/database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/RecipeIngredientEntity.kt @@ -1,4 +1,4 @@ -package gq.kirmanak.mealient.data.recipes.db.entity +package gq.kirmanak.mealient.database.recipe.entity import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/RecipeInstructionEntity.kt b/database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/RecipeInstructionEntity.kt similarity index 89% rename from app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/RecipeInstructionEntity.kt rename to database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/RecipeInstructionEntity.kt index d4f9dfb..8cbb8d6 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/RecipeInstructionEntity.kt +++ b/database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/RecipeInstructionEntity.kt @@ -1,4 +1,4 @@ -package gq.kirmanak.mealient.data.recipes.db.entity +package gq.kirmanak.mealient.database.recipe.entity import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/RecipeSummaryEntity.kt b/database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/RecipeSummaryEntity.kt similarity index 94% rename from app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/RecipeSummaryEntity.kt rename to database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/RecipeSummaryEntity.kt index 287a4af..dfb3cce 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/RecipeSummaryEntity.kt +++ b/database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/RecipeSummaryEntity.kt @@ -1,4 +1,4 @@ -package gq.kirmanak.mealient.data.recipes.db.entity +package gq.kirmanak.mealient.database.recipe.entity import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/TagEntity.kt b/database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/TagEntity.kt similarity index 87% rename from app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/TagEntity.kt rename to database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/TagEntity.kt index 29207a8..460c649 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/TagEntity.kt +++ b/database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/TagEntity.kt @@ -1,4 +1,4 @@ -package gq.kirmanak.mealient.data.recipes.db.entity +package gq.kirmanak.mealient.database.recipe.entity import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/TagRecipeEntity.kt b/database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/TagRecipeEntity.kt similarity index 93% rename from app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/TagRecipeEntity.kt rename to database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/TagRecipeEntity.kt index 04743c8..332a5b1 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/recipes/db/entity/TagRecipeEntity.kt +++ b/database/src/main/kotlin/gq/kirmanak/mealient/database/recipe/entity/TagRecipeEntity.kt @@ -1,4 +1,4 @@ -package gq.kirmanak.mealient.data.recipes.db.entity +package gq.kirmanak.mealient.database.recipe.entity import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/app/src/test/java/gq/kirmanak/mealient/extensions/RoomTypeConvertersTest.kt b/database/src/test/kotlin/gq/kirmanak/mealient/database/RoomTypeConvertersTest.kt similarity index 96% rename from app/src/test/java/gq/kirmanak/mealient/extensions/RoomTypeConvertersTest.kt rename to database/src/test/kotlin/gq/kirmanak/mealient/database/RoomTypeConvertersTest.kt index 240d593..4e621b0 100644 --- a/app/src/test/java/gq/kirmanak/mealient/extensions/RoomTypeConvertersTest.kt +++ b/database/src/test/kotlin/gq/kirmanak/mealient/database/RoomTypeConvertersTest.kt @@ -1,4 +1,4 @@ -package gq.kirmanak.mealient.extensions +package gq.kirmanak.mealient.database import com.google.common.truth.Truth.assertThat import kotlinx.datetime.LocalDate diff --git a/settings.gradle.kts b/settings.gradle.kts index b1cb398..4145c27 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -16,5 +16,8 @@ dependencyResolutionManagement { mavenCentral() } } + rootProject.name = "Mealient" + include(":app") +include(":database")