gitextract_ek5wbsm9/ ├── .github/ │ ├── scripts/ │ │ └── gradlew_recursive.sh │ └── workflows/ │ ├── android.yml │ └── copy-branch.yml ├── .gitignore ├── .google/ │ └── packaging.yaml ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── TODO.md ├── app/ │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── com/ │ │ └── example/ │ │ └── android/ │ │ └── uamp/ │ │ ├── MainActivity.kt │ │ ├── MediaItemAdapter.kt │ │ ├── MediaItemData.kt │ │ ├── cast/ │ │ │ └── UampCastOptionsProvider.kt │ │ ├── fragments/ │ │ │ ├── MediaItemFragment.kt │ │ │ └── NowPlayingFragment.kt │ │ ├── utils/ │ │ │ ├── Event.kt │ │ │ └── InjectorUtils.kt │ │ └── viewmodels/ │ │ ├── MainActivityViewModel.kt │ │ ├── MediaItemFragmentViewModel.kt │ │ └── NowPlayingFragmentViewModel.kt │ └── res/ │ ├── drawable/ │ │ ├── ic_album_black_24dp.xml │ │ ├── ic_launcher_background.xml │ │ ├── ic_pause_black_24dp.xml │ │ ├── ic_play_arrow_black_24dp.xml │ │ ├── ic_signal_wifi_off_black_24dp.xml │ │ ├── media_item_background.xml │ │ ├── media_item_mask.xml │ │ └── media_overlay_background.xml │ ├── drawable-v24/ │ │ └── ic_launcher_foreground.xml │ ├── layout/ │ │ ├── activity_main.xml │ │ ├── cast_context_error.xml │ │ ├── fragment_mediaitem.xml │ │ ├── fragment_mediaitem_list.xml │ │ └── fragment_nowplaying.xml │ ├── mipmap-anydpi-v26/ │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ ├── values/ │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── xml/ │ └── automotive_app_desc.xml ├── automotive/ │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── example/ │ │ └── android/ │ │ └── uamp/ │ │ └── automotive/ │ │ └── ExampleInstrumentedTest.java │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── example/ │ │ │ └── android/ │ │ │ └── uamp/ │ │ │ └── automotive/ │ │ │ ├── AutomotiveMusicService.kt │ │ │ ├── PhoneSignInFragment.kt │ │ │ ├── PinCodeSignInFragment.kt │ │ │ ├── QrCodeSignInFragment.kt │ │ │ ├── SettingsActivity.kt │ │ │ ├── SettingsFragment.kt │ │ │ ├── SignInActivity.kt │ │ │ ├── SignInActivityViewModel.kt │ │ │ ├── SignInLandingPageFragment.kt │ │ │ └── UsernameAndPasswordSignInFragment.kt │ │ └── res/ │ │ ├── color/ │ │ │ ├── car_text_dark.xml │ │ │ └── car_text_light.xml │ │ ├── drawable/ │ │ │ ├── default_button_background.xml │ │ │ ├── google_sign_in_button_background.xml │ │ │ ├── google_sign_in_button_logo.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── pin_background.xml │ │ │ ├── sign_in_button_background.xml │ │ │ ├── sign_in_toolbar_back_icon.xml │ │ │ └── sign_in_toolbar_back_ripple_background.xml │ │ ├── drawable-v24/ │ │ │ └── ic_launcher_foreground.xml │ │ ├── layout/ │ │ │ ├── activity_login.xml │ │ │ ├── activity_settings.xml │ │ │ ├── activity_sign_in.xml │ │ │ ├── phone_sign_in.xml │ │ │ ├── pin_item.xml │ │ │ ├── pin_sign_in.xml │ │ │ ├── preference.xml │ │ │ ├── preference_category.xml │ │ │ ├── qr_sign_in.xml │ │ │ ├── sign_in_landing_page.xml │ │ │ ├── sign_in_landing_page_with_username_and_password.xml │ │ │ └── username_and_password_sign_in.xml │ │ ├── layout-h900dp/ │ │ │ ├── phone_sign_in.xml │ │ │ ├── pin_sign_in.xml │ │ │ ├── qr_sign_in.xml │ │ │ ├── sign_in_landing_page.xml │ │ │ ├── sign_in_landing_page_with_username_and_password.xml │ │ │ └── username_and_password_sign_in.xml │ │ ├── mipmap-anydpi-v26/ │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── values-h1060dp/ │ │ │ └── dimens.xml │ │ └── xml/ │ │ ├── automotive_app_desc.xml │ │ └── preferences.xml │ └── test/ │ └── java/ │ └── com/ │ └── example/ │ └── android/ │ └── uamp/ │ └── automotive/ │ └── ExampleUnitTest.java ├── build.gradle ├── common/ │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── example/ │ │ │ └── android/ │ │ │ └── uamp/ │ │ │ ├── common/ │ │ │ │ └── MusicServiceConnection.kt │ │ │ └── media/ │ │ │ ├── CastMediaItemConverter.kt │ │ │ ├── MusicService.kt │ │ │ ├── PackageValidator.kt │ │ │ ├── PersistentStorage.kt │ │ │ ├── UampNotificationManager.kt │ │ │ ├── extensions/ │ │ │ │ ├── FileExt.kt │ │ │ │ ├── JavaLangExt.kt │ │ │ │ ├── MediaMetadataCompatExt.kt │ │ │ │ └── PlaybackStateCompatExt.kt │ │ │ └── library/ │ │ │ ├── AlbumArtContentProvider.kt │ │ │ ├── BrowseTree.kt │ │ │ ├── JsonSource.kt │ │ │ └── MusicSource.kt │ │ └── res/ │ │ ├── drawable/ │ │ │ ├── ic_album.xml │ │ │ └── ic_recommended.xml │ │ ├── menu/ │ │ │ └── main_activity_menu.xml │ │ ├── values/ │ │ │ └── strings.xml │ │ └── xml/ │ │ └── allowed_media_browser_callers.xml │ └── test/ │ └── java/ │ └── com/ │ └── example/ │ └── android/ │ └── uamp/ │ └── media/ │ └── library/ │ └── MusicSourceTest.kt ├── docs/ │ ├── FAQs.md │ └── FullGuide.md ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat └── settings.gradle