Skip to content

Commit

Permalink
MBL-1746: Hook up alert dot to v1 user field (#2136)
Browse files Browse the repository at this point in the history
* fix ppo has action field, adjust darkmode check

* linter

* remove serialized name, fix tests

---------

Co-authored-by: Leigh Douglas <[email protected]>
  • Loading branch information
leighdouglas and Leigh Douglas authored Oct 3, 2024
1 parent 2c99cee commit 8552ca7
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 4 deletions.
3 changes: 2 additions & 1 deletion app/src/main/java/com/kickstarter/libs/CurrentUserV2.kt
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ abstract class CurrentUserTypeV2 {
class CurrentUserV2(
private val accessTokenPreference: StringPreferenceType,
private val deviceRegistrar: DeviceRegistrarType,
gson: Gson,
private val gson: Gson,
private val userPreference: StringPreferenceType
) : CurrentUserTypeV2() {
val user = BehaviorSubject.create<KsOptional<User>>()
Expand Down Expand Up @@ -137,6 +137,7 @@ class CurrentUserV2(

override fun refresh(freshUser: User) {
user.onNext(KsOptional.of(freshUser))
userPreference.set(gson.toJson(freshUser, User::class.java))
}

override fun observable(): Observable<KsOptional<User>> {
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/com/kickstarter/models/User.kt
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ class User private constructor(
private val notifyOfMessages: Boolean,
private val notifyOfUpdates: Boolean,
private val optedOutOfRecommendations: Boolean,
private val ppoHasAction: Boolean?,
private val ppoHasAction: Boolean,
private val promoNewsletter: Boolean,
private val publishingNewsletter: Boolean,
private val showPublicProfile: Boolean,
Expand Down Expand Up @@ -163,7 +163,7 @@ class User private constructor(
private var notifyOfUpdates: Boolean = false,
private var optedOutOfRecommendations: Boolean = false,
private var promoNewsletter: Boolean = false,
private var ppoHasAction: Boolean? = false,
private var ppoHasAction: Boolean = false,
private var publishingNewsletter: Boolean = false,
private var showPublicProfile: Boolean = false,
private var needsPassword: Boolean? = false,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import com.kickstarter.libs.ActivityViewModel
import com.kickstarter.libs.Environment
import com.kickstarter.libs.featureflag.FlagKey
import com.kickstarter.libs.rx.transformers.Transformers
import com.kickstarter.libs.rx.transformers.Transformers.takeWhen
import com.kickstarter.libs.utils.DiscoveryUtils
import com.kickstarter.libs.utils.extensions.deriveNavigationDrawerData
import com.kickstarter.libs.utils.extensions.getTokenFromQueryParams
Expand Down Expand Up @@ -186,6 +187,7 @@ interface DiscoveryViewModel {
private val successMessage = PublishSubject.create<String>()
private val messageError = PublishSubject.create<String?>()
private val darkThemeEnabled = io.reactivex.subjects.BehaviorSubject.create<Boolean>()
private val darkThemeEnabledV1 = BehaviorSubject.create<Boolean>()
private var isDarkTheme = false
private var isDarkThemeInitialized = false

Expand Down Expand Up @@ -413,9 +415,10 @@ interface DiscoveryViewModel {
.filter { bool: Boolean? -> bool.isTrue() }

currentUser
.compose(takeWhen(darkThemeEnabledV1))
.map { currentDrawerMenuIcon(it) }
.distinctUntilChanged()
.subscribe { if (isDarkThemeInitialized) drawerMenuIcon.onNext(it) }
.subscribe { drawerMenuIcon.onNext(it) }
}

override fun childFilterViewHolderRowClick(viewHolder: ChildFilterViewHolder, row: NavigationDrawerData.Section.Row) {
Expand Down Expand Up @@ -474,6 +477,7 @@ interface DiscoveryViewModel {
this.isDarkTheme = isDarkTheme
this.isDarkThemeInitialized = true
darkThemeEnabled.onNext(isDarkTheme)
darkThemeEnabledV1.onNext(isDarkTheme)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -599,8 +599,10 @@ class DiscoveryViewModelTest : KSRobolectricTestCase() {
vm.outputs.drawerMenuIcon().subscribe(drawerMenuIcon)
drawerMenuIcon.assertValue(R.drawable.ic_menu)
currentUser.refresh(user().toBuilder().unreadMessagesCount(4).build())
vm.setDarkTheme(isDarkTheme = false)
drawerMenuIcon.assertValues(R.drawable.ic_menu, R.drawable.ic_menu_indicator)
currentUser.refresh(user().toBuilder().erroredBackingsCount(2).build())
vm.setDarkTheme(isDarkTheme = false)
drawerMenuIcon.assertValues(
R.drawable.ic_menu,
R.drawable.ic_menu_indicator,
Expand All @@ -610,12 +612,14 @@ class DiscoveryViewModelTest : KSRobolectricTestCase() {
user().toBuilder().unreadMessagesCount(4).unseenActivityCount(3).erroredBackingsCount(2)
.build()
)
vm.setDarkTheme(isDarkTheme = false)
drawerMenuIcon.assertValues(
R.drawable.ic_menu,
R.drawable.ic_menu_indicator,
R.drawable.ic_menu_error_indicator
)
currentUser.logout()
vm.setDarkTheme(isDarkTheme = false)
drawerMenuIcon.assertValues(
R.drawable.ic_menu, R.drawable.ic_menu_indicator, R.drawable.ic_menu_error_indicator,
R.drawable.ic_menu
Expand Down

0 comments on commit 8552ca7

Please sign in to comment.