Skip to content

Commit 57f261c

Browse files
committed
Fix recipe of the day crash
1 parent 5272c31 commit 57f261c

3 files changed

Lines changed: 8 additions & 3 deletions

File tree

app/src/main/java/de/lukasneugebauer/nextcloudcookbook/core/data/PreferencesManager.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import androidx.datastore.preferences.preferencesDataStore
1313
import dagger.hilt.android.qualifiers.ApplicationContext
1414
import de.lukasneugebauer.nextcloudcookbook.core.domain.model.NcAccount
1515
import de.lukasneugebauer.nextcloudcookbook.core.domain.model.RecipeOfTheDay
16+
import de.lukasneugebauer.nextcloudcookbook.core.util.Constants.DEFAULT_RECIPE_OF_THE_DAY_ID
1617
import de.lukasneugebauer.nextcloudcookbook.settings.util.SettingsConstants.STAY_AWAKE_DEFAULT
1718
import de.lukasneugebauer.nextcloudcookbook.settings.util.SettingsConstants.STAY_AWAKE_KEY
1819
import kotlinx.coroutines.flow.catch
@@ -56,7 +57,7 @@ class PreferencesManager @Inject constructor(
5657
val ncUsername = preferences[PreferencesKeys.NC_USERNAME] ?: ""
5758
val ncToken = preferences[PreferencesKeys.NC_TOKEN] ?: ""
5859
val ncUrl = preferences[PreferencesKeys.NC_URL] ?: ""
59-
val recipeOfTheDayId = preferences[PreferencesKeys.RECIPE_OF_THE_DAY_ID] ?: 0
60+
val recipeOfTheDayId = preferences[PreferencesKeys.RECIPE_OF_THE_DAY_ID] ?: DEFAULT_RECIPE_OF_THE_DAY_ID
6061
val recipeOfTheDayUpdatedAt =
6162
preferences[PreferencesKeys.RECIPE_OF_THE_DAY_UPDATED_AT] ?: 0
6263

app/src/main/java/de/lukasneugebauer/nextcloudcookbook/core/util/Constants.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import de.lukasneugebauer.nextcloudcookbook.BuildConfig
55
object Constants {
66
private const val API_ENDPOINT: String = "index.php/apps/cookbook/api"
77
private const val API_VERSION: String = "/v1"
8+
const val DEFAULT_RECIPE_OF_THE_DAY_ID: Int = 0
89
const val FULL_PATH: String = API_ENDPOINT + API_VERSION
910
const val SHARED_PREFERENCES_KEY: String = BuildConfig.APPLICATION_ID + ".SHARED_PREFERENCES"
1011
}

app/src/main/java/de/lukasneugebauer/nextcloudcookbook/recipe/domain/usecase/GetHomeScreenDataUseCase.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import com.dropbox.android.external.store4.get
44
import de.lukasneugebauer.nextcloudcookbook.R
55
import de.lukasneugebauer.nextcloudcookbook.core.data.PreferencesManager
66
import de.lukasneugebauer.nextcloudcookbook.core.domain.model.RecipeOfTheDay
7+
import de.lukasneugebauer.nextcloudcookbook.core.util.Constants.DEFAULT_RECIPE_OF_THE_DAY_ID
78
import de.lukasneugebauer.nextcloudcookbook.core.util.IoDispatcher
89
import de.lukasneugebauer.nextcloudcookbook.di.CategoriesStore
910
import de.lukasneugebauer.nextcloudcookbook.di.RecipePreviewsByCategoryStore
@@ -39,10 +40,12 @@ class GetHomeScreenDataUseCase @Inject constructor(
3940
val homeScreenData = mutableListOf<HomeScreenDataResult>()
4041
var recipeOfTheDay = preferencesManager.preferencesFlow.map { it.recipeOfTheDay }.first()
4142

42-
if (recipeOfTheDay.id == 0 || recipeOfTheDay.updatedAt.isBefore(currentDate)) {
43+
if (recipeOfTheDay.id == DEFAULT_RECIPE_OF_THE_DAY_ID || recipeOfTheDay.updatedAt.isBefore(currentDate)) {
4344
try {
4445
val newRecipeOfTheDayId =
45-
recipePreviewsStore.get(Unit).random().toRecipePreview().id
46+
recipePreviewsStore.get(Unit).randomOrNull()?.toRecipePreview()?.id
47+
?: DEFAULT_RECIPE_OF_THE_DAY_ID
48+
4649
recipeOfTheDay = RecipeOfTheDay(
4750
id = newRecipeOfTheDayId,
4851
updatedAt = LocalDateTime.now(),

0 commit comments

Comments
 (0)