Extract database module

This commit is contained in:
Kirill Kamakin
2022-08-04 19:34:21 +02:00
parent 7ff575e72d
commit 53b40bbc60
49 changed files with 159 additions and 112 deletions

View File

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

View File

@@ -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<Int, RecipeSummaryEntity>

View File

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

View File

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

View File

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

View File

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

View File

@@ -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<Preferences> =

View File

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

View File

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

View File

@@ -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,

View File

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

View File

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

View File

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

View File

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

View File

@@ -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 {

View File

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

View File

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

View File

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

View File

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

View File

@@ -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 {

View File

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

View File

@@ -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,

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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())
}

1
database/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/build

43
database/build.gradle.kts Normal file
View File

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

View File

@@ -0,0 +1 @@
<manifest />

View File

@@ -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,

View File

@@ -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()
}
}

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealient.extensions
package gq.kirmanak.mealient.database
import androidx.room.TypeConverter
import kotlinx.datetime.*

View File

@@ -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 {

View File

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

View File

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

View File

@@ -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,

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -16,5 +16,8 @@ dependencyResolutionManagement {
mavenCentral()
}
}
rootProject.name = "Mealient"
include(":app")
include(":database")