gitextract_nghn_xz8/ ├── .github/ │ ├── ci-gradle.properties │ └── workflows/ │ └── iosched.yaml ├── .gitignore ├── .idea/ │ └── copyright/ │ ├── iosched.xml │ └── profiles_settings.xml ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── androidTest-shared/ │ ├── build.gradle.kts │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── google/ │ └── samples/ │ └── apps/ │ └── iosched/ │ └── androidtest/ │ └── util/ │ └── LiveDataTestUtil.kt ├── ar/ │ ├── build.gradle.kts │ ├── consumer-proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── assets/ │ │ └── images.imgdb │ ├── java/ │ │ └── com/ │ │ └── google/ │ │ └── samples/ │ │ └── apps/ │ │ └── iosched/ │ │ └── ar/ │ │ └── ArActivity.kt │ └── res/ │ └── values/ │ └── styles.xml ├── benchmark/ │ ├── build.gradle.kts │ └── src/ │ ├── androidTest/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── samples/ │ │ └── apps/ │ │ └── iosched/ │ │ └── benchmark/ │ │ ├── BootstrapConferenceDataSourceBenchmark.kt │ │ └── LoadAgendaUseCaseBenchmark.kt │ └── main/ │ └── AndroidManifest.xml ├── build.gradle.kts ├── buildSrc/ │ ├── build.gradle.kts │ └── src/ │ └── main/ │ └── java/ │ ├── Libs.kt │ └── Versions.kt ├── build_android_release.sh ├── copyright.kt ├── debug.keystore ├── depconstraints/ │ └── build.gradle.kts ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── kokoro/ │ ├── build.sh │ ├── continuous.cfg │ ├── continuous.sh │ ├── presubmit.cfg │ └── presubmit.sh ├── macrobenchmark/ │ ├── .gitignore │ ├── build.gradle │ ├── consumer-rules.pro │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── google/ │ └── samples/ │ └── apps/ │ └── iosched/ │ └── macrobenchmark/ │ ├── BaselineProfileGenerator.kt │ ├── BenchmarkUtils.kt │ ├── OpenDetailBenchmarks.kt │ ├── ScheduleBenchmarks.kt │ └── StartupBenchmarks.kt ├── mobile/ │ ├── build.gradle.kts │ ├── google-services.json │ ├── lint.xml │ ├── proguard-rules-benchmark.pro │ ├── proguard-rules.pro │ ├── sampledata/ │ │ ├── codelabs.json │ │ ├── day_indicator.json │ │ ├── map_variants.json │ │ └── tags.json │ └── src/ │ ├── androidTest/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── samples/ │ │ └── apps/ │ │ └── iosched/ │ │ └── tests/ │ │ ├── CustomTestRunner.kt │ │ ├── FixedTimeRule.kt │ │ ├── MainTestApplication.kt │ │ ├── SetPreferencesRule.kt │ │ ├── di/ │ │ │ ├── HiltExt.kt │ │ │ ├── TestCoroutinesModule.kt │ │ │ └── TestPreferencesStorageModule.kt │ │ ├── prefs/ │ │ │ └── DataStorePreferenceStorageTest.kt │ │ └── ui/ │ │ ├── AgendaTest.kt │ │ ├── CodelabTest.kt │ │ ├── HomeTest.kt │ │ ├── InfoTest.kt │ │ ├── MainActivityTestRule.kt │ │ ├── MapTest.kt │ │ ├── ScheduleTest.kt │ │ ├── SessionDetailTest.kt │ │ └── SettingsTest.kt │ ├── debugRelease/ │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── samples/ │ │ └── apps/ │ │ └── iosched/ │ │ └── di/ │ │ └── SignInModule.kt │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── assets/ │ │ │ ├── anim/ │ │ │ │ ├── 0.json │ │ │ │ ├── 1.json │ │ │ │ ├── 2.json │ │ │ │ ├── 3.json │ │ │ │ ├── 4.json │ │ │ │ ├── 5.json │ │ │ │ ├── 6.json │ │ │ │ ├── 7.json │ │ │ │ ├── 8.json │ │ │ │ └── 9.json │ │ │ └── licenses.html │ │ ├── baseline-prof.txt │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── samples/ │ │ │ └── apps/ │ │ │ └── iosched/ │ │ │ ├── MainApplication.kt │ │ │ ├── di/ │ │ │ │ ├── AppModule.kt │ │ │ │ ├── CoroutinesModule.kt │ │ │ │ └── PreferencesStorageModule.kt │ │ │ ├── ui/ │ │ │ │ ├── DispatchInsetsNavHostFragment.kt │ │ │ │ ├── LaunchViewModel.kt │ │ │ │ ├── LauncherActivity.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── MainActivityViewModel.kt │ │ │ │ ├── MainNavigation.kt │ │ │ │ ├── NavigationExtensions.kt │ │ │ │ ├── SectionHeader.kt │ │ │ │ ├── agenda/ │ │ │ │ │ ├── AgendaAdapter.kt │ │ │ │ │ ├── AgendaFragment.kt │ │ │ │ │ ├── AgendaHeaderIndexer.kt │ │ │ │ │ ├── AgendaHeadersDecoration.kt │ │ │ │ │ ├── AgendaItemBindingAdapter.kt │ │ │ │ │ └── AgendaViewModel.kt │ │ │ │ ├── ar/ │ │ │ │ │ ├── ArCoreNotSupportedFragment.kt │ │ │ │ │ └── NoNetworkConnectionFragment.kt │ │ │ │ ├── codelabs/ │ │ │ │ │ ├── CodelabsActionsHandler.kt │ │ │ │ │ ├── CodelabsAdapter.kt │ │ │ │ │ ├── CodelabsFragment.kt │ │ │ │ │ └── CodelabsViewModel.kt │ │ │ │ ├── feed/ │ │ │ │ │ ├── AnnouncementsFragment.kt │ │ │ │ │ ├── AnnouncementsViewModel.kt │ │ │ │ │ ├── FeedAdapter.kt │ │ │ │ │ ├── FeedAnnouncementViewBinders.kt │ │ │ │ │ ├── FeedFragment.kt │ │ │ │ │ ├── FeedHeaderViewBinders.kt │ │ │ │ │ ├── FeedSectionHeaderViewBinder.kt │ │ │ │ │ ├── FeedSessionsViewBinder.kt │ │ │ │ │ ├── FeedSocialChannelsSectionViewBinder.kt │ │ │ │ │ ├── FeedSustainabilitySectionViewBinder.kt │ │ │ │ │ └── FeedViewModel.kt │ │ │ │ ├── filters/ │ │ │ │ │ ├── CloseableFilterChipAdapter.kt │ │ │ │ │ ├── FilterChip.kt │ │ │ │ │ ├── FiltersFragment.kt │ │ │ │ │ ├── FiltersViewBindingAdapters.kt │ │ │ │ │ ├── FiltersViewModel.kt │ │ │ │ │ ├── FiltersViewModelDelegateModule.kt │ │ │ │ │ └── SelectableFilterChipAdapter.kt │ │ │ │ ├── info/ │ │ │ │ │ ├── EventFragment.kt │ │ │ │ │ ├── EventInfoViewModel.kt │ │ │ │ │ ├── FaqFragment.kt │ │ │ │ │ ├── InfoFragment.kt │ │ │ │ │ └── TravelFragment.kt │ │ │ │ ├── map/ │ │ │ │ │ ├── LoadGeoJsonFeaturesUseCase.kt │ │ │ │ │ ├── MapFragment.kt │ │ │ │ │ ├── MapTileProvider.kt │ │ │ │ │ ├── MapUtils.kt │ │ │ │ │ ├── MapVariant.kt │ │ │ │ │ ├── MapVariantAdapter.kt │ │ │ │ │ ├── MapVariantSelectionDialogFragment.kt │ │ │ │ │ ├── MapViewBindingAdapters.kt │ │ │ │ │ └── MapViewModel.kt │ │ │ │ ├── messages/ │ │ │ │ │ ├── SnackbarMessage.kt │ │ │ │ │ ├── SnackbarMessageFragmentExtensions.kt │ │ │ │ │ └── SnackbarMessageManager.kt │ │ │ │ ├── onboarding/ │ │ │ │ │ ├── OnboardingActivity.kt │ │ │ │ │ ├── OnboardingFragment.kt │ │ │ │ │ ├── OnboardingSignInFragment.kt │ │ │ │ │ ├── OnboardingViewModel.kt │ │ │ │ │ ├── ViewPagerPager.kt │ │ │ │ │ ├── WelcomeDuringConferenceFragment.kt │ │ │ │ │ ├── WelcomePostConferenceFragment.kt │ │ │ │ │ └── WelcomePreConferenceFragment.kt │ │ │ │ ├── reservation/ │ │ │ │ │ ├── RemoveReservationDialogFragment.kt │ │ │ │ │ ├── RemoveReservationViewModel.kt │ │ │ │ │ ├── ReservationTextView.kt │ │ │ │ │ ├── ReservationViewState.kt │ │ │ │ │ ├── ReserveButton.kt │ │ │ │ │ ├── StarReserveFab.kt │ │ │ │ │ └── SwapReservationDialogFragment.kt │ │ │ │ ├── schedule/ │ │ │ │ │ ├── DayIndicator.kt │ │ │ │ │ ├── DayIndicatorAdapter.kt │ │ │ │ │ ├── DaySeparatorItemDecoration.kt │ │ │ │ │ ├── ScheduleFragment.kt │ │ │ │ │ ├── ScheduleItemBindingAdapter.kt │ │ │ │ │ ├── ScheduleNavigationAction.kt │ │ │ │ │ ├── ScheduleTimeHeadersDecoration.kt │ │ │ │ │ ├── ScheduleTwoPaneFragment.kt │ │ │ │ │ ├── ScheduleTwoPaneViewModel.kt │ │ │ │ │ ├── ScheduleUiHintsDialogFragment.kt │ │ │ │ │ ├── ScheduleViewModel.kt │ │ │ │ │ └── SessionHeaderIndexer.kt │ │ │ │ ├── search/ │ │ │ │ │ ├── SearchFilterFragment.kt │ │ │ │ │ ├── SearchFragment.kt │ │ │ │ │ └── SearchViewModel.kt │ │ │ │ ├── sessioncommon/ │ │ │ │ │ ├── EventActions.kt │ │ │ │ │ ├── OnSessionStarClickDelegate.kt │ │ │ │ │ ├── OnSessionStarClickDelegateModule.kt │ │ │ │ │ ├── SessionCommonExtensions.kt │ │ │ │ │ ├── SessionViewPoolModule.kt │ │ │ │ │ ├── SessionsAdapter.kt │ │ │ │ │ ├── TagAdapter.kt │ │ │ │ │ └── TagBindingAdapters.kt │ │ │ │ ├── sessiondetail/ │ │ │ │ │ ├── SessionDetailAdapter.kt │ │ │ │ │ ├── SessionDetailDataBindingAdapters.kt │ │ │ │ │ ├── SessionDetailFragment.kt │ │ │ │ │ ├── SessionDetailNavigationAction.kt │ │ │ │ │ ├── SessionDetailViewModel.kt │ │ │ │ │ ├── SessionFeedbackFragment.kt │ │ │ │ │ └── SessionFeedbackViewModel.kt │ │ │ │ ├── settings/ │ │ │ │ │ ├── SettingsFragment.kt │ │ │ │ │ ├── SettingsViewModel.kt │ │ │ │ │ └── ThemeSettingDialogFragment.kt │ │ │ │ ├── signin/ │ │ │ │ │ ├── NotificationsPreferenceDialogFragment.kt │ │ │ │ │ ├── SignInDialogFragment.kt │ │ │ │ │ ├── SignInViewExtensions.kt │ │ │ │ │ ├── SignInViewModel.kt │ │ │ │ │ ├── SignInViewModelDelegate.kt │ │ │ │ │ ├── SignInViewModelDelegateModule.kt │ │ │ │ │ └── SignOutDialogFragment.kt │ │ │ │ ├── speaker/ │ │ │ │ │ ├── SpeakerAdapter.kt │ │ │ │ │ ├── SpeakerBindingAdapters.kt │ │ │ │ │ ├── SpeakerFragment.kt │ │ │ │ │ └── SpeakerViewModel.kt │ │ │ │ └── theme/ │ │ │ │ ├── ThemeViewModel.kt │ │ │ │ ├── ThemedActivityDelegate.kt │ │ │ │ └── ThemedActivityDelegateModule.kt │ │ │ ├── util/ │ │ │ │ ├── CircularOutlineProvider.kt │ │ │ │ ├── CrashlyticsTree.kt │ │ │ │ ├── Extensions.kt │ │ │ │ ├── FirebaseAnalyticsHelper.kt │ │ │ │ ├── GlideTargets.kt │ │ │ │ ├── NavigationBarScrimBehavior.kt │ │ │ │ ├── RecyclerViewExtensions.kt │ │ │ │ ├── SharingStartedViews.kt │ │ │ │ ├── StatusBarScrimBehavior.kt │ │ │ │ ├── UiUtils.kt │ │ │ │ ├── ViewBindingAdapters.kt │ │ │ │ ├── WindowInsetsListeners.kt │ │ │ │ ├── initializers/ │ │ │ │ │ ├── AndroidThreeTenInitializer.kt │ │ │ │ │ ├── StrictModeInitializer.kt │ │ │ │ │ └── TimberInitializer.kt │ │ │ │ ├── signin/ │ │ │ │ │ ├── FirebaseAuthErrorCodeConverter.kt │ │ │ │ │ ├── SignInHandler.kt │ │ │ │ │ └── SignInResult.kt │ │ │ │ └── wifi/ │ │ │ │ └── WifiInstaller.kt │ │ │ └── widget/ │ │ │ ├── BottomSheetBehavior.kt │ │ │ ├── BubbleDecoration.kt │ │ │ ├── CollapsibleCard.kt │ │ │ ├── CountdownView.kt │ │ │ ├── CustomSwipeRefreshLayout.kt │ │ │ ├── EventCardView.kt │ │ │ ├── FadingSnackbar.kt │ │ │ ├── HashtagIoDecoration.kt │ │ │ ├── IoSlidingPaneLayout.kt │ │ │ ├── JumpSmoothScroller.kt │ │ │ ├── NavigationBarContentFrameLayout.kt │ │ │ ├── NoTouchRecyclerView.kt │ │ │ ├── SimpleRatingBar.kt │ │ │ ├── SpaceDecoration.kt │ │ │ └── transition/ │ │ │ └── RotateX.kt │ │ └── res/ │ │ ├── animator/ │ │ │ └── active_alpha.xml │ │ ├── color/ │ │ │ ├── chip_bg.xml │ │ │ ├── chip_stroke.xml │ │ │ ├── map_variant_icon.xml │ │ │ ├── map_variant_text.xml │ │ │ ├── navigation_item_background_tint.xml │ │ │ └── schedule_day_indicator_text.xml │ │ ├── drawable/ │ │ │ ├── arcore_gray.xml │ │ │ ├── asld_chip_icon.xml │ │ │ ├── asld_reservation.xml │ │ │ ├── asld_star_event.xml │ │ │ ├── avd_chip_check_to_dot.xml │ │ │ ├── avd_chip_dot_to_check.xml │ │ │ ├── avd_pending_to_reservable.xml │ │ │ ├── avd_pending_to_reserved.xml │ │ │ ├── avd_pending_to_waitlisted.xml │ │ │ ├── avd_reservable_to_pending.xml │ │ │ ├── avd_reserved_to_pending.xml │ │ │ ├── avd_star_event.xml │ │ │ ├── avd_unstar_event.xml │ │ │ ├── avd_waitlisted_to_pending.xml │ │ │ ├── bullet_small.xml │ │ │ ├── chip_check.xml │ │ │ ├── chip_dot.xml │ │ │ ├── divider_empty_margin_normal.xml │ │ │ ├── divider_empty_margin_small.xml │ │ │ ├── divider_slash.xml │ │ │ ├── event_header_afterhours.xml │ │ │ ├── event_header_codelabs.xml │ │ │ ├── event_header_meals.xml │ │ │ ├── event_header_office_hours.xml │ │ │ ├── event_header_sandbox.xml │ │ │ ├── event_header_sessions.xml │ │ │ ├── event_narrow_afterhours.xml │ │ │ ├── event_narrow_app_reviews1.xml │ │ │ ├── event_narrow_app_reviews2.xml │ │ │ ├── event_narrow_app_reviews3.xml │ │ │ ├── event_narrow_game_reviews1.xml │ │ │ ├── event_narrow_game_reviews2.xml │ │ │ ├── event_narrow_game_reviews3.xml │ │ │ ├── event_narrow_keynote.xml │ │ │ ├── event_narrow_office_hours1.xml │ │ │ ├── event_narrow_office_hours2.xml │ │ │ ├── event_narrow_office_hours3.xml │ │ │ ├── event_narrow_other.xml │ │ │ ├── event_narrow_session1.xml │ │ │ ├── event_narrow_session2.xml │ │ │ ├── event_narrow_session3.xml │ │ │ ├── event_narrow_session4.xml │ │ │ ├── event_placeholder_keynote.xml │ │ │ ├── event_placeholder_session1.xml │ │ │ ├── event_placeholder_session2.xml │ │ │ ├── event_placeholder_session3.xml │ │ │ ├── event_placeholder_session4.xml │ │ │ ├── fading_snackbar_background.xml │ │ │ ├── filters_sheet_background.xml │ │ │ ├── filters_sheet_header_shadow.xml │ │ │ ├── generic_placeholder.xml │ │ │ ├── hashtag_io19.xml │ │ │ ├── ic_agenda_after_hours.xml │ │ │ ├── ic_agenda_badge.xml │ │ │ ├── ic_agenda_codelab.xml │ │ │ ├── ic_agenda_concert.xml │ │ │ ├── ic_agenda_keynote.xml │ │ │ ├── ic_agenda_meal.xml │ │ │ ├── ic_agenda_office_hours.xml │ │ │ ├── ic_agenda_sandbox.xml │ │ │ ├── ic_agenda_session.xml │ │ │ ├── ic_agenda_store.xml │ │ │ ├── ic_arrow_back.xml │ │ │ ├── ic_arrow_right.xml │ │ │ ├── ic_clear_all.xml │ │ │ ├── ic_default_avatar_1.xml │ │ │ ├── ic_default_avatar_2.xml │ │ │ ├── ic_default_avatar_3.xml │ │ │ ├── ic_default_profile_avatar.xml │ │ │ ├── ic_expand_more.xml │ │ │ ├── ic_feed_social_button_bg.xml │ │ │ ├── ic_filter.xml │ │ │ ├── ic_filter_clear.xml │ │ │ ├── ic_launch.xml │ │ │ ├── ic_layers.xml │ │ │ ├── ic_login.xml │ │ │ ├── ic_logo_assistant.xml │ │ │ ├── ic_logo_components.xml │ │ │ ├── ic_logo_facebook.xml │ │ │ ├── ic_logo_google_developers.xml │ │ │ ├── ic_logo_instagram.xml │ │ │ ├── ic_logo_twitter.xml │ │ │ ├── ic_logo_youtube.xml │ │ │ ├── ic_logout.xml │ │ │ ├── ic_map_after_dark.xml │ │ │ ├── ic_map_concert.xml │ │ │ ├── ic_map_daytime.xml │ │ │ ├── ic_menu.xml │ │ │ ├── ic_my_location.xml │ │ │ ├── ic_nav_agenda.xml │ │ │ ├── ic_nav_codelabs.xml │ │ │ ├── ic_nav_home.xml │ │ │ ├── ic_nav_info.xml │ │ │ ├── ic_nav_map.xml │ │ │ ├── ic_nav_schedule.xml │ │ │ ├── ic_nav_settings.xml │ │ │ ├── ic_nav_signpost.xml │ │ │ ├── ic_play.xml │ │ │ ├── ic_play_circle_outline.xml │ │ │ ├── ic_question_answer.xml │ │ │ ├── ic_reservable.xml │ │ │ ├── ic_reservation.xml │ │ │ ├── ic_reservation_disabled.xml │ │ │ ├── ic_reservation_pending.xml │ │ │ ├── ic_reserved.xml │ │ │ ├── ic_search.xml │ │ │ ├── ic_share.xml │ │ │ ├── ic_sustainability_art.xml │ │ │ ├── ic_tune.xml │ │ │ ├── ic_waitlist_available.xml │ │ │ ├── ic_waitlisted.xml │ │ │ ├── io_logo_color.xml │ │ │ ├── list_divider.xml │ │ │ ├── map_marker_1.xml │ │ │ ├── map_marker_2.xml │ │ │ ├── map_marker_3.xml │ │ │ ├── map_marker_4.xml │ │ │ ├── map_marker_5.xml │ │ │ ├── map_marker_6.xml │ │ │ ├── map_marker_7.xml │ │ │ ├── map_marker_8.xml │ │ │ ├── map_marker_a.xml │ │ │ ├── map_marker_b.xml │ │ │ ├── map_marker_bike.xml │ │ │ ├── map_marker_c.xml │ │ │ ├── map_marker_charging.xml │ │ │ ├── map_marker_d.xml │ │ │ ├── map_marker_drink.xml │ │ │ ├── map_marker_e.xml │ │ │ ├── map_marker_f.xml │ │ │ ├── map_marker_food.xml │ │ │ ├── map_marker_g.xml │ │ │ ├── map_marker_h.xml │ │ │ ├── map_marker_handicap.xml │ │ │ ├── map_marker_i.xml │ │ │ ├── map_marker_info.xml │ │ │ ├── map_marker_label_background.xml │ │ │ ├── map_marker_lounge.xml │ │ │ ├── map_marker_medical.xml │ │ │ ├── map_marker_mothers_room.xml │ │ │ ├── map_marker_parking.xml │ │ │ ├── map_marker_restroom.xml │ │ │ ├── map_marker_rideshare.xml │ │ │ ├── map_marker_service_dog.xml │ │ │ ├── map_marker_shuttle.xml │ │ │ ├── map_marker_star.xml │ │ │ ├── map_marker_store.xml │ │ │ ├── map_marker_water.xml │ │ │ ├── navigation_item_background.xml │ │ │ ├── no_items_found_204.xml │ │ │ ├── onboarding_io_19.xml │ │ │ ├── onboarding_io_date_2019.xml │ │ │ ├── onboarding_schedule.xml │ │ │ ├── page_margin.xml │ │ │ ├── preview_window.xml │ │ │ ├── signal_wifi_off.xml │ │ │ ├── tab_indicator.xml │ │ │ └── unrated_thumb.xml │ │ ├── drawable-anydpi-v23/ │ │ │ ├── preview_window.xml │ │ │ └── preview_window_logo.xml │ │ ├── layout/ │ │ │ ├── activity_main.xml │ │ │ ├── activity_onboarding.xml │ │ │ ├── activity_session_detail.xml │ │ │ ├── collapsible_card_content.xml │ │ │ ├── countdown.xml │ │ │ ├── dialog_schedule_hints.xml │ │ │ ├── dialog_sign_in.xml │ │ │ ├── dialog_sign_out.xml │ │ │ ├── event_card_content.xml │ │ │ ├── fading_snackbar_layout.xml │ │ │ ├── fragment_agenda.xml │ │ │ ├── fragment_announcements.xml │ │ │ ├── fragment_arcore_not_supported.xml │ │ │ ├── fragment_codelabs.xml │ │ │ ├── fragment_feed.xml │ │ │ ├── fragment_filters.xml │ │ │ ├── fragment_info.xml │ │ │ ├── fragment_info_event.xml │ │ │ ├── fragment_info_faq.xml │ │ │ ├── fragment_info_travel.xml │ │ │ ├── fragment_map.xml │ │ │ ├── fragment_map_variant_select.xml │ │ │ ├── fragment_no_network.xml │ │ │ ├── fragment_onboarding.xml │ │ │ ├── fragment_onboarding_signin.xml │ │ │ ├── fragment_onboarding_welcome_during.xml │ │ │ ├── fragment_onboarding_welcome_post.xml │ │ │ ├── fragment_onboarding_welcome_pre.xml │ │ │ ├── fragment_schedule.xml │ │ │ ├── fragment_schedule_two_pane.xml │ │ │ ├── fragment_search.xml │ │ │ ├── fragment_session_detail.xml │ │ │ ├── fragment_session_feedback.xml │ │ │ ├── fragment_settings.xml │ │ │ ├── fragment_speaker.xml │ │ │ ├── include_agenda_contents.xml │ │ │ ├── info_wifi_card.xml │ │ │ ├── item_agenda_dark.xml │ │ │ ├── item_agenda_light.xml │ │ │ ├── item_codelab.xml │ │ │ ├── item_codelabs_information_card.xml │ │ │ ├── item_feed_announcement.xml │ │ │ ├── item_feed_announcements_empty.xml │ │ │ ├── item_feed_announcements_header.xml │ │ │ ├── item_feed_announcements_loading.xml │ │ │ ├── item_feed_countdown.xml │ │ │ ├── item_feed_moment.xml │ │ │ ├── item_feed_session.xml │ │ │ ├── item_feed_sessions_container.xml │ │ │ ├── item_feed_social_channels.xml │ │ │ ├── item_feed_sustainability.xml │ │ │ ├── item_filter_chip_closeable.xml │ │ │ ├── item_filter_chip_selectable.xml │ │ │ ├── item_generic_section_header.xml │ │ │ ├── item_inline_tag.xml │ │ │ ├── item_map_variant.xml │ │ │ ├── item_question.xml │ │ │ ├── item_schedule_day_indicator.xml │ │ │ ├── item_session.xml │ │ │ ├── item_session_info.xml │ │ │ ├── item_speaker.xml │ │ │ ├── item_speaker_info.xml │ │ │ ├── navigation_header.xml │ │ │ ├── navigation_rail_header.xml │ │ │ ├── search_active_filters_narrow.xml │ │ │ └── search_active_filters_wide.xml │ │ ├── layout-w500dp/ │ │ │ └── event_card_content.xml │ │ ├── layout-w720dp/ │ │ │ └── activity_main.xml │ │ ├── layout-w840dp/ │ │ │ └── item_codelab.xml │ │ ├── menu/ │ │ │ ├── bar_navigation.xml │ │ │ ├── codelabs_menu.xml │ │ │ ├── drawer_navigation.xml │ │ │ ├── map_menu.xml │ │ │ ├── profile.xml │ │ │ ├── schedule_menu.xml │ │ │ ├── search_menu.xml │ │ │ └── session_detail_menu.xml │ │ ├── navigation/ │ │ │ ├── nav_graph.xml │ │ │ ├── schedule_detail.xml │ │ │ └── schedule_list.xml │ │ ├── raw/ │ │ │ ├── map_markers_concert.json │ │ │ ├── map_markers_day.json │ │ │ ├── map_markers_night.json │ │ │ ├── map_style_day.json │ │ │ └── map_style_night.json │ │ ├── transition/ │ │ │ ├── codelab_toggle.xml │ │ │ ├── info_card_toggle.xml │ │ │ └── speaker_shared_enter.xml │ │ ├── values/ │ │ │ ├── attrs.xml │ │ │ ├── colors.xml │ │ │ ├── config.xml │ │ │ ├── dimens.xml │ │ │ ├── donottranslate.xml │ │ │ ├── ids.xml │ │ │ ├── strings.xml │ │ │ ├── styles.xml │ │ │ └── themes.xml │ │ ├── values-ar/ │ │ │ └── strings.xml │ │ ├── values-ar-rEG/ │ │ │ └── strings.xml │ │ ├── values-ar-rSA/ │ │ │ └── strings.xml │ │ ├── values-de/ │ │ │ └── strings.xml │ │ ├── values-de-rAT/ │ │ │ └── strings.xml │ │ ├── values-de-rCH/ │ │ │ └── strings.xml │ │ ├── values-es-rAR/ │ │ │ └── strings.xml │ │ ├── values-es-rBO/ │ │ │ └── strings.xml │ │ ├── values-es-rCL/ │ │ │ └── strings.xml │ │ ├── values-es-rCO/ │ │ │ └── strings.xml │ │ ├── values-es-rCR/ │ │ │ └── strings.xml │ │ ├── values-es-rDO/ │ │ │ └── strings.xml │ │ ├── values-es-rEC/ │ │ │ └── strings.xml │ │ ├── values-es-rGT/ │ │ │ └── strings.xml │ │ ├── values-es-rHN/ │ │ │ └── strings.xml │ │ ├── values-es-rMX/ │ │ │ └── strings.xml │ │ ├── values-es-rNI/ │ │ │ └── strings.xml │ │ ├── values-es-rPA/ │ │ │ └── strings.xml │ │ ├── values-es-rPE/ │ │ │ └── strings.xml │ │ ├── values-es-rPR/ │ │ │ └── strings.xml │ │ ├── values-es-rPY/ │ │ │ └── strings.xml │ │ ├── values-es-rSV/ │ │ │ └── strings.xml │ │ ├── values-es-rUS/ │ │ │ └── strings.xml │ │ ├── values-es-rUY/ │ │ │ └── strings.xml │ │ ├── values-es-rVE/ │ │ │ └── strings.xml │ │ ├── values-fa/ │ │ │ └── strings.xml │ │ ├── values-fr/ │ │ │ └── strings.xml │ │ ├── values-fr-rCH/ │ │ │ └── strings.xml │ │ ├── values-gsw/ │ │ │ └── strings.xml │ │ ├── values-h600dp/ │ │ │ └── dimens.xml │ │ ├── values-it/ │ │ │ └── strings.xml │ │ ├── values-ja/ │ │ │ └── strings.xml │ │ ├── values-ko/ │ │ │ └── strings.xml │ │ ├── values-land/ │ │ │ └── strings.xml │ │ ├── values-ldrtl/ │ │ │ └── dimens.xml │ │ ├── values-ln/ │ │ │ └── strings.xml │ │ ├── values-night/ │ │ │ └── colors.xml │ │ ├── values-notnight-v23/ │ │ │ ├── colors.xml │ │ │ └── config.xml │ │ ├── values-notnight-v27/ │ │ │ ├── colors.xml │ │ │ └── config.xml │ │ ├── values-pt/ │ │ │ └── strings.xml │ │ ├── values-pt-rBR/ │ │ │ └── strings.xml │ │ ├── values-ru/ │ │ │ └── strings.xml │ │ ├── values-sw384dp/ │ │ │ └── dimens.xml │ │ ├── values-th/ │ │ │ └── strings.xml │ │ ├── values-v29/ │ │ │ └── themes.xml │ │ ├── values-vi/ │ │ │ └── strings.xml │ │ ├── values-w1024dp/ │ │ │ └── dimens.xml │ │ ├── values-w500dp/ │ │ │ └── dimens.xml │ │ ├── values-w600dp/ │ │ │ └── dimens.xml │ │ ├── values-w840dp/ │ │ │ ├── dimens.xml │ │ │ ├── donottranslate.xml │ │ │ └── styles.xml │ │ ├── values-zh/ │ │ │ └── strings.xml │ │ ├── values-zh-rCN/ │ │ │ └── strings.xml │ │ ├── values-zh-rHK/ │ │ │ └── strings.xml │ │ └── values-zh-rTW/ │ │ └── strings.xml │ ├── release/ │ │ └── google-services.json │ ├── staging/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── samples/ │ │ └── apps/ │ │ └── iosched/ │ │ ├── di/ │ │ │ └── SignInModule.kt │ │ ├── shared/ │ │ │ └── data/ │ │ │ └── login/ │ │ │ ├── StagingSignInHandler.kt │ │ │ └── datasources/ │ │ │ └── StagingUserDataSources.kt │ │ └── test/ │ │ └── HiltTestActivity.kt │ └── test/ │ └── java/ │ └── com/ │ └── google/ │ └── samples/ │ └── apps/ │ └── iosched/ │ ├── model/ │ │ └── MobileTestData.kt │ ├── test/ │ │ └── util/ │ │ ├── fakes/ │ │ │ ├── FakeAnalyticsHelper.kt │ │ │ ├── FakeAppDatabase.kt │ │ │ ├── FakeConferenceDataSource.kt │ │ │ ├── FakeOnSessionStarClickDelegate.kt │ │ │ ├── FakePreferenceStorage.kt │ │ │ ├── FakeSignInViewModelDelegate.kt │ │ │ ├── FakeStarEventUseCase.kt │ │ │ └── FakeThemedActivityDelegate.kt │ │ └── time/ │ │ └── FixedTimeProvider.kt │ ├── ui/ │ │ ├── LaunchViewModelTest.kt │ │ ├── MainActivityViewModelTest.kt │ │ ├── agenda/ │ │ │ ├── AgendaHeaderIndexerTest.kt │ │ │ └── AgendaViewModelTest.kt │ │ ├── codelabs/ │ │ │ └── CodelabsViewModelTest.kt │ │ ├── feed/ │ │ │ ├── FeedViewModelTest.kt │ │ │ ├── TestAnnouncementDataSource.kt │ │ │ └── TestMomentDataSource.kt │ │ ├── filters/ │ │ │ └── FiltersViewModelTest.kt │ │ ├── map/ │ │ │ ├── MapVariantTest.kt │ │ │ └── MapViewModelTest.kt │ │ ├── messages/ │ │ │ └── SnackbarMessageManagerTest.kt │ │ ├── onboarding/ │ │ │ └── OnboardingViewModelTest.kt │ │ ├── reservation/ │ │ │ └── RemoveReservationViewModelTest.kt │ │ ├── schedule/ │ │ │ ├── MarkScheduleUiHintsShownUseCaseTest.kt │ │ │ ├── ScheduleViewModelTest.kt │ │ │ ├── SessionHeaderIndexerTest.kt │ │ │ └── TestUserEventDataSource.kt │ │ ├── sessioncommon/ │ │ │ └── OnSessionStarClickDelegateTest.kt │ │ ├── sessiondetail/ │ │ │ ├── SessionDetailViewModelTest.kt │ │ │ └── SessionFeedbackViewModelTest.kt │ │ ├── settings/ │ │ │ └── SettingsViewModelTest.kt │ │ ├── signin/ │ │ │ ├── FirebaseSignInViewModelDelegateTest.kt │ │ │ └── SignInViewModelTest.kt │ │ └── speaker/ │ │ └── SpeakerViewModelTest.kt │ └── util/ │ ├── WifiConfigurationStringsTest.kt │ └── signin/ │ └── FirebaseAuthErrorCodeConverterTest.kt ├── model/ │ ├── build.gradle.kts │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── google/ │ └── samples/ │ └── apps/ │ └── iosched/ │ └── model/ │ ├── Announcement.kt │ ├── Block.kt │ ├── Codelab.kt │ ├── ConferenceData.kt │ ├── ConferenceDay.kt │ ├── ConferenceWifiInfo.kt │ ├── Moment.kt │ ├── Room.kt │ ├── Session.kt │ ├── Speaker.kt │ ├── Tag.kt │ ├── Theme.kt │ ├── User.kt │ ├── filters/ │ │ └── Filter.kt │ ├── reservations/ │ │ ├── ReservationRequest.kt │ │ └── ReservationRequestResult.kt │ ├── schedule/ │ │ └── PinnedSessionsSchedule.kt │ └── userdata/ │ ├── UserEvent.kt │ └── UserSession.kt ├── playstore/ │ ├── listing_ar.txt │ ├── listing_de.txt │ ├── listing_en.txt │ ├── listing_es-rES.txt │ ├── listing_fr.txt │ ├── listing_it.txt │ ├── listing_ja.txt │ ├── listing_ko.txt │ ├── listing_pt-rBR.txt │ ├── listing_ru-rRU.txt │ ├── listing_zh-rCN.txt │ ├── src/ │ │ └── main/ │ │ └── res/ │ │ ├── values/ │ │ │ └── strings.xml │ │ ├── values-ar/ │ │ │ └── strings.xml │ │ ├── values-ar-rEG/ │ │ │ └── strings.xml │ │ ├── values-ar-rSA/ │ │ │ └── strings.xml │ │ ├── values-de/ │ │ │ └── strings.xml │ │ ├── values-de-rAT/ │ │ │ └── strings.xml │ │ ├── values-de-rCH/ │ │ │ └── strings.xml │ │ ├── values-es-rAR/ │ │ │ └── strings.xml │ │ ├── values-es-rBO/ │ │ │ └── strings.xml │ │ ├── values-es-rCL/ │ │ │ └── strings.xml │ │ ├── values-es-rCO/ │ │ │ └── strings.xml │ │ ├── values-es-rCR/ │ │ │ └── strings.xml │ │ ├── values-es-rDO/ │ │ │ └── strings.xml │ │ ├── values-es-rEC/ │ │ │ └── strings.xml │ │ ├── values-es-rGT/ │ │ │ └── strings.xml │ │ ├── values-es-rHN/ │ │ │ └── strings.xml │ │ ├── values-es-rMX/ │ │ │ └── strings.xml │ │ ├── values-es-rNI/ │ │ │ └── strings.xml │ │ ├── values-es-rPA/ │ │ │ └── strings.xml │ │ ├── values-es-rPE/ │ │ │ └── strings.xml │ │ ├── values-es-rPR/ │ │ │ └── strings.xml │ │ ├── values-es-rPY/ │ │ │ └── strings.xml │ │ ├── values-es-rSV/ │ │ │ └── strings.xml │ │ ├── values-es-rUS/ │ │ │ └── strings.xml │ │ ├── values-es-rUY/ │ │ │ └── strings.xml │ │ ├── values-es-rVE/ │ │ │ └── strings.xml │ │ ├── values-fa/ │ │ │ └── strings.xml │ │ ├── values-fr/ │ │ │ └── strings.xml │ │ ├── values-fr-rCH/ │ │ │ └── strings.xml │ │ ├── values-gsw/ │ │ │ └── strings.xml │ │ ├── values-it/ │ │ │ └── strings.xml │ │ ├── values-ja/ │ │ │ └── strings.xml │ │ ├── values-ko/ │ │ │ └── strings.xml │ │ ├── values-ln/ │ │ │ └── strings.xml │ │ ├── values-pt/ │ │ │ └── strings.xml │ │ ├── values-pt-rBR/ │ │ │ └── strings.xml │ │ ├── values-ru/ │ │ │ └── strings.xml │ │ ├── values-th/ │ │ │ └── strings.xml │ │ ├── values-vi/ │ │ │ └── strings.xml │ │ ├── values-zh/ │ │ │ └── strings.xml │ │ ├── values-zh-rCN/ │ │ │ └── strings.xml │ │ ├── values-zh-rHK/ │ │ │ └── strings.xml │ │ └── values-zh-rTW/ │ │ └── strings.xml │ └── storelisting_zh-TW.txt ├── settings.gradle.kts ├── shared/ │ ├── build.gradle.kts │ ├── consumer-proguard-rules.pro │ ├── google-services.json │ └── src/ │ ├── debugRelease/ │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── samples/ │ │ └── apps/ │ │ └── iosched/ │ │ └── shared/ │ │ └── di/ │ │ └── SharedModule.kt │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── samples/ │ │ │ └── apps/ │ │ │ └── iosched/ │ │ │ └── shared/ │ │ │ ├── analytics/ │ │ │ │ └── AnalyticsHelper.kt │ │ │ ├── data/ │ │ │ │ ├── BootstrapConferenceDataSource.kt │ │ │ │ ├── ConferenceDataDownloader.kt │ │ │ │ ├── ConferenceDataJsonParser.kt │ │ │ │ ├── ConferenceDataRepository.kt │ │ │ │ ├── ConferenceDataSource.kt │ │ │ │ ├── FirestoreExtensions.kt │ │ │ │ ├── NetworkConferenceDataSource.kt │ │ │ │ ├── agenda/ │ │ │ │ │ ├── AgendaBlocks.kt │ │ │ │ │ └── AgendaRepository.kt │ │ │ │ ├── ar/ │ │ │ │ │ └── ArDebugFlagEndpoint.kt │ │ │ │ ├── codelabs/ │ │ │ │ │ └── CodelabsRepository.kt │ │ │ │ ├── config/ │ │ │ │ │ ├── AppConfigDataSource.kt │ │ │ │ │ └── RemoteAppConfigDataSource.kt │ │ │ │ ├── db/ │ │ │ │ │ ├── AppDatabase.kt │ │ │ │ │ ├── CodelabFtsDao.kt │ │ │ │ │ ├── CodelabFtsEntity.kt │ │ │ │ │ ├── SessionFtsDao.kt │ │ │ │ │ ├── SessionFtsEntity.kt │ │ │ │ │ ├── SpeakerFtsDao.kt │ │ │ │ │ └── SpeakerFtsEntity.kt │ │ │ │ ├── feed/ │ │ │ │ │ ├── DefaultFeedRepository.kt │ │ │ │ │ ├── FirestoreAnnouncementDataSource.kt │ │ │ │ │ └── FirestoreMomentDataSource.kt │ │ │ │ ├── feedback/ │ │ │ │ │ └── FeedbackEndpoint.kt │ │ │ │ ├── job/ │ │ │ │ │ └── ConferenceDataService.kt │ │ │ │ ├── prefs/ │ │ │ │ │ └── PreferenceStorage.kt │ │ │ │ ├── session/ │ │ │ │ │ ├── SessionRepository.kt │ │ │ │ │ └── json/ │ │ │ │ │ ├── CodelabDeserializer.kt │ │ │ │ │ ├── CodelabTemp.kt │ │ │ │ │ ├── ColorDeserializer.kt │ │ │ │ │ ├── DeserializerUtils.kt │ │ │ │ │ ├── RoomDeserializer.kt │ │ │ │ │ ├── SessionDeserializer.kt │ │ │ │ │ ├── SessionTemp.kt │ │ │ │ │ ├── SpeakerDeserializer.kt │ │ │ │ │ └── TagDeserializer.kt │ │ │ │ ├── signin/ │ │ │ │ │ ├── AuthenticatedUserInfo.kt │ │ │ │ │ ├── AuthenticatedUserRegistration.kt │ │ │ │ │ ├── FirebaseRegisteredUserInfo.kt │ │ │ │ │ └── datasources/ │ │ │ │ │ ├── AuthIdDataSource.kt │ │ │ │ │ ├── AuthStateUserDataSource.kt │ │ │ │ │ ├── FirebaseAuthStateUserDataSource.kt │ │ │ │ │ ├── FirestoreRegisteredUserDataSource.kt │ │ │ │ │ └── RegisteredUserDataSource.kt │ │ │ │ ├── tag/ │ │ │ │ │ ├── TagDataSource.kt │ │ │ │ │ └── TagRepository.kt │ │ │ │ └── userevent/ │ │ │ │ ├── DefaultSessionAndUserEventRepository.kt │ │ │ │ ├── FirestoreUserEventDataSource.kt │ │ │ │ ├── FirestoreUserEventParser.kt │ │ │ │ ├── UserEventDataSource.kt │ │ │ │ └── UserEventsMessageGenerator.kt │ │ │ ├── di/ │ │ │ │ ├── CoroutinesQualifiers.kt │ │ │ │ ├── FeatureFlagAnnotations.kt │ │ │ │ ├── FeatureFlagsModule.kt │ │ │ │ └── MainThreadHandler.kt │ │ │ ├── domain/ │ │ │ │ ├── CoroutineUseCase.kt │ │ │ │ ├── FlowUseCase.kt │ │ │ │ ├── MediatorUseCase.kt │ │ │ │ ├── RefreshConferenceDataUseCase.kt │ │ │ │ ├── agenda/ │ │ │ │ │ └── LoadAgendaUseCase.kt │ │ │ │ ├── ar/ │ │ │ │ │ ├── ArConstants.kt │ │ │ │ │ └── LoadArDebugFlagUseCase.kt │ │ │ │ ├── auth/ │ │ │ │ │ └── ObserveUserAuthStateUseCase.kt │ │ │ │ ├── codelabs/ │ │ │ │ │ ├── GetCodelabsInfoCardShownUseCase.kt │ │ │ │ │ ├── LoadCodelabsUseCase.kt │ │ │ │ │ └── SetCodelabsInfoCardShownUseCase.kt │ │ │ │ ├── feed/ │ │ │ │ │ ├── GetConferenceStateUseCase.kt │ │ │ │ │ ├── LoadAnnouncementsUseCase.kt │ │ │ │ │ └── LoadCurrentMomentUseCase.kt │ │ │ │ ├── filters/ │ │ │ │ │ └── UserSessionFilterMatcher.kt │ │ │ │ ├── internal/ │ │ │ │ │ └── IOSchedHandler.kt │ │ │ │ ├── logistics/ │ │ │ │ │ └── LoadWifiInfoUseCase.kt │ │ │ │ ├── prefs/ │ │ │ │ │ ├── MarkScheduleUiHintsShownUseCase.kt │ │ │ │ │ ├── MyLocationOptedInUseCase.kt │ │ │ │ │ ├── NotificationsPrefIsShownUseCase.kt │ │ │ │ │ ├── NotificationsPrefSaveActionUseCase.kt │ │ │ │ │ ├── NotificationsPrefShownActionUseCase.kt │ │ │ │ │ ├── OnboardingCompleteActionUseCase.kt │ │ │ │ │ ├── OnboardingCompletedUseCase.kt │ │ │ │ │ ├── OptIntoMyLocationUseCase.kt │ │ │ │ │ ├── ScheduleUiHintsShownUseCase.kt │ │ │ │ │ └── StopSnackbarActionUseCase.kt │ │ │ │ ├── search/ │ │ │ │ │ ├── LoadSearchFiltersUseCase.kt │ │ │ │ │ ├── Searchable.kt │ │ │ │ │ ├── SessionSearchUseCase.kt │ │ │ │ │ └── SessionTextMatchStrategy.kt │ │ │ │ ├── sessions/ │ │ │ │ │ ├── ConferenceDayIndexer.kt │ │ │ │ │ ├── GetConferenceDaysUseCase.kt │ │ │ │ │ ├── LoadPinnedSessionsJsonUseCase.kt │ │ │ │ │ ├── LoadScheduleUserSessionsUseCase.kt │ │ │ │ │ ├── LoadSessionOneShotUseCase.kt │ │ │ │ │ ├── LoadSessionUseCase.kt │ │ │ │ │ ├── LoadStarredAndReservedSessionsUseCase.kt │ │ │ │ │ ├── LoadUserSessionOneShotUseCase.kt │ │ │ │ │ ├── LoadUserSessionUseCase.kt │ │ │ │ │ ├── LoadUserSessionsUseCase.kt │ │ │ │ │ ├── NotificationAlarmUpdater.kt │ │ │ │ │ └── ObserveConferenceDataUseCase.kt │ │ │ │ ├── settings/ │ │ │ │ │ ├── GetAnalyticsSettingUseCase.kt │ │ │ │ │ ├── GetAvailableThemesUseCase.kt │ │ │ │ │ ├── GetNotificationsSettingUseCase.kt │ │ │ │ │ ├── GetThemeUseCase.kt │ │ │ │ │ ├── GetTimeZoneUseCase.kt │ │ │ │ │ ├── ObserveThemeModeUseCase.kt │ │ │ │ │ ├── SetAnalyticsSettingUseCase.kt │ │ │ │ │ ├── SetThemeUseCase.kt │ │ │ │ │ └── SetTimeZoneUseCase.kt │ │ │ │ ├── speakers/ │ │ │ │ │ └── LoadSpeakerSessionsUseCase.kt │ │ │ │ └── users/ │ │ │ │ ├── FeedbackUseCase.kt │ │ │ │ ├── ReservationActionUseCase.kt │ │ │ │ ├── StarEventAndNotifyUseCase.kt │ │ │ │ └── SwapActionUseCase.kt │ │ │ ├── fcm/ │ │ │ │ ├── FcmTokenUpdater.kt │ │ │ │ ├── FcmTopicSubscriber.kt │ │ │ │ ├── IoschedFirebaseMessagingService.kt │ │ │ │ └── TopicSubscriber.kt │ │ │ ├── notifications/ │ │ │ │ ├── AlarmBroadcastReceiver.kt │ │ │ │ ├── CancelNotificationBroadcastReceiver.kt │ │ │ │ └── SessionAlarmManager.kt │ │ │ ├── result/ │ │ │ │ ├── Event.kt │ │ │ │ └── Result.kt │ │ │ ├── time/ │ │ │ │ └── DefaultTimeProvider.kt │ │ │ └── util/ │ │ │ ├── ColorUtils.kt │ │ │ ├── Extensions.kt │ │ │ ├── NetworkUtils.kt │ │ │ ├── SpeakerUtils.kt │ │ │ └── TimeUtils.kt │ │ ├── res/ │ │ │ ├── drawable/ │ │ │ │ ├── ic_default_avatar.xml │ │ │ │ ├── ic_event.xml │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ ├── ic_livestreamed.xml │ │ │ │ ├── ic_notification_io_logo.xml │ │ │ │ ├── ic_star.xml │ │ │ │ ├── ic_star_border.xml │ │ │ │ └── tag_dot.xml │ │ │ ├── drawable-v24/ │ │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── font/ │ │ │ │ ├── google_sans.xml │ │ │ │ └── google_sans_medium.xml │ │ │ ├── mipmap-anydpi-v26/ │ │ │ │ └── ic_launcher.xml │ │ │ ├── values/ │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── font_certs.xml │ │ │ │ ├── preloaded_fonts.xml │ │ │ │ └── strings.xml │ │ │ ├── values-ar/ │ │ │ │ └── strings.xml │ │ │ ├── values-ar-rEG/ │ │ │ │ └── strings.xml │ │ │ ├── values-ar-rSA/ │ │ │ │ └── strings.xml │ │ │ ├── values-de/ │ │ │ │ └── strings.xml │ │ │ ├── values-de-rAT/ │ │ │ │ └── strings.xml │ │ │ ├── values-de-rCH/ │ │ │ │ └── strings.xml │ │ │ ├── values-es-rAR/ │ │ │ │ └── strings.xml │ │ │ ├── values-es-rBO/ │ │ │ │ └── strings.xml │ │ │ ├── values-es-rCL/ │ │ │ │ └── strings.xml │ │ │ ├── values-es-rCO/ │ │ │ │ └── strings.xml │ │ │ ├── values-es-rCR/ │ │ │ │ └── strings.xml │ │ │ ├── values-es-rDO/ │ │ │ │ └── strings.xml │ │ │ ├── values-es-rEC/ │ │ │ │ └── strings.xml │ │ │ ├── values-es-rGT/ │ │ │ │ └── strings.xml │ │ │ ├── values-es-rHN/ │ │ │ │ └── strings.xml │ │ │ ├── values-es-rMX/ │ │ │ │ └── strings.xml │ │ │ ├── values-es-rNI/ │ │ │ │ └── strings.xml │ │ │ ├── values-es-rPA/ │ │ │ │ └── strings.xml │ │ │ ├── values-es-rPE/ │ │ │ │ └── strings.xml │ │ │ ├── values-es-rPR/ │ │ │ │ └── strings.xml │ │ │ ├── values-es-rPY/ │ │ │ │ └── strings.xml │ │ │ ├── values-es-rSV/ │ │ │ │ └── strings.xml │ │ │ ├── values-es-rUS/ │ │ │ │ └── strings.xml │ │ │ ├── values-es-rUY/ │ │ │ │ └── strings.xml │ │ │ ├── values-es-rVE/ │ │ │ │ └── strings.xml │ │ │ ├── values-fa/ │ │ │ │ └── strings.xml │ │ │ ├── values-fr/ │ │ │ │ └── strings.xml │ │ │ ├── values-fr-rCH/ │ │ │ │ └── strings.xml │ │ │ ├── values-gsw/ │ │ │ │ └── strings.xml │ │ │ ├── values-it/ │ │ │ │ └── strings.xml │ │ │ ├── values-ja/ │ │ │ │ └── strings.xml │ │ │ ├── values-ko/ │ │ │ │ └── strings.xml │ │ │ ├── values-ln/ │ │ │ │ └── strings.xml │ │ │ ├── values-pt/ │ │ │ │ └── strings.xml │ │ │ ├── values-pt-rBR/ │ │ │ │ └── strings.xml │ │ │ ├── values-ru/ │ │ │ │ └── strings.xml │ │ │ ├── values-th/ │ │ │ │ └── strings.xml │ │ │ ├── values-vi/ │ │ │ │ └── strings.xml │ │ │ ├── values-zh/ │ │ │ │ └── strings.xml │ │ │ ├── values-zh-rCN/ │ │ │ │ └── strings.xml │ │ │ ├── values-zh-rHK/ │ │ │ │ └── strings.xml │ │ │ ├── values-zh-rTW/ │ │ │ │ └── strings.xml │ │ │ └── xml/ │ │ │ └── remote_config_defaults.xml │ │ └── resources/ │ │ └── conference_data_2019.json │ ├── release/ │ │ └── google-services.json │ ├── staging/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── samples/ │ │ │ └── apps/ │ │ │ └── iosched/ │ │ │ └── shared/ │ │ │ ├── data/ │ │ │ │ ├── FakeAnnouncementDataSource.kt │ │ │ │ ├── FakeAppConfigDataSource.kt │ │ │ │ ├── FakeConferenceDataSource.kt │ │ │ │ ├── FakeFeedbackEndpoint.kt │ │ │ │ ├── ar/ │ │ │ │ │ └── FakeArDebugFlagEndpoint.kt │ │ │ │ ├── feed/ │ │ │ │ │ └── FakeMomentDataSource.kt │ │ │ │ └── userevent/ │ │ │ │ └── FakeUserEventDataSource.kt │ │ │ ├── di/ │ │ │ │ └── SharedModule.kt │ │ │ └── fcm/ │ │ │ └── StagingTopicSubscriber.kt │ │ └── res/ │ │ └── drawable/ │ │ └── staging_user_profile.xml │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── google/ │ │ └── samples/ │ │ └── apps/ │ │ └── iosched/ │ │ ├── firestore/ │ │ │ └── entity/ │ │ │ ├── ReservationRequestResultTest.kt │ │ │ └── UserEventTest.kt │ │ ├── shared/ │ │ │ ├── data/ │ │ │ │ ├── BootstrapConferenceDataSourceTest.kt │ │ │ │ ├── ConferenceDataJsonParserTest.kt │ │ │ │ ├── ConferenceDataRepositoryTest.kt │ │ │ │ ├── signin/ │ │ │ │ │ └── ObserveUserAuthStateUseCaseTest.kt │ │ │ │ └── userevent/ │ │ │ │ ├── CompareOldAndNewUserEventsTest.kt │ │ │ │ └── DefaultSessionAndUserEventRepositoryTest.kt │ │ │ ├── domain/ │ │ │ │ ├── FlowUseCaseTest.kt │ │ │ │ ├── codelabs/ │ │ │ │ │ └── LoadCodelabsUseCaseTest.kt │ │ │ │ ├── feed/ │ │ │ │ │ ├── GetConferenceStateUseCaseTest.kt │ │ │ │ │ ├── LoadAnnouncementsUseCaseTest.kt │ │ │ │ │ ├── LoadCurrentMomentUseCaseTest.kt │ │ │ │ │ ├── TestAnnouncementDataSource.kt │ │ │ │ │ └── TestMomentDataSource.kt │ │ │ │ ├── filters/ │ │ │ │ │ └── UserSessionFilterMatcherTest.kt │ │ │ │ ├── repository/ │ │ │ │ │ └── TestUserEventDataSource.kt │ │ │ │ ├── search/ │ │ │ │ │ ├── LoadSearchFiltersUseCaseTest.kt │ │ │ │ │ └── SessionTextMatchStrategyTest.kt │ │ │ │ ├── sessions/ │ │ │ │ │ ├── LoadPinnedSessionsJsonUseCaseTest.kt │ │ │ │ │ ├── LoadScheduleUserSessionsUseCaseTest.kt │ │ │ │ │ ├── LoadStarredAndReservedSessionsUseCaseTest.kt │ │ │ │ │ └── ObserveConferenceDataUseCaseTest.kt │ │ │ │ └── users/ │ │ │ │ ├── FeedbackUseCaseTest.kt │ │ │ │ ├── ReservationActionUseCaseTest.kt │ │ │ │ └── StarEventUseCaseTest.kt │ │ │ ├── model/ │ │ │ │ ├── SessionTest.kt │ │ │ │ ├── SharedTestData.kt │ │ │ │ └── TagTest.kt │ │ │ └── util/ │ │ │ ├── ColorUtilsTest.kt │ │ │ ├── SpeakerUtilsTest.kt │ │ │ └── TimeUtilsTest.kt │ │ └── test/ │ │ └── util/ │ │ ├── FakeAppDatabase.kt │ │ └── FakePreferenceStorage.kt │ └── resources/ │ ├── malformed_conference_data.json │ └── test_conference_data1.json ├── test-shared/ │ ├── build.gradle.kts │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── google/ │ └── samples/ │ └── apps/ │ └── iosched/ │ └── test/ │ └── data/ │ ├── MainCoroutineRule.kt │ └── TestData.kt └── tools/ ├── iosched-codestyle.xml ├── pre-push └── setup.sh