From bea5ee7194f9c65feb678dd1d7fa2c375a0827ad Mon Sep 17 00:00:00 2001 From: Simona Stojanovic Date: Mon, 9 May 2022 21:14:07 +0100 Subject: [PATCH] Rename following to interests Change-Id: Iabcb8b495717e0cb3a993ecc0e09e3338fe5140f --- app/build.gradle.kts | 2 +- .../apps/nowinandroid/ui/NavigationTest.kt | 4 +- app/src/main/baseline-prof.txt | 164 +++++++++--------- .../samples/apps/nowinandroid/ui/NiaApp.kt | 6 +- .../apps/nowinandroid/ui/NiaNavGraph.kt | 8 +- .../apps/nowinandroid/ui/NiaNavigation.kt | 2 +- .../BaselineProfileGenerator.kt | 2 +- .../.gitignore | 0 .../build.gradle.kts | 0 .../interests/InterestsScreenTest.kt | 62 +++---- .../src/main/AndroidManifest.xml | 2 +- .../feature/interests/InterestsItem.kt | 26 +-- .../feature/interests/InterestsScreen.kt | 30 ++-- .../feature/interests/InterestsViewModel.kt | 26 +-- .../feature/interests}/TabContent.kt | 6 +- .../src/main/res/values/strings.xml | 8 +- .../interests/InterestsViewModelTest.kt | 30 ++-- .../nowinandroid/feature/topic/Navigation.kt | 2 +- settings.gradle.kts | 2 +- 19 files changed, 191 insertions(+), 191 deletions(-) rename {feature-following => feature-interests}/.gitignore (100%) rename {feature-following => feature-interests}/build.gradle.kts (100%) rename feature-following/src/androidTest/java/com/google/samples/apps/nowinandroid/following/FollowingScreenTest.kt => feature-interests/src/androidTest/java/com/google/samples/apps/nowinandroid/interests/InterestsScreenTest.kt (78%) rename {feature-following => feature-interests}/src/main/AndroidManifest.xml (90%) rename feature-following/src/main/java/com/google/samples/apps/nowinandroid/feature/following/FollowingItem.kt => feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsItem.kt (90%) rename feature-following/src/main/java/com/google/samples/apps/nowinandroid/feature/following/FollowingScreen.kt => feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt (88%) rename feature-following/src/main/java/com/google/samples/apps/nowinandroid/feature/following/FollowingViewModel.kt => feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel.kt (85%) rename {feature-following/src/main/java/com/google/samples/apps/nowinandroid/feature/following => feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests}/TabContent.kt (96%) rename {feature-following => feature-interests}/src/main/res/values/strings.xml (82%) rename feature-following/src/test/java/com/google/samples/apps/nowinandroid/following/FollowingViewModelTest.kt => feature-interests/src/test/java/com/google/samples/apps/nowinandroid/interests/InterestsViewModelTest.kt (91%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 92f2c332c..8761fbd10 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -61,7 +61,7 @@ android { } dependencies { - implementation(project(":feature-following")) + implementation(project(":feature-interests")) implementation(project(":feature-foryou")) implementation(project(":feature-topic")) diff --git a/app/src/androidTest/java/com/google/samples/apps/nowinandroid/ui/NavigationTest.kt b/app/src/androidTest/java/com/google/samples/apps/nowinandroid/ui/NavigationTest.kt index adf3c0f3b..b55c9b953 100644 --- a/app/src/androidTest/java/com/google/samples/apps/nowinandroid/ui/NavigationTest.kt +++ b/app/src/androidTest/java/com/google/samples/apps/nowinandroid/ui/NavigationTest.kt @@ -183,7 +183,7 @@ class NavigationTest { } @Test - fun navigationBar_multipleBackStackFollowing() { + fun navigationBar_multipleBackStackInterests() { composeTestRule.apply { onNodeWithText(interests).performClick() onNodeWithText("Android Studio").performClick() // TODO: Grab string from fake data @@ -191,7 +191,7 @@ class NavigationTest { // Switch tab onNodeWithText(forYou).performClick() - // Come back to Following + // Come back to Interests onNodeWithText(interests).performClick() // Verify we're not in the list of interests diff --git a/app/src/main/baseline-prof.txt b/app/src/main/baseline-prof.txt index dfd830b68..5048aa697 100644 --- a/app/src/main/baseline-prof.txt +++ b/app/src/main/baseline-prof.txt @@ -6494,55 +6494,55 @@ HSPLcom/google/samples/apps/nowinandroid/core/ui/theme/ThemeKt$NiaTheme$1;->invo HSPLcom/google/samples/apps/nowinandroid/core/ui/theme/ThemeKt;->()V HSPLcom/google/samples/apps/nowinandroid/core/ui/theme/ThemeKt;->NiaTheme(ZZLkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V HSPLcom/google/samples/apps/nowinandroid/core/ui/theme/TypeKt;->()V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowButton$1$1;->(Lkotlin/jvm/functions/Function2;IZ)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowButton$2;->(Z)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowButton$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowingRoute$1;->(Lcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel;)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowingRoute$2;->(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;Lcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel;II)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowingRoute$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowingScreen$1$1$1;->(Lkotlin/jvm/functions/Function0;)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowingScreen$2;->(Lcom/google/samples/apps/nowinandroid/feature/following/FollowingUiState;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;II)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowingTopicCard$1$1$1;->(Lkotlin/jvm/functions/Function0;)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowingWithTopicsScreen$1$1$1;->(Lcom/google/samples/apps/nowinandroid/core/model/data/Topic;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;I)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowingWithTopicsScreen$1$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowingWithTopicsScreen$1;->(Lcom/google/samples/apps/nowinandroid/feature/following/FollowingUiState$Topics;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;I)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowingWithTopicsScreen$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$TopicIcon$1$1;->(Lkotlin/jvm/functions/Function0;)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$TopicIcon$2;->(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;II)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt;->FollowButton(IZLkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt;->FollowingRoute(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;Lcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel;Landroidx/compose/runtime/Composer;II)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt;->FollowingScreen(Lcom/google/samples/apps/nowinandroid/feature/following/FollowingUiState;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt;->FollowingTopicCard(Lcom/google/samples/apps/nowinandroid/core/model/data/Topic;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt;->FollowingWithTopicsScreen(Landroidx/compose/ui/Modifier;Lcom/google/samples/apps/nowinandroid/feature/following/FollowingUiState$Topics;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt;->TopicDescription(Ljava/lang/String;Landroidx/compose/runtime/Composer;I)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt;->TopicIcon(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt;->TopicTitle(Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingState$Topics;->(Ljava/util/Set;)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingUiState$Loading;->()V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingUiState$Loading;->()V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingUiState$Topics;->(Ljava/util/List;)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingUiState$Topics;->equals(Ljava/lang/Object;)Z -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$followedTopicIdsStream$1;->(Lkotlin/coroutines/Continuation;)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$mapFollowedAndUnfollowedTopics$$inlined$map$1$2$1;->(Lcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$mapFollowedAndUnfollowedTopics$$inlined$map$1$2;Lkotlin/coroutines/Continuation;)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$mapFollowedAndUnfollowedTopics$$inlined$map$1$2;->(Lkotlinx/coroutines/flow/FlowCollector;Ljava/util/List;)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$mapFollowedAndUnfollowedTopics$$inlined$map$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$mapFollowedAndUnfollowedTopics$$inlined$map$1;->(Lcom/google/samples/apps/nowinandroid/core/datastore/NiaPreferences$special$$inlined$map$1;Ljava/util/List;)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$mapFollowedAndUnfollowedTopics$$inlined$map$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$mapFollowedAndUnfollowedTopics$lambda-4$$inlined$sortedBy$1;->()V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$mapFollowedAndUnfollowedTopics$lambda-4$$inlined$sortedBy$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$special$$inlined$flatMapLatest$1;->(Lkotlin/coroutines/Continuation;)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$special$$inlined$flatMapLatest$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$special$$inlined$flatMapLatest$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$special$$inlined$map$1$2$1;->(Lcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$special$$inlined$map$1$2;Lkotlin/coroutines/Continuation;)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$special$$inlined$map$1$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$special$$inlined$map$1$2;->(Lkotlinx/coroutines/flow/FlowCollector;)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$special$$inlined$map$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$special$$inlined$map$1;->(Lkotlinx/coroutines/flow/FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1;)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$special$$inlined$map$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$uiState$1;->(Lcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel;Lkotlin/coroutines/Continuation;)V -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$uiState$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$uiState$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel;->(Lcom/google/samples/apps/nowinandroid/core/domain/repository/FakeTopicsRepository;)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$FollowButton$1$1;->(Lkotlin/jvm/functions/Function2;IZ)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$FollowButton$2;->(Z)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$FollowButton$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$InterestsRoute$1;->(Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel;)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$InterestsRoute$2;->(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel;II)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$InterestsRoute$2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$InterestsScreen$1$1$1;->(Lkotlin/jvm/functions/Function0;)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$InterestsScreen$2;->(Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsUiState;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;II)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$InterestsTopicCard$1$1$1;->(Lkotlin/jvm/functions/Function0;)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$InterestsWithTopicsScreen$1$1$1;->(Lcom/google/samples/apps/nowinandroid/core/model/data/Topic;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;I)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$InterestsWithTopicsScreen$1$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$InterestsWithTopicsScreen$1;->(Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsUiState$Topics;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;I)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$InterestsWithTopicsScreen$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object; +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$TopicIcon$1$1;->(Lkotlin/jvm/functions/Function0;)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$TopicIcon$2;->(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;II)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt;->FollowButton(IZLkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt;->InterestsRoute(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel;Landroidx/compose/runtime/Composer;II)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt;->InterestsScreen(Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsUiState;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt;->InterestsTopicCard(Lcom/google/samples/apps/nowinandroid/core/model/data/Topic;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt;->InterestsWithTopicsScreen(Landroidx/compose/ui/Modifier;Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsUiState$Topics;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt;->TopicDescription(Ljava/lang/String;Landroidx/compose/runtime/Composer;I)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt;->TopicIcon(Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt;->TopicTitle(Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsState$Topics;->(Ljava/util/Set;)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsUiState$Loading;->()V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsUiState$Loading;->()V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsUiState$Topics;->(Ljava/util/List;)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsUiState$Topics;->equals(Ljava/lang/Object;)Z +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$followedTopicIdsStream$1;->(Lkotlin/coroutines/Continuation;)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$mapFollowedAndUnfollowedTopics$$inlined$map$1$2$1;->(Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$mapFollowedAndUnfollowedTopics$$inlined$map$1$2;Lkotlin/coroutines/Continuation;)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$mapFollowedAndUnfollowedTopics$$inlined$map$1$2;->(Lkotlinx/coroutines/flow/FlowCollector;Ljava/util/List;)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$mapFollowedAndUnfollowedTopics$$inlined$map$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$mapFollowedAndUnfollowedTopics$$inlined$map$1;->(Lcom/google/samples/apps/nowinandroid/core/datastore/NiaPreferences$special$$inlined$map$1;Ljava/util/List;)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$mapFollowedAndUnfollowedTopics$$inlined$map$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$mapFollowedAndUnfollowedTopics$lambda-4$$inlined$sortedBy$1;->()V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$mapFollowedAndUnfollowedTopics$lambda-4$$inlined$sortedBy$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$special$$inlined$flatMapLatest$1;->(Lkotlin/coroutines/Continuation;)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$special$$inlined$flatMapLatest$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$special$$inlined$flatMapLatest$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object; +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$special$$inlined$map$1$2$1;->(Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$special$$inlined$map$1$2;Lkotlin/coroutines/Continuation;)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$special$$inlined$map$1$2$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object; +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$special$$inlined$map$1$2;->(Lkotlinx/coroutines/flow/FlowCollector;)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$special$$inlined$map$1$2;->emit(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$special$$inlined$map$1;->(Lkotlinx/coroutines/flow/FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1;)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$special$$inlined$map$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$uiState$1;->(Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel;Lkotlin/coroutines/Continuation;)V +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$uiState$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$uiState$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object; +HSPLcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel;->(Lcom/google/samples/apps/nowinandroid/core/domain/repository/FakeTopicsRepository;)V HSPLcom/google/samples/apps/nowinandroid/feature/foryou/ComposableSingletons$ForYouScreenKt$lambda-1$1;->()V HSPLcom/google/samples/apps/nowinandroid/feature/foryou/ComposableSingletons$ForYouScreenKt$lambda-1$1;->()V HSPLcom/google/samples/apps/nowinandroid/feature/foryou/ComposableSingletons$ForYouScreenKt$lambda-1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; @@ -6613,8 +6613,8 @@ HSPLcom/google/samples/apps/nowinandroid/ui/ComposableSingletons$NiaAppKt$lambda HSPLcom/google/samples/apps/nowinandroid/ui/ComposableSingletons$NiaAppKt;->()V HSPLcom/google/samples/apps/nowinandroid/ui/Destination$Episodes;->()V HSPLcom/google/samples/apps/nowinandroid/ui/Destination$Episodes;->()V -HSPLcom/google/samples/apps/nowinandroid/ui/Destination$Following;->()V -HSPLcom/google/samples/apps/nowinandroid/ui/Destination$Following;->()V +HSPLcom/google/samples/apps/nowinandroid/ui/Destination$Interests;->()V +HSPLcom/google/samples/apps/nowinandroid/ui/Destination$Interests;->()V HSPLcom/google/samples/apps/nowinandroid/ui/Destination$ForYou;->()V HSPLcom/google/samples/apps/nowinandroid/ui/Destination$ForYou;->()V HSPLcom/google/samples/apps/nowinandroid/ui/Destination$Saved;->()V @@ -8383,7 +8383,7 @@ HSPLkotlinx/coroutines/flow/FlowKt__DistinctKt$defaultKeySelector$1;->() HSPLkotlinx/coroutines/flow/FlowKt__DistinctKt$defaultKeySelector$1;->()V HSPLkotlinx/coroutines/flow/FlowKt__DistinctKt$defaultKeySelector$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object; HSPLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1$1;->(Lkotlinx/coroutines/flow/FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1;Lkotlin/coroutines/Continuation;)V -HSPLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1;->(Lcom/google/samples/apps/nowinandroid/core/datastore/NiaPreferences$special$$inlined$map$1;Lcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$followedTopicIdsStream$1;)V +HSPLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1;->(Lcom/google/samples/apps/nowinandroid/core/datastore/NiaPreferences$special$$inlined$map$1;Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$followedTopicIdsStream$1;)V HSPLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; HSPLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catchImpl$1;->(Lkotlin/coroutines/Continuation;)V HSPLkotlinx/coroutines/flow/FlowKt__ErrorsKt$catchImpl$2$emit$1;->(Lkotlinx/coroutines/flow/FlowKt__ErrorsKt$catchImpl$2;Lkotlin/coroutines/Continuation;)V @@ -8421,7 +8421,7 @@ HSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt_ HSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1$2;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object; HSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1;->([Lkotlinx/coroutines/flow/Flow;Lcom/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModel$uiState$2;)V HSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -HSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$unsafeFlow$1;->(Lcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$special$$inlined$map$1;Lkotlinx/coroutines/flow/Flow;Lcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$uiState$1;)V +HSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$unsafeFlow$1;->(Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$special$$inlined$map$1;Lkotlinx/coroutines/flow/Flow;Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$uiState$1;)V HSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$$inlined$unsafeFlow$1;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; HSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$1$1;->(Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;)V HSPLkotlinx/coroutines/flow/FlowKt__ZipKt$combine$1$1;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; @@ -11105,34 +11105,34 @@ Lcom/google/samples/apps/nowinandroid/core/ui/theme/ColorKt; Lcom/google/samples/apps/nowinandroid/core/ui/theme/ThemeKt$NiaTheme$1; Lcom/google/samples/apps/nowinandroid/core/ui/theme/ThemeKt; Lcom/google/samples/apps/nowinandroid/core/ui/theme/TypeKt; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowButton$1$1; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowButton$2; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowingRoute$1; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowingRoute$2; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowingScreen$1$1$1; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowingScreen$2; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowingTopicCard$1$1$1; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowingTopicCard$2; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowingWithTopicsScreen$1$1$1; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$FollowingWithTopicsScreen$1; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$TopicIcon$1$1; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt$TopicIcon$2; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingScreenKt; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingState$Topics; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingUiState$Loading; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingUiState$Topics; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingUiState; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$followedTopicIdsStream$1; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$mapFollowedAndUnfollowedTopics$$inlined$map$1$2$1; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$mapFollowedAndUnfollowedTopics$$inlined$map$1$2; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$mapFollowedAndUnfollowedTopics$$inlined$map$1; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$mapFollowedAndUnfollowedTopics$lambda-4$$inlined$sortedBy$1; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$special$$inlined$flatMapLatest$1; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$special$$inlined$map$1$2$1; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$special$$inlined$map$1$2; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$special$$inlined$map$1; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel$uiState$1; -Lcom/google/samples/apps/nowinandroid/feature/following/FollowingViewModel; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$FollowButton$1$1; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$FollowButton$2; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$InterestsRoute$1; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$InterestsRoute$2; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$InterestsScreen$1$1$1; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$InterestsScreen$2; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$InterestsTopicCard$1$1$1; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$InterestsTopicCard$2; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$InterestsWithTopicsScreen$1$1$1; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$InterestsWithTopicsScreen$1; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$TopicIcon$1$1; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt$TopicIcon$2; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsScreenKt; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsState$Topics; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsUiState$Loading; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsUiState$Topics; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsUiState; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$followedTopicIdsStream$1; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$mapFollowedAndUnfollowedTopics$$inlined$map$1$2$1; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$mapFollowedAndUnfollowedTopics$$inlined$map$1$2; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$mapFollowedAndUnfollowedTopics$$inlined$map$1; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$mapFollowedAndUnfollowedTopics$lambda-4$$inlined$sortedBy$1; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$special$$inlined$flatMapLatest$1; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$special$$inlined$map$1$2$1; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$special$$inlined$map$1$2; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$special$$inlined$map$1; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel$uiState$1; +Lcom/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel; Lcom/google/samples/apps/nowinandroid/feature/foryou/ComposableSingletons$ForYouScreenKt$lambda-1$1; Lcom/google/samples/apps/nowinandroid/feature/foryou/ComposableSingletons$ForYouScreenKt; Lcom/google/samples/apps/nowinandroid/feature/foryou/FollowedTopicsState$FollowedTopics; @@ -11176,7 +11176,7 @@ Lcom/google/samples/apps/nowinandroid/ui/ComposableSingletons$NiaAppKt$lambda-1$ Lcom/google/samples/apps/nowinandroid/ui/ComposableSingletons$NiaAppKt$lambda-1$1; Lcom/google/samples/apps/nowinandroid/ui/ComposableSingletons$NiaAppKt; Lcom/google/samples/apps/nowinandroid/ui/Destination$Episodes; -Lcom/google/samples/apps/nowinandroid/ui/Destination$Following; +Lcom/google/samples/apps/nowinandroid/ui/Destination$Interests; Lcom/google/samples/apps/nowinandroid/ui/Destination$ForYou; Lcom/google/samples/apps/nowinandroid/ui/Destination$Saved; Lcom/google/samples/apps/nowinandroid/ui/Destination; diff --git a/app/src/main/java/com/google/samples/apps/nowinandroid/ui/NiaApp.kt b/app/src/main/java/com/google/samples/apps/nowinandroid/ui/NiaApp.kt index 0fb160a1b..29a912c3e 100644 --- a/app/src/main/java/com/google/samples/apps/nowinandroid/ui/NiaApp.kt +++ b/app/src/main/java/com/google/samples/apps/nowinandroid/ui/NiaApp.kt @@ -220,8 +220,8 @@ private sealed class Destination( iconTextId = R.string.saved ) - object Following : Destination( - route = NiaDestinations.FOLLOWING_ROUTE, + object Interests : Destination( + route = NiaDestinations.INTERESTS_ROUTE, selectedIcon = Icons.Filled.Grid3x3, unselectedIcon = Icons.Outlined.Grid3x3, iconTextId = R.string.interests @@ -231,5 +231,5 @@ private sealed class Destination( private val TOP_LEVEL_DESTINATIONS = listOf( Destination.ForYou, // TODO: Add destinations here, see b/226359180. - Destination.Following + Destination.Interests ) diff --git a/app/src/main/java/com/google/samples/apps/nowinandroid/ui/NiaNavGraph.kt b/app/src/main/java/com/google/samples/apps/nowinandroid/ui/NiaNavGraph.kt index 927ba49d4..288649fbc 100644 --- a/app/src/main/java/com/google/samples/apps/nowinandroid/ui/NiaNavGraph.kt +++ b/app/src/main/java/com/google/samples/apps/nowinandroid/ui/NiaNavGraph.kt @@ -27,8 +27,8 @@ import androidx.navigation.compose.composable import androidx.navigation.compose.navigation import androidx.navigation.compose.rememberNavController import androidx.navigation.navArgument -import com.google.samples.apps.nowinandroid.feature.following.InterestsRoute import com.google.samples.apps.nowinandroid.feature.foryou.ForYouRoute +import com.google.samples.apps.nowinandroid.feature.interests.InterestsRoute import com.google.samples.apps.nowinandroid.feature.topic.InterestsDestinations import com.google.samples.apps.nowinandroid.feature.topic.InterestsScreens.TOPIC_SCREEN import com.google.samples.apps.nowinandroid.feature.topic.TopicDestinationsArgs @@ -63,10 +63,10 @@ fun NiaNavGraph( Text("SAVED") } navigation( - startDestination = InterestsDestinations.INTERESTS_ROUTE, - route = NiaDestinations.FOLLOWING_ROUTE + startDestination = InterestsDestinations.INTERESTS_DESTINATION, + route = NiaDestinations.INTERESTS_ROUTE ) { - composable(InterestsDestinations.INTERESTS_ROUTE) { + composable(InterestsDestinations.INTERESTS_DESTINATION) { InterestsRoute( navigateToTopic = { navController.navigate("$TOPIC_SCREEN/$it") }, navigateToAuthor = { /* TO IMPLEMENT */ }, diff --git a/app/src/main/java/com/google/samples/apps/nowinandroid/ui/NiaNavigation.kt b/app/src/main/java/com/google/samples/apps/nowinandroid/ui/NiaNavigation.kt index 5e22d4b30..e5d0c4e1b 100644 --- a/app/src/main/java/com/google/samples/apps/nowinandroid/ui/NiaNavigation.kt +++ b/app/src/main/java/com/google/samples/apps/nowinandroid/ui/NiaNavigation.kt @@ -28,7 +28,7 @@ object NiaDestinations { const val FOR_YOU_ROUTE = "for_you" const val EPISODES_ROUTE = "episodes" const val SAVED_ROUTE = "saved" - const val FOLLOWING_ROUTE = "following" + const val INTERESTS_ROUTE = "interests" } /** diff --git a/benchmark/src/main/java/com/google/samples/apps/nowinandroid/baselineprofile/BaselineProfileGenerator.kt b/benchmark/src/main/java/com/google/samples/apps/nowinandroid/baselineprofile/BaselineProfileGenerator.kt index 6a2f150e0..6e3137fee 100644 --- a/benchmark/src/main/java/com/google/samples/apps/nowinandroid/baselineprofile/BaselineProfileGenerator.kt +++ b/benchmark/src/main/java/com/google/samples/apps/nowinandroid/baselineprofile/BaselineProfileGenerator.kt @@ -40,7 +40,7 @@ class BaselineProfileGenerator { // through your most important UI. startActivityAndWait() device.waitForIdle() - listOf("Episodes", "Saved", "Following").forEach { + listOf("Episodes", "Saved", "Interests").forEach { device.run { findObject(By.text(it)) .click() diff --git a/feature-following/.gitignore b/feature-interests/.gitignore similarity index 100% rename from feature-following/.gitignore rename to feature-interests/.gitignore diff --git a/feature-following/build.gradle.kts b/feature-interests/build.gradle.kts similarity index 100% rename from feature-following/build.gradle.kts rename to feature-interests/build.gradle.kts diff --git a/feature-following/src/androidTest/java/com/google/samples/apps/nowinandroid/following/FollowingScreenTest.kt b/feature-interests/src/androidTest/java/com/google/samples/apps/nowinandroid/interests/InterestsScreenTest.kt similarity index 78% rename from feature-following/src/androidTest/java/com/google/samples/apps/nowinandroid/following/FollowingScreenTest.kt rename to feature-interests/src/androidTest/java/com/google/samples/apps/nowinandroid/interests/InterestsScreenTest.kt index 9ed64fdb7..07976953e 100644 --- a/feature-following/src/androidTest/java/com/google/samples/apps/nowinandroid/following/FollowingScreenTest.kt +++ b/feature-interests/src/androidTest/java/com/google/samples/apps/nowinandroid/interests/InterestsScreenTest.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.following +package com.google.samples.apps.nowinandroid.interests import androidx.activity.ComponentActivity import androidx.compose.runtime.Composable @@ -29,10 +29,10 @@ import com.google.samples.apps.nowinandroid.core.model.data.Author import com.google.samples.apps.nowinandroid.core.model.data.FollowableAuthor import com.google.samples.apps.nowinandroid.core.model.data.FollowableTopic import com.google.samples.apps.nowinandroid.core.model.data.Topic -import com.google.samples.apps.nowinandroid.feature.following.FollowingScreen -import com.google.samples.apps.nowinandroid.feature.following.FollowingTabState -import com.google.samples.apps.nowinandroid.feature.following.FollowingUiState -import com.google.samples.apps.nowinandroid.feature.following.R +import com.google.samples.apps.nowinandroid.feature.interests.InterestsScreen +import com.google.samples.apps.nowinandroid.feature.interests.InterestsTabState +import com.google.samples.apps.nowinandroid.feature.interests.InterestsUiState +import com.google.samples.apps.nowinandroid.feature.interests.R import org.junit.Before import org.junit.Rule import org.junit.Test @@ -47,19 +47,19 @@ class InterestsScreenTest { @get:Rule val composeTestRule = createAndroidComposeRule() - private lateinit var followingLoading: String - private lateinit var followingEmptyHeader: String - private lateinit var followingTopicCardFollowButton: String - private lateinit var followingTopicCardUnfollowButton: String + private lateinit var interestsLoading: String + private lateinit var interestsEmptyHeader: String + private lateinit var interestsTopicCardFollowButton: String + private lateinit var interestsTopicCardUnfollowButton: String @Before fun setup() { composeTestRule.activity.apply { - followingLoading = getString(R.string.following_loading) - followingEmptyHeader = getString(R.string.following_empty_header) - followingTopicCardFollowButton = + interestsLoading = getString(R.string.interests_loading) + interestsEmptyHeader = getString(R.string.interests_empty_header) + interestsTopicCardFollowButton = getString(R.string.interests_card_follow_button_content_desc) - followingTopicCardUnfollowButton = + interestsTopicCardUnfollowButton = getString(R.string.interests_card_unfollow_button_content_desc) } } @@ -67,22 +67,22 @@ class InterestsScreenTest { @Test fun niaLoadingWheel_inTopics_whenScreenIsLoading_showLoading() { composeTestRule.setContent { - InterestsScreen(uiState = FollowingUiState.Loading, tabIndex = 0) + InterestsScreen(uiState = InterestsUiState.Loading, tabIndex = 0) } composeTestRule - .onNodeWithContentDescription(followingLoading) + .onNodeWithContentDescription(interestsLoading) .assertExists() } @Test fun niaLoadingWheel_inAuthors_whenScreenIsLoading_showLoading() { composeTestRule.setContent { - InterestsScreen(uiState = FollowingUiState.Loading, tabIndex = 1) + InterestsScreen(uiState = InterestsUiState.Loading, tabIndex = 1) } composeTestRule - .onNodeWithContentDescription(followingLoading) + .onNodeWithContentDescription(interestsLoading) .assertExists() } @@ -90,7 +90,7 @@ class InterestsScreenTest { fun interestsWithTopics_whenTopicsFollowed_showFollowedAndUnfollowedTopicsWithInfo() { composeTestRule.setContent { InterestsScreen( - uiState = FollowingUiState.Interests(topics = testTopics, authors = listOf()), + uiState = InterestsUiState.Interests(topics = testTopics, authors = listOf()), tabIndex = 0 ) } @@ -110,11 +110,11 @@ class InterestsScreenTest { .assertCountEquals(testTopics.count()) composeTestRule - .onAllNodesWithContentDescription(followingTopicCardFollowButton) + .onAllNodesWithContentDescription(interestsTopicCardFollowButton) .assertCountEquals(numberOfUnfollowedTopics) composeTestRule - .onAllNodesWithContentDescription(followingTopicCardUnfollowButton) + .onAllNodesWithContentDescription(interestsTopicCardUnfollowButton) .assertCountEquals(testAuthors.filter { it.isFollowed }.size) } @@ -122,7 +122,7 @@ class InterestsScreenTest { fun interestsWithTopics_whenAuthorsFollowed_showFollowedAndUnfollowedTopicsWithInfo() { composeTestRule.setContent { InterestsScreen( - uiState = FollowingUiState.Interests(topics = listOf(), authors = testAuthors), + uiState = InterestsUiState.Interests(topics = listOf(), authors = testAuthors), tabIndex = 1 ) } @@ -138,42 +138,42 @@ class InterestsScreenTest { .assertIsDisplayed() composeTestRule - .onAllNodesWithContentDescription(followingTopicCardFollowButton) + .onAllNodesWithContentDescription(interestsTopicCardFollowButton) .assertCountEquals(numberOfUnfollowedAuthors) composeTestRule - .onAllNodesWithContentDescription(followingTopicCardUnfollowButton) + .onAllNodesWithContentDescription(interestsTopicCardUnfollowButton) .assertCountEquals(testTopics.filter { it.isFollowed }.size) } @Test fun topicsEmpty_whenDataIsEmptyOccurs_thenShowEmptyScreen() { composeTestRule.setContent { - InterestsScreen(uiState = FollowingUiState.Empty, tabIndex = 0) + InterestsScreen(uiState = InterestsUiState.Empty, tabIndex = 0) } composeTestRule - .onNodeWithText(followingEmptyHeader) + .onNodeWithText(interestsEmptyHeader) .assertIsDisplayed() } @Test fun authorsEmpty_whenDataIsEmptyOccurs_thenShowEmptyScreen() { composeTestRule.setContent { - InterestsScreen(uiState = FollowingUiState.Empty, tabIndex = 1) + InterestsScreen(uiState = InterestsUiState.Empty, tabIndex = 1) } composeTestRule - .onNodeWithText(followingEmptyHeader) + .onNodeWithText(interestsEmptyHeader) .assertIsDisplayed() } @Composable - private fun InterestsScreen(uiState: FollowingUiState, tabIndex: Int = 0) { - FollowingScreen( + private fun InterestsScreen(uiState: InterestsUiState, tabIndex: Int = 0) { + InterestsScreen( uiState = uiState, - tabState = FollowingTabState( - titles = listOf(R.string.following_topics, R.string.following_people), + tabState = InterestsTabState( + titles = listOf(R.string.interests_topics, R.string.interests_people), currentIndex = tabIndex ), followAuthor = { _, _ -> }, diff --git a/feature-following/src/main/AndroidManifest.xml b/feature-interests/src/main/AndroidManifest.xml similarity index 90% rename from feature-following/src/main/AndroidManifest.xml rename to feature-interests/src/main/AndroidManifest.xml index d3b98772a..13505caf9 100644 --- a/feature-following/src/main/AndroidManifest.xml +++ b/feature-interests/src/main/AndroidManifest.xml @@ -15,6 +15,6 @@ limitations under the License. --> + package="com.google.samples.apps.nowinandroid.feature.interests"> \ No newline at end of file diff --git a/feature-following/src/main/java/com/google/samples/apps/nowinandroid/feature/following/FollowingItem.kt b/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsItem.kt similarity index 90% rename from feature-following/src/main/java/com/google/samples/apps/nowinandroid/feature/following/FollowingItem.kt rename to feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsItem.kt index 7f6ef8e8c..b9c2afadd 100644 --- a/feature-following/src/main/java/com/google/samples/apps/nowinandroid/feature/following/FollowingItem.kt +++ b/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsItem.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.following +package com.google.samples.apps.nowinandroid.feature.interests import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column @@ -40,10 +40,10 @@ import androidx.compose.ui.unit.dp import coil.compose.AsyncImage import com.google.samples.apps.nowinandroid.core.ui.FollowButton import com.google.samples.apps.nowinandroid.core.ui.theme.NiaTheme -import com.google.samples.apps.nowinandroid.feature.following.R.string +import com.google.samples.apps.nowinandroid.feature.interests.R.string @Composable -fun FollowingItem( +fun InterestsItem( name: String, following: Boolean, topicImageUrl: String, @@ -65,7 +65,7 @@ fun FollowingItem( .clickable { onClick() } .padding(vertical = itemSeparation) ) { - FollowingIcon(topicImageUrl, iconModifier.size(64.dp)) + InterestsIcon(topicImageUrl, iconModifier.size(64.dp)) Spacer(modifier = Modifier.width(16.dp)) InterestContent(name, description) } @@ -102,7 +102,7 @@ private fun InterestContent(name: String, description: String, modifier: Modifie } @Composable -private fun FollowingIcon(topicImageUrl: String, modifier: Modifier = Modifier) { +private fun InterestsIcon(topicImageUrl: String, modifier: Modifier = Modifier) { if (topicImageUrl.isEmpty()) { Icon( imageVector = Filled.Android, @@ -121,10 +121,10 @@ private fun FollowingIcon(topicImageUrl: String, modifier: Modifier = Modifier) @Preview @Composable -private fun FollowingCardPreview() { +private fun InterestsCardPreview() { NiaTheme { Surface { - FollowingItem( + InterestsItem( name = "Compose", description = "Description", following = false, @@ -138,10 +138,10 @@ private fun FollowingCardPreview() { @Preview @Composable -private fun FollowingCardLongNamePreview() { +private fun InterestsCardLongNamePreview() { NiaTheme { Surface { - FollowingItem( + InterestsItem( name = "This is a very very very very long name", description = "Description", following = true, @@ -155,10 +155,10 @@ private fun FollowingCardLongNamePreview() { @Preview @Composable -private fun FollowingCardLongDescriptionPreview() { +private fun InterestsCardLongDescriptionPreview() { NiaTheme { Surface { - FollowingItem( + InterestsItem( name = "Compose", description = "This is a very very very very very very very " + "very very very long description", @@ -173,10 +173,10 @@ private fun FollowingCardLongDescriptionPreview() { @Preview @Composable -private fun FollowingCardWithEmptyDescriptionPreview() { +private fun InterestsCardWithEmptyDescriptionPreview() { NiaTheme { Surface { - FollowingItem( + InterestsItem( name = "Compose", description = "", following = true, diff --git a/feature-following/src/main/java/com/google/samples/apps/nowinandroid/feature/following/FollowingScreen.kt b/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt similarity index 88% rename from feature-following/src/main/java/com/google/samples/apps/nowinandroid/feature/following/FollowingScreen.kt rename to feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt index 49ec60549..cb6039d9f 100644 --- a/feature-following/src/main/java/com/google/samples/apps/nowinandroid/feature/following/FollowingScreen.kt +++ b/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.following +package com.google.samples.apps.nowinandroid.feature.interests import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer @@ -46,12 +46,12 @@ fun InterestsRoute( modifier: Modifier = Modifier, navigateToAuthor: () -> Unit, navigateToTopic: (String) -> Unit, - viewModel: FollowingViewModel = hiltViewModel() + viewModel: InterestsViewModel = hiltViewModel() ) { val uiState by viewModel.uiState.collectAsState() val tabState by viewModel.tabState.collectAsState() - FollowingScreen( + InterestsScreen( uiState = uiState, tabState = tabState, followTopic = viewModel::followTopic, @@ -64,9 +64,9 @@ fun InterestsRoute( } @Composable -fun FollowingScreen( - uiState: FollowingUiState, - tabState: FollowingTabState, +fun InterestsScreen( + uiState: InterestsUiState, + tabState: InterestsTabState, followAuthor: (String, Boolean) -> Unit, followTopic: (String, Boolean) -> Unit, navigateToAuthor: () -> Unit, @@ -98,26 +98,26 @@ fun FollowingScreen( ) ) when (uiState) { - FollowingUiState.Loading -> + InterestsUiState.Loading -> LoadingWheel( modifier = modifier, - contentDesc = stringResource(id = R.string.following_loading), + contentDesc = stringResource(id = R.string.interests_loading), ) - is FollowingUiState.Interests -> - FollowingContent( + is InterestsUiState.Interests -> + InterestsContent( tabState, switchTab, uiState, navigateToTopic, followTopic, navigateToAuthor, followAuthor ) - is FollowingUiState.Empty -> InterestsEmptyScreen() + is InterestsUiState.Empty -> InterestsEmptyScreen() } } } @Composable -private fun FollowingContent( - tabState: FollowingTabState, +private fun InterestsContent( + tabState: InterestsTabState, switchTab: (Int) -> Unit, - uiState: FollowingUiState.Interests, + uiState: InterestsUiState.Interests, navigateToTopic: (String) -> Unit, followTopic: (String, Boolean) -> Unit, navigateToAuthor: () -> Unit, @@ -157,5 +157,5 @@ private fun FollowingContent( @Composable private fun InterestsEmptyScreen() { - Text(text = stringResource(id = R.string.following_empty_header)) + Text(text = stringResource(id = R.string.interests_empty_header)) } diff --git a/feature-following/src/main/java/com/google/samples/apps/nowinandroid/feature/following/FollowingViewModel.kt b/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel.kt similarity index 85% rename from feature-following/src/main/java/com/google/samples/apps/nowinandroid/feature/following/FollowingViewModel.kt rename to feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel.kt index c06c3d943..f2e419d53 100644 --- a/feature-following/src/main/java/com/google/samples/apps/nowinandroid/feature/following/FollowingViewModel.kt +++ b/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.following +package com.google.samples.apps.nowinandroid.feature.interests import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope @@ -34,27 +34,27 @@ import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch @HiltViewModel -class FollowingViewModel @Inject constructor( +class InterestsViewModel @Inject constructor( private val authorsRepository: AuthorsRepository, private val topicsRepository: TopicsRepository ) : ViewModel() { private val _tabState = MutableStateFlow( - FollowingTabState( - titles = listOf(R.string.following_topics, R.string.following_people), + InterestsTabState( + titles = listOf(R.string.interests_topics, R.string.interests_people), currentIndex = 0 ) ) - val tabState: StateFlow = _tabState.asStateFlow() + val tabState: StateFlow = _tabState.asStateFlow() - val uiState: StateFlow = combine( + val uiState: StateFlow = combine( authorsRepository.getAuthorsStream(), authorsRepository.getFollowedAuthorIdsStream(), topicsRepository.getTopicsStream(), topicsRepository.getFollowedTopicIdsStream(), ) { availableAuthors, followedAuthorIdsState, availableTopics, followedTopicIdsState -> - FollowingUiState.Interests( + InterestsUiState.Interests( authors = availableAuthors .map { author -> FollowableAuthor( @@ -76,7 +76,7 @@ class FollowingViewModel @Inject constructor( .stateIn( scope = viewModelScope, started = SharingStarted.WhileSubscribed(5_000), - initialValue = FollowingUiState.Loading + initialValue = InterestsUiState.Loading ) fun followTopic(followedTopicId: String, followed: Boolean) { @@ -100,18 +100,18 @@ class FollowingViewModel @Inject constructor( } } -data class FollowingTabState( +data class InterestsTabState( val titles: List, val currentIndex: Int ) -sealed interface FollowingUiState { - object Loading : FollowingUiState +sealed interface InterestsUiState { + object Loading : InterestsUiState data class Interests( val authors: List, val topics: List - ) : FollowingUiState + ) : InterestsUiState - object Empty : FollowingUiState + object Empty : InterestsUiState } diff --git a/feature-following/src/main/java/com/google/samples/apps/nowinandroid/feature/following/TabContent.kt b/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/TabContent.kt similarity index 96% rename from feature-following/src/main/java/com/google/samples/apps/nowinandroid/feature/following/TabContent.kt rename to feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/TabContent.kt index d47c2ade8..19eadcf92 100644 --- a/feature-following/src/main/java/com/google/samples/apps/nowinandroid/feature/following/TabContent.kt +++ b/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/TabContent.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.following +package com.google.samples.apps.nowinandroid.feature.interests import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.WindowInsets @@ -44,7 +44,7 @@ fun TopicsTabContent( ) { topics.forEach { followableTopic -> item { - FollowingItem( + InterestsItem( name = followableTopic.topic.name, following = followableTopic.isFollowed, description = followableTopic.topic.shortDescription, @@ -79,7 +79,7 @@ fun AuthorsTabContent( ) { authors.forEach { followableTopic -> item { - FollowingItem( + InterestsItem( name = followableTopic.author.name, following = followableTopic.isFollowed, topicImageUrl = followableTopic.author.imageUrl, diff --git a/feature-following/src/main/res/values/strings.xml b/feature-interests/src/main/res/values/strings.xml similarity index 82% rename from feature-following/src/main/res/values/strings.xml rename to feature-interests/src/main/res/values/strings.xml index 32b643fea..e8d9f135d 100644 --- a/feature-following/src/main/res/values/strings.xml +++ b/feature-interests/src/main/res/values/strings.xml @@ -16,10 +16,10 @@ --> Interests - Topics - People - Loading data - "No available data" + Topics + People + Loading data + "No available data" Follow interest button Unfollow interest button Menu diff --git a/feature-following/src/test/java/com/google/samples/apps/nowinandroid/following/FollowingViewModelTest.kt b/feature-interests/src/test/java/com/google/samples/apps/nowinandroid/interests/InterestsViewModelTest.kt similarity index 91% rename from feature-following/src/test/java/com/google/samples/apps/nowinandroid/following/FollowingViewModelTest.kt rename to feature-interests/src/test/java/com/google/samples/apps/nowinandroid/interests/InterestsViewModelTest.kt index 1ea0a6731..248fe926d 100644 --- a/feature-following/src/test/java/com/google/samples/apps/nowinandroid/following/FollowingViewModelTest.kt +++ b/feature-interests/src/test/java/com/google/samples/apps/nowinandroid/interests/InterestsViewModelTest.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.following +package com.google.samples.apps.nowinandroid.interests import app.cash.turbine.test import com.google.samples.apps.nowinandroid.core.model.data.Author @@ -24,32 +24,32 @@ import com.google.samples.apps.nowinandroid.core.model.data.Topic import com.google.samples.apps.nowinandroid.core.testing.repository.TestAuthorsRepository import com.google.samples.apps.nowinandroid.core.testing.repository.TestTopicsRepository import com.google.samples.apps.nowinandroid.core.testing.util.TestDispatcherRule -import com.google.samples.apps.nowinandroid.feature.following.FollowingUiState -import com.google.samples.apps.nowinandroid.feature.following.FollowingViewModel +import com.google.samples.apps.nowinandroid.feature.interests.InterestsUiState +import com.google.samples.apps.nowinandroid.feature.interests.InterestsViewModel import kotlinx.coroutines.test.runTest import org.junit.Assert.assertEquals import org.junit.Before import org.junit.Rule import org.junit.Test -class FollowingViewModelTest { +class InterestsViewModelTest { @get:Rule val dispatcherRule = TestDispatcherRule() private val authorsRepository = TestAuthorsRepository() private val topicsRepository = TestTopicsRepository() - private lateinit var viewModel: FollowingViewModel + private lateinit var viewModel: InterestsViewModel @Before fun setup() { - viewModel = FollowingViewModel(authorsRepository, topicsRepository) + viewModel = InterestsViewModel(authorsRepository, topicsRepository) } @Test fun uiState_whenInitialized_thenShowLoading() = runTest { viewModel.uiState.test { - assertEquals(FollowingUiState.Loading, awaitItem()) + assertEquals(InterestsUiState.Loading, awaitItem()) cancel() } } @@ -57,7 +57,7 @@ class FollowingViewModelTest { @Test fun uiState_whenFollowedTopicsAreLoading_thenShowLoading() = runTest { viewModel.uiState.test { - assertEquals(FollowingUiState.Loading, awaitItem()) + assertEquals(InterestsUiState.Loading, awaitItem()) authorsRepository.setFollowedAuthorIds(setOf("1")) topicsRepository.setFollowedTopicIds(emptySet()) cancel() @@ -67,7 +67,7 @@ class FollowingViewModelTest { @Test fun uiState_whenFollowedAuthorsAreLoading_thenShowLoading() = runTest { viewModel.uiState.test { - assertEquals(FollowingUiState.Loading, awaitItem()) + assertEquals(InterestsUiState.Loading, awaitItem()) authorsRepository.setFollowedAuthorIds(emptySet()) topicsRepository.setFollowedTopicIds(setOf("1")) cancel() @@ -87,7 +87,7 @@ class FollowingViewModelTest { assertEquals( false, - (awaitItem() as FollowingUiState.Interests) + (awaitItem() as InterestsUiState.Interests) .topics.first { it.topic.id == toggleTopicId }.isFollowed ) @@ -97,7 +97,7 @@ class FollowingViewModelTest { ) assertEquals( - FollowingUiState.Interests(topics = testOutputTopics, authors = emptyList()), + InterestsUiState.Interests(topics = testOutputTopics, authors = emptyList()), awaitItem() ) cancel() @@ -121,7 +121,7 @@ class FollowingViewModelTest { ) assertEquals( - FollowingUiState.Interests(topics = emptyList(), authors = testOutputAuthors), + InterestsUiState.Interests(topics = emptyList(), authors = testOutputAuthors), awaitItem() ) cancel() @@ -143,7 +143,7 @@ class FollowingViewModelTest { assertEquals( true, - (awaitItem() as FollowingUiState.Interests) + (awaitItem() as InterestsUiState.Interests) .topics.first { it.topic.id == toggleTopicId }.isFollowed ) @@ -153,7 +153,7 @@ class FollowingViewModelTest { ) assertEquals( - FollowingUiState.Interests(topics = testInputTopics, authors = emptyList()), + InterestsUiState.Interests(topics = testInputTopics, authors = emptyList()), awaitItem() ) cancel() @@ -179,7 +179,7 @@ class FollowingViewModelTest { ) assertEquals( - FollowingUiState.Interests(topics = emptyList(), authors = testInputAuthors), + InterestsUiState.Interests(topics = emptyList(), authors = testInputAuthors), awaitItem() ) cancel() diff --git a/feature-topic/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/Navigation.kt b/feature-topic/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/Navigation.kt index 25916bbdf..2fca9f89f 100644 --- a/feature-topic/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/Navigation.kt +++ b/feature-topic/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/Navigation.kt @@ -20,7 +20,7 @@ import com.google.samples.apps.nowinandroid.feature.topic.InterestsScreens.TOPIC import com.google.samples.apps.nowinandroid.feature.topic.TopicDestinationsArgs.TOPIC_ID_ARG object InterestsDestinations { - const val INTERESTS_ROUTE = "interests" + const val INTERESTS_DESTINATION = "interests_destination" const val TOPIC_ROUTE = "$TOPIC_SCREEN/{$TOPIC_ID_ARG}" } diff --git a/settings.gradle.kts b/settings.gradle.kts index dfc1db4d7..bd72f719f 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -53,7 +53,7 @@ include(":core-model") include(":core-network") include(":core-ui") include(":core-testing") -include(":feature-following") include(":feature-foryou") +include(":feature-interests") include(":feature-topic") include(":sync")