Skip to content

Commit d846904

Browse files
committed
Fake mood for demo profile
1 parent 3ece13a commit d846904

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

app/src/main/java/com/feelsoftware/feelfine/data/usecase/MoodUseCases.kt

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.feelsoftware.feelfine.data.usecase
33
import com.feelsoftware.feelfine.data.model.Mood
44
import com.feelsoftware.feelfine.data.model.Optional
55
import com.feelsoftware.feelfine.data.repository.MoodRepository
6+
import com.feelsoftware.feelfine.data.repository.UserRepository
67
import io.reactivex.rxjava3.core.Completable
78
import io.reactivex.rxjava3.core.Observable
89
import io.reactivex.rxjava3.core.Single
@@ -18,10 +19,25 @@ class SetMoodUseCase(
1819
}
1920

2021
class GetMoodByDateUseCase(
21-
private val repository: MoodRepository
22+
private val repository: MoodRepository,
23+
private val userRepository: UserRepository,
2224
) {
2325

2426
operator fun invoke(date: Date): Single<Optional<Mood>> =
27+
userRepository.getProfileLegacy()
28+
.firstOrError()
29+
.flatMap { profile ->
30+
if (profile.isDemo) {
31+
getMockMood()
32+
} else {
33+
getMood(date)
34+
}
35+
}
36+
37+
private fun getMockMood(): Single<Optional<Mood>> =
38+
Single.just(Optional.of(Mood.values().random()))
39+
40+
private fun getMood(date: Date): Single<Optional<Mood>> =
2541
repository.getMoodByDay(date)
2642
.firstOrError()
2743
.map { list ->
@@ -58,14 +74,14 @@ class GetPercentMoodUseCase(
5874
val currentData = getMoodByDateUseCase(currentDate)
5975
val yesterdayData = getMoodByDateUseCase(yesterdayDate)
6076

61-
return Single.zip(currentData, yesterdayData, { current, yesterday ->
77+
return Single.zip(currentData, yesterdayData) { current, yesterday ->
6278
if (current.isPresent.not() || yesterday.isPresent.not()) {
6379
return@zip Optional.empty<Int>()
6480
}
6581

6682
Optional.of(
6783
(current.value.intensity * 100f / yesterday.value.intensity.coerceAtLeast(1)).roundToInt() - 100
6884
)
69-
}).toObservable()
85+
}.toObservable()
7086
}
7187
}

app/src/main/java/com/feelsoftware/feelfine/di/data.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ val useCaseModule = module {
5252
SetMoodUseCase(get<MoodRepository>())
5353
}
5454
factory<GetMoodByDateUseCase> {
55-
GetMoodByDateUseCase(get<MoodRepository>())
55+
GetMoodByDateUseCase(get<MoodRepository>(), get<UserRepository>())
5656
}
5757
factory<GetCurrentMoodUseCase> {
5858
GetCurrentMoodUseCase(get<GetMoodByDateUseCase>())

0 commit comments

Comments
 (0)