gitextract_q82ekbdt/ ├── .editorconfig ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── config.yml │ │ └── quickstart_issue.md │ └── workflows/ │ └── android.yml ├── .gitignore ├── .google/ │ └── packaging.yaml ├── .opensource/ │ └── project.json ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── admob/ │ ├── .gitignore │ ├── .google/ │ │ └── packaging.yaml │ ├── README.md │ ├── app/ │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── samples/ │ │ │ └── quickstart/ │ │ │ └── admobexample/ │ │ │ ├── EntryChoiceActivity.kt │ │ │ ├── java/ │ │ │ │ ├── FirstFragment.java │ │ │ │ ├── MainActivity.java │ │ │ │ └── SecondFragment.java │ │ │ └── kotlin/ │ │ │ ├── FirstFragment.kt │ │ │ ├── MainActivity.kt │ │ │ └── SecondFragment.kt │ │ └── res/ │ │ ├── layout/ │ │ │ ├── activity_main.xml │ │ │ ├── fragment_first.xml │ │ │ └── fragment_second.xml │ │ ├── navigation/ │ │ │ ├── nav_graph_java.xml │ │ │ └── nav_graph_kotlin.xml │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── values-w820dp/ │ │ └── dimens.xml │ ├── build.gradle.kts │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle.kts ├── analytics/ │ ├── .gitignore │ ├── README.md │ ├── app/ │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── androidTest/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── firebase/ │ │ │ └── quickstart/ │ │ │ └── analytics/ │ │ │ └── MainActivityTest.java │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── firebase/ │ │ │ └── quickstart/ │ │ │ └── analytics/ │ │ │ ├── EntryChoiceActivity.kt │ │ │ ├── java/ │ │ │ │ ├── ImageFragment.java │ │ │ │ ├── ImageInfo.java │ │ │ │ └── MainActivity.java │ │ │ └── kotlin/ │ │ │ ├── ImageFragment.kt │ │ │ ├── ImageInfo.kt │ │ │ └── MainActivity.kt │ │ └── res/ │ │ ├── drawable/ │ │ │ └── circle.xml │ │ ├── layout/ │ │ │ ├── activity_main.xml │ │ │ └── fragment_main.xml │ │ ├── menu/ │ │ │ └── main.xml │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── values-v21/ │ │ │ └── styles.xml │ │ └── values-w820dp/ │ │ └── dimens.xml │ ├── build.gradle.kts │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle.kts ├── appdistribution/ │ ├── .gitignore │ ├── README.md │ ├── app/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── androidTest/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── firebase/ │ │ │ └── appdistributionquickstart/ │ │ │ └── InstrumentedTest.java │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── firebase/ │ │ │ └── appdistributionquickstart/ │ │ │ ├── EntryChoiceActivity.kt │ │ │ ├── java/ │ │ │ │ └── MainActivity.java │ │ │ └── kotlin/ │ │ │ └── KotlinMainActivity.kt │ │ └── res/ │ │ ├── drawable/ │ │ │ └── ic_launcher_background.xml │ │ ├── drawable-v24/ │ │ │ └── ic_launcher_foreground.xml │ │ ├── layout/ │ │ │ └── activity_main.xml │ │ └── values/ │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── build.gradle.kts │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle.kts ├── auth/ │ ├── .gitignore │ ├── README.md │ ├── app/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── firebase/ │ │ │ └── quickstart/ │ │ │ └── auth/ │ │ │ ├── EntryChoiceActivity.kt │ │ │ ├── java/ │ │ │ │ ├── AnonymousAuthFragment.java │ │ │ │ ├── BaseActivity.java │ │ │ │ ├── BaseFragment.java │ │ │ │ ├── ChooserFragment.java │ │ │ │ ├── CustomAuthFragment.java │ │ │ │ ├── EmailPasswordFragment.java │ │ │ │ ├── FacebookLoginFragment.java │ │ │ │ ├── FirebaseUIFragment.java │ │ │ │ ├── GenericIdpFragment.java │ │ │ │ ├── GoogleSignInFragment.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── MultiFactorEnrollFragment.java │ │ │ │ ├── MultiFactorFragment.java │ │ │ │ ├── MultiFactorSignInFragment.java │ │ │ │ ├── MultiFactorUnenrollFragment.java │ │ │ │ ├── PasswordlessActivity.java │ │ │ │ ├── PhoneAuthFragment.java │ │ │ │ └── TokenBroadcastReceiver.java │ │ │ └── kotlin/ │ │ │ ├── AnonymousAuthFragment.kt │ │ │ ├── BaseActivity.kt │ │ │ ├── BaseFragment.kt │ │ │ ├── ChooserFragment.kt │ │ │ ├── CustomAuthFragment.kt │ │ │ ├── EmailPasswordFragment.kt │ │ │ ├── FacebookLoginFragment.kt │ │ │ ├── FirebaseUIFragment.kt │ │ │ ├── GenericIdpFragment.kt │ │ │ ├── GoogleSignInFragment.kt │ │ │ ├── MainActivity.kt │ │ │ ├── MultiFactorEnrollFragment.kt │ │ │ ├── MultiFactorFragment.kt │ │ │ ├── MultiFactorSignInFragment.kt │ │ │ ├── MultiFactorUnenrollFragment.kt │ │ │ ├── PasswordlessActivity.kt │ │ │ ├── PhoneAuthFragment.kt │ │ │ └── TokenBroadcastReceiver.kt │ │ └── res/ │ │ ├── layout/ │ │ │ ├── activity_main.xml │ │ │ ├── activity_passwordless.xml │ │ │ ├── fragment_anonymous_auth.xml │ │ │ ├── fragment_chooser.xml │ │ │ ├── fragment_custom.xml │ │ │ ├── fragment_emailpassword.xml │ │ │ ├── fragment_facebook.xml │ │ │ ├── fragment_firebase_ui.xml │ │ │ ├── fragment_generic_idp.xml │ │ │ ├── fragment_google.xml │ │ │ ├── fragment_multi_factor.xml │ │ │ ├── fragment_multi_factor_sign_in.xml │ │ │ ├── fragment_passwordless.xml │ │ │ ├── fragment_phone_auth.xml │ │ │ └── item_spinner_list.xml │ │ ├── navigation/ │ │ │ ├── nav_graph_java.xml │ │ │ └── nav_graph_kotlin.xml │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── ids.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── values-land/ │ │ │ └── dimens.xml │ │ ├── values-v21/ │ │ │ └── styles.xml │ │ └── values-w820dp/ │ │ └── dimens.xml │ ├── build.gradle.kts │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle.kts │ └── web/ │ └── auth.html ├── build.gradle.kts ├── build_pull_request.sh ├── config/ │ ├── README.md │ ├── app/ │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── androidTest/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── samples/ │ │ │ └── quickstart/ │ │ │ └── config/ │ │ │ └── MainActivityTest.java │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── samples/ │ │ │ └── quickstart/ │ │ │ └── config/ │ │ │ ├── EntryChoiceActivity.kt │ │ │ ├── java/ │ │ │ │ └── MainActivity.java │ │ │ └── kotlin/ │ │ │ └── MainActivity.kt │ │ └── res/ │ │ ├── layout/ │ │ │ └── activity_main.xml │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── values-w820dp/ │ │ │ └── dimens.xml │ │ └── xml/ │ │ └── remote_config_defaults.xml │ ├── build.gradle.kts │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle.kts ├── copy_mock_google_services_json.sh ├── crash/ │ ├── .gitignore │ ├── README.md │ ├── app/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ ├── src/ │ │ │ ├── androidTest/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── google/ │ │ │ │ └── samples/ │ │ │ │ └── quickstart/ │ │ │ │ └── crash/ │ │ │ │ └── MainActivityTest.java │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── google/ │ │ │ │ └── samples/ │ │ │ │ └── quickstart/ │ │ │ │ └── crash/ │ │ │ │ ├── EntryChoiceActivity.kt │ │ │ │ ├── java/ │ │ │ │ │ ├── CustomKeySamples.java │ │ │ │ │ └── MainActivity.java │ │ │ │ └── kotlin/ │ │ │ │ ├── CustomKeySamples.kt │ │ │ │ └── MainActivity.kt │ │ │ └── res/ │ │ │ ├── layout/ │ │ │ │ └── activity_main.xml │ │ │ ├── values/ │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ └── values-w820dp/ │ │ │ └── dimens.xml │ │ └── test-proguard-rules.pro │ ├── build.gradle.kts │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle.kts ├── database/ │ ├── .gitignore │ ├── README.md │ ├── app/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── firebase/ │ │ │ └── quickstart/ │ │ │ └── database/ │ │ │ ├── EntryChoiceActivity.kt │ │ │ ├── java/ │ │ │ │ ├── BaseFragment.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── MainFragment.java │ │ │ │ ├── NewPostFragment.java │ │ │ │ ├── PostDetailFragment.java │ │ │ │ ├── SignInFragment.java │ │ │ │ ├── listfragments/ │ │ │ │ │ ├── MyPostsFragment.java │ │ │ │ │ ├── MyTopPostsFragment.java │ │ │ │ │ ├── PostListFragment.java │ │ │ │ │ └── RecentPostsFragment.java │ │ │ │ ├── models/ │ │ │ │ │ ├── Comment.java │ │ │ │ │ ├── Post.java │ │ │ │ │ └── User.java │ │ │ │ └── viewholder/ │ │ │ │ ├── CommentViewHolder.java │ │ │ │ └── PostViewHolder.java │ │ │ └── kotlin/ │ │ │ ├── BaseFragment.kt │ │ │ ├── MainActivity.kt │ │ │ ├── MainFragment.kt │ │ │ ├── NewPostFragment.kt │ │ │ ├── PostDetailFragment.kt │ │ │ ├── SignInFragment.kt │ │ │ ├── listfragments/ │ │ │ │ ├── MyPostsFragment.kt │ │ │ │ ├── MyTopPostsFragment.kt │ │ │ │ ├── PostListFragment.kt │ │ │ │ └── RecentPostsFragment.kt │ │ │ ├── models/ │ │ │ │ ├── Comment.kt │ │ │ │ ├── Post.kt │ │ │ │ └── User.kt │ │ │ └── viewholder/ │ │ │ ├── CommentViewHolder.kt │ │ │ └── PostViewHolder.kt │ │ └── res/ │ │ ├── layout/ │ │ │ ├── activity_main.xml │ │ │ ├── fragment_all_posts.xml │ │ │ ├── fragment_main.xml │ │ │ ├── fragment_new_post.xml │ │ │ ├── fragment_post_detail.xml │ │ │ ├── fragment_sign_in.xml │ │ │ ├── include_post_author.xml │ │ │ ├── include_post_text.xml │ │ │ ├── item_comment.xml │ │ │ └── item_post.xml │ │ ├── menu/ │ │ │ └── menu_main.xml │ │ ├── navigation/ │ │ │ ├── nav_graph_java.xml │ │ │ └── nav_graph_kotlin.xml │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── values-v21/ │ │ │ └── styles.xml │ │ └── values-w820dp/ │ │ └── dimens.xml │ ├── build.gradle.kts │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle.kts ├── dataconnect/ │ ├── .gitignore │ ├── README.md │ ├── app/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── firebase/ │ │ │ └── example/ │ │ │ └── dataconnect/ │ │ │ ├── MainActivity.kt │ │ │ ├── feature/ │ │ │ │ ├── actordetail/ │ │ │ │ │ ├── ActorDetailScreen.kt │ │ │ │ │ ├── ActorDetailUIState.kt │ │ │ │ │ └── ActorDetailViewModel.kt │ │ │ │ ├── moviedetail/ │ │ │ │ │ ├── MovieDetailScreen.kt │ │ │ │ │ ├── MovieDetailUIState.kt │ │ │ │ │ ├── MovieDetailViewModel.kt │ │ │ │ │ └── UserReviews.kt │ │ │ │ ├── movies/ │ │ │ │ │ ├── MoviesScreen.kt │ │ │ │ │ ├── MoviesUIState.kt │ │ │ │ │ └── MoviesViewModel.kt │ │ │ │ ├── profile/ │ │ │ │ │ ├── AuthScreen.kt │ │ │ │ │ ├── ProfileScreen.kt │ │ │ │ │ ├── ProfileUIState.kt │ │ │ │ │ └── ProfileViewModel.kt │ │ │ │ └── search/ │ │ │ │ └── Navigation.kt │ │ │ └── ui/ │ │ │ ├── components/ │ │ │ │ ├── ActorsList.kt │ │ │ │ ├── ErrorCard.kt │ │ │ │ ├── LoadingScreen.kt │ │ │ │ ├── MoviesList.kt │ │ │ │ ├── ReviewCard.kt │ │ │ │ └── ToggleButton.kt │ │ │ └── theme/ │ │ │ ├── Color.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ └── res/ │ │ ├── drawable/ │ │ │ ├── firebase_data_connect.xml │ │ │ └── ic_launcher_background.xml │ │ ├── mipmap-anydpi-v26/ │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ └── xml/ │ │ ├── backup_rules.xml │ │ └── data_extraction_rules.xml │ ├── build.gradle.kts │ ├── dataconnect/ │ │ ├── dataconnect.yaml │ │ ├── movie-connector/ │ │ │ ├── connector.yaml │ │ │ ├── mutations.gql │ │ │ └── queries.gql │ │ ├── moviedata_insert.gql │ │ └── schema/ │ │ └── schema.gql │ ├── firebase.json │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle.kts ├── dynamiclinks/ │ └── README.md ├── firebase-ai/ │ ├── .gitignore │ ├── README.md │ ├── app/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── firebase/ │ │ │ └── quickstart/ │ │ │ └── ai/ │ │ │ ├── MainActivity.kt │ │ │ ├── feature/ │ │ │ │ ├── live/ │ │ │ │ │ ├── BidiViewModel.kt │ │ │ │ │ ├── StreamAudioViewModel.kt │ │ │ │ │ └── StreamVideoViewModel.kt │ │ │ │ ├── media/ │ │ │ │ │ └── imagen/ │ │ │ │ │ ├── ImagenGenerationViewModel.kt │ │ │ │ │ ├── ImagenInpaintingViewModel.kt │ │ │ │ │ ├── ImagenOutpaintingViewModel.kt │ │ │ │ │ ├── ImagenStyleTransferViewModel.kt │ │ │ │ │ ├── ImagenSubjectReferenceViewModel.kt │ │ │ │ │ ├── ImagenTemplateViewModel.kt │ │ │ │ │ └── ImagenViewModel.kt │ │ │ │ └── text/ │ │ │ │ ├── AudioSummarizationViewModel.kt │ │ │ │ ├── AudioTranslationViewModel.kt │ │ │ │ ├── ChatViewModel.kt │ │ │ │ ├── CourseRecommendationsViewModel.kt │ │ │ │ ├── DocumentComparisonViewModel.kt │ │ │ │ ├── GoogleSearchGroundingViewModel.kt │ │ │ │ ├── ImageBlogCreatorViewModel.kt │ │ │ │ ├── ImageGenerationViewModel.kt │ │ │ │ ├── ServerPromptTemplateViewModel.kt │ │ │ │ ├── SvgViewModel.kt │ │ │ │ ├── ThinkingChatViewModel.kt │ │ │ │ ├── TranslationViewModel.kt │ │ │ │ ├── TravelTipsViewModel.kt │ │ │ │ ├── VideoHashtagGeneratorViewModel.kt │ │ │ │ ├── VideoSummarizationViewModel.kt │ │ │ │ ├── WeatherChatViewModel.kt │ │ │ │ └── functioncalling/ │ │ │ │ └── WeatherRepository.kt │ │ │ └── ui/ │ │ │ ├── CameraView.kt │ │ │ ├── ChatScreen.kt │ │ │ ├── ChatUiState.kt │ │ │ ├── ImagenScreen.kt │ │ │ ├── ImagenUiState.kt │ │ │ ├── ServerPromptScreen.kt │ │ │ ├── ServerPromptUiState.kt │ │ │ ├── StreamRealtimeScreen.kt │ │ │ ├── StreamRealtimeVideoScreen.kt │ │ │ ├── SvgScreen.kt │ │ │ ├── SvgUiState.kt │ │ │ ├── navigation/ │ │ │ │ ├── FirebaseAISamples.kt │ │ │ │ ├── MainMenuScreen.kt │ │ │ │ └── Sample.kt │ │ │ └── theme/ │ │ │ ├── Color.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ └── res/ │ │ ├── drawable/ │ │ │ ├── ic_launcher_background.xml │ │ │ └── round_arrow_drop_down_24.xml │ │ ├── drawable-v24/ │ │ │ └── ic_launcher_foreground.xml │ │ ├── mipmap-anydpi-v26/ │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ └── xml/ │ │ ├── backup_rules.xml │ │ └── data_extraction_rules.xml │ ├── build.gradle.kts │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle.kts ├── firestore/ │ ├── .gitignore │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── README.md │ ├── accounts.json │ ├── app/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ ├── src/ │ │ │ ├── androidTest/ │ │ │ │ └── AndroidManifest.xml │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── google/ │ │ │ │ └── firebase/ │ │ │ │ └── example/ │ │ │ │ └── fireeats/ │ │ │ │ ├── EntryChoiceActivity.kt │ │ │ │ ├── java/ │ │ │ │ │ ├── FilterDialogFragment.java │ │ │ │ │ ├── Filters.java │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ ├── MainFragment.java │ │ │ │ │ ├── RatingDialogFragment.java │ │ │ │ │ ├── RestaurantDetailFragment.java │ │ │ │ │ ├── adapter/ │ │ │ │ │ │ ├── FirestoreAdapter.java │ │ │ │ │ │ ├── RatingAdapter.java │ │ │ │ │ │ └── RestaurantAdapter.java │ │ │ │ │ ├── model/ │ │ │ │ │ │ ├── Rating.java │ │ │ │ │ │ └── Restaurant.java │ │ │ │ │ ├── util/ │ │ │ │ │ │ ├── RatingUtil.java │ │ │ │ │ │ └── RestaurantUtil.java │ │ │ │ │ └── viewmodel/ │ │ │ │ │ └── MainActivityViewModel.java │ │ │ │ └── kotlin/ │ │ │ │ ├── FilterDialogFragment.kt │ │ │ │ ├── Filters.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── MainFragment.kt │ │ │ │ ├── RatingDialogFragment.kt │ │ │ │ ├── RestaurantDetailFragment.kt │ │ │ │ ├── adapter/ │ │ │ │ │ ├── FirestoreAdapter.kt │ │ │ │ │ ├── RatingAdapter.kt │ │ │ │ │ └── RestaurantAdapter.kt │ │ │ │ ├── model/ │ │ │ │ │ ├── Rating.kt │ │ │ │ │ └── Restaurant.kt │ │ │ │ ├── util/ │ │ │ │ │ ├── RatingUtil.kt │ │ │ │ │ └── RestaurantUtil.kt │ │ │ │ └── viewmodel/ │ │ │ │ └── MainActivityViewModel.kt │ │ │ └── res/ │ │ │ ├── anim/ │ │ │ │ ├── slide_in_from_left.xml │ │ │ │ ├── slide_in_from_right.xml │ │ │ │ ├── slide_out_to_left.xml │ │ │ │ └── slide_out_to_right.xml │ │ │ ├── drawable/ │ │ │ │ ├── bg_shadow.xml │ │ │ │ ├── gradient_up.xml │ │ │ │ ├── ic_add_white_24px.xml │ │ │ │ ├── ic_arrow_back_white_24px.xml │ │ │ │ ├── ic_close_white_24px.xml │ │ │ │ ├── ic_fastfood_white_24dp.xml │ │ │ │ ├── ic_filter_list_white_24px.xml │ │ │ │ ├── ic_local_dining_white_24px.xml │ │ │ │ ├── ic_monetization_on_white_24px.xml │ │ │ │ ├── ic_place_white_24px.xml │ │ │ │ ├── ic_restaurant_white_24px.xml │ │ │ │ └── ic_sort_white_24px.xml │ │ │ ├── layout/ │ │ │ │ ├── activity_main.xml │ │ │ │ ├── dialog_filters.xml │ │ │ │ ├── dialog_rating.xml │ │ │ │ ├── fragment_main.xml │ │ │ │ ├── fragment_restaurant_detail.xml │ │ │ │ ├── item_rating.xml │ │ │ │ └── item_restaurant.xml │ │ │ ├── menu/ │ │ │ │ └── menu_main.xml │ │ │ ├── navigation/ │ │ │ │ ├── nav_graph_java.xml │ │ │ │ └── nav_graph_kotlin.xml │ │ │ ├── values/ │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ └── values-v21/ │ │ │ └── styles.xml │ │ └── test-proguard-rules.pro │ ├── build.gradle.kts │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ ├── indexes.json │ ├── settings.gradle.kts │ └── test_setup.sh ├── functions/ │ ├── .gitignore │ ├── README.md │ ├── app/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ ├── src/ │ │ │ ├── androidTest/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── google/ │ │ │ │ └── samples/ │ │ │ │ └── quickstart/ │ │ │ │ └── functions/ │ │ │ │ ├── MainActivityTest.java │ │ │ │ └── TestAddNumber.java │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── google/ │ │ │ │ └── samples/ │ │ │ │ └── quickstart/ │ │ │ │ └── functions/ │ │ │ │ ├── EntryChoiceActivity.kt │ │ │ │ ├── java/ │ │ │ │ │ ├── FunctionsMessagingService.java │ │ │ │ │ └── MainActivity.java │ │ │ │ └── kotlin/ │ │ │ │ ├── FunctionsMessagingService.kt │ │ │ │ └── MainActivity.kt │ │ │ └── res/ │ │ │ ├── layout/ │ │ │ │ └── activity_main.xml │ │ │ ├── values/ │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ ├── values-w820dp/ │ │ │ │ └── dimens.xml │ │ │ └── xml/ │ │ │ └── network_security_config.xml │ │ └── test-proguard-rules.pro │ ├── build.gradle.kts │ ├── firebase.json │ ├── functions/ │ │ ├── .gitignore │ │ ├── index.js │ │ ├── package.json │ │ └── sanitizer.js │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle.kts │ └── test_setup.sh ├── gradle/ │ ├── libs.versions.toml │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── inappmessaging/ │ ├── .gitignore │ ├── README.md │ ├── app/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── androidTest/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── firebase/ │ │ │ └── fiamquickstart/ │ │ │ └── InstrumentedTest.java │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── firebase/ │ │ │ └── fiamquickstart/ │ │ │ ├── EntryChoiceActivity.kt │ │ │ ├── java/ │ │ │ │ └── MainActivity.java │ │ │ └── kotlin/ │ │ │ └── KotlinMainActivity.kt │ │ └── res/ │ │ ├── drawable/ │ │ │ └── ic_launcher_background.xml │ │ ├── drawable-v24/ │ │ │ └── ic_launcher_foreground.xml │ │ ├── layout/ │ │ │ └── activity_main.xml │ │ └── values/ │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── build.gradle.kts │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle.kts ├── internal/ │ ├── chooserx/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── firebase/ │ │ │ └── example/ │ │ │ └── internal/ │ │ │ ├── BaseEntryChoiceActivity.java │ │ │ ├── Choice.java │ │ │ └── ChoiceAdapter.java │ │ └── res/ │ │ └── layout/ │ │ ├── activity_entry_choice.xml │ │ └── item_choice.xml │ ├── lint/ │ │ ├── .gitignore │ │ ├── bin/ │ │ │ ├── main/ │ │ │ │ └── com/ │ │ │ │ └── firebase/ │ │ │ │ └── lint/ │ │ │ │ ├── HungarianNotationDetector.kt │ │ │ │ ├── InvalidImportDetector.kt │ │ │ │ └── QuickstartIssueRegistry.kt │ │ │ └── test/ │ │ │ └── com/ │ │ │ └── firebase/ │ │ │ └── lint/ │ │ │ └── InvalidImportDetectorTest.kt │ │ ├── build.gradle.kts │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── firebase/ │ │ │ └── lint/ │ │ │ ├── HungarianNotationDetector.kt │ │ │ ├── InvalidImportDetector.kt │ │ │ └── QuickstartIssueRegistry.kt │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── firebase/ │ │ └── lint/ │ │ └── InvalidImportDetectorTest.kt │ └── lintchecks/ │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ └── AndroidManifest.xml ├── messaging/ │ ├── .gitignore │ ├── README.md │ ├── app/ │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── androidTest/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── firebase/ │ │ │ └── quickstart/ │ │ │ └── fcm/ │ │ │ └── MainActivityEspressoTest.java │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── firebase/ │ │ │ └── quickstart/ │ │ │ └── fcm/ │ │ │ ├── EntryChoiceActivity.kt │ │ │ ├── java/ │ │ │ │ ├── MainActivity.java │ │ │ │ ├── MyFirebaseMessagingService.java │ │ │ │ └── MyWorker.java │ │ │ └── kotlin/ │ │ │ ├── MainActivity.kt │ │ │ ├── MyFirebaseMessagingService.kt │ │ │ └── MyWorker.kt │ │ └── res/ │ │ ├── layout/ │ │ │ └── activity_main.xml │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── values-w820dp/ │ │ └── dimens.xml │ ├── build.gradle.kts │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle.kts ├── mock-google-services.json ├── perf/ │ ├── .gitignore │ ├── README.md │ ├── app/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── assets/ │ │ │ └── default_content.txt │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── firebase/ │ │ │ └── quickstart/ │ │ │ └── perfmon/ │ │ │ ├── EntryChoiceActivity.kt │ │ │ ├── java/ │ │ │ │ └── MainActivity.java │ │ │ └── kotlin/ │ │ │ └── MainActivity.kt │ │ └── res/ │ │ ├── layout/ │ │ │ └── activity_main.xml │ │ └── values/ │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── build.gradle.kts │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle.kts ├── scripts/ │ └── checksnippets.py ├── settings.gradle.kts ├── storage/ │ ├── .gitignore │ ├── README.md │ ├── app/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── androidTest/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── firebase/ │ │ │ └── quickstart/ │ │ │ └── firebasestorage/ │ │ │ ├── MainActivityTest.java │ │ │ └── ServiceIdlingResource.java │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── firebase/ │ │ │ └── quickstart/ │ │ │ └── firebasestorage/ │ │ │ ├── EntryChoiceActivity.kt │ │ │ ├── java/ │ │ │ │ ├── MainActivity.java │ │ │ │ ├── MyBaseTaskService.java │ │ │ │ ├── MyDownloadService.java │ │ │ │ └── MyUploadService.java │ │ │ └── kotlin/ │ │ │ ├── MainActivity.kt │ │ │ ├── MyBaseTaskService.kt │ │ │ ├── MyDownloadService.kt │ │ │ └── MyUploadService.kt │ │ └── res/ │ │ ├── layout/ │ │ │ └── activity_main.xml │ │ ├── menu/ │ │ │ └── menu_main.xml │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── values-w820dp/ │ │ │ └── dimens.xml │ │ └── xml/ │ │ └── file_paths.xml │ ├── build.gradle.kts │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle.kts └── vertexai/ └── README.md