Replace "Mealie" with "Mealient" everywhere

This commit is contained in:
Kirill Kamakin
2021-11-20 13:41:47 +03:00
parent d789bfcf97
commit 5866584d14
81 changed files with 283 additions and 284 deletions

View File

@@ -5,7 +5,6 @@ before_script:
- export GRADLE_USER_HOME=`pwd`/.gradle
cache:
key: "mealie-android"
paths:
- .gradle
@@ -19,10 +18,10 @@ assembleDebug:
needs: [ ]
script:
- ./gradlew assembleDebug
- cp app/build/outputs/apk/debug/*.apk mealie-debug.apk
- cp app/build/outputs/apk/debug/*.apk mealient-debug.apk
artifacts:
paths:
- mealie-debug.apk
- mealient-debug.apk
checkApp:
interruptible: true
@@ -40,15 +39,15 @@ assembleRelease:
stage: build
needs: [ "checkApp" ]
script:
- echo "$MEALIE_KEY_STORE" | base64 -d > app/mealie-release-key.jks
- echo "storeFile=mealie-release-key.jks" > keystore.properties
- echo "$MEALIE_KEY_STORE" | base64 -d > app/mealient-release-key.jks
- echo "storeFile=mealient-release-key.jks" > keystore.properties
- echo "storePassword=$MEALIE_KEY_STORE_PASSWORD" >> keystore.properties
- echo "keyAlias=$MEALIE_KEY_ALIAS" >> keystore.properties
- echo "keyPassword=$MEALIE_KEY_PASSWORD" >> keystore.properties
- ./gradlew assembleRelease
- cp app/build/outputs/apk/release/*.apk mealie-release.apk
- cp app/build/outputs/apk/release/*.apk mealient-release.apk
artifacts:
paths:
- mealie-release.apk
- mealient-release.apk
rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'

View File

@@ -5,6 +5,6 @@ If you face any issues using the application or have a feature request DO NOT se
Instead, report a new issue in this repository.
THAT IS NOT AN OFFICIAL CLIENT.
# Mealie Android Application
# Mealient Android Application
An Android client for [Mealie](https://hay-kot.github.io/mealie/). Easily access your recipes using your phone.

View File

@@ -11,7 +11,7 @@ android {
compileSdk 31
defaultConfig {
applicationId "gq.kirmanak.mealie"
applicationId "gq.kirmanak.mealient"
minSdk 21
targetSdk 31
versionCode 1

View File

@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="gq.kirmanak.mealie">
package="gq.kirmanak.mealient">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".MealieApp"
android:name="gq.kirmanak.mealient.App"
android:allowBackup="true"
android:fullBackupOnly="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher"
android:supportsRtl="true"
android:theme="@style/Theme.Mealie">
android:theme="@style/Theme.Mealient">
<activity
android:name=".MainActivity"
android:exported="true">

View File

@@ -1,10 +0,0 @@
package gq.kirmanak.mealie.data.recipes.network
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeResponse
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeSummaryResponse
interface RecipeDataSource {
suspend fun requestRecipes(start: Int = 0, limit: Int = 9999): List<GetRecipeSummaryResponse>
suspend fun requestRecipeInfo(slug: String): GetRecipeResponse
}

View File

@@ -1,11 +1,11 @@
package gq.kirmanak.mealie
package gq.kirmanak.mealient
import android.app.Application
import dagger.hilt.android.HiltAndroidApp
import timber.log.Timber
@HiltAndroidApp
class MealieApp : Application() {
class App : Application() {
override fun onCreate() {
super.onCreate()
if (BuildConfig.DEBUG) Timber.plant(Timber.DebugTree())

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie
package gq.kirmanak.mealient
import android.os.Bundle
import android.view.Menu
@@ -7,8 +7,8 @@ import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope
import dagger.hilt.android.AndroidEntryPoint
import gq.kirmanak.mealie.databinding.MainActivityBinding
import gq.kirmanak.mealie.ui.auth.AuthenticationViewModel
import gq.kirmanak.mealient.databinding.MainActivityBinding
import gq.kirmanak.mealient.ui.auth.AuthenticationViewModel
import kotlinx.coroutines.flow.collectLatest
import timber.log.Timber

View File

@@ -1,11 +1,11 @@
package gq.kirmanak.mealie.data
package gq.kirmanak.mealient.data
import androidx.room.Database
import androidx.room.RoomDatabase
import androidx.room.TypeConverters
import gq.kirmanak.mealie.data.impl.RoomTypeConverters
import gq.kirmanak.mealie.data.recipes.db.RecipeDao
import gq.kirmanak.mealie.data.recipes.db.entity.*
import gq.kirmanak.mealient.data.impl.RoomTypeConverters
import gq.kirmanak.mealient.data.recipes.db.RecipeDao
import gq.kirmanak.mealient.data.recipes.db.entity.*
import javax.inject.Singleton
@Database(
@@ -15,6 +15,6 @@ import javax.inject.Singleton
)
@TypeConverters(RoomTypeConverters::class)
@Singleton
abstract class MealieDb : RoomDatabase() {
abstract class AppDb : RoomDatabase() {
abstract fun recipeDao(): RecipeDao
}

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data
package gq.kirmanak.mealient.data
import android.content.Context
import androidx.room.Room
@@ -10,11 +10,11 @@ import dagger.hilt.components.SingletonComponent
@Module
@InstallIn(SingletonComponent::class)
interface MealieModule {
interface AppModule {
companion object {
@Provides
fun createDb(@ApplicationContext context: Context): MealieDb {
return Room.databaseBuilder(context, MealieDb::class.java, "mealie.db").build()
fun createDb(@ApplicationContext context: Context): AppDb {
return Room.databaseBuilder(context, AppDb::class.java, "app.db").build()
}
}
}

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.auth
package gq.kirmanak.mealient.data.auth
interface AuthDataSource {
/**

View File

@@ -1,12 +1,12 @@
package gq.kirmanak.mealie.data.auth
package gq.kirmanak.mealient.data.auth
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import gq.kirmanak.mealie.data.auth.impl.AuthDataSourceImpl
import gq.kirmanak.mealie.data.auth.impl.AuthRepoImpl
import gq.kirmanak.mealie.data.auth.impl.AuthStorageImpl
import gq.kirmanak.mealient.data.auth.impl.AuthDataSourceImpl
import gq.kirmanak.mealient.data.auth.impl.AuthRepoImpl
import gq.kirmanak.mealient.data.auth.impl.AuthStorageImpl
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.serialization.ExperimentalSerializationApi

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.auth
package gq.kirmanak.mealient.data.auth
import kotlinx.coroutines.flow.Flow

View File

@@ -1,6 +1,6 @@
package gq.kirmanak.mealie.data.auth
package gq.kirmanak.mealient.data.auth
import gq.kirmanak.mealie.data.auth.impl.GetTokenResponse
import gq.kirmanak.mealient.data.auth.impl.GetTokenResponse
import retrofit2.http.Field
import retrofit2.http.FormUrlEncoded
import retrofit2.http.POST

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.auth
package gq.kirmanak.mealient.data.auth
import kotlinx.coroutines.flow.Flow

View File

@@ -1,8 +1,8 @@
package gq.kirmanak.mealie.data.auth.impl
package gq.kirmanak.mealient.data.auth.impl
import gq.kirmanak.mealie.data.auth.AuthDataSource
import gq.kirmanak.mealie.data.auth.AuthService
import gq.kirmanak.mealie.data.impl.RetrofitBuilder
import gq.kirmanak.mealient.data.auth.AuthDataSource
import gq.kirmanak.mealient.data.auth.AuthService
import gq.kirmanak.mealient.data.impl.RetrofitBuilder
import kotlinx.serialization.ExperimentalSerializationApi
import retrofit2.create
import timber.log.Timber

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.auth.impl
package gq.kirmanak.mealient.data.auth.impl
import okhttp3.Interceptor
import okhttp3.Response

View File

@@ -1,8 +1,8 @@
package gq.kirmanak.mealie.data.auth.impl
package gq.kirmanak.mealient.data.auth.impl
import gq.kirmanak.mealie.data.auth.AuthDataSource
import gq.kirmanak.mealie.data.auth.AuthRepo
import gq.kirmanak.mealie.data.auth.AuthStorage
import gq.kirmanak.mealient.data.auth.AuthDataSource
import gq.kirmanak.mealient.data.auth.AuthRepo
import gq.kirmanak.mealient.data.auth.AuthStorage
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import timber.log.Timber

View File

@@ -1,10 +1,10 @@
package gq.kirmanak.mealie.data.auth.impl
package gq.kirmanak.mealient.data.auth.impl
import android.content.Context
import android.content.SharedPreferences
import androidx.preference.PreferenceManager
import dagger.hilt.android.qualifiers.ApplicationContext
import gq.kirmanak.mealie.data.auth.AuthStorage
import gq.kirmanak.mealient.data.auth.AuthStorage
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.channels.awaitClose

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.auth.impl
package gq.kirmanak.mealient.data.auth.impl
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

View File

@@ -1,7 +1,7 @@
package gq.kirmanak.mealie.data.impl
package gq.kirmanak.mealient.data.impl
import gq.kirmanak.mealie.BuildConfig
import gq.kirmanak.mealie.data.auth.impl.AuthOkHttpInterceptor
import gq.kirmanak.mealient.BuildConfig
import gq.kirmanak.mealient.data.auth.impl.AuthOkHttpInterceptor
import okhttp3.Interceptor
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.impl
package gq.kirmanak.mealient.data.impl
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
import kotlinx.serialization.ExperimentalSerializationApi

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.impl
package gq.kirmanak.mealient.data.impl
import androidx.room.TypeConverter
import kotlinx.datetime.*

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes
package gq.kirmanak.mealient.data.recipes
import android.widget.ImageView

View File

@@ -1,16 +1,16 @@
package gq.kirmanak.mealie.data.recipes
package gq.kirmanak.mealient.data.recipes
import androidx.paging.ExperimentalPagingApi
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import gq.kirmanak.mealie.data.recipes.db.RecipeStorage
import gq.kirmanak.mealie.data.recipes.db.RecipeStorageImpl
import gq.kirmanak.mealie.data.recipes.impl.RecipeImageLoaderImpl
import gq.kirmanak.mealie.data.recipes.impl.RecipeRepoImpl
import gq.kirmanak.mealie.data.recipes.network.RecipeDataSource
import gq.kirmanak.mealie.data.recipes.network.RecipeDataSourceImpl
import gq.kirmanak.mealient.data.recipes.db.RecipeStorage
import gq.kirmanak.mealient.data.recipes.db.RecipeStorageImpl
import gq.kirmanak.mealient.data.recipes.impl.RecipeImageLoaderImpl
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 kotlinx.serialization.ExperimentalSerializationApi
@ExperimentalPagingApi

View File

@@ -1,8 +1,8 @@
package gq.kirmanak.mealie.data.recipes
package gq.kirmanak.mealient.data.recipes
import androidx.paging.Pager
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealie.data.recipes.impl.FullRecipeInfo
import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealient.data.recipes.impl.FullRecipeInfo
interface RecipeRepo {
fun createPager(): Pager<Int, RecipeSummaryEntity>

View File

@@ -1,9 +1,9 @@
package gq.kirmanak.mealie.data.recipes.db
package gq.kirmanak.mealient.data.recipes.db
import androidx.paging.PagingSource
import androidx.room.*
import gq.kirmanak.mealie.data.recipes.db.entity.*
import gq.kirmanak.mealie.data.recipes.impl.FullRecipeInfo
import gq.kirmanak.mealient.data.recipes.db.entity.*
import gq.kirmanak.mealient.data.recipes.impl.FullRecipeInfo
@Dao
interface RecipeDao {

View File

@@ -1,10 +1,10 @@
package gq.kirmanak.mealie.data.recipes.db
package gq.kirmanak.mealient.data.recipes.db
import androidx.paging.PagingSource
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealie.data.recipes.impl.FullRecipeInfo
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeResponse
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeSummaryResponse
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
interface RecipeStorage {
suspend fun saveRecipes(recipes: List<GetRecipeSummaryResponse>)

View File

@@ -1,19 +1,19 @@
package gq.kirmanak.mealie.data.recipes.db
package gq.kirmanak.mealient.data.recipes.db
import androidx.paging.PagingSource
import androidx.room.withTransaction
import gq.kirmanak.mealie.data.MealieDb
import gq.kirmanak.mealie.data.recipes.db.entity.*
import gq.kirmanak.mealie.data.recipes.impl.FullRecipeInfo
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeIngredientResponse
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeInstructionResponse
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeResponse
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeSummaryResponse
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.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 timber.log.Timber
import javax.inject.Inject
class RecipeStorageImpl @Inject constructor(
private val db: MealieDb
private val db: AppDb
) : RecipeStorage {
private val recipeDao: RecipeDao by lazy { db.recipeDao() }

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.db.entity
package gq.kirmanak.mealient.data.recipes.db.entity
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.db.entity
package gq.kirmanak.mealient.data.recipes.db.entity
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.db.entity
package gq.kirmanak.mealient.data.recipes.db.entity
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.db.entity
package gq.kirmanak.mealient.data.recipes.db.entity
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.db.entity
package gq.kirmanak.mealient.data.recipes.db.entity
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.db.entity
package gq.kirmanak.mealient.data.recipes.db.entity
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.db.entity
package gq.kirmanak.mealient.data.recipes.db.entity
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.db.entity
package gq.kirmanak.mealient.data.recipes.db.entity
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@@ -1,11 +1,11 @@
package gq.kirmanak.mealie.data.recipes.impl
package gq.kirmanak.mealient.data.recipes.impl
import androidx.room.Embedded
import androidx.room.Relation
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeEntity
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeIngredientEntity
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeInstructionEntity
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity
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,10 +1,10 @@
package gq.kirmanak.mealie.data.recipes.impl
package gq.kirmanak.mealient.data.recipes.impl
import android.widget.ImageView
import gq.kirmanak.mealie.R
import gq.kirmanak.mealie.data.auth.AuthRepo
import gq.kirmanak.mealie.data.recipes.RecipeImageLoader
import gq.kirmanak.mealie.ui.ImageLoader
import gq.kirmanak.mealient.R
import gq.kirmanak.mealient.data.auth.AuthRepo
import gq.kirmanak.mealient.data.recipes.RecipeImageLoader
import gq.kirmanak.mealient.ui.ImageLoader
import javax.inject.Inject
class RecipeImageLoaderImpl @Inject constructor(

View File

@@ -1,8 +1,8 @@
package gq.kirmanak.mealie.data.recipes.impl
package gq.kirmanak.mealient.data.recipes.impl
import androidx.paging.PagingSource
import gq.kirmanak.mealie.data.recipes.db.RecipeStorage
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealient.data.recipes.db.RecipeStorage
import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity
import timber.log.Timber
import javax.inject.Inject
import javax.inject.Singleton

View File

@@ -1,12 +1,12 @@
package gq.kirmanak.mealie.data.recipes.impl
package gq.kirmanak.mealient.data.recipes.impl
import androidx.paging.ExperimentalPagingApi
import androidx.paging.Pager
import androidx.paging.PagingConfig
import gq.kirmanak.mealie.data.recipes.RecipeRepo
import gq.kirmanak.mealie.data.recipes.db.RecipeStorage
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealie.data.recipes.network.RecipeDataSource
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 kotlinx.coroutines.CancellationException
import timber.log.Timber
import javax.inject.Inject

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.impl
package gq.kirmanak.mealient.data.recipes.impl
import androidx.annotation.VisibleForTesting
import androidx.paging.ExperimentalPagingApi
@@ -7,9 +7,9 @@ import androidx.paging.LoadType.PREPEND
import androidx.paging.LoadType.REFRESH
import androidx.paging.PagingState
import androidx.paging.RemoteMediator
import gq.kirmanak.mealie.data.recipes.db.RecipeStorage
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealie.data.recipes.network.RecipeDataSource
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 kotlinx.coroutines.CancellationException
import timber.log.Timber
import javax.inject.Inject

View File

@@ -0,0 +1,10 @@
package gq.kirmanak.mealient.data.recipes.network
import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeResponse
import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeSummaryResponse
interface RecipeDataSource {
suspend fun requestRecipes(start: Int = 0, limit: Int = 9999): List<GetRecipeSummaryResponse>
suspend fun requestRecipeInfo(slug: String): GetRecipeResponse
}

View File

@@ -1,9 +1,9 @@
package gq.kirmanak.mealie.data.recipes.network
package gq.kirmanak.mealient.data.recipes.network
import gq.kirmanak.mealie.data.auth.AuthRepo
import gq.kirmanak.mealie.data.impl.RetrofitBuilder
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeResponse
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeSummaryResponse
import gq.kirmanak.mealient.data.auth.AuthRepo
import gq.kirmanak.mealient.data.impl.RetrofitBuilder
import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeResponse
import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeSummaryResponse
import kotlinx.serialization.ExperimentalSerializationApi
import timber.log.Timber
import javax.inject.Inject

View File

@@ -1,7 +1,7 @@
package gq.kirmanak.mealie.data.recipes.network
package gq.kirmanak.mealient.data.recipes.network
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeResponse
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeSummaryResponse
import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeResponse
import gq.kirmanak.mealient.data.recipes.network.response.GetRecipeSummaryResponse
import retrofit2.http.GET
import retrofit2.http.Path
import retrofit2.http.Query

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.network.response
package gq.kirmanak.mealient.data.recipes.network.response
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.network.response
package gq.kirmanak.mealient.data.recipes.network.response
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.network.response
package gq.kirmanak.mealient.data.recipes.network.response
import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.recipes.network.response
package gq.kirmanak.mealient.data.recipes.network.response
import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.ui
package gq.kirmanak.mealient.ui
import android.widget.ImageView
import androidx.annotation.DrawableRes

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.ui
package gq.kirmanak.mealient.ui
import androidx.paging.PagingDataAdapter
import androidx.recyclerview.widget.RecyclerView

View File

@@ -1,10 +1,10 @@
package gq.kirmanak.mealie.ui
package gq.kirmanak.mealient.ui
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import gq.kirmanak.mealie.ui.glide.ImageLoaderGlide
import gq.kirmanak.mealient.ui.glide.ImageLoaderGlide
@Module
@InstallIn(SingletonComponent::class)

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.ui.auth
package gq.kirmanak.mealient.ui.auth
import android.os.Bundle
import android.view.LayoutInflater
@@ -11,7 +11,7 @@ import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
import com.google.android.material.textfield.TextInputLayout
import dagger.hilt.android.AndroidEntryPoint
import gq.kirmanak.mealie.databinding.FragmentAuthenticationBinding
import gq.kirmanak.mealient.databinding.FragmentAuthenticationBinding
import kotlinx.coroutines.flow.collectLatest
import timber.log.Timber

View File

@@ -1,10 +1,10 @@
package gq.kirmanak.mealie.ui.auth
package gq.kirmanak.mealient.ui.auth
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel
import gq.kirmanak.mealie.data.auth.AuthRepo
import gq.kirmanak.mealie.data.recipes.RecipeRepo
import gq.kirmanak.mealient.data.auth.AuthRepo
import gq.kirmanak.mealient.data.recipes.RecipeRepo
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.launch
import timber.log.Timber

View File

@@ -1,8 +1,8 @@
package gq.kirmanak.mealie.ui.glide
package gq.kirmanak.mealient.ui.glide
import android.widget.ImageView
import androidx.annotation.DrawableRes
import gq.kirmanak.mealie.ui.ImageLoader
import gq.kirmanak.mealient.ui.ImageLoader
import javax.inject.Inject
class ImageLoaderGlide @Inject constructor() : ImageLoader {

View File

@@ -1,7 +1,7 @@
package gq.kirmanak.mealie.ui.glide
package gq.kirmanak.mealient.ui.glide
import com.bumptech.glide.annotation.GlideModule
import com.bumptech.glide.module.AppGlideModule
@GlideModule
class MealieGlideModule : AppGlideModule()
class MainGlideModule : AppGlideModule()

View File

@@ -1,9 +1,9 @@
package gq.kirmanak.mealie.ui.recipes
package gq.kirmanak.mealient.ui.recipes
import androidx.recyclerview.widget.RecyclerView
import gq.kirmanak.mealie.R
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealie.databinding.ViewHolderRecipeBinding
import gq.kirmanak.mealient.R
import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealient.databinding.ViewHolderRecipeBinding
class RecipeViewHolder(
private val binding: ViewHolderRecipeBinding,

View File

@@ -1,12 +1,12 @@
package gq.kirmanak.mealie.ui.recipes
package gq.kirmanak.mealient.ui.recipes
import android.widget.ImageView
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel
import gq.kirmanak.mealie.data.recipes.RecipeImageLoader
import gq.kirmanak.mealie.data.recipes.RecipeRepo
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealient.data.recipes.RecipeImageLoader
import gq.kirmanak.mealient.data.recipes.RecipeRepo
import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity
import kotlinx.coroutines.launch
import javax.inject.Inject

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.ui.recipes
package gq.kirmanak.mealient.ui.recipes
import android.os.Bundle
import android.view.LayoutInflater
@@ -10,10 +10,10 @@ import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.LinearLayoutManager
import dagger.hilt.android.AndroidEntryPoint
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealie.databinding.FragmentRecipesBinding
import gq.kirmanak.mealie.ui.SwipeRefreshLayoutHelper.listenToRefreshRequests
import gq.kirmanak.mealie.ui.auth.AuthenticationViewModel
import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealient.databinding.FragmentRecipesBinding
import gq.kirmanak.mealient.ui.SwipeRefreshLayoutHelper.listenToRefreshRequests
import gq.kirmanak.mealient.ui.auth.AuthenticationViewModel
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.collectLatest

View File

@@ -1,11 +1,11 @@
package gq.kirmanak.mealie.ui.recipes
package gq.kirmanak.mealient.ui.recipes
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.paging.PagingDataAdapter
import androidx.recyclerview.widget.DiffUtil
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealie.databinding.ViewHolderRecipeBinding
import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealient.databinding.ViewHolderRecipeBinding
import timber.log.Timber
class RecipesPagingAdapter(

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.ui.recipes.info
package gq.kirmanak.mealient.ui.recipes.info
import android.os.Bundle
import android.view.LayoutInflater
@@ -11,8 +11,8 @@ import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
import androidx.recyclerview.widget.LinearLayoutManager
import dagger.hilt.android.AndroidEntryPoint
import gq.kirmanak.mealie.databinding.FragmentRecipeInfoBinding
import gq.kirmanak.mealie.ui.auth.AuthenticationViewModel
import gq.kirmanak.mealient.databinding.FragmentRecipeInfoBinding
import gq.kirmanak.mealient.ui.auth.AuthenticationViewModel
import kotlinx.coroutines.flow.collectLatest
import timber.log.Timber

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.ui.recipes.info
package gq.kirmanak.mealient.ui.recipes.info
import android.widget.ImageView
import androidx.lifecycle.LiveData
@@ -6,9 +6,9 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel
import gq.kirmanak.mealie.data.recipes.RecipeImageLoader
import gq.kirmanak.mealie.data.recipes.RecipeRepo
import gq.kirmanak.mealie.data.recipes.impl.FullRecipeInfo
import gq.kirmanak.mealient.data.recipes.RecipeImageLoader
import gq.kirmanak.mealient.data.recipes.RecipeRepo
import gq.kirmanak.mealient.data.recipes.impl.FullRecipeInfo
import kotlinx.coroutines.launch
import timber.log.Timber
import javax.inject.Inject

View File

@@ -1,13 +1,13 @@
package gq.kirmanak.mealie.ui.recipes.info
package gq.kirmanak.mealient.ui.recipes.info
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeIngredientEntity
import gq.kirmanak.mealie.databinding.ViewHolderIngredientBinding
import gq.kirmanak.mealie.ui.recipes.info.RecipeIngredientsAdapter.RecipeIngredientViewHolder
import gq.kirmanak.mealient.data.recipes.db.entity.RecipeIngredientEntity
import gq.kirmanak.mealient.databinding.ViewHolderIngredientBinding
import gq.kirmanak.mealient.ui.recipes.info.RecipeIngredientsAdapter.RecipeIngredientViewHolder
class RecipeIngredientsAdapter() :
ListAdapter<RecipeIngredientEntity, RecipeIngredientViewHolder>(RecipeIngredientDiffCallback) {

View File

@@ -1,12 +1,12 @@
package gq.kirmanak.mealie.ui.recipes.info
package gq.kirmanak.mealient.ui.recipes.info
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeInstructionEntity
import gq.kirmanak.mealie.databinding.ViewHolderInstructionBinding
import gq.kirmanak.mealient.data.recipes.db.entity.RecipeInstructionEntity
import gq.kirmanak.mealient.databinding.ViewHolderInstructionBinding
class RecipeInstructionsAdapter :
ListAdapter<RecipeInstructionEntity, RecipeInstructionsAdapter.RecipeInstructionViewHolder>(

View File

@@ -7,8 +7,8 @@
<fragment
android:id="@+id/authenticationFragment"
android:name="gq.kirmanak.mealie.ui.auth.AuthenticationFragment"
android:label="AuthenticationFragment" >
android:name="gq.kirmanak.mealient.ui.auth.AuthenticationFragment"
android:label="AuthenticationFragment">
<action
android:id="@+id/action_authenticationFragment_to_recipesFragment"
app:destination="@id/recipesFragment"
@@ -17,7 +17,7 @@
</fragment>
<fragment
android:id="@+id/recipesFragment"
android:name="gq.kirmanak.mealie.ui.recipes.RecipesFragment"
android:name="gq.kirmanak.mealient.ui.recipes.RecipesFragment"
android:label="fragment_recipes"
tools:layout="@layout/fragment_recipes">
<action
@@ -31,7 +31,7 @@
</fragment>
<fragment
android:id="@+id/recipeInfoFragment"
android:name="gq.kirmanak.mealie.ui.recipes.info.RecipeInfoFragment"
android:name="gq.kirmanak.mealient.ui.recipes.info.RecipeInfoFragment"
android:label="RecipeInfoFragment">
<action
android:id="@+id/action_recipeInfoFragment_to_authenticationFragment"

View File

@@ -1,6 +1,6 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.Mealie" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<style name="Theme.Mealient" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_200</item>
<item name="colorPrimaryVariant">@color/purple_700</item>

View File

@@ -1,5 +1,5 @@
<resources>
<string name="app_name">Mealie</string>
<string name="app_name">Mealient</string>
<string name="fragment_authentication_input_hint_email">E-mail</string>
<string name="fragment_authentication_input_hint_password">Password</string>
<string name="fragment_authentication_input_hint_url">Url</string>

View File

@@ -1,6 +1,6 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.Mealie" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<style name="Theme.Mealient" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item>

View File

@@ -1,14 +1,14 @@
package gq.kirmanak.mealie.data.auth.impl
package gq.kirmanak.mealient.data.auth.impl
import com.google.common.truth.Truth.assertThat
import dagger.hilt.android.testing.HiltAndroidTest
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_PASSWORD
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_TOKEN
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_USERNAME
import gq.kirmanak.mealie.data.test.AuthImplTestData.body
import gq.kirmanak.mealie.data.test.AuthImplTestData.enqueueSuccessfulAuthResponse
import gq.kirmanak.mealie.data.test.AuthImplTestData.enqueueUnsuccessfulAuthResponse
import gq.kirmanak.mealie.data.test.MockServerTest
import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_PASSWORD
import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_TOKEN
import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_USERNAME
import gq.kirmanak.mealient.data.test.AuthImplTestData.body
import gq.kirmanak.mealient.data.test.AuthImplTestData.enqueueSuccessfulAuthResponse
import gq.kirmanak.mealient.data.test.AuthImplTestData.enqueueUnsuccessfulAuthResponse
import gq.kirmanak.mealient.data.test.MockServerTest
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.runBlocking
import kotlinx.serialization.ExperimentalSerializationApi

View File

@@ -1,13 +1,13 @@
package gq.kirmanak.mealie.data.auth.impl
package gq.kirmanak.mealient.data.auth.impl
import com.google.common.truth.Truth.assertThat
import dagger.hilt.android.testing.HiltAndroidTest
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_PASSWORD
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_TOKEN
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_USERNAME
import gq.kirmanak.mealie.data.test.AuthImplTestData.enqueueSuccessfulAuthResponse
import gq.kirmanak.mealie.data.test.AuthImplTestData.enqueueUnsuccessfulAuthResponse
import gq.kirmanak.mealie.data.test.MockServerTest
import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_PASSWORD
import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_TOKEN
import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_USERNAME
import gq.kirmanak.mealient.data.test.AuthImplTestData.enqueueSuccessfulAuthResponse
import gq.kirmanak.mealient.data.test.AuthImplTestData.enqueueUnsuccessfulAuthResponse
import gq.kirmanak.mealient.data.test.MockServerTest
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.runBlocking
import org.junit.Test

View File

@@ -1,10 +1,10 @@
package gq.kirmanak.mealie.data.auth.impl
package gq.kirmanak.mealient.data.auth.impl
import com.google.common.truth.Truth.assertThat
import dagger.hilt.android.testing.HiltAndroidTest
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_TOKEN
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_URL
import gq.kirmanak.mealie.data.test.HiltRobolectricTest
import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_TOKEN
import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_URL
import gq.kirmanak.mealient.data.test.HiltRobolectricTest
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.runBlocking

View File

@@ -1,10 +1,10 @@
package gq.kirmanak.mealie.data.impl
package gq.kirmanak.mealient.data.impl
import com.google.common.truth.Truth.assertThat
import dagger.hilt.android.testing.HiltAndroidTest
import gq.kirmanak.mealie.data.auth.impl.AUTHORIZATION_HEADER
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_TOKEN
import gq.kirmanak.mealie.data.test.MockServerTest
import gq.kirmanak.mealient.data.auth.impl.AUTHORIZATION_HEADER
import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_TOKEN
import gq.kirmanak.mealient.data.test.MockServerTest
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.mockwebserver.MockResponse

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.impl
package gq.kirmanak.mealient.data.impl
import com.google.common.truth.Truth.assertThat
import kotlinx.datetime.LocalDate

View File

@@ -1,26 +1,26 @@
package gq.kirmanak.mealie.data.recipes.db
package gq.kirmanak.mealient.data.recipes.db
import com.google.common.truth.Truth.assertThat
import dagger.hilt.android.testing.HiltAndroidTest
import gq.kirmanak.mealie.data.MealieDb
import gq.kirmanak.mealie.data.recipes.db.entity.CategoryEntity
import gq.kirmanak.mealie.data.recipes.db.entity.CategoryRecipeEntity
import gq.kirmanak.mealie.data.recipes.db.entity.TagEntity
import gq.kirmanak.mealie.data.recipes.db.entity.TagRecipeEntity
import gq.kirmanak.mealie.data.test.HiltRobolectricTest
import gq.kirmanak.mealie.data.test.RecipeImplTestData.BREAD_INGREDIENT
import gq.kirmanak.mealie.data.test.RecipeImplTestData.CAKE_BREAD_RECIPE_INGREDIENT_ENTITY
import gq.kirmanak.mealie.data.test.RecipeImplTestData.CAKE_RECIPE_SUMMARY_ENTITY
import gq.kirmanak.mealie.data.test.RecipeImplTestData.FULL_CAKE_INFO_ENTITY
import gq.kirmanak.mealie.data.test.RecipeImplTestData.FULL_PORRIDGE_INFO_ENTITY
import gq.kirmanak.mealie.data.test.RecipeImplTestData.GET_CAKE_RESPONSE
import gq.kirmanak.mealie.data.test.RecipeImplTestData.GET_PORRIDGE_RESPONSE
import gq.kirmanak.mealie.data.test.RecipeImplTestData.MIX_CAKE_RECIPE_INSTRUCTION_ENTITY
import gq.kirmanak.mealie.data.test.RecipeImplTestData.MIX_INSTRUCTION
import gq.kirmanak.mealie.data.test.RecipeImplTestData.PORRIDGE_RECIPE_SUMMARY_ENTITY
import gq.kirmanak.mealie.data.test.RecipeImplTestData.RECIPE_SUMMARY_CAKE
import gq.kirmanak.mealie.data.test.RecipeImplTestData.RECIPE_SUMMARY_PORRIDGE
import gq.kirmanak.mealie.data.test.RecipeImplTestData.TEST_RECIPE_SUMMARIES
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.data.test.HiltRobolectricTest
import gq.kirmanak.mealient.data.test.RecipeImplTestData.BREAD_INGREDIENT
import gq.kirmanak.mealient.data.test.RecipeImplTestData.CAKE_BREAD_RECIPE_INGREDIENT_ENTITY
import gq.kirmanak.mealient.data.test.RecipeImplTestData.CAKE_RECIPE_SUMMARY_ENTITY
import gq.kirmanak.mealient.data.test.RecipeImplTestData.FULL_CAKE_INFO_ENTITY
import gq.kirmanak.mealient.data.test.RecipeImplTestData.FULL_PORRIDGE_INFO_ENTITY
import gq.kirmanak.mealient.data.test.RecipeImplTestData.GET_CAKE_RESPONSE
import gq.kirmanak.mealient.data.test.RecipeImplTestData.GET_PORRIDGE_RESPONSE
import gq.kirmanak.mealient.data.test.RecipeImplTestData.MIX_CAKE_RECIPE_INSTRUCTION_ENTITY
import gq.kirmanak.mealient.data.test.RecipeImplTestData.MIX_INSTRUCTION
import gq.kirmanak.mealient.data.test.RecipeImplTestData.PORRIDGE_RECIPE_SUMMARY_ENTITY
import gq.kirmanak.mealient.data.test.RecipeImplTestData.RECIPE_SUMMARY_CAKE
import gq.kirmanak.mealient.data.test.RecipeImplTestData.RECIPE_SUMMARY_PORRIDGE
import gq.kirmanak.mealient.data.test.RecipeImplTestData.TEST_RECIPE_SUMMARIES
import kotlinx.coroutines.runBlocking
import org.junit.Test
import javax.inject.Inject
@@ -32,12 +32,12 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
lateinit var subject: RecipeStorageImpl
@Inject
lateinit var mealieDb: MealieDb
lateinit var appDb: AppDb
@Test
fun `when saveRecipes then saves tags`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES)
val actualTags = mealieDb.recipeDao().queryAllTags()
val actualTags = appDb.recipeDao().queryAllTags()
assertThat(actualTags).containsExactly(
TagEntity(localId = 1, name = "gluten"),
TagEntity(localId = 2, name = "allergic"),
@@ -48,7 +48,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
@Test
fun `when saveRecipes then saves categories`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES)
val actual = mealieDb.recipeDao().queryAllCategories()
val actual = appDb.recipeDao().queryAllCategories()
assertThat(actual).containsExactly(
CategoryEntity(localId = 1, name = "dessert"),
CategoryEntity(localId = 2, name = "tasty"),
@@ -59,7 +59,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
@Test
fun `when saveRecipes then saves recipes`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES)
val actualTags = mealieDb.recipeDao().queryAllRecipes()
val actualTags = appDb.recipeDao().queryAllRecipes()
assertThat(actualTags).containsExactly(
CAKE_RECIPE_SUMMARY_ENTITY,
PORRIDGE_RECIPE_SUMMARY_ENTITY
@@ -69,7 +69,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
@Test
fun `when saveRecipes then saves category recipes`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES)
val actual = mealieDb.recipeDao().queryAllCategoryRecipes()
val actual = appDb.recipeDao().queryAllCategoryRecipes()
assertThat(actual).containsExactly(
CategoryRecipeEntity(categoryId = 1, recipeId = 1),
CategoryRecipeEntity(categoryId = 2, recipeId = 1),
@@ -81,7 +81,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
@Test
fun `when saveRecipes then saves tag recipes`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES)
val actual = mealieDb.recipeDao().queryAllTagRecipes()
val actual = appDb.recipeDao().queryAllTagRecipes()
assertThat(actual).containsExactly(
TagRecipeEntity(tagId = 1, recipeId = 1),
TagRecipeEntity(tagId = 2, recipeId = 1),
@@ -94,7 +94,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
fun `when refreshAll then old recipes aren't preserved`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES)
subject.refreshAll(listOf(RECIPE_SUMMARY_CAKE))
val actual = mealieDb.recipeDao().queryAllRecipes()
val actual = appDb.recipeDao().queryAllRecipes()
assertThat(actual).containsExactly(CAKE_RECIPE_SUMMARY_ENTITY)
}
@@ -102,7 +102,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
fun `when refreshAll then old category recipes aren't preserved`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES)
subject.refreshAll(listOf(RECIPE_SUMMARY_CAKE))
val actual = mealieDb.recipeDao().queryAllCategoryRecipes()
val actual = appDb.recipeDao().queryAllCategoryRecipes()
assertThat(actual).containsExactly(
CategoryRecipeEntity(categoryId = 1, recipeId = 1),
CategoryRecipeEntity(categoryId = 2, recipeId = 1),
@@ -113,7 +113,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
fun `when refreshAll then old tag recipes aren't preserved`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES)
subject.refreshAll(listOf(RECIPE_SUMMARY_CAKE))
val actual = mealieDb.recipeDao().queryAllTagRecipes()
val actual = appDb.recipeDao().queryAllTagRecipes()
assertThat(actual).containsExactly(
TagRecipeEntity(tagId = 1, recipeId = 1),
TagRecipeEntity(tagId = 2, recipeId = 1),
@@ -124,7 +124,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
fun `when clearAllLocalData then recipes aren't preserved`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES)
subject.clearAllLocalData()
val actual = mealieDb.recipeDao().queryAllRecipes()
val actual = appDb.recipeDao().queryAllRecipes()
assertThat(actual).isEmpty()
}
@@ -132,7 +132,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
fun `when clearAllLocalData then categories aren't preserved`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES)
subject.clearAllLocalData()
val actual = mealieDb.recipeDao().queryAllCategories()
val actual = appDb.recipeDao().queryAllCategories()
assertThat(actual).isEmpty()
}
@@ -140,7 +140,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
fun `when clearAllLocalData then tags aren't preserved`(): Unit = runBlocking {
subject.saveRecipes(TEST_RECIPE_SUMMARIES)
subject.clearAllLocalData()
val actual = mealieDb.recipeDao().queryAllTags()
val actual = appDb.recipeDao().queryAllTags()
assertThat(actual).isEmpty()
}
@@ -148,7 +148,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
fun `when saveRecipeInfo then saves recipe info`(): Unit = runBlocking {
subject.saveRecipes(listOf(RECIPE_SUMMARY_CAKE))
subject.saveRecipeInfo(GET_CAKE_RESPONSE)
val actual = mealieDb.recipeDao().queryFullRecipeInfo(1)
val actual = appDb.recipeDao().queryFullRecipeInfo(1)
assertThat(actual).isEqualTo(FULL_CAKE_INFO_ENTITY)
}
@@ -157,7 +157,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
subject.saveRecipes(listOf(RECIPE_SUMMARY_CAKE, RECIPE_SUMMARY_PORRIDGE))
subject.saveRecipeInfo(GET_CAKE_RESPONSE)
subject.saveRecipeInfo(GET_PORRIDGE_RESPONSE)
val actual = mealieDb.recipeDao().queryFullRecipeInfo(2)
val actual = appDb.recipeDao().queryFullRecipeInfo(2)
assertThat(actual).isEqualTo(FULL_PORRIDGE_INFO_ENTITY)
}
@@ -167,7 +167,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
subject.saveRecipeInfo(GET_CAKE_RESPONSE)
val newRecipe = GET_CAKE_RESPONSE.copy(recipeIngredients = listOf(BREAD_INGREDIENT))
subject.saveRecipeInfo(newRecipe)
val actual = mealieDb.recipeDao().queryFullRecipeInfo(1)?.recipeIngredients
val actual = appDb.recipeDao().queryFullRecipeInfo(1)?.recipeIngredients
val expected = listOf(CAKE_BREAD_RECIPE_INGREDIENT_ENTITY.copy(localId = 3))
assertThat(actual).isEqualTo(expected)
}
@@ -178,7 +178,7 @@ class RecipeStorageImplTest : HiltRobolectricTest() {
subject.saveRecipeInfo(GET_CAKE_RESPONSE)
val newRecipe = GET_CAKE_RESPONSE.copy(recipeInstructions = listOf(MIX_INSTRUCTION))
subject.saveRecipeInfo(newRecipe)
val actual = mealieDb.recipeDao().queryFullRecipeInfo(1)?.recipeInstructions
val actual = appDb.recipeDao().queryFullRecipeInfo(1)?.recipeInstructions
val expected = listOf(MIX_CAKE_RECIPE_INSTRUCTION_ENTITY.copy(localId = 3))
assertThat(actual).isEqualTo(expected)
}

View File

@@ -1,15 +1,15 @@
package gq.kirmanak.mealie.data.recipes.impl
package gq.kirmanak.mealient.data.recipes.impl
import com.google.common.truth.Truth.assertThat
import dagger.hilt.android.testing.HiltAndroidTest
import gq.kirmanak.mealie.data.MealieDb
import gq.kirmanak.mealie.data.recipes.RecipeRepo
import gq.kirmanak.mealie.data.recipes.db.RecipeStorage
import gq.kirmanak.mealie.data.test.MockServerWithAuthTest
import gq.kirmanak.mealie.data.test.RecipeImplTestData.FULL_CAKE_INFO_ENTITY
import gq.kirmanak.mealie.data.test.RecipeImplTestData.RECIPE_SUMMARY_CAKE
import gq.kirmanak.mealie.data.test.RecipeImplTestData.enqueueSuccessfulGetRecipe
import gq.kirmanak.mealie.data.test.RecipeImplTestData.enqueueUnsuccessfulRecipeResponse
import gq.kirmanak.mealient.data.AppDb
import gq.kirmanak.mealient.data.recipes.RecipeRepo
import gq.kirmanak.mealient.data.recipes.db.RecipeStorage
import gq.kirmanak.mealient.data.test.MockServerWithAuthTest
import gq.kirmanak.mealient.data.test.RecipeImplTestData.FULL_CAKE_INFO_ENTITY
import gq.kirmanak.mealient.data.test.RecipeImplTestData.RECIPE_SUMMARY_CAKE
import gq.kirmanak.mealient.data.test.RecipeImplTestData.enqueueSuccessfulGetRecipe
import gq.kirmanak.mealient.data.test.RecipeImplTestData.enqueueUnsuccessfulRecipeResponse
import kotlinx.coroutines.runBlocking
import org.junit.Test
import javax.inject.Inject
@@ -23,7 +23,7 @@ class RecipeRepoImplTest : MockServerWithAuthTest() {
lateinit var storage: RecipeStorage
@Inject
lateinit var mealieDb: MealieDb
lateinit var appDb: AppDb
@Test
fun `when loadRecipeInfo then loads recipe`(): Unit = runBlocking {
@@ -38,7 +38,7 @@ class RecipeRepoImplTest : MockServerWithAuthTest() {
storage.saveRecipes(listOf(RECIPE_SUMMARY_CAKE))
mockServer.enqueueSuccessfulGetRecipe()
subject.loadRecipeInfo(1, "cake")
val actual = mealieDb.recipeDao().queryFullRecipeInfo(1)
val actual = appDb.recipeDao().queryFullRecipeInfo(1)
assertThat(actual).isEqualTo(FULL_CAKE_INFO_ENTITY)
}

View File

@@ -1,17 +1,17 @@
package gq.kirmanak.mealie.data.recipes.impl
package gq.kirmanak.mealient.data.recipes.impl
import androidx.paging.*
import androidx.paging.LoadType.*
import com.google.common.truth.Truth.assertThat
import dagger.hilt.android.testing.HiltAndroidTest
import gq.kirmanak.mealie.data.MealieDb
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealie.data.test.MockServerWithAuthTest
import gq.kirmanak.mealie.data.test.RecipeImplTestData.CAKE_RECIPE_SUMMARY_ENTITY
import gq.kirmanak.mealie.data.test.RecipeImplTestData.PORRIDGE_RECIPE_SUMMARY_ENTITY
import gq.kirmanak.mealie.data.test.RecipeImplTestData.TEST_RECIPE_ENTITIES
import gq.kirmanak.mealie.data.test.RecipeImplTestData.enqueueSuccessfulRecipeSummaryResponse
import gq.kirmanak.mealie.data.test.RecipeImplTestData.enqueueUnsuccessfulRecipeResponse
import gq.kirmanak.mealient.data.AppDb
import gq.kirmanak.mealient.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealient.data.test.MockServerWithAuthTest
import gq.kirmanak.mealient.data.test.RecipeImplTestData.CAKE_RECIPE_SUMMARY_ENTITY
import gq.kirmanak.mealient.data.test.RecipeImplTestData.PORRIDGE_RECIPE_SUMMARY_ENTITY
import gq.kirmanak.mealient.data.test.RecipeImplTestData.TEST_RECIPE_ENTITIES
import gq.kirmanak.mealient.data.test.RecipeImplTestData.enqueueSuccessfulRecipeSummaryResponse
import gq.kirmanak.mealient.data.test.RecipeImplTestData.enqueueUnsuccessfulRecipeResponse
import kotlinx.coroutines.runBlocking
import org.junit.Test
import javax.inject.Inject
@@ -29,7 +29,7 @@ class RecipesRemoteMediatorTest : MockServerWithAuthTest() {
lateinit var subject: RecipesRemoteMediator
@Inject
lateinit var mealieDb: MealieDb
lateinit var appDb: AppDb
@Test
fun `when first load with refresh successful then result success`(): Unit = runBlocking {
@@ -42,7 +42,7 @@ class RecipesRemoteMediatorTest : MockServerWithAuthTest() {
fun `when first load with refresh successful then recipes stored`(): Unit = runBlocking {
mockServer.enqueueSuccessfulRecipeSummaryResponse()
subject.load(REFRESH, pagingState())
val actual = mealieDb.recipeDao().queryAllRecipes()
val actual = appDb.recipeDao().queryAllRecipes()
assertThat(actual).containsExactly(
CAKE_RECIPE_SUMMARY_ENTITY,
PORRIDGE_RECIPE_SUMMARY_ENTITY
@@ -110,7 +110,7 @@ class RecipesRemoteMediatorTest : MockServerWithAuthTest() {
mockServer.takeRequest()
mockServer.enqueueUnsuccessfulRecipeResponse()
subject.load(APPEND, pagingState())
val actual = mealieDb.recipeDao().queryAllRecipes()
val actual = appDb.recipeDao().queryAllRecipes()
assertThat(actual).isEqualTo(TEST_RECIPE_ENTITIES)
}

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.test
package gq.kirmanak.mealient.data.test
import okhttp3.mockwebserver.MockResponse
import okhttp3.mockwebserver.MockWebServer

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.test
package gq.kirmanak.mealient.data.test
import androidx.test.ext.junit.runners.AndroidJUnit4
import dagger.hilt.android.testing.HiltAndroidRule

View File

@@ -1,4 +1,4 @@
package gq.kirmanak.mealie.data.test
package gq.kirmanak.mealient.data.test
import okhttp3.mockwebserver.MockWebServer
import org.junit.After

View File

@@ -1,9 +1,9 @@
package gq.kirmanak.mealie.data.test
package gq.kirmanak.mealient.data.test
import gq.kirmanak.mealie.data.auth.AuthRepo
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_PASSWORD
import gq.kirmanak.mealie.data.test.AuthImplTestData.TEST_USERNAME
import gq.kirmanak.mealie.data.test.AuthImplTestData.enqueueSuccessfulAuthResponse
import gq.kirmanak.mealient.data.auth.AuthRepo
import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_PASSWORD
import gq.kirmanak.mealient.data.test.AuthImplTestData.TEST_USERNAME
import gq.kirmanak.mealient.data.test.AuthImplTestData.enqueueSuccessfulAuthResponse
import kotlinx.coroutines.runBlocking
import org.junit.Before
import javax.inject.Inject

View File

@@ -1,14 +1,14 @@
package gq.kirmanak.mealie.data.test
package gq.kirmanak.mealient.data.test
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeEntity
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeIngredientEntity
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeInstructionEntity
import gq.kirmanak.mealie.data.recipes.db.entity.RecipeSummaryEntity
import gq.kirmanak.mealie.data.recipes.impl.FullRecipeInfo
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeIngredientResponse
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeInstructionResponse
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeResponse
import gq.kirmanak.mealie.data.recipes.network.response.GetRecipeSummaryResponse
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 kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime
import okhttp3.mockwebserver.MockResponse

View File

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