diff --git a/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstUserDataRepository.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstUserDataRepository.kt index 2559362ba..a6e41c9da 100644 --- a/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstUserDataRepository.kt +++ b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstUserDataRepository.kt @@ -37,13 +37,13 @@ class OfflineFirstUserDataRepository @Inject constructor( override suspend fun setFollowedTopicIds(followedTopicIds: Set) = niaPreferencesDataSource.setFollowedTopicIds(followedTopicIds) - override suspend fun toggleFollowedTopicId(followedTopicId: String, followed: Boolean) { - niaPreferencesDataSource.toggleFollowedTopicId(followedTopicId, followed) + override suspend fun setTopicIdFollowed(followedTopicId: String, followed: Boolean) { + niaPreferencesDataSource.setTopicIdFollowed(followedTopicId, followed) analyticsHelper.logTopicFollowToggled(followedTopicId, followed) } override suspend fun updateNewsResourceBookmark(newsResourceId: String, bookmarked: Boolean) { - niaPreferencesDataSource.toggleNewsResourceBookmark(newsResourceId, bookmarked) + niaPreferencesDataSource.setNewsResourceBookmarked(newsResourceId, bookmarked) analyticsHelper.logNewsResourceBookmarkToggled( newsResourceId = newsResourceId, isBookmarked = bookmarked, diff --git a/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/UserDataRepository.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/UserDataRepository.kt index 5e0e7ebfc..ff616c179 100644 --- a/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/UserDataRepository.kt +++ b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/UserDataRepository.kt @@ -34,9 +34,9 @@ interface UserDataRepository { suspend fun setFollowedTopicIds(followedTopicIds: Set) /** - * Toggles the user's newly followed/unfollowed topic + * Sets the user's newly followed/unfollowed topic */ - suspend fun toggleFollowedTopicId(followedTopicId: String, followed: Boolean) + suspend fun setTopicIdFollowed(followedTopicId: String, followed: Boolean) /** * Updates the bookmarked status for a news resource diff --git a/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeUserDataRepository.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeUserDataRepository.kt index 74813389e..a9da29b56 100644 --- a/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeUserDataRepository.kt +++ b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeUserDataRepository.kt @@ -40,11 +40,11 @@ class FakeUserDataRepository @Inject constructor( override suspend fun setFollowedTopicIds(followedTopicIds: Set) = niaPreferencesDataSource.setFollowedTopicIds(followedTopicIds) - override suspend fun toggleFollowedTopicId(followedTopicId: String, followed: Boolean) = - niaPreferencesDataSource.toggleFollowedTopicId(followedTopicId, followed) + override suspend fun setTopicIdFollowed(followedTopicId: String, followed: Boolean) = + niaPreferencesDataSource.setTopicIdFollowed(followedTopicId, followed) override suspend fun updateNewsResourceBookmark(newsResourceId: String, bookmarked: Boolean) { - niaPreferencesDataSource.toggleNewsResourceBookmark(newsResourceId, bookmarked) + niaPreferencesDataSource.setNewsResourceBookmarked(newsResourceId, bookmarked) } override suspend fun setNewsResourceViewed(newsResourceId: String, viewed: Boolean) = diff --git a/core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstUserDataRepositoryTest.kt b/core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstUserDataRepositoryTest.kt index 952f667f7..27e86f2f4 100644 --- a/core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstUserDataRepositoryTest.kt +++ b/core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstUserDataRepositoryTest.kt @@ -80,7 +80,7 @@ class OfflineFirstUserDataRepositoryTest { @Test fun offlineFirstUserDataRepository_toggle_followed_topics_logic_delegates_to_nia_preferences() = testScope.runTest { - subject.toggleFollowedTopicId(followedTopicId = "0", followed = true) + subject.setTopicIdFollowed(followedTopicId = "0", followed = true) assertEquals( setOf("0"), @@ -89,7 +89,7 @@ class OfflineFirstUserDataRepositoryTest { .first(), ) - subject.toggleFollowedTopicId(followedTopicId = "1", followed = true) + subject.setTopicIdFollowed(followedTopicId = "1", followed = true) assertEquals( setOf("0", "1"), diff --git a/core/datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/NiaPreferencesDataSource.kt b/core/datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/NiaPreferencesDataSource.kt index 6e2be2808..6dc7725c1 100644 --- a/core/datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/NiaPreferencesDataSource.kt +++ b/core/datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/NiaPreferencesDataSource.kt @@ -73,7 +73,7 @@ class NiaPreferencesDataSource @Inject constructor( } } - suspend fun toggleFollowedTopicId(topicId: String, followed: Boolean) { + suspend fun setTopicIdFollowed(topicId: String, followed: Boolean) { try { userPreferences.updateData { it.copy { @@ -122,7 +122,7 @@ class NiaPreferencesDataSource @Inject constructor( } } - suspend fun toggleNewsResourceBookmark(newsResourceId: String, bookmarked: Boolean) { + suspend fun setNewsResourceBookmarked(newsResourceId: String, bookmarked: Boolean) { try { userPreferences.updateData { it.copy { diff --git a/core/datastore/src/test/java/com/google/samples/apps/nowinandroid/core/datastore/NiaPreferencesDataSourceTest.kt b/core/datastore/src/test/java/com/google/samples/apps/nowinandroid/core/datastore/NiaPreferencesDataSourceTest.kt index b865aa431..433812808 100644 --- a/core/datastore/src/test/java/com/google/samples/apps/nowinandroid/core/datastore/NiaPreferencesDataSourceTest.kt +++ b/core/datastore/src/test/java/com/google/samples/apps/nowinandroid/core/datastore/NiaPreferencesDataSourceTest.kt @@ -59,11 +59,11 @@ class NiaPreferencesDataSourceTest { fun userShouldHideOnboarding_unfollowsLastTopic_shouldHideOnboardingIsFalse() = testScope.runTest { // Given: user completes onboarding by selecting a single topic. - subject.toggleFollowedTopicId("1", true) + subject.setTopicIdFollowed("1", true) subject.setShouldHideOnboarding(true) // When: they unfollow that topic. - subject.toggleFollowedTopicId("1", false) + subject.setTopicIdFollowed("1", false) // Then: onboarding should be shown again assertFalse(subject.userData.first().shouldHideOnboarding) diff --git a/core/testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestUserDataRepository.kt b/core/testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestUserDataRepository.kt index 9d1650c98..504e79217 100644 --- a/core/testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestUserDataRepository.kt +++ b/core/testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestUserDataRepository.kt @@ -49,7 +49,7 @@ class TestUserDataRepository : UserDataRepository { _userData.tryEmit(currentUserData.copy(followedTopics = followedTopicIds)) } - override suspend fun toggleFollowedTopicId(followedTopicId: String, followed: Boolean) { + override suspend fun setTopicIdFollowed(followedTopicId: String, followed: Boolean) { currentUserData.let { current -> val followedTopics = if (followed) { current.followedTopics + followedTopicId diff --git a/feature/foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModel.kt b/feature/foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModel.kt index 9427cd74c..2a4b6f4ec 100644 --- a/feature/foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModel.kt +++ b/feature/foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModel.kt @@ -111,7 +111,7 @@ class ForYouViewModel @Inject constructor( fun updateTopicSelection(topicId: String, isChecked: Boolean) { viewModelScope.launch { - userDataRepository.toggleFollowedTopicId(topicId, isChecked) + userDataRepository.setTopicIdFollowed(topicId, isChecked) } } diff --git a/feature/interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel.kt b/feature/interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel.kt index c3d5ab6e8..6d905a6d5 100644 --- a/feature/interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel.kt +++ b/feature/interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel.kt @@ -47,7 +47,7 @@ class InterestsViewModel @Inject constructor( fun followTopic(followedTopicId: String, followed: Boolean) { viewModelScope.launch { - userDataRepository.toggleFollowedTopicId(followedTopicId, followed) + userDataRepository.setTopicIdFollowed(followedTopicId, followed) } } } diff --git a/feature/topic/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/TopicViewModel.kt b/feature/topic/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/TopicViewModel.kt index 7f8c6067e..1c39f29da 100644 --- a/feature/topic/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/TopicViewModel.kt +++ b/feature/topic/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/TopicViewModel.kt @@ -75,7 +75,7 @@ class TopicViewModel @Inject constructor( fun followTopicToggle(followed: Boolean) { viewModelScope.launch { - userDataRepository.toggleFollowedTopicId(topicArgs.topicId, followed) + userDataRepository.setTopicIdFollowed(topicArgs.topicId, followed) } }