├── .github ├── dependabot.yml └── workflows │ ├── crowdin-contributors.yml │ ├── mr-checks.yml │ └── release.yml ├── .gitignore ├── .idea ├── deploymentTargetSelector.xml ├── icon.svg └── migrations.xml ├── LICENSE ├── PRIVACY_POLICY.md ├── README.md ├── androidApp ├── .gitignore ├── build.gradle.kts └── src │ └── androidMain │ ├── AndroidManifest.xml │ ├── ic_launcher-playstore.png │ ├── kotlin │ └── ru │ │ └── stersh │ │ └── youamp │ │ ├── AndroidDi.kt │ │ ├── App.kt │ │ ├── EmptyActivityLifecycleCallback.kt │ │ ├── MainActivity.kt │ │ └── audio │ │ ├── MusicService.kt │ │ ├── auto │ │ ├── Auto.kt │ │ ├── AutoMediaSessionCallback.kt │ │ ├── AutoRepository.kt │ │ ├── AutoRepositoryImpl.kt │ │ ├── Mapper.kt │ │ └── MediaLibrary.kt │ │ └── player │ │ ├── PlayQueueSyncActivityCallback.kt │ │ └── ProgressSyncActivityCallback.kt │ └── res │ ├── drawable-hdpi │ ├── ic_launcher.webp │ └── ic_launcher_round.webp │ ├── drawable-mdpi │ ├── ic_launcher.webp │ └── ic_launcher_round.webp │ ├── drawable-v24 │ └── ic_launcher_foreground.xml │ ├── drawable-xhdpi │ ├── ic_launcher.webp │ └── ic_launcher_round.webp │ ├── drawable-xxhdpi │ ├── ic_launcher.webp │ └── ic_launcher_round.webp │ ├── drawable-xxxhdpi │ ├── ic_launcher.webp │ └── ic_launcher_round.webp │ ├── drawable │ └── ic_launcher_background.xml │ ├── mipmap-anydpi-v26 │ ├── ic_launcher.xml │ └── ic_launcher_round.xml │ ├── values │ ├── ic_launcher_background.xml │ ├── strings.xml │ └── styles.xml │ └── xml │ ├── automotive_app_desc.xml │ └── network_security_config.xml ├── app ├── .gitignore ├── build.gradle.kts └── src │ └── commonMain │ ├── composeResources │ ├── drawable-hdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ ├── drawable-mdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ ├── drawable-xhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ ├── drawable-xxhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ └── drawable-xxxhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ └── kotlin │ └── ru │ └── stersh │ └── youamp │ ├── ApiProviderImpl.kt │ ├── Di.kt │ ├── app │ ├── data │ │ ├── AvatarUrlRepositoryImpl.kt │ │ └── ServerExistRepositoryImpl.kt │ ├── domain │ │ ├── AvatarUrlRepository.kt │ │ └── ServerExistRepository.kt │ └── ui │ │ ├── MainScreen.kt │ │ ├── MainViewModel.kt │ │ ├── Navigation.kt │ │ ├── StateUi.kt │ │ └── YouampApp.kt │ └── player │ ├── ApiSonicPlayQueueSyncer.kt │ └── ScrobbleSender.kt ├── assets └── bage │ └── get_it_on_github.png ├── build.gradle.kts ├── buildSrc ├── .gitignore ├── build.gradle.kts └── src │ └── main │ └── kotlin │ └── ru │ └── stersh │ └── youamp │ └── AppBuildInfo.kt ├── core ├── api │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ ├── androidMain │ │ └── AndroidManifest.xml │ │ └── commonMain │ │ └── kotlin │ │ └── ru │ │ └── stersh │ │ └── youamp │ │ └── core │ │ └── api │ │ ├── ApiDefaults.kt │ │ ├── ApiProvider.kt │ │ └── NoActiveServerSettingsFound.kt ├── db │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ ├── androidMain │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── ru │ │ │ └── stersh │ │ │ └── youamp │ │ │ └── core │ │ │ └── db │ │ │ └── Database.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── ru │ │ │ └── stersh │ │ │ └── youamp │ │ │ └── core │ │ │ └── db │ │ │ ├── AppDatabase.kt │ │ │ ├── Di.kt │ │ │ └── server │ │ │ ├── SubsonicServerDao.kt │ │ │ └── SubsonicServerDb.kt │ │ ├── desktopMain │ │ └── kotlin │ │ │ └── ru │ │ │ └── stersh │ │ │ └── youamp │ │ │ └── core │ │ │ └── db │ │ │ └── Database.kt │ │ └── iosMain │ │ └── kotlin │ │ └── ru │ │ └── stersh │ │ └── youamp │ │ └── core │ │ └── db │ │ └── Database.kt ├── player │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ ├── androidMain │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── ru │ │ │ └── stersh │ │ │ └── youamp │ │ │ └── core │ │ │ └── player │ │ │ ├── AndroidPlayer.kt │ │ │ ├── Di.kt │ │ │ ├── Mapper.kt │ │ │ └── PlayerConcurrency.kt │ │ ├── commonMain │ │ └── kotlin │ │ │ └── ru │ │ │ └── stersh │ │ │ └── youamp │ │ │ └── core │ │ │ └── player │ │ │ ├── Di.kt │ │ │ ├── MediaItem.kt │ │ │ ├── Player.kt │ │ │ ├── PlayerProgress.kt │ │ │ ├── RepeatMode.kt │ │ │ └── ShuffleMode.kt │ │ └── desktopMain │ │ └── kotlin │ │ └── ru │ │ └── stersh │ │ └── youamp │ │ └── core │ │ └── player │ │ ├── DesktopPlayer.kt │ │ └── Di.desktop.kt ├── properties │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ ├── androidMain │ │ └── AndroidManifest.xml │ │ └── commonMain │ │ └── kotlin │ │ └── ru │ │ └── stersh │ │ └── youamp │ │ └── core │ │ ├── Di.kt │ │ └── properties │ │ └── app │ │ ├── AppProperties.kt │ │ ├── AppPropertiesStorage.kt │ │ └── AppPropertiesStorageImpl.kt ├── ui │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ ├── androidMain │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── ru │ │ │ └── stersh │ │ │ └── youamp │ │ │ └── core │ │ │ └── ui │ │ │ └── Theme.android.kt │ │ ├── commonMain │ │ ├── composeResources │ │ │ ├── font │ │ │ │ ├── montserrat_bold.ttf │ │ │ │ ├── montserrat_italic.ttf │ │ │ │ ├── montserrat_light.ttf │ │ │ │ ├── montserrat_medium.ttf │ │ │ │ └── montserrat_regular.ttf │ │ │ ├── values-ca-rES │ │ │ │ └── strings.xml │ │ │ ├── values-de-rDE │ │ │ │ └── strings.xml │ │ │ ├── values-fr-rFR │ │ │ │ └── strings.xml │ │ │ ├── values-it-rIT │ │ │ │ └── strings.xml │ │ │ ├── values-pt-rBR │ │ │ │ └── strings.xml │ │ │ ├── values-ru-rRU │ │ │ │ └── strings.xml │ │ │ ├── values-zh-rCN │ │ │ │ └── strings.xml │ │ │ └── values │ │ │ │ └── strings.xml │ │ └── kotlin │ │ │ └── ru │ │ │ └── stersh │ │ │ └── youamp │ │ │ └── core │ │ │ └── ui │ │ │ ├── Album.kt │ │ │ ├── Artist.kt │ │ │ ├── Artwork.kt │ │ │ ├── Avatar.kt │ │ │ ├── BackNavigationButton.kt │ │ │ ├── Color.kt │ │ │ ├── Dp.kt │ │ │ ├── DragAndDropLazyColumn.kt │ │ │ ├── Empty.kt │ │ │ ├── Error.kt │ │ │ ├── Header.kt │ │ │ ├── HeaderButtons.kt │ │ │ ├── MovePosition.kt │ │ │ ├── PlayAllButton.kt │ │ │ ├── PlayButton.kt │ │ │ ├── Playlist.kt │ │ │ ├── ProgressSlider.kt │ │ │ ├── RoundedIcon.kt │ │ │ ├── SectionTitle.kt │ │ │ ├── Skeleton.kt │ │ │ ├── Song.kt │ │ │ ├── SongMenu.kt │ │ │ ├── SongPlayAnimation.kt │ │ │ ├── StateLayout.kt │ │ │ ├── Text.kt │ │ │ ├── Theme.kt │ │ │ ├── Type.kt │ │ │ ├── Utils.kt │ │ │ ├── VerticalGrid.kt │ │ │ └── WindowSizeClass.kt │ │ └── desktopMain │ │ └── kotlin │ │ └── ru │ │ └── stersh │ │ └── youamp │ │ └── core │ │ └── ui │ │ └── Theme.desktop.kt └── utils │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ ├── androidMain │ └── AndroidManifest.xml │ └── commonMain │ └── kotlin │ └── ru │ └── stersh │ └── youamp │ └── core │ └── utils │ ├── Flow.kt │ ├── List.kt │ ├── Paginator.kt │ └── Time.kt ├── crowdin.yml ├── desktopApp ├── .gitignore ├── build.gradle.kts └── src │ ├── commonMain │ └── composeResources │ │ ├── drawable-hdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── drawable-mdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── drawable-xhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── drawable-xxhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ └── drawable-xxxhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ └── desktopMain │ └── kotlin │ └── ru │ └── stersh │ └── youamp │ ├── DesktopDi.kt │ └── Main.kt ├── fastlane └── metadata │ └── android │ ├── ca │ ├── full_description.txt │ └── short_description.txt │ ├── de-DE │ ├── full_description.txt │ └── short_description.txt │ ├── en-US │ ├── full_description.txt │ ├── images │ │ ├── featureGraphic.png │ │ ├── icon.png │ │ └── phoneScreenshots │ │ │ ├── 1.png │ │ │ ├── 2.png │ │ │ ├── 3.png │ │ │ ├── 4.png │ │ │ ├── 5.png │ │ │ ├── 6.png │ │ │ ├── 7.png │ │ │ └── 8.png │ ├── short_description.txt │ ├── title.txt │ └── video.txt │ ├── fr-FR │ ├── full_description.txt │ └── short_description.txt │ ├── it-IT │ ├── full_description.txt │ └── short_description.txt │ ├── pt-BR │ ├── full_description.txt │ └── short_description.txt │ ├── ru-RU │ ├── full_description.txt │ └── short_description.txt │ └── zh-CN │ ├── full_description.txt │ └── short_description.txt ├── feature ├── about │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ ├── androidMain │ │ └── AndroidManifest.xml │ │ └── commonMain │ │ ├── composeResources │ │ ├── values-ca-rES │ │ │ └── strings.xml │ │ ├── values-de-rDE │ │ │ └── strings.xml │ │ ├── values-fr-rFR │ │ │ └── strings.xml │ │ ├── values-it-rIT │ │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ ├── values-ru-rRU │ │ │ └── strings.xml │ │ ├── values-ru │ │ │ └── strings.xml │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ └── values │ │ │ └── strings.xml │ │ └── kotlin │ │ └── ru │ │ └── stersh │ │ └── youamp │ │ └── feature │ │ └── about │ │ ├── Di.kt │ │ └── ui │ │ ├── AboutAppViewModel.kt │ │ ├── AboutScreen.kt │ │ ├── AboutStateUi.kt │ │ ├── AppIcon.kt │ │ └── Mapper.kt ├── album │ ├── favorites │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── AndroidManifest.xml │ │ │ └── commonMain │ │ │ ├── composeResources │ │ │ ├── values-ca-rES │ │ │ │ └── strings.xml │ │ │ ├── values-de-rDE │ │ │ │ └── strings.xml │ │ │ ├── values-fr-rFR │ │ │ │ └── strings.xml │ │ │ ├── values-pt-rBR │ │ │ │ └── strings.xml │ │ │ ├── values-ru-rRU │ │ │ │ └── strings.xml │ │ │ └── values │ │ │ │ └── strings.xml │ │ │ └── kotlin │ │ │ └── ru │ │ │ └── stersh │ │ │ └── youamp │ │ │ └── feature │ │ │ └── album │ │ │ └── favorites │ │ │ ├── Di.kt │ │ │ ├── data │ │ │ └── FavoriteAlbumsRepositoryImpl.kt │ │ │ ├── domain │ │ │ ├── Album.kt │ │ │ ├── FavoriteAlbumsRepository.kt │ │ │ └── Favorites.kt │ │ │ └── ui │ │ │ ├── FavoriteAlbumsScreen.kt │ │ │ ├── FavoriteAlbumsViewModel.kt │ │ │ ├── Mapper.kt │ │ │ └── State.kt │ ├── info │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── AndroidManifest.xml │ │ │ └── commonMain │ │ │ └── kotlin │ │ │ └── ru │ │ │ └── stersh │ │ │ └── youamp │ │ │ └── feature │ │ │ └── album │ │ │ └── info │ │ │ ├── Di.kt │ │ │ ├── data │ │ │ ├── AlbumFavoriteRepositoryImpl.kt │ │ │ └── AlbumInfoRepositoryImpl.kt │ │ │ ├── domain │ │ │ ├── AlbumFavoriteRepository.kt │ │ │ ├── AlbumInfo.kt │ │ │ ├── AlbumInfoRepository.kt │ │ │ └── AlbumSong.kt │ │ │ └── ui │ │ │ ├── AlbumInfoScreen.kt │ │ │ ├── AlbumInfoStateUi.kt │ │ │ ├── AlbumInfoViewModel.kt │ │ │ └── Mapper.kt │ └── list │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ └── AndroidManifest.xml │ │ └── commonMain │ │ ├── composeResources │ │ ├── values-ca-rES │ │ │ └── strings.xml │ │ ├── values-de-rDE │ │ │ └── strings.xml │ │ ├── values-fr-rFR │ │ │ └── strings.xml │ │ ├── values-it-rIT │ │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ ├── values-ru-rRU │ │ │ └── strings.xml │ │ └── values │ │ │ └── strings.xml │ │ └── kotlin │ │ └── ru │ │ └── stersh │ │ └── youamp │ │ └── feature │ │ └── album │ │ └── list │ │ ├── Di.kt │ │ ├── data │ │ └── AlbumsRepositoryImpl.kt │ │ ├── domain │ │ ├── Album.kt │ │ └── AlbumsRepository.kt │ │ └── ui │ │ ├── AlbumsScreen.kt │ │ ├── AlbumsViewModel.kt │ │ ├── Mapper.kt │ │ └── State.kt ├── artist │ ├── favorites │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── AndroidManifest.xml │ │ │ └── commonMain │ │ │ ├── composeResources │ │ │ ├── values-ca-rES │ │ │ │ └── strings.xml │ │ │ ├── values-de-rDE │ │ │ │ └── strings.xml │ │ │ ├── values-fr-rFR │ │ │ │ └── strings.xml │ │ │ ├── values-pt-rBR │ │ │ │ └── strings.xml │ │ │ ├── values-ru-rRU │ │ │ │ └── strings.xml │ │ │ └── values │ │ │ │ └── strings.xml │ │ │ └── kotlin │ │ │ └── ru │ │ │ └── stersh │ │ │ └── youamp │ │ │ └── feature │ │ │ └── artist │ │ │ └── favorites │ │ │ ├── Di.kt │ │ │ ├── data │ │ │ └── FavoriteArtistsRepositoryImpl.kt │ │ │ ├── domain │ │ │ ├── Artist.kt │ │ │ ├── FavoriteArtistsRepository.kt │ │ │ └── Favorites.kt │ │ │ └── ui │ │ │ ├── FavoriteArtistScreen.kt │ │ │ ├── FavoriteArtistViewModel.kt │ │ │ ├── Mapper.kt │ │ │ └── State.kt │ ├── info │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidMain │ │ │ └── AndroidManifest.xml │ │ │ └── commonMain │ │ │ └── kotlin │ │ │ └── ru │ │ │ └── stersh │ │ │ └── youamp │ │ │ └── feature │ │ │ └── artist │ │ │ └── info │ │ │ ├── Di.kt │ │ │ ├── data │ │ │ ├── ArtistFavoriteRepositoryImpl.kt │ │ │ └── ArtistInfoRepositoryImpl.kt │ │ │ ├── domain │ │ │ ├── ArtistAlbum.kt │ │ │ ├── ArtistFavoriteRepository.kt │ │ │ ├── ArtistInfo.kt │ │ │ └── ArtistInfoRepository.kt │ │ │ └── ui │ │ │ ├── ArtistInfoScreen.kt │ │ │ ├── ArtistInfoViewModel.kt │ │ │ ├── Mapper.kt │ │ │ └── State.kt │ └── list │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ ├── androidMain │ │ └── AndroidManifest.xml │ │ └── commonMain │ │ ├── composeResources │ │ ├── values-ca-rES │ │ │ └── strings.xml │ │ ├── values-de-rDE │ │ │ └── strings.xml │ │ ├── values-fr-rFR │ │ │ └── strings.xml │ │ ├── values-it-rIT │ │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ ├── values-ru-rRU │ │ │ └── strings.xml │ │ └── values │ │ │ └── strings.xml │ │ └── kotlin │ │ └── ru │ │ └── stersh │ │ └── youamp │ │ └── feature │ │ └── artist │ │ └── list │ │ ├── Di.kt │ │ ├── data │ │ └── ArtistsRepositoryImpl.kt │ │ ├── domain │ │ ├── Artist.kt │ │ └── ArtistsRepository.kt │ │ └── ui │ │ ├── ArtistsScreen.kt │ │ ├── ArtistsViewModel.kt │ │ ├── Mapper.kt │ │ └── State.kt ├── explore │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── commonMain │ │ ├── composeResources │ │ ├── values-ca-rES │ │ │ └── strings.xml │ │ ├── values-de-rDE │ │ │ └── strings.xml │ │ ├── values-fr-rFR │ │ │ └── strings.xml │ │ ├── values-it-rIT │ │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ ├── values-ru-rRU │ │ │ └── strings.xml │ │ └── values │ │ │ └── strings.xml │ │ └── kotlin │ │ └── ru │ │ └── stersh │ │ └── youamp │ │ └── feature │ │ └── explore │ │ ├── Di.kt │ │ ├── data │ │ └── ExploreRepositoryImpl.kt │ │ ├── domain │ │ ├── Explore.kt │ │ ├── ExploreRepository.kt │ │ └── Song.kt │ │ └── ui │ │ ├── ExploreScreen.kt │ │ ├── ExploreViewModel.kt │ │ ├── Mapper.kt │ │ ├── State.kt │ │ └── components │ │ └── SearchBar.kt ├── library │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── commonMain │ │ ├── composeResources │ │ ├── values-ca-rES │ │ │ └── strings.xml │ │ ├── values-de-rDE │ │ │ └── strings.xml │ │ ├── values-fr-rFR │ │ │ └── strings.xml │ │ ├── values-it-rIT │ │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ ├── values-ru-rRU │ │ │ └── strings.xml │ │ └── values │ │ │ └── strings.xml │ │ └── kotlin │ │ └── ru │ │ └── stersh │ │ └── youamp │ │ └── feature │ │ └── library │ │ ├── Di.kt │ │ ├── data │ │ └── LibraryRepositoryImpl.kt │ │ ├── domain │ │ ├── Library.kt │ │ └── LibraryRepository.kt │ │ └── ui │ │ ├── LibraryScreen.kt │ │ ├── LibraryViewModel.kt │ │ ├── Mapper.kt │ │ └── State.kt ├── main │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── commonMain │ │ ├── composeResources │ │ ├── values-ca-rES │ │ │ └── strings.xml │ │ ├── values-de-rDE │ │ │ └── strings.xml │ │ ├── values-fr-rFR │ │ │ └── strings.xml │ │ ├── values-it-rIT │ │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ ├── values-ru-rRU │ │ │ └── strings.xml │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ └── values │ │ │ └── strings.xml │ │ └── kotlin │ │ └── ru │ │ └── stersh │ │ └── youamp │ │ └── feature │ │ └── main │ │ ├── Di.kt │ │ ├── data │ │ └── ServerInfoRepositoryImpl.kt │ │ ├── domain │ │ ├── ServerInfo.kt │ │ └── ServerInfoRepository.kt │ │ └── ui │ │ ├── MainDestination.kt │ │ ├── MainScreen.kt │ │ ├── MainViewModel.kt │ │ └── Toolbar.kt ├── personal │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── commonMain │ │ ├── composeResources │ │ ├── values-ca-rES │ │ │ └── strings.xml │ │ ├── values-de-rDE │ │ │ └── strings.xml │ │ ├── values-fr-rFR │ │ │ └── strings.xml │ │ ├── values-it-rIT │ │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ ├── values-ru-rRU │ │ │ └── strings.xml │ │ └── values │ │ │ └── strings.xml │ │ └── kotlin │ │ └── ru │ │ └── stersh │ │ └── youamp │ │ └── feature │ │ └── personal │ │ ├── Di.kt │ │ ├── data │ │ └── PersonalRepositoryImpl.kt │ │ ├── domain │ │ ├── Album.kt │ │ ├── Artist.kt │ │ ├── Personal.kt │ │ ├── PersonalRepository.kt │ │ ├── Playlist.kt │ │ └── Song.kt │ │ └── ui │ │ ├── Mapper.kt │ │ ├── PersonalScreen.kt │ │ ├── PersonalViewModel.kt │ │ └── State.kt ├── player │ ├── mini │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── commonMain │ │ │ ├── composeResources │ │ │ ├── values-ca-rES │ │ │ │ └── strings.xml │ │ │ ├── values-de-rDE │ │ │ │ └── strings.xml │ │ │ ├── values-fr-rFR │ │ │ │ └── strings.xml │ │ │ ├── values-it-rIT │ │ │ │ └── strings.xml │ │ │ ├── values-pt-rBR │ │ │ │ └── strings.xml │ │ │ ├── values-ru-rRU │ │ │ │ └── strings.xml │ │ │ ├── values-zh-rCN │ │ │ │ └── strings.xml │ │ │ └── values │ │ │ │ └── strings.xml │ │ │ └── kotlin │ │ │ └── ru │ │ │ └── stersh │ │ │ └── youamp │ │ │ └── feature │ │ │ └── player │ │ │ └── mini │ │ │ ├── Di.kt │ │ │ └── ui │ │ │ ├── MiniPlayer.kt │ │ │ ├── MiniPlayerViewModel.kt │ │ │ └── State.kt │ ├── queue │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── commonMain │ │ │ ├── composeResources │ │ │ ├── values-ca-rES │ │ │ │ └── strings.xml │ │ │ ├── values-de-rDE │ │ │ │ └── strings.xml │ │ │ ├── values-fr-rFR │ │ │ │ └── strings.xml │ │ │ ├── values-it-rIT │ │ │ │ └── strings.xml │ │ │ ├── values-pt-rBR │ │ │ │ └── strings.xml │ │ │ ├── values-ru-rRU │ │ │ │ └── strings.xml │ │ │ ├── values-zh-rCN │ │ │ │ └── strings.xml │ │ │ └── values │ │ │ │ └── strings.xml │ │ │ └── kotlin │ │ │ └── ru │ │ │ └── stersh │ │ │ └── youamp │ │ │ └── feature │ │ │ └── player │ │ │ └── queue │ │ │ ├── Di.kt │ │ │ └── ui │ │ │ ├── PlayQueueSongMenu.kt │ │ │ ├── PlayerQueueScreen.kt │ │ │ ├── PlayerQueueViewModel.kt │ │ │ └── State.kt │ └── screen │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ └── commonMain │ │ ├── composeResources │ │ ├── values-ca-rES │ │ │ └── strings.xml │ │ ├── values-de-rDE │ │ │ └── strings.xml │ │ ├── values-fr-rFR │ │ │ └── strings.xml │ │ ├── values-it-rIT │ │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ ├── values-ru-rRU │ │ │ └── strings.xml │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ └── values │ │ │ └── strings.xml │ │ └── kotlin │ │ └── ru │ │ └── stersh │ │ └── youamp │ │ └── feature │ │ └── player │ │ └── screen │ │ ├── Di.kt │ │ └── ui │ │ ├── Components.kt │ │ ├── Mapper.kt │ │ ├── PlayerScreen.kt │ │ ├── PlayerScreenViewModel.kt │ │ ├── RepeatModeUi.kt │ │ ├── ShuffleModeUi.kt │ │ └── StateUi.kt ├── playlist │ ├── info │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── commonMain │ │ │ └── kotlin │ │ │ └── ru │ │ │ └── stersh │ │ │ └── youamp │ │ │ └── feature │ │ │ └── playlist │ │ │ └── info │ │ │ ├── Di.kt │ │ │ ├── data │ │ │ └── PlaylistInfoRepositoryImpl.kt │ │ │ ├── domain │ │ │ ├── PlaylistInfo.kt │ │ │ ├── PlaylistInfoRepository.kt │ │ │ └── PlaylistSong.kt │ │ │ └── ui │ │ │ ├── Mapper.kt │ │ │ ├── PlaylistInfoScreen.kt │ │ │ ├── PlaylistInfoViewModel.kt │ │ │ └── State.kt │ └── list │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ └── commonMain │ │ ├── composeResources │ │ ├── values-ca-rES │ │ │ └── strings.xml │ │ ├── values-de-rDE │ │ │ └── strings.xml │ │ ├── values-fr-rFR │ │ │ └── strings.xml │ │ ├── values-it-rIT │ │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ ├── values-ru-rRU │ │ │ └── strings.xml │ │ └── values │ │ │ └── strings.xml │ │ └── kotlin │ │ └── ru │ │ └── stersh │ │ └── youamp │ │ └── feature │ │ └── playlist │ │ └── list │ │ ├── Di.kt │ │ ├── data │ │ └── PlaylistsRepositoryImpl.kt │ │ ├── domain │ │ ├── Playlist.kt │ │ └── PlaylistsRepository.kt │ │ └── ui │ │ ├── Mapper.kt │ │ ├── PlaylistsScreen.kt │ │ ├── PlaylistsViewModel.kt │ │ └── State.kt ├── search │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── commonMain │ │ ├── composeResources │ │ ├── values-ca-rES │ │ │ └── strings.xml │ │ ├── values-de-rDE │ │ │ └── strings.xml │ │ ├── values-fr-rFR │ │ │ └── strings.xml │ │ ├── values-it-rIT │ │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ ├── values-ru-rRU │ │ │ └── strings.xml │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ └── values │ │ │ └── strings.xml │ │ └── kotlin │ │ └── ru │ │ └── stersh │ │ └── youamp │ │ └── feature │ │ └── search │ │ ├── Di.kt │ │ ├── data │ │ ├── Mapper.kt │ │ ├── Paginator.kt │ │ └── SearchRepositoryImpl.kt │ │ ├── domain │ │ ├── SearchRepository.kt │ │ └── SearchResult.kt │ │ └── ui │ │ ├── Mapper.kt │ │ ├── Search.kt │ │ ├── SearchResultUi.kt │ │ ├── SearchViewModel.kt │ │ └── State.kt ├── server │ ├── create │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── commonMain │ │ │ ├── composeResources │ │ │ ├── values-ca-rES │ │ │ │ └── strings.xml │ │ │ ├── values-de-rDE │ │ │ │ └── strings.xml │ │ │ ├── values-fr-rFR │ │ │ │ └── strings.xml │ │ │ ├── values-it-rIT │ │ │ │ └── strings.xml │ │ │ ├── values-pt-rBR │ │ │ │ └── strings.xml │ │ │ ├── values-ru-rRU │ │ │ │ └── strings.xml │ │ │ ├── values-zh-rCN │ │ │ │ └── strings.xml │ │ │ └── values │ │ │ │ └── strings.xml │ │ │ └── kotlin │ │ │ └── ru │ │ │ └── stersh │ │ │ └── youamp │ │ │ └── feature │ │ │ └── server │ │ │ └── create │ │ │ ├── Di.kt │ │ │ ├── data │ │ │ └── ServerRepositoryImpl.kt │ │ │ ├── domain │ │ │ ├── Server.kt │ │ │ └── ServerRepository.kt │ │ │ └── ui │ │ │ ├── Mapper.kt │ │ │ ├── ServerCreateScreen.kt │ │ │ ├── ServerCreateStateUi.kt │ │ │ ├── ServerCreateViewModel.kt │ │ │ ├── ServerInputUi.kt │ │ │ ├── ServerTestResultUi.kt │ │ │ └── ServerUi.kt │ └── list │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ └── commonMain │ │ ├── composeResources │ │ ├── values-ca-rES │ │ │ └── strings.xml │ │ ├── values-de-rDE │ │ │ └── strings.xml │ │ ├── values-fr-rFR │ │ │ └── strings.xml │ │ ├── values-it-rIT │ │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ ├── values-ru-rRU │ │ │ └── strings.xml │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ └── values │ │ │ └── strings.xml │ │ └── kotlin │ │ └── ru │ │ └── stersh │ │ └── youamp │ │ └── feature │ │ └── server │ │ └── list │ │ ├── Di.kt │ │ ├── data │ │ └── ServerListRepositoryImpl.kt │ │ ├── domain │ │ ├── Server.kt │ │ └── ServerListRepository.kt │ │ └── ui │ │ ├── Mapper.kt │ │ ├── ServerListScreen.kt │ │ ├── ServerListViewModel.kt │ │ └── State.kt ├── settings │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── commonMain │ │ ├── composeResources │ │ ├── values-ca-rES │ │ │ └── strings.xml │ │ ├── values-de-rDE │ │ │ └── strings.xml │ │ ├── values-fr-rFR │ │ │ └── strings.xml │ │ ├── values-it-rIT │ │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ ├── values-ru-rRU │ │ │ └── strings.xml │ │ ├── values-ru │ │ │ └── strings.xml │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ └── values │ │ │ └── strings.xml │ │ └── kotlin │ │ └── ru │ │ └── stersh │ │ └── youamp │ │ └── feature │ │ └── settings │ │ └── ui │ │ └── SettingsScreen.kt └── song │ ├── favorites │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── commonMain │ │ ├── composeResources │ │ ├── values-ca-rES │ │ │ └── strings.xml │ │ ├── values-de-rDE │ │ │ └── strings.xml │ │ ├── values-fr-rFR │ │ │ └── strings.xml │ │ ├── values-it-rIT │ │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ ├── values-ru-rRU │ │ │ └── strings.xml │ │ └── values │ │ │ └── strings.xml │ │ └── kotlin │ │ └── ru │ │ └── stersh │ │ └── youamp │ │ └── feature │ │ └── song │ │ └── favorites │ │ ├── Di.kt │ │ ├── data │ │ └── FavoriteSongsRepositoryImpl.kt │ │ ├── domain │ │ ├── FavoriteSongsRepository.kt │ │ ├── Favorites.kt │ │ └── Song.kt │ │ └── ui │ │ ├── FavoriteSongsScreen.kt │ │ ├── FavoriteSongsViewModel.kt │ │ ├── Mapper.kt │ │ └── State.kt │ ├── info │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── commonMain │ │ ├── composeResources │ │ ├── values-ca-rES │ │ │ └── strings.xml │ │ ├── values-de-rDE │ │ │ └── strings.xml │ │ ├── values-fr-rFR │ │ │ └── strings.xml │ │ ├── values-it-rIT │ │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ ├── values-ru-rRU │ │ │ └── strings.xml │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ └── values │ │ │ └── strings.xml │ │ └── kotlin │ │ └── ru │ │ └── stersh │ │ └── youamp │ │ └── feature │ │ └── song │ │ └── info │ │ ├── Di.kt │ │ └── ui │ │ ├── SongInfoScreen.kt │ │ ├── SongInfoViewModel.kt │ │ └── State.kt │ └── random │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ └── commonMain │ ├── composeResources │ ├── values-ca-rES │ │ └── strings.xml │ ├── values-de-rDE │ │ └── strings.xml │ ├── values-fr-rFR │ │ └── strings.xml │ ├── values-it-rIT │ │ └── strings.xml │ ├── values-pt-rBR │ │ └── strings.xml │ ├── values-ru-rRU │ │ └── strings.xml │ └── values │ │ └── strings.xml │ └── kotlin │ └── ru │ └── stersh │ └── youamp │ └── feature │ └── song │ └── random │ ├── Di.kt │ └── ui │ ├── Mapper.kt │ ├── RandomSongsScreen.kt │ ├── RandomSongsViewModel.kt │ └── State.kt ├── gradle.properties ├── gradle ├── libs.versions.toml └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── shared ├── favorites ├── .gitignore ├── build.gradle.kts └── src │ ├── androidMain │ └── AndroidManifest.xml │ └── commonMain │ └── kotlin │ └── ru │ └── stersh │ └── youamp │ └── shared │ └── favorites │ ├── Album.kt │ ├── AlbumFavoritesStorage.kt │ ├── Artist.kt │ ├── ArtistFavoritesStorage.kt │ ├── Di.kt │ ├── Favorites.kt │ ├── FavoritesStorageImpl.kt │ ├── Song.kt │ └── SongFavoritesStorage.kt ├── queue ├── .gitignore ├── build.gradle.kts └── src │ ├── androidMain │ └── AndroidManifest.xml │ └── commonMain │ └── kotlin │ └── ru │ └── stersh │ └── youamp │ └── shared │ └── queue │ ├── AudioSource.kt │ ├── Di.kt │ ├── Mapper.kt │ ├── PlayerQueueAudioSourceManager.kt │ ├── PlayerQueueAudioSourceManagerImpl.kt │ └── PlayingSource.kt └── song └── random ├── .gitignore ├── build.gradle.kts └── src ├── androidMain └── AndroidManifest.xml └── commonMain └── kotlin └── ru └── stersh └── youamp └── shared └── song └── random ├── Di.kt ├── RandomSongs.kt ├── Song.kt ├── SongRandomStorage.kt └── SongRandomStorageImpl.kt /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "gradle" 4 | directory: "/" 5 | schedule: 6 | interval: "weekly" 7 | commit-message: 8 | prefix: chore 9 | include: scope 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /.idea/* 4 | !/.idea/icon.svg 5 | /local.properties 6 | /.idea/caches 7 | /.idea/libraries 8 | /.idea/modules.xml 9 | /.idea/workspace.xml 10 | /.idea/navEditor.xml 11 | /.idea/assetWizardSettings.xml 12 | .DS_Store 13 | /build 14 | /captures 15 | .kotlin/ 16 | .externalNativeBuild 17 | .cxx 18 | local.properties 19 | google-service-key.json 20 | Gemfile.lock -------------------------------------------------------------------------------- /.idea/deploymentTargetSelector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/migrations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /androidApp/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /androidApp/src/androidMain/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siper/Youamp/4e03e6f9ca5133f9727d62f83e19b4ec36f50444/androidApp/src/androidMain/ic_launcher-playstore.png -------------------------------------------------------------------------------- /androidApp/src/androidMain/kotlin/ru/stersh/youamp/EmptyActivityLifecycleCallback.kt: -------------------------------------------------------------------------------- 1 | package ru.stersh.youamp 2 | 3 | import android.app.Activity 4 | import android.app.Application.ActivityLifecycleCallbacks 5 | import android.os.Bundle 6 | 7 | abstract class EmptyActivityLifecycleCallback : ActivityLifecycleCallbacks { 8 | override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {} 9 | 10 | override fun onActivityStarted(activity: Activity) {} 11 | 12 | override fun onActivityResumed(activity: Activity) {} 13 | 14 | override fun onActivityPaused(activity: Activity) {} 15 | 16 | override fun onActivityStopped(activity: Activity) {} 17 | 18 | override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {} 19 | 20 | override fun onActivityDestroyed(activity: Activity) {} 21 | } -------------------------------------------------------------------------------- /androidApp/src/androidMain/kotlin/ru/stersh/youamp/audio/auto/Auto.kt: -------------------------------------------------------------------------------- 1 | package ru.stersh.youamp.audio.auto 2 | 3 | object Auto { 4 | 5 | data class Song( 6 | val id: String, 7 | val title: String, 8 | val artist: String?, 9 | val coverUrl: String?, 10 | val streamUrl: String 11 | ) 12 | 13 | data class Album( 14 | val id: String, 15 | val title: String, 16 | val coverUrl: String? 17 | ) 18 | 19 | data class Playlist( 20 | val id: String, 21 | val title: String, 22 | val coverUrl: String? 23 | ) 24 | 25 | data class Artist( 26 | val id: String, 27 | val name: String, 28 | val coverUrl: String? 29 | ) 30 | } -------------------------------------------------------------------------------- /androidApp/src/androidMain/kotlin/ru/stersh/youamp/audio/auto/AutoRepository.kt: -------------------------------------------------------------------------------- 1 | package ru.stersh.youamp.audio.auto 2 | 3 | interface AutoRepository { 4 | suspend fun getPlaylists(): List 5 | suspend fun getPlaylistSongs(playlistId: String): List 6 | suspend fun getSong(songId: String): Auto.Song 7 | } -------------------------------------------------------------------------------- /androidApp/src/androidMain/kotlin/ru/stersh/youamp/audio/auto/MediaLibrary.kt: -------------------------------------------------------------------------------- 1 | package ru.stersh.youamp.audio.auto 2 | 3 | internal object MediaLibrary { 4 | const val LIBRARY_ROOT_ID = "[ROOT_ID]" 5 | const val LIBRARY_PLAYLISTS_ID = "[PLAYLISTS_ID]" 6 | const val LIBRARY_PLAYLIST_PREFIX = "playlist_" 7 | 8 | fun clearPlaylistId(id: String): String { 9 | return id.replace(LIBRARY_PLAYLIST_PREFIX, "") 10 | } 11 | 12 | fun isPlaylist(id: String): Boolean { 13 | return id.startsWith(LIBRARY_PLAYLIST_PREFIX) 14 | } 15 | } -------------------------------------------------------------------------------- /androidApp/src/androidMain/kotlin/ru/stersh/youamp/audio/player/PlayQueueSyncActivityCallback.kt: -------------------------------------------------------------------------------- 1 | package ru.stersh.youamp.audio.player 2 | 3 | import android.app.Activity 4 | import android.os.Bundle 5 | import androidx.lifecycle.lifecycleScope 6 | import kotlinx.coroutines.launch 7 | import ru.stersh.youamp.EmptyActivityLifecycleCallback 8 | import ru.stersh.youamp.MainActivity 9 | import ru.stersh.youamp.player.ApiSonicPlayQueueSyncer 10 | 11 | internal class PlayQueueSyncActivityCallback( 12 | private val apiSonicPlayQueueSyncer: ApiSonicPlayQueueSyncer 13 | ) : EmptyActivityLifecycleCallback() { 14 | 15 | override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) { 16 | if (activity !is MainActivity) { 17 | return 18 | } 19 | activity.lifecycleScope.launch { 20 | apiSonicPlayQueueSyncer.syncQueue() 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /androidApp/src/androidMain/res/drawable-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siper/Youamp/4e03e6f9ca5133f9727d62f83e19b4ec36f50444/androidApp/src/androidMain/res/drawable-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /androidApp/src/androidMain/res/drawable-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siper/Youamp/4e03e6f9ca5133f9727d62f83e19b4ec36f50444/androidApp/src/androidMain/res/drawable-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /androidApp/src/androidMain/res/drawable-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siper/Youamp/4e03e6f9ca5133f9727d62f83e19b4ec36f50444/androidApp/src/androidMain/res/drawable-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /androidApp/src/androidMain/res/drawable-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siper/Youamp/4e03e6f9ca5133f9727d62f83e19b4ec36f50444/androidApp/src/androidMain/res/drawable-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /androidApp/src/androidMain/res/drawable-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siper/Youamp/4e03e6f9ca5133f9727d62f83e19b4ec36f50444/androidApp/src/androidMain/res/drawable-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /androidApp/src/androidMain/res/drawable-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siper/Youamp/4e03e6f9ca5133f9727d62f83e19b4ec36f50444/androidApp/src/androidMain/res/drawable-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /androidApp/src/androidMain/res/drawable-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siper/Youamp/4e03e6f9ca5133f9727d62f83e19b4ec36f50444/androidApp/src/androidMain/res/drawable-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /androidApp/src/androidMain/res/drawable-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siper/Youamp/4e03e6f9ca5133f9727d62f83e19b4ec36f50444/androidApp/src/androidMain/res/drawable-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /androidApp/src/androidMain/res/drawable-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siper/Youamp/4e03e6f9ca5133f9727d62f83e19b4ec36f50444/androidApp/src/androidMain/res/drawable-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /androidApp/src/androidMain/res/drawable-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/siper/Youamp/4e03e6f9ca5133f9727d62f83e19b4ec36f50444/androidApp/src/androidMain/res/drawable-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /androidApp/src/androidMain/res/drawable/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /androidApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /androidApp/src/androidMain/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | -------------------------------------------------------------------------------- /androidApp/src/androidMain/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Youamp 3 | -------------------------------------------------------------------------------- /androidApp/src/androidMain/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |