├── .editorconfig ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── workflows │ └── android.yml ├── .gitignore ├── CONTRIBUTING.md ├── FAQ.md ├── LICENSE.md ├── README.md ├── app ├── build.gradle ├── proguard-rules.pro └── src │ ├── debug │ └── res │ │ ├── font │ │ ├── bold.ttf │ │ ├── google_sans_bold.ttf │ │ ├── google_sans_medium.ttf │ │ ├── google_sans_regular.ttf │ │ ├── medium.ttf │ │ ├── regular.ttf │ │ └── sans.xml │ │ └── values │ │ ├── bools.xml │ │ ├── donottranslate.xml │ │ └── styles.xml │ └── main │ ├── AndroidManifest.xml │ ├── assets │ ├── images │ │ ├── daksh.png │ │ ├── haythem.jpg │ │ ├── hemanth.jpg │ │ ├── lenny.jpg │ │ ├── milind.png │ │ └── pratham.jpg │ ├── license.html │ └── retro-changelog.html │ ├── ic_launcher-playstore.png │ ├── ic_launcher-web.png │ ├── java │ └── code │ │ └── name │ │ └── monkey │ │ └── retromusic │ │ ├── App.kt │ │ ├── Constants.kt │ │ ├── HomeSection.kt │ │ ├── MainModule.kt │ │ ├── activities │ │ ├── DriveModeActivity.kt │ │ ├── ErrorActivity.kt │ │ ├── LicenseActivity.kt │ │ ├── LockScreenActivity.kt │ │ ├── MainActivity.kt │ │ ├── PermissionActivity.kt │ │ ├── ShareInstagramStory.kt │ │ ├── WhatsNewFragment.kt │ │ ├── base │ │ │ ├── AbsBaseActivity.kt │ │ │ ├── AbsMusicServiceActivity.kt │ │ │ ├── AbsSlidingMusicPanelActivity.kt │ │ │ └── AbsThemeActivity.kt │ │ ├── bugreport │ │ │ ├── BugReportActivity.kt │ │ │ └── model │ │ │ │ └── DeviceInfo.kt │ │ ├── saf │ │ │ ├── SAFGuideActivity.java │ │ │ └── SAFRequestActivity.kt │ │ └── tageditor │ │ │ ├── AbsTagEditorActivity.kt │ │ │ ├── AlbumTagEditorActivity.kt │ │ │ ├── SongTagEditorActivity.kt │ │ │ └── TagWriter.kt │ │ ├── adapter │ │ ├── CategoryInfoAdapter.kt │ │ ├── GenreAdapter.kt │ │ ├── HomeAdapter.kt │ │ ├── SearchAdapter.kt │ │ ├── SongFileAdapter.kt │ │ ├── StorageAdapter.kt │ │ ├── album │ │ │ ├── AlbumAdapter.kt │ │ │ ├── AlbumCoverPagerAdapter.kt │ │ │ └── HorizontalAlbumAdapter.kt │ │ ├── artist │ │ │ └── ArtistAdapter.kt │ │ ├── backup │ │ │ └── BackupAdapter.kt │ │ ├── base │ │ │ ├── AbsMultiSelectAdapter.kt │ │ │ └── MediaEntryViewHolder.java │ │ ├── playlist │ │ │ ├── LegacyPlaylistAdapter.kt │ │ │ └── PlaylistAdapter.kt │ │ └── song │ │ │ ├── AbsOffsetSongAdapter.kt │ │ │ ├── OrderablePlaylistSongAdapter.kt │ │ │ ├── PlayingQueueAdapter.kt │ │ │ ├── ShuffleButtonSongAdapter.kt │ │ │ ├── SimpleSongAdapter.kt │ │ │ └── SongAdapter.kt │ │ ├── appshortcuts │ │ ├── AppShortcutIconGenerator.kt │ │ ├── AppShortcutLauncherActivity.kt │ │ ├── DynamicShortcutManager.kt │ │ └── shortcuttype │ │ │ ├── BaseShortcutType.kt │ │ │ ├── LastAddedShortcutType.kt │ │ │ ├── ShuffleAllShortcutType.kt │ │ │ └── TopTracksShortcutType.kt │ │ ├── appwidgets │ │ ├── AppWidgetBig.kt │ │ ├── AppWidgetCard.kt │ │ ├── AppWidgetCircle.kt │ │ ├── AppWidgetClassic.kt │ │ ├── AppWidgetMD3.kt │ │ ├── AppWidgetSmall.kt │ │ ├── AppWidgetText.kt │ │ ├── BootReceiver.kt │ │ └── base │ │ │ └── BaseAppWidget.kt │ │ ├── auto │ │ ├── AutoMediaIDHelper.java │ │ ├── AutoMusicProvider.kt │ │ └── MediaItemBuilder.kt │ │ ├── db │ │ ├── BlackListStoreDao.kt │ │ ├── BlackListStoreEntity.kt │ │ ├── HistoryDao.kt │ │ ├── HistoryEntity.kt │ │ ├── LyricsDao.kt │ │ ├── LyricsEntity.kt │ │ ├── PlayCountDao.kt │ │ ├── PlayCountEntity.kt │ │ ├── PlaylistDao.kt │ │ ├── PlaylistEntity.kt │ │ ├── PlaylistWithSongs.kt │ │ ├── RetroDatabase.kt │ │ ├── RoomMigrations.kt │ │ ├── SongEntity.kt │ │ └── SongExtension.kt │ │ ├── dialogs │ │ ├── AddToPlaylistDialog.kt │ │ ├── BlacklistFolderChooserDialog.kt │ │ ├── CreatePlaylistDialog.kt │ │ ├── DeletePlaylistDialog.kt │ │ ├── DeleteSongsDialog.kt │ │ ├── ImportPlaylistDialog.kt │ │ ├── PlaybackSpeedDialog.kt │ │ ├── RemoveSongFromPlaylistDialog.kt │ │ ├── RenamePlaylistDialog.kt │ │ ├── SavePlaylistDialog.kt │ │ ├── SleepTimerDialog.kt │ │ ├── SongDetailDialog.kt │ │ └── SongShareDialog.kt │ │ ├── extensions │ │ ├── ActivityExtensions.kt │ │ ├── ActivityThemeExtensions.kt │ │ ├── ColorExtensions.kt │ │ ├── ContextExtensions.kt │ │ ├── CursorExtensions.kt │ │ ├── DialogExtension.kt │ │ ├── DimenExtension.kt │ │ ├── DrawableExtensions.kt │ │ ├── FileExtensions.kt │ │ ├── FragmentExtensions.kt │ │ ├── FragmentMusicExtensions.kt │ │ ├── InsetsExtensions.kt │ │ ├── IntentExtensions.kt │ │ ├── NavigationExtensions.kt │ │ ├── PaletteExtensions.kt │ │ ├── PreferenceExtensions.kt │ │ ├── SongExtensions.kt │ │ └── ViewExtensions.kt │ │ ├── fragments │ │ ├── AlbumCoverStyle.kt │ │ ├── GridStyle.kt │ │ ├── LibraryViewModel.kt │ │ ├── MusicSeekSkipTouchListener.kt │ │ ├── NowPlayingScreen.kt │ │ ├── about │ │ │ └── AboutFragment.kt │ │ ├── albums │ │ │ ├── AlbumDetailsFragment.kt │ │ │ ├── AlbumDetailsViewModel.kt │ │ │ └── AlbumsFragment.kt │ │ ├── artists │ │ │ ├── AbsArtistDetailsFragment.kt │ │ │ ├── AlbumArtistDetailsFragment.kt │ │ │ ├── ArtistDetailsFragment.kt │ │ │ ├── ArtistDetailsViewModel.kt │ │ │ └── ArtistsFragment.kt │ │ ├── backup │ │ │ ├── BackupFragment.kt │ │ │ ├── BackupViewModel.kt │ │ │ └── RestoreActivity.kt │ │ ├── base │ │ │ ├── AbsMainActivityFragment.kt │ │ │ ├── AbsMusicServiceFragment.kt │ │ │ ├── AbsPlayerControlsFragment.kt │ │ │ ├── AbsPlayerFragment.kt │ │ │ ├── AbsRecyclerViewCustomGridSizeFragment.kt │ │ │ └── AbsRecyclerViewFragment.kt │ │ ├── folder │ │ │ └── FoldersFragment.kt │ │ ├── genres │ │ │ ├── GenreDetailsFragment.kt │ │ │ ├── GenreDetailsViewModel.kt │ │ │ └── GenresFragment.kt │ │ ├── home │ │ │ ├── HomeBinding.kt │ │ │ └── HomeFragment.kt │ │ ├── library │ │ │ └── LibraryFragment.kt │ │ ├── lyrics │ │ │ └── LyricsFragment.kt │ │ ├── other │ │ │ ├── DetailListFragment.kt │ │ │ ├── MiniPlayerFragment.kt │ │ │ ├── PlayingQueueRVFragment.kt │ │ │ ├── UserInfoFragment.kt │ │ │ └── VolumeFragment.kt │ │ ├── player │ │ │ ├── CoverLyricsFragment.kt │ │ │ ├── PlayerAlbumCoverFragment.kt │ │ │ ├── adaptive │ │ │ │ ├── AdaptiveFragment.kt │ │ │ │ └── AdaptivePlaybackControlsFragment.kt │ │ │ ├── blur │ │ │ │ ├── BlurPlaybackControlsFragment.kt │ │ │ │ └── BlurPlayerFragment.kt │ │ │ ├── card │ │ │ │ ├── CardFragment.kt │ │ │ │ └── CardPlaybackControlsFragment.kt │ │ │ ├── cardblur │ │ │ │ ├── CardBlurFragment.kt │ │ │ │ └── CardBlurPlaybackControlsFragment.kt │ │ │ ├── circle │ │ │ │ └── CirclePlayerFragment.kt │ │ │ ├── classic │ │ │ │ └── ClassicPlayerFragment.kt │ │ │ ├── color │ │ │ │ ├── ColorFragment.kt │ │ │ │ └── ColorPlaybackControlsFragment.kt │ │ │ ├── fit │ │ │ │ ├── FitFragment.kt │ │ │ │ └── FitPlaybackControlsFragment.kt │ │ │ ├── flat │ │ │ │ ├── FlatPlaybackControlsFragment.kt │ │ │ │ └── FlatPlayerFragment.kt │ │ │ ├── full │ │ │ │ ├── FullPlaybackControlsFragment.kt │ │ │ │ └── FullPlayerFragment.kt │ │ │ ├── gradient │ │ │ │ └── GradientPlayerFragment.kt │ │ │ ├── home │ │ │ │ └── HomePlayerFragment.kt │ │ │ ├── lockscreen │ │ │ │ └── LockScreenControlsFragment.kt │ │ │ ├── material │ │ │ │ ├── MaterialControlsFragment.kt │ │ │ │ └── MaterialFragment.kt │ │ │ ├── md3 │ │ │ │ ├── MD3PlaybackControlsFragment.kt │ │ │ │ └── MD3PlayerFragment.kt │ │ │ ├── normal │ │ │ │ ├── PlayerFragment.kt │ │ │ │ └── PlayerPlaybackControlsFragment.kt │ │ │ ├── peek │ │ │ │ ├── PeekPlayerControlFragment.kt │ │ │ │ └── PeekPlayerFragment.kt │ │ │ ├── plain │ │ │ │ ├── PlainPlaybackControlsFragment.kt │ │ │ │ └── PlainPlayerFragment.kt │ │ │ ├── simple │ │ │ │ ├── SimplePlaybackControlsFragment.kt │ │ │ │ └── SimplePlayerFragment.kt │ │ │ └── tiny │ │ │ │ ├── TinyPlaybackControlsFragment.kt │ │ │ │ └── TinyPlayerFragment.kt │ │ ├── playlists │ │ │ ├── PlaylistDetailsFragment.kt │ │ │ ├── PlaylistDetailsViewModel.kt │ │ │ └── PlaylistsFragment.kt │ │ ├── queue │ │ │ └── PlayingQueueFragment.kt │ │ ├── search │ │ │ └── SearchFragment.kt │ │ ├── settings │ │ │ ├── AbsSettingsFragment.kt │ │ │ ├── AudioSettings.kt │ │ │ ├── ImageSettingFragment.kt │ │ │ ├── MainSettingsFragment.kt │ │ │ ├── NotificationSettingsFragment.kt │ │ │ ├── NowPlayingSettingsFragment.kt │ │ │ ├── OtherSettingsFragment.kt │ │ │ ├── PersonalizeSettingsFragment.kt │ │ │ ├── SettingsFragment.kt │ │ │ └── ThemeSettingsFragment.kt │ │ └── songs │ │ │ └── SongsFragment.kt │ │ ├── glide │ │ ├── BlurTransformation.kt │ │ ├── RetroGlideExtension.kt │ │ ├── RetroMusicColoredTarget.kt │ │ ├── RetroMusicGlideModule.kt │ │ ├── SingleColorTarget.kt │ │ ├── artistimage │ │ │ ├── ArtistImage.kt │ │ │ ├── ArtistImageFetcher.kt │ │ │ └── ArtistImageLoader.kt │ │ ├── audiocover │ │ │ ├── AudioFileCover.kt │ │ │ ├── AudioFileCoverFetcher.kt │ │ │ ├── AudioFileCoverLoader.kt │ │ │ └── AudioFileCoverUtils.java │ │ ├── palette │ │ │ ├── BitmapPaletteResource.java │ │ │ ├── BitmapPaletteTarget.java │ │ │ ├── BitmapPaletteTranscoder.java │ │ │ └── BitmapPaletteWrapper.java │ │ └── playlistPreview │ │ │ ├── PlaylistPreview.kt │ │ │ ├── PlaylistPreviewFetcher.kt │ │ │ └── PlaylistPreviewLoader.kt │ │ ├── helper │ │ ├── BackupHelper.kt │ │ ├── HorizontalAdapterHelper.kt │ │ ├── M3UConstants.java │ │ ├── M3UWriter.kt │ │ ├── MusicPlayerRemote.kt │ │ ├── MusicProgressViewUpdateHelper.kt │ │ ├── PlayPauseButtonOnClickHandler.kt │ │ ├── SearchQueryHelper.kt │ │ ├── ShuffleHelper.kt │ │ ├── SortOrder.kt │ │ ├── StackBlur.java │ │ ├── StopWatch.kt │ │ ├── WallpaperAccentManager.kt │ │ └── menu │ │ │ ├── GenreMenuHelper.kt │ │ │ ├── PlaylistMenuHelper.kt │ │ │ ├── SongMenuHelper.kt │ │ │ └── SongsMenuHelper.kt │ │ ├── interfaces │ │ ├── IAlbumArtistClickListener.kt │ │ ├── IAlbumClickListener.kt │ │ ├── IArtistClickListener.kt │ │ ├── ICallbacks.kt │ │ ├── IGenreClickListener.kt │ │ ├── IHomeClickListener.kt │ │ ├── IMainActivityFragmentCallbacks.kt │ │ ├── IMusicServiceEventListener.kt │ │ ├── IPaletteColorHolder.kt │ │ ├── IPlaylistClickListener.kt │ │ └── IScrollHelper.kt │ │ ├── lyrics │ │ ├── CoverLrcView.kt │ │ ├── Lrc.java │ │ ├── LrcEntry.java │ │ ├── LrcUtils.java │ │ └── LrcView.java │ │ ├── misc │ │ ├── CustomFragmentStatePagerAdapter.java │ │ ├── SimpleOnSeekbarChangeListener.kt │ │ ├── UpdateToastMediaScannerCompletionListener.java │ │ └── WrappedAsyncTaskLoader.kt │ │ ├── model │ │ ├── AbsCustomPlaylist.kt │ │ ├── Album.kt │ │ ├── Artist.kt │ │ ├── ArtworkInfo.kt │ │ ├── AudioTagInfo.kt │ │ ├── CategoryInfo.kt │ │ ├── Genre.kt │ │ ├── Home.kt │ │ ├── Playlist.kt │ │ ├── PlaylistSong.kt │ │ ├── Song.kt │ │ ├── lyrics │ │ │ ├── AbsSynchronizedLyrics.java │ │ │ ├── Lyrics.java │ │ │ └── SynchronizedLyricsLRC.java │ │ └── smartplaylist │ │ │ ├── AbsSmartPlaylist.kt │ │ │ ├── HistoryPlaylist.kt │ │ │ ├── LastAddedPlaylist.kt │ │ │ ├── NotPlayedPlaylist.kt │ │ │ ├── PlaylistIdGenerator.kt │ │ │ ├── ShuffleAllPlaylist.kt │ │ │ └── TopTracksPlaylist.kt │ │ ├── preferences │ │ ├── AlbumCoverStylePreferenceDialog.kt │ │ ├── BlacklistPreferenceDialog.kt │ │ ├── DurationPreference.kt │ │ ├── LibraryPreference.kt │ │ └── NowPlayingScreenPreferenceDialog.kt │ │ ├── providers │ │ ├── BlacklistStore.java │ │ ├── HistoryStore.java │ │ ├── MusicPlaybackQueueStore.java │ │ └── SongPlayCountStore.java │ │ ├── repository │ │ ├── AlbumRepository.kt │ │ ├── ArtistRepository.kt │ │ ├── GenreRepository.kt │ │ ├── LastAddedSongsRepository.kt │ │ ├── PlaylistRepository.kt │ │ ├── PlaylistSongsLoader.kt │ │ ├── Repository.kt │ │ ├── RoomRepository.kt │ │ ├── SearchRepository.kt │ │ ├── SongRepository.kt │ │ ├── SortedCursor.java │ │ ├── SortedLongCursor.java │ │ └── TopPlayedRepository.kt │ │ ├── service │ │ ├── AudioFader.kt │ │ ├── CrossFadePlayer.kt │ │ ├── LocalPlayback.kt │ │ ├── MediaButtonIntentReceiver.kt │ │ ├── MediaSessionCallback.kt │ │ ├── MediaStoreObserver.kt │ │ ├── MultiPlayer.kt │ │ ├── MusicService.kt │ │ ├── PersistentStorage.kt │ │ ├── PlaybackManager.kt │ │ ├── SongPlayCountHelper.kt │ │ ├── ThrottledSeekHandler.kt │ │ ├── notification │ │ │ ├── PlayingNotification.kt │ │ │ ├── PlayingNotificationClassic.kt │ │ │ └── PlayingNotificationImpl24.kt │ │ └── playback │ │ │ └── Playback.kt │ │ ├── transform │ │ ├── CarousalPagerTransformer.kt │ │ ├── CascadingPageTransformer.kt │ │ ├── DefaultTransformer.kt │ │ ├── DepthTransformation.kt │ │ ├── HingeTransformation.kt │ │ ├── HorizontalFlipTransformation.kt │ │ ├── NormalPageTransformer.kt │ │ ├── ParallaxPagerTransformer.kt │ │ ├── VerticalFlipTransformation.kt │ │ └── VerticalStackTransformer.kt │ │ ├── util │ │ ├── ArtistSignatureUtil.kt │ │ ├── AutoGeneratedPlaylistBitmap.kt │ │ ├── CalendarUtil.kt │ │ ├── ColorUtil.java │ │ ├── CustomArtistImageUtil.kt │ │ ├── DensityUtil.kt │ │ ├── FilePathUtil.kt │ │ ├── FileUtil.java │ │ ├── FileUtils.kt │ │ ├── ImageUtil.java │ │ ├── LogUtil.kt │ │ ├── LyricUtil.kt │ │ ├── MergedImageUtils.kt │ │ ├── MusicUtil.kt │ │ ├── NavigationUtil.kt │ │ ├── PackageValidator.kt │ │ ├── PlaylistsUtil.kt │ │ ├── PreferenceUtil.kt │ │ ├── RetroColorUtil.java │ │ ├── RetroUtil.kt │ │ ├── RingtoneManager.kt │ │ ├── SAFUtil.java │ │ ├── Share.kt │ │ ├── SwipeAndDragHelper.java │ │ ├── TempUtils.java │ │ ├── ThemedFastScroller.kt │ │ ├── UriUtil.kt │ │ ├── ViewUtil.kt │ │ ├── color │ │ │ ├── ImageUtils.java │ │ │ ├── MediaNotificationProcessor.java │ │ │ └── NotificationColorUtil.java │ │ └── theme │ │ │ ├── ThemeManager.kt │ │ │ └── ThemeMode.kt │ │ ├── views │ │ ├── AccentIcon.kt │ │ ├── BaselineGridTextView.java │ │ ├── BreadCrumbLayout.java │ │ ├── ColorIconsImageView.kt │ │ ├── DrawableGradient.java │ │ ├── HeightFitSquareLayout.kt │ │ ├── HomeImageLayout.kt │ │ ├── ListItemView.kt │ │ ├── LollipopFixedWebView.kt │ │ ├── NumberRollView.kt │ │ ├── PermissionItem.kt │ │ ├── PopupBackground.java │ │ ├── RetroShapeableImageView.kt │ │ ├── ScrollingViewOnApplyWindowInsetsListener.java │ │ ├── SettingListItemView.kt │ │ ├── StatusBarView.kt │ │ ├── TintedBottomNavigationView.kt │ │ ├── TintedNavigationRailView.kt │ │ ├── TopAppBarLayout.kt │ │ ├── VerticalTextView.kt │ │ ├── WidthFitSquareCardView.kt │ │ ├── WidthFitSquareLayout.kt │ │ └── insets │ │ │ ├── InsetsConstraintLayout.kt │ │ │ └── InsetsRecyclerView.kt │ │ └── volume │ │ ├── AudioVolumeContentObserver.kt │ │ ├── AudioVolumeObserver.kt │ │ └── OnAudioVolumeChangedListener.kt │ └── res │ ├── anim │ ├── item_animation_fall_down.xml │ ├── layout_anim_fade.xml │ ├── layout_animation_fall_down.xml │ ├── retro_fragment_close_enter.xml │ ├── retro_fragment_close_exit.xml │ ├── retro_fragment_fast_out_extra_slow_in.xml │ ├── retro_fragment_open_enter.xml │ └── retro_fragment_open_exit.xml │ ├── drawable-anydpi-v24 │ └── ic_notification.xml │ ├── drawable-hdpi │ ├── default_album_art.webp │ ├── default_artist_art.webp │ ├── default_audio_art.webp │ └── ic_notification.png │ ├── drawable-mdpi │ ├── default_album_art.webp │ ├── default_artist_art.webp │ ├── default_audio_art.webp │ └── ic_notification.png │ ├── drawable-night-hdpi │ ├── default_album_art.webp │ ├── default_artist_art.webp │ └── default_audio_art.webp │ ├── drawable-night-mdpi │ ├── default_album_art.webp │ ├── default_artist_art.webp │ └── default_audio_art.webp │ ├── drawable-night-xhdpi │ ├── default_album_art.webp │ ├── default_artist_art.webp │ └── default_audio_art.webp │ ├── drawable-night-xxhdpi │ ├── default_album_art.webp │ ├── default_artist_art.webp │ └── default_audio_art.webp │ ├── drawable-night-xxxhdpi │ ├── default_album_art.webp │ ├── default_artist_art.webp │ └── default_audio_art.webp │ ├── drawable-v26 │ ├── saf_guide_1.webp │ ├── saf_guide_2.webp │ └── saf_guide_3.webp │ ├── drawable-xhdpi │ ├── default_album_art.webp │ ├── default_artist_art.webp │ ├── default_audio_art.webp │ └── ic_notification.png │ ├── drawable-xxhdpi │ ├── default_album_art.webp │ ├── default_artist_art.webp │ ├── default_audio_art.webp │ └── ic_notification.png │ ├── drawable-xxxhdpi │ ├── default_album_art.webp │ ├── default_artist_art.webp │ ├── default_audio_art.webp │ ├── ic_notification.png │ ├── ic_splash.png │ ├── np_adaptive.webp │ ├── np_blur.webp │ ├── np_blur_card.webp │ ├── np_card.webp │ ├── np_circle.webp │ ├── np_classic.webp │ ├── np_color.webp │ ├── np_fit.webp │ ├── np_flat.webp │ ├── np_full.webp │ ├── np_gradient.webp │ ├── np_material.webp │ ├── np_minimalistic_circle.webp │ ├── np_normal.webp │ ├── np_peek.webp │ ├── np_plain.webp │ ├── np_simple.webp │ └── np_tiny.webp │ ├── drawable │ ├── app_widget_background.xml │ ├── artist_card_gradient_effect.xml │ ├── asld_album.xml │ ├── asld_artist.xml │ ├── asld_face.xml │ ├── asld_folder.xml │ ├── asld_guitar.xml │ ├── asld_heart.xml │ ├── asld_music_note.xml │ ├── asld_playlist.xml │ ├── avd_album.xml │ ├── avd_artist.xml │ ├── avd_face.xml │ ├── avd_favorite.xml │ ├── avd_folder.xml │ ├── avd_guitar.xml │ ├── avd_music_note.xml │ ├── avd_playlist.xml │ ├── avd_splash.xml │ ├── avd_unfavorite.xml │ ├── card.xml │ ├── circle_widget_background.xml │ ├── color_circle_gradient.xml │ ├── color_progress_seek.xml │ ├── ic_account.xml │ ├── ic_album.xml │ ├── ic_album_artist.xml │ ├── ic_app_shortcut_background.xml │ ├── ic_app_shortcut_last_added.xml │ ├── ic_app_shortcut_shuffle_all.xml │ ├── ic_app_shortcut_top_tracks.xml │ ├── ic_arrow_back.xml │ ├── ic_arrow_forward.xml │ ├── ic_artist.xml │ ├── ic_audio_file.xml │ ├── ic_audiotrack.xml │ ├── ic_backup.xml │ ├── ic_bluetooth_connect.xml │ ├── ic_blur_on.xml │ ├── ic_bug_report.xml │ ├── ic_car.xml │ ├── ic_check_circle.xml │ ├── ic_clear_all.xml │ ├── ic_close.xml │ ├── ic_colorize.xml │ ├── ic_dashboard.xml │ ├── ic_delete.xml │ ├── ic_diamond.xml │ ├── ic_drag_handle.xml │ ├── ic_drag_vertical.xml │ ├── ic_edit.xml │ ├── ic_equalizer.xml │ ├── ic_expand_less.xml │ ├── ic_face.xml │ ├── ic_fast_food_meal.xml │ ├── ic_favorite.xml │ ├── ic_favorite_border.xml │ ├── ic_file_edit.xml │ ├── ic_filter_song.xml │ ├── ic_flag.xml │ ├── ic_folder.xml │ ├── ic_fullscreen.xml │ ├── ic_gift.xml │ ├── ic_github_circle.xml │ ├── ic_grid_size.xml │ ├── ic_guitar.xml │ ├── ic_hdr_strong.xml │ ├── ic_help.xml │ ├── ic_history.xml │ ├── ic_home.xml │ ├── ic_image.xml │ ├── ic_info_outline.xml │ ├── ic_instagram.xml │ ├── ic_keyboard.xml │ ├── ic_keyboard_arrow_down.xml │ ├── ic_keyboard_arrow_right.xml │ ├── ic_keyboard_arrow_up.xml │ ├── ic_kofi.xml │ ├── ic_language.xml │ ├── ic_launcher_foreground.xml │ ├── ic_launcher_monochrome.xml │ ├── ic_library_add.xml │ ├── ic_library_music.xml │ ├── ic_license.xml │ ├── ic_lyrics.xml │ ├── ic_lyrics_outline.xml │ ├── ic_mic.xml │ ├── ic_more_vert.xml │ ├── ic_music_note_off.xml │ ├── ic_notification_classic.xml │ ├── ic_notifications_active.xml │ ├── ic_open_in_browser.xml │ ├── ic_palette.xml │ ├── ic_palette_outline.xml │ ├── ic_pause.xml │ ├── ic_pause_outline.xml │ ├── ic_pause_outline_small.xml │ ├── ic_pause_sharp_white_64dp.xml │ ├── ic_pause_white_48dp.xml │ ├── ic_pause_white_64dp.xml │ ├── ic_paypal.xml │ ├── ic_person_flat.xml │ ├── ic_phonelink_ring.xml │ ├── ic_pinterest.xml │ ├── ic_play_arrow.xml │ ├── ic_play_arrow_outline.xml │ ├── ic_play_arrow_outline_small.xml │ ├── ic_play_arrow_sharp_white_64dp.xml │ ├── ic_play_arrow_white_32dp.xml │ ├── ic_play_arrow_white_48dp.xml │ ├── ic_play_arrow_white_64dp.xml │ ├── ic_play_circle.xml │ ├── ic_play_circle_filled.xml │ ├── ic_playback_speed.xml │ ├── ic_playlist_add.xml │ ├── ic_playlist_play.xml │ ├── ic_playlist_remove.xml │ ├── ic_queue_music.xml │ ├── ic_redo.xml │ ├── ic_refresh.xml │ ├── ic_repeat.xml │ ├── ic_repeat_one.xml │ ├── ic_repeat_white_circle.xml │ ├── ic_restore.xml │ ├── ic_save.xml │ ├── ic_sd_card.xml │ ├── ic_sd_storage.xml │ ├── ic_search.xml │ ├── ic_select_all.xml │ ├── ic_send.xml │ ├── ic_settings.xml │ ├── ic_settings_brightness.xml │ ├── ic_share.xml │ ├── ic_shuffle.xml │ ├── ic_shuffle_off_circled.xml │ ├── ic_shuffle_on_circled.xml │ ├── ic_skip_next.xml │ ├── ic_skip_next_outline.xml │ ├── ic_skip_next_sharp.xml │ ├── ic_skip_previous.xml │ ├── ic_skip_previous_outline.xml │ ├── ic_skip_previous_sharp.xml │ ├── ic_sleep_timer.xml │ ├── ic_sort.xml │ ├── ic_star.xml │ ├── ic_storage.xml │ ├── ic_telegram_white.xml │ ├── ic_testing.xml │ ├── ic_trending_up.xml │ ├── ic_twitter.xml │ ├── ic_view_carousel.xml │ ├── ic_volume_down.xml │ ├── ic_volume_off.xml │ ├── ic_volume_up.xml │ ├── ic_website.xml │ ├── instagram_story_background.xml │ ├── lyrics_mask.xml │ ├── material_design_default.webp │ ├── notification_selector.xml │ ├── popup_background.xml │ ├── progress_drawable_vertical.xml │ ├── rect_selector.xml │ ├── round_selector.xml │ ├── round_selector_mask.xml │ ├── rounded_drawable.xml │ ├── saf_guide_1.webp │ ├── saf_guide_2.webp │ ├── saf_guide_3.webp │ ├── shadow_blur_theme.xml │ ├── shadow_down_full_theme.xml │ ├── shadow_down_strong.xml │ ├── shadow_pro.xml │ ├── shadow_up.xml │ ├── shadow_up_down.xml │ ├── shadow_up_edited.xml │ ├── shadow_up_full_theme.xml │ ├── shadow_up_home.xml │ ├── shadow_up_strong.xml │ ├── sld_lyrics.xml │ ├── slider_thumb.xml │ ├── splash.xml │ ├── switch_square.xml │ ├── switch_thumb.xml │ ├── switch_thumb_material.xml │ ├── switch_track.xml │ ├── tab_lyrics_indicator.xml │ ├── widget_big_info.webp │ ├── widget_button_background.xml │ ├── widget_card_info.webp │ ├── widget_classic.webp │ ├── widget_selector.xml │ ├── widget_selector_dark.xml │ ├── widget_selector_light.xml │ ├── widget_small.webp │ └── widget_text.webp │ ├── font │ ├── manrope.xml │ ├── manrope_bold.ttf │ ├── manrope_extrabold.ttf │ ├── manrope_extralight.ttf │ ├── manrope_light.ttf │ ├── manrope_medium.ttf │ ├── manrope_regular.ttf │ └── manrope_semibold.ttf │ ├── layout-land │ ├── activity_album_tag_editor.xml │ ├── activity_drive_mode.xml │ ├── activity_lock_screen.xml │ ├── activity_song_tag_editor.xml │ ├── fragment_adaptive_player.xml │ ├── fragment_album_details.xml │ ├── fragment_artist_details.xml │ ├── fragment_blur.xml │ ├── fragment_card_player.xml │ ├── fragment_circle_player.xml │ ├── fragment_color_player.xml │ ├── fragment_flat_player.xml │ ├── fragment_home.xml │ ├── fragment_material.xml │ ├── fragment_md3_player.xml │ ├── fragment_plain_player.xml │ ├── fragment_player.xml │ ├── fragment_simple_player.xml │ ├── fragment_user_info.xml │ └── sliding_music_panel_layout.xml │ ├── layout-sw600dp │ ├── fragment_playing_queue.xml │ ├── item_list.xml │ ├── item_list_big.xml │ └── item_queue.xml │ ├── layout-v31 │ ├── layout_notification_collapsed.xml │ └── layout_notification_expanded.xml │ ├── layout │ ├── abs_playlists.xml │ ├── activity_album_tag_editor.xml │ ├── activity_bug_report.xml │ ├── activity_drive_mode.xml │ ├── activity_license.xml │ ├── activity_lock_screen.xml │ ├── activity_permission.xml │ ├── activity_restore.xml │ ├── activity_share_instagram.xml │ ├── activity_song_tag_editor.xml │ ├── app_widget_big.xml │ ├── app_widget_card.xml │ ├── app_widget_circle.xml │ ├── app_widget_classic.xml │ ├── app_widget_md3.xml │ ├── app_widget_small.xml │ ├── app_widget_text.xml │ ├── banner_image_layout.xml │ ├── bread_crumb.xml │ ├── bug_report_card_device_info.xml │ ├── card_retro_info.xml │ ├── collapsing_appbar_layout.xml │ ├── dialog_file_details.xml │ ├── dialog_playback_speed.xml │ ├── dialog_playlist.xml │ ├── dialog_sleep_timer.xml │ ├── fragment_about.xml │ ├── fragment_about_content.xml │ ├── fragment_adaptive_player.xml │ ├── fragment_adaptive_player_playback_controls.xml │ ├── fragment_album_card_cover.xml │ ├── fragment_album_carousel_cover.xml │ ├── fragment_album_circle_cover.xml │ ├── fragment_album_content.xml │ ├── fragment_album_cover.xml │ ├── fragment_album_details.xml │ ├── fragment_album_flat_cover.xml │ ├── fragment_album_full_card_cover.xml │ ├── fragment_album_full_cover.xml │ ├── fragment_artist_content.xml │ ├── fragment_artist_details.xml │ ├── fragment_backup.xml │ ├── fragment_blur.xml │ ├── fragment_blur_player_playback_controls.xml │ ├── fragment_card_blur_player.xml │ ├── fragment_card_blur_player_playback_controls.xml │ ├── fragment_card_player.xml │ ├── fragment_card_player_playback_controls.xml │ ├── fragment_circle_player.xml │ ├── fragment_classic_controls.xml │ ├── fragment_classic_player.xml │ ├── fragment_color_player.xml │ ├── fragment_color_player_playback_controls.xml │ ├── fragment_cover_lyrics.xml │ ├── fragment_fit.xml │ ├── fragment_fit_playback_controls.xml │ ├── fragment_flat_player.xml │ ├── fragment_flat_player_playback_controls.xml │ ├── fragment_folder.xml │ ├── fragment_full.xml │ ├── fragment_full_player_controls.xml │ ├── fragment_gradient_controls.xml │ ├── fragment_gradient_player.xml │ ├── fragment_home.xml │ ├── fragment_home_player.xml │ ├── fragment_library.xml │ ├── fragment_lock_screen_playback_controls.xml │ ├── fragment_lyrics.xml │ ├── fragment_main_recycler.xml │ ├── fragment_main_settings.xml │ ├── fragment_material.xml │ ├── fragment_material_playback_controls.xml │ ├── fragment_md3_player.xml │ ├── fragment_md3_player_playback_controls.xml │ ├── fragment_mini_player.xml │ ├── fragment_peek_album_cover.xml │ ├── fragment_peek_control_player.xml │ ├── fragment_peek_player.xml │ ├── fragment_plain_controls_fragment.xml │ ├── fragment_plain_player.xml │ ├── fragment_player.xml │ ├── fragment_player_album_cover.xml │ ├── fragment_player_playback_controls.xml │ ├── fragment_playing_queue.xml │ ├── fragment_playlist_detail.xml │ ├── fragment_playlist_detail_new.xml │ ├── fragment_search.xml │ ├── fragment_settings.xml │ ├── fragment_simple_controls_fragment.xml │ ├── fragment_simple_player.xml │ ├── fragment_simple_slide_large_image.xml │ ├── fragment_tiny_controls_fragment.xml │ ├── fragment_tiny_player.xml │ ├── fragment_user_info.xml │ ├── fragment_volume.xml │ ├── fragment_whats_new.xml │ ├── home_content.xml │ ├── image.xml │ ├── item_album_card.xml │ ├── item_artist.xml │ ├── item_artist_card.xml │ ├── item_artist_square.xml │ ├── item_card.xml │ ├── item_card_color.xml │ ├── item_contributor.xml │ ├── item_contributor_header.xml │ ├── item_favourite_card.xml │ ├── item_genre.xml │ ├── item_grid.xml │ ├── item_grid_circle.xml │ ├── item_grid_genre.xml │ ├── item_image.xml │ ├── item_image_gradient.xml │ ├── item_list.xml │ ├── item_list_backup.xml │ ├── item_list_big.xml │ ├── item_list_quick_actions.xml │ ├── item_permission.xml │ ├── item_queue.xml │ ├── item_simple_text.xml │ ├── item_song.xml │ ├── item_storage.xml │ ├── item_suggestions.xml │ ├── layout_notification_collapsed.xml │ ├── layout_notification_expanded.xml │ ├── list_item_color_view.xml │ ├── list_item_view.xml │ ├── list_item_view_no_card.xml │ ├── list_item_view_no_title.xml │ ├── list_item_view_seekbar.xml │ ├── list_item_view_switch.xml │ ├── list_item_view_switch_no_title.xml │ ├── list_setting_item_view.xml │ ├── loading.xml │ ├── media_button.xml │ ├── number_roll_view.xml │ ├── preference_category_title.xml │ ├── preference_dialog_audio_fade.xml │ ├── preference_dialog_library_categories.xml │ ├── preference_dialog_library_categories_listitem.xml │ ├── preference_dialog_now_playing_screen.xml │ ├── preference_now_playing_screen_item.xml │ ├── section_recycler_view.xml │ ├── shadow_statusbar_toolbar.xml │ ├── simple_appbar_layout.xml │ ├── sliding_music_panel_layout.xml │ ├── status_bar.xml │ ├── sub_header.xml │ └── user_image_layout.xml │ ├── menu │ ├── bottom_navigation_main.xml │ ├── menu_album_detail.xml │ ├── menu_artist_detail.xml │ ├── menu_artist_song_sort_order.xml │ ├── menu_backup.xml │ ├── menu_cannot_delete_single_songs_playlist_songs_selection.xml │ ├── menu_clear_history.xml │ ├── menu_genre_detail.xml │ ├── menu_item_directory.xml │ ├── menu_item_file.xml │ ├── menu_item_playing_queue_song.xml │ ├── menu_item_playlist.xml │ ├── menu_item_playlist_song.xml │ ├── menu_item_song.xml │ ├── menu_lyrics.xml │ ├── menu_main.xml │ ├── menu_media_selection.xml │ ├── menu_player.xml │ ├── menu_playlist_detail.xml │ ├── menu_playlists_selection.xml │ └── menu_playlists_songs_selection.xml │ ├── mipmap-anydpi-v26 │ ├── ic_launcher.xml │ └── ic_launcher_round.xml │ ├── mipmap-hdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-mdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xxhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xxxhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── navigation │ ├── library_graph.xml │ ├── main_graph.xml │ └── settings_graph.xml │ ├── values-ar-rSA │ └── strings.xml │ ├── values-b+es+419 │ └── strings.xml │ ├── values-cs-rCZ │ └── strings.xml │ ├── values-da-rDK │ └── strings.xml │ ├── values-de-rDE │ └── strings.xml │ ├── values-el-rGR │ └── strings.xml │ ├── values-en-rUS │ └── strings.xml │ ├── values-es-rES │ └── strings.xml │ ├── values-es-rUS │ └── strings.xml │ ├── values-eu-rES │ └── strings.xml │ ├── values-fa-rIR │ └── strings.xml │ ├── values-fil-rPH │ └── strings.xml │ ├── values-fr-rFR │ └── strings.xml │ ├── values-hi-rIN │ └── strings.xml │ ├── values-hr-rHR │ └── strings.xml │ ├── values-hu-rHU │ └── strings.xml │ ├── values-in-rID │ └── strings.xml │ ├── values-it-rIT │ └── strings.xml │ ├── values-ja-rJP │ └── strings.xml │ ├── values-kmr-rTR │ └── strings.xml │ ├── values-kn-rIN │ └── strings.xml │ ├── values-ko-rKR │ └── strings.xml │ ├── values-land │ └── integers.xml │ ├── values-lv-rLV │ └── strings.xml │ ├── values-ml-rIN │ └── strings.xml │ ├── values-my-rMM │ └── strings.xml │ ├── values-night-v27 │ └── styles.xml │ ├── values-night-v31 │ └── styles.xml │ ├── values-night │ ├── colors.xml │ ├── colors_md3.xml │ └── styles.xml │ ├── values-nl-rNL │ └── strings.xml │ ├── values-pl-rPL │ └── strings.xml │ ├── values-pt-rBR │ └── strings.xml │ ├── values-pt-rPT │ └── strings.xml │ ├── values-ro-rRO │ └── strings.xml │ ├── values-ru-rRU │ └── strings.xml │ ├── values-sr-rSP │ └── strings.xml │ ├── values-sv-rSE │ └── strings.xml │ ├── values-sw600dp │ └── integers.xml │ ├── values-ta-rIN │ └── strings.xml │ ├── values-te-rIN │ └── strings.xml │ ├── values-th-rTH │ └── strings.xml │ ├── values-tr-rTR │ └── strings.xml │ ├── values-uk-rUA │ └── strings.xml │ ├── values-v23 │ ├── bools.xml │ ├── dimens.xml │ └── styles.xml │ ├── values-v27 │ └── styles_parents.xml │ ├── values-v31 │ ├── bools.xml │ ├── colors.xml │ ├── integers.xml │ └── styles.xml │ ├── values-vi-rVN │ └── strings.xml │ ├── values-xlarge │ └── dimens.xml │ ├── values-zh-rCN │ └── strings.xml │ ├── values-zh-rHK │ └── strings.xml │ ├── values-zh-rTW │ └── strings.xml │ ├── values │ ├── arrays.xml │ ├── attrs.xml │ ├── baseline_textview_attrs.xml │ ├── bools.xml │ ├── circular_image_view_attrs.xml │ ├── color_icon_view_attrs.xml │ ├── colors.xml │ ├── colors_md3.xml │ ├── dimens.xml │ ├── donottranslate.xml │ ├── ic_launcher_background.xml │ ├── ids.xml │ ├── integers.xml │ ├── list_item_view.xml │ ├── list_setting_item_view.xml │ ├── lrc_colors.xml │ ├── lrc_dimens.xml │ ├── lrc_view_attrs.xml │ ├── permission_item.xml │ ├── seekarc_attrs.xml │ ├── shapeable_imageview.xml │ ├── strings.xml │ ├── styles.xml │ ├── styles_parents.xml │ └── values.xml │ └── xml │ ├── allowed_media_browser_callers.xml │ ├── app_widget_big_info.xml │ ├── app_widget_card_info.xml │ ├── app_widget_circle_info.xml │ ├── app_widget_classic_info.xml │ ├── app_widget_md3_info.xml │ ├── app_widget_small_info.xml │ ├── app_widget_text.xml │ ├── automotive_app_desc.xml │ ├── locales_config.xml │ ├── pref_advanced.xml │ ├── pref_audio.xml │ ├── pref_general.xml │ ├── pref_images.xml │ ├── pref_notification.xml │ ├── pref_now_playing_screen.xml │ ├── pref_ui.xml │ └── provider_paths.xml ├── appthemehelper ├── build.gradle ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── code │ │ └── name │ │ └── monkey │ │ └── appthemehelper │ │ ├── ATH.kt │ │ ├── ATHActivity.kt │ │ ├── ColorPalette.kt │ │ ├── ThemeStore.kt │ │ ├── ThemeStoreInterface.kt │ │ ├── ThemeStorePrefKeys.kt │ │ ├── common │ │ ├── ATHActionBarActivity.kt │ │ ├── ATHToolbarActivity.java │ │ ├── prefs │ │ │ ├── ATEColorPreference.kt │ │ │ ├── BorderCircleView.kt │ │ │ └── supportv7 │ │ │ │ ├── ATEColorPreference.kt │ │ │ │ ├── ATEDialogPreference.kt │ │ │ │ ├── ATEListPreference.kt │ │ │ │ ├── ATEPreference.kt │ │ │ │ ├── ATEPreferenceCategory.kt │ │ │ │ ├── ATEPreferenceFragmentCompat.java │ │ │ │ ├── ATESeekBarPreference.kt │ │ │ │ ├── ATESwitchPreference.kt │ │ │ │ └── dialogs │ │ │ │ ├── ATEListPreferenceDialogFragmentCompat.java │ │ │ │ └── ATEPreferenceDialogFragment.java │ │ └── views │ │ │ ├── ATEAccentTextView.kt │ │ │ └── ATESwitch.kt │ │ └── util │ │ ├── ATHUtil.kt │ │ ├── ColorUtil.kt │ │ ├── MaterialUtil.kt │ │ ├── MaterialValueHelper.kt │ │ ├── TextInputLayoutUtil.kt │ │ ├── TintHelper.java │ │ ├── ToolbarContentTintHelper.java │ │ ├── VersionUtils.kt │ │ └── ViewUtil.kt │ └── res │ ├── drawable │ └── ate_check.xml │ ├── layout │ ├── ate_preference_color.xml │ └── ate_preference_switch_support.xml │ ├── values-large │ └── dimens.xml │ ├── values-night-v31 │ └── colors.xml │ ├── values-v31 │ └── colors.xml │ └── values │ ├── attrs.xml │ ├── colors.xml │ ├── colors_material_design.xml │ ├── dimens.xml │ └── strings.xml ├── build.gradle ├── crowdin.yml ├── fastlane └── metadata │ └── android │ └── en-US │ ├── changelogs │ ├── 10443.txt │ ├── 10445.txt │ ├── 10503.txt │ ├── 10579.txt │ ├── 10580.txt │ ├── 10597.txt │ ├── 10600.txt │ └── 10603.txt │ ├── full_description.txt │ ├── images │ ├── icon.png │ ├── logo.png │ └── phoneScreenshots │ │ ├── 1.jpg │ │ ├── 1.png │ │ ├── 2.jpg │ │ ├── 2.png │ │ ├── 3.jpg │ │ ├── 3.png │ │ ├── 4.jpg │ │ ├── 4.png │ │ ├── 5.jpg │ │ ├── 5.png │ │ ├── 6.jpg │ │ ├── 7.jpg │ │ └── 8.jpg │ ├── short_description.txt │ └── title.txt ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── screenshots ├── adaptive.jpg ├── blur.jpg ├── classic.jpg ├── color.jpg ├── fit.jpg ├── flat.jpg ├── material.jpg ├── peak.jpg ├── peek.jpg ├── playlists.jpg ├── synced_over_black.jpg ├── synced_over_dark.jpg ├── synced_over_light.jpg ├── synced_replace_black.jpg ├── synced_replace_dark.jpg ├── synced_replace_light.jpg └── tiny.jpg ├── settings.gradle └── spotless.license.kt /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | 3 | *.bat text eol=crlf 4 | *.jar binary 5 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project. Please write in English only. 4 | title: '' 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | 15 | 16 | **Is your feature request related to a problem? Please describe.** 17 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 18 | 19 | **Describe the solution you'd like** 20 | A clear and concise description of what you want to happen. 21 | 22 | **Describe alternatives you've considered** 23 | A clear and concise description of any alternative solutions or features you've considered. 24 | 25 | **Additional context** 26 | Add any other context or screenshots about the feature request here. 27 | -------------------------------------------------------------------------------- /.github/workflows/android.yml: -------------------------------------------------------------------------------- 1 | name: Android CI 2 | 3 | on: 4 | push: 5 | branches: [ dev ] 6 | pull_request: 7 | branches: [ dev ] 8 | 9 | jobs: 10 | check: 11 | runs-on: ubuntu-latest 12 | timeout-minutes: 10 13 | steps: 14 | - uses: actions/checkout@v3 15 | - uses: gradle/wrapper-validation-action@v1 16 | - uses: actions/setup-java@v3 17 | with: 18 | distribution: 'zulu' 19 | java-version: 17 20 | - uses: gradle/gradle-build-action@v2 21 | - name: Lint Android 22 | run: ./gradlew lint 23 | 24 | build: 25 | runs-on: ubuntu-latest 26 | steps: 27 | - uses: actions/checkout@v3 28 | - uses: actions/setup-java@v3 29 | with: 30 | java-version: '17' 31 | distribution: 'zulu' 32 | - uses: gradle/gradle-build-action@v2 33 | - name: Build 34 | run: ./gradlew app:assemble 35 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | #built application files 2 | *.apk 3 | *.ap_ 4 | 5 | # files for the dex VM 6 | *.dex 7 | 8 | # Java class files 9 | *.class 10 | 11 | # generated files 12 | bin/ 13 | gen/ 14 | 15 | # Local configuration file (sdk path, etc) 16 | local.properties 17 | 18 | # Windows thumbnail db 19 | Thumbs.db 20 | 21 | # OSX files 22 | .DS_Store 23 | 24 | # Eclipse project files 25 | .classpath 26 | .project 27 | 28 | # Android Studio 29 | *.iml 30 | .idea 31 | #.idea/workspace.xml - remove # and delete .idea if it better suit your needs. 32 | .gradle 33 | build/ 34 | 35 | #NDK 36 | obj/ 37 | 38 | captures 39 | app/normal/release/ 40 | /models/ 41 | /app/release/ 42 | -------------------------------------------------------------------------------- /app/src/debug/res/font/bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/debug/res/font/bold.ttf -------------------------------------------------------------------------------- /app/src/debug/res/font/google_sans_bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/debug/res/font/google_sans_bold.ttf -------------------------------------------------------------------------------- /app/src/debug/res/font/google_sans_medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/debug/res/font/google_sans_medium.ttf -------------------------------------------------------------------------------- /app/src/debug/res/font/google_sans_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/debug/res/font/google_sans_regular.ttf -------------------------------------------------------------------------------- /app/src/debug/res/font/medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/debug/res/font/medium.ttf -------------------------------------------------------------------------------- /app/src/debug/res/font/regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/debug/res/font/regular.ttf -------------------------------------------------------------------------------- /app/src/debug/res/font/sans.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | 12 | -------------------------------------------------------------------------------- /app/src/debug/res/values/bools.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | true 4 | false 5 | -------------------------------------------------------------------------------- /app/src/debug/res/values/donottranslate.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Metro Debug 4 | -------------------------------------------------------------------------------- /app/src/main/assets/images/daksh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/assets/images/daksh.png -------------------------------------------------------------------------------- /app/src/main/assets/images/haythem.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/assets/images/haythem.jpg -------------------------------------------------------------------------------- /app/src/main/assets/images/hemanth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/assets/images/hemanth.jpg -------------------------------------------------------------------------------- /app/src/main/assets/images/lenny.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/assets/images/lenny.jpg -------------------------------------------------------------------------------- /app/src/main/assets/images/milind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/assets/images/milind.png -------------------------------------------------------------------------------- /app/src/main/assets/images/pratham.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/assets/images/pratham.jpg -------------------------------------------------------------------------------- /app/src/main/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/ic_launcher-playstore.png -------------------------------------------------------------------------------- /app/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/db/BlackListStoreEntity.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020 Hemanth Savarla. 3 | * 4 | * Licensed under the GNU General Public License v3 5 | * 6 | * This is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 9 | * 10 | * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 11 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 | * See the GNU General Public License for more details. 13 | * 14 | */ 15 | package code.name.monkey.retromusic.db 16 | 17 | import androidx.room.Entity 18 | import androidx.room.PrimaryKey 19 | 20 | @Entity 21 | class BlackListStoreEntity( 22 | @PrimaryKey 23 | val path: String 24 | ) 25 | -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/db/LyricsEntity.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020 Hemanth Savarla. 3 | * 4 | * Licensed under the GNU General Public License v3 5 | * 6 | * This is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 9 | * 10 | * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 11 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 | * See the GNU General Public License for more details. 13 | * 14 | */ 15 | package code.name.monkey.retromusic.db 16 | 17 | import androidx.room.Entity 18 | import androidx.room.PrimaryKey 19 | 20 | @Entity 21 | class LyricsEntity( 22 | @PrimaryKey val songId: Int, 23 | val lyrics: String 24 | ) 25 | -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/db/RoomMigrations.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.db 2 | 3 | import androidx.room.migration.Migration 4 | import androidx.sqlite.db.SupportSQLiteDatabase 5 | 6 | val MIGRATION_23_24 = object : Migration(23, 24) { 7 | override fun migrate(database: SupportSQLiteDatabase) { 8 | database.execSQL("DROP TABLE LyricsEntity") 9 | database.execSQL("DROP TABLE BlackListStoreEntity") 10 | } 11 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/extensions/FileExtensions.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.extensions 2 | 3 | import java.io.BufferedOutputStream 4 | import java.util.zip.ZipOutputStream 5 | 6 | fun BufferedOutputStream.zipOutputStream(): ZipOutputStream = ZipOutputStream(this) -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/extensions/InsetsExtensions.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.extensions 2 | 3 | import androidx.core.view.WindowInsetsCompat 4 | import code.name.monkey.retromusic.util.PreferenceUtil 5 | import code.name.monkey.retromusic.util.RetroUtil 6 | 7 | fun WindowInsetsCompat?.getBottomInsets(): Int { 8 | return if (PreferenceUtil.isFullScreenMode) { 9 | return 0 10 | } else { 11 | this?.getInsets(WindowInsetsCompat.Type.systemBars())?.bottom ?: RetroUtil.navigationBarHeight 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/extensions/PreferenceExtensions.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020 Hemanth Savarla. 3 | * 4 | * Licensed under the GNU General Public License v3 5 | * 6 | * This is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 9 | * 10 | * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 11 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 | * See the GNU General Public License for more details. 13 | * 14 | */ 15 | package code.name.monkey.retromusic.extensions 16 | 17 | import android.content.SharedPreferences 18 | 19 | fun SharedPreferences.getStringOrDefault(key: String, default: String): String { 20 | return getString(key, default) ?: default 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/extensions/SongExtensions.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.extensions 2 | 3 | import android.support.v4.media.MediaDescriptionCompat 4 | import android.support.v4.media.session.MediaSessionCompat.QueueItem 5 | import code.name.monkey.retromusic.model.Song 6 | import code.name.monkey.retromusic.util.MusicUtil 7 | 8 | val Song.uri get() = MusicUtil.getSongFileUri(songId = id) 9 | 10 | val Song.albumArtUri get() = MusicUtil.getMediaStoreAlbumCoverUri(albumId) 11 | 12 | fun ArrayList.toMediaSessionQueue(): List { 13 | return map { song -> 14 | val mediaDescription = MediaDescriptionCompat.Builder() 15 | .setMediaId(song.id.toString()) 16 | .setTitle(song.title) 17 | .setSubtitle(song.artistName) 18 | .setIconUri(song.albumArtUri) 19 | .build() 20 | QueueItem(mediaDescription, song.hashCode().toLong()) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/fragments/GridStyle.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.fragments 2 | 3 | import androidx.annotation.LayoutRes 4 | import code.name.monkey.retromusic.R 5 | 6 | enum class GridStyle constructor( 7 | @param:LayoutRes @field:LayoutRes val layoutResId: Int, 8 | val id: Int 9 | ) { 10 | Grid(R.layout.item_grid, 0), 11 | Card(R.layout.item_card, 1), 12 | ColoredCard(R.layout.item_card_color, 2), 13 | Circular(R.layout.item_grid_circle, 3), 14 | Image(R.layout.image, 4), 15 | GradientImage(R.layout.item_image_gradient, 5) 16 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/glide/artistimage/ArtistImage.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.glide.artistimage 2 | 3 | import code.name.monkey.retromusic.model.Artist 4 | 5 | class ArtistImage(val artist: Artist){ 6 | override fun equals(other: Any?): Boolean { 7 | if (other is ArtistImage){ 8 | return other.artist == artist 9 | } 10 | return false 11 | } 12 | 13 | override fun hashCode(): Int { 14 | return artist.hashCode() 15 | } 16 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/helper/M3UConstants.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019 Hemanth Savarala. 3 | * 4 | * Licensed under the GNU General Public License v3 5 | * 6 | * This is free software: you can redistribute it and/or modify it under 7 | * the terms of the GNU General Public License as published by 8 | * the Free Software Foundation either version 3 of the License, or (at your option) any later version. 9 | * 10 | * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 11 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 | * See the GNU General Public License for more details. 13 | */ 14 | 15 | package code.name.monkey.retromusic.helper; 16 | 17 | public interface M3UConstants { 18 | String EXTENSION = "m3u"; 19 | String HEADER = "#EXTM3U"; 20 | String ENTRY = "#EXTINF:"; 21 | String DURATION_SEPARATOR = ","; 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/interfaces/IAlbumArtistClickListener.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020 Hemanth Savarla. 3 | * 4 | * Licensed under the GNU General Public License v3 5 | * 6 | * This is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 9 | * 10 | * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 11 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 | * See the GNU General Public License for more details. 13 | * 14 | */ 15 | package code.name.monkey.retromusic.interfaces 16 | 17 | import android.view.View 18 | 19 | interface IAlbumArtistClickListener { 20 | fun onAlbumArtist(artistName: String, view: View) 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/interfaces/IAlbumClickListener.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020 Hemanth Savarla. 3 | * 4 | * Licensed under the GNU General Public License v3 5 | * 6 | * This is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 9 | * 10 | * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 11 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 | * See the GNU General Public License for more details. 13 | * 14 | */ 15 | package code.name.monkey.retromusic.interfaces 16 | 17 | import android.view.View 18 | 19 | interface IAlbumClickListener { 20 | fun onAlbumClick(albumId: Long, view: View) 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/interfaces/IArtistClickListener.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020 Hemanth Savarla. 3 | * 4 | * Licensed under the GNU General Public License v3 5 | * 6 | * This is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 9 | * 10 | * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 11 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 | * See the GNU General Public License for more details. 13 | * 14 | */ 15 | package code.name.monkey.retromusic.interfaces 16 | 17 | import android.view.View 18 | 19 | interface IArtistClickListener { 20 | fun onArtist(artistId: Long, view: View) 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/interfaces/ICallbacks.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020 Hemanth Savarla. 3 | * 4 | * Licensed under the GNU General Public License v3 5 | * 6 | * This is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 9 | * 10 | * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 11 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 | * See the GNU General Public License for more details. 13 | * 14 | */ 15 | package code.name.monkey.retromusic.interfaces 16 | 17 | import android.view.MenuItem 18 | import android.view.View 19 | import java.io.File 20 | 21 | interface ICallbacks { 22 | fun onFileSelected(file: File) 23 | 24 | fun onFileMenuClicked(file: File, view: View) 25 | 26 | fun onMultipleItemAction(item: MenuItem, files: ArrayList) 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/interfaces/IGenreClickListener.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.interfaces 2 | 3 | import android.view.View 4 | import code.name.monkey.retromusic.model.Genre 5 | 6 | interface IGenreClickListener { 7 | fun onClickGenre(genre: Genre, view: View) 8 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/interfaces/IHomeClickListener.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.interfaces 2 | 3 | import code.name.monkey.retromusic.model.Album 4 | import code.name.monkey.retromusic.model.Artist 5 | import code.name.monkey.retromusic.model.Genre 6 | 7 | interface IHomeClickListener { 8 | fun onAlbumClick(album: Album) 9 | 10 | fun onArtistClick(artist: Artist) 11 | 12 | fun onGenreClick(genre: Genre) 13 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/interfaces/IMainActivityFragmentCallbacks.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020 Hemanth Savarla. 3 | * 4 | * Licensed under the GNU General Public License v3 5 | * 6 | * This is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 9 | * 10 | * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 11 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 | * See the GNU General Public License for more details. 13 | * 14 | */ 15 | package code.name.monkey.retromusic.interfaces 16 | 17 | /** 18 | * Created by hemanths on 14/08/17. 19 | */ 20 | interface IMainActivityFragmentCallbacks { 21 | fun handleBackPress(): Boolean 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/interfaces/IPaletteColorHolder.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020 Hemanth Savarla. 3 | * 4 | * Licensed under the GNU General Public License v3 5 | * 6 | * This is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 9 | * 10 | * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 11 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 | * See the GNU General Public License for more details. 13 | * 14 | */ 15 | package code.name.monkey.retromusic.interfaces 16 | 17 | /** 18 | * @author Aidan Follestad (afollestad) 19 | */ 20 | interface IPaletteColorHolder { 21 | val paletteColor: Int 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/interfaces/IPlaylistClickListener.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.interfaces 2 | 3 | import android.view.View 4 | import code.name.monkey.retromusic.db.PlaylistWithSongs 5 | 6 | interface IPlaylistClickListener { 7 | fun onPlaylistClick(playlistWithSongs: PlaylistWithSongs, view: View) 8 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/interfaces/IScrollHelper.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.interfaces 2 | 3 | interface IScrollHelper { 4 | fun scrollToTop() 5 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/lyrics/Lrc.java: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.lyrics; 2 | 3 | /** 4 | * Desc : 歌词实体 Author : Lauzy Date : 2017/10/13 Blog : http://www.jianshu.com/u/e76853f863a9 Email : 5 | * freedompaladin@gmail.com 6 | */ 7 | public class Lrc { 8 | private long time; 9 | private String text; 10 | 11 | public long getTime() { 12 | return time; 13 | } 14 | 15 | public void setTime(long time) { 16 | this.time = time; 17 | } 18 | 19 | public String getText() { 20 | return text; 21 | } 22 | 23 | public void setText(String text) { 24 | this.text = text; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/model/AbsCustomPlaylist.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.model 2 | 3 | import code.name.monkey.retromusic.repository.LastAddedRepository 4 | import code.name.monkey.retromusic.repository.SongRepository 5 | import code.name.monkey.retromusic.repository.TopPlayedRepository 6 | import org.koin.core.component.KoinComponent 7 | import org.koin.core.component.inject 8 | 9 | abstract class AbsCustomPlaylist( 10 | id: Long, 11 | name: String 12 | ) : Playlist(id, name), KoinComponent { 13 | 14 | abstract fun songs(): List 15 | 16 | protected val songRepository by inject() 17 | 18 | protected val topPlayedRepository by inject() 19 | 20 | protected val lastAddedRepository by inject() 21 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/model/ArtworkInfo.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.model 2 | 3 | import android.graphics.Bitmap 4 | 5 | class ArtworkInfo constructor(val albumId: Long, val artwork: Bitmap?) 6 | -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/model/AudioTagInfo.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.model 2 | 3 | import org.jaudiotagger.tag.FieldKey 4 | 5 | class AudioTagInfo( 6 | val filePaths: List?, 7 | val fieldKeyValueMap: Map?, 8 | val artworkInfo: ArtworkInfo? 9 | ) -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/model/Genre.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019 Hemanth Savarala. 3 | * 4 | * Licensed under the GNU General Public License v3 5 | * 6 | * This is free software: you can redistribute it and/or modify it under 7 | * the terms of the GNU General Public License as published by 8 | * the Free Software Foundation either version 3 of the License, or (at your option) any later version. 9 | * 10 | * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 11 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 | * See the GNU General Public License for more details. 13 | */ 14 | 15 | package code.name.monkey.retromusic.model 16 | 17 | import android.os.Parcelable 18 | import kotlinx.parcelize.Parcelize 19 | 20 | @Parcelize 21 | data class Genre( 22 | val id: Long, 23 | val name: String, 24 | val songCount: Int 25 | ) : Parcelable -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/model/Home.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019 Hemanth Savarala. 3 | * 4 | * Licensed under the GNU General Public License v3 5 | * 6 | * This is free software: you can redistribute it and/or modify it under 7 | * the terms of the GNU General Public License as published by 8 | * the Free Software Foundation either version 3 of the License, or (at your option) any later version. 9 | * 10 | * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 11 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 | * See the GNU General Public License for more details. 13 | */ 14 | 15 | package code.name.monkey.retromusic.model 16 | 17 | import androidx.annotation.StringRes 18 | import code.name.monkey.retromusic.HomeSection 19 | 20 | data class Home( 21 | val arrayList: List, 22 | @HomeSection 23 | val homeSection: Int, 24 | @StringRes 25 | val titleRes: Int 26 | ) -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/AbsSmartPlaylist.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.model.smartplaylist 2 | 3 | import androidx.annotation.DrawableRes 4 | import code.name.monkey.retromusic.R 5 | import code.name.monkey.retromusic.model.AbsCustomPlaylist 6 | 7 | abstract class AbsSmartPlaylist( 8 | name: String, 9 | @DrawableRes val iconRes: Int = R.drawable.ic_queue_music 10 | ) : AbsCustomPlaylist( 11 | id = PlaylistIdGenerator(name, iconRes), 12 | name = name 13 | ) -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/HistoryPlaylist.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.model.smartplaylist 2 | 3 | import code.name.monkey.retromusic.App 4 | import code.name.monkey.retromusic.R 5 | import code.name.monkey.retromusic.model.Song 6 | import kotlinx.parcelize.Parcelize 7 | import org.koin.core.component.KoinComponent 8 | 9 | @Parcelize 10 | class HistoryPlaylist : AbsSmartPlaylist( 11 | name = App.getContext().getString(R.string.history), 12 | iconRes = R.drawable.ic_history 13 | ), KoinComponent { 14 | 15 | override fun songs(): List { 16 | return topPlayedRepository.recentlyPlayedTracks() 17 | } 18 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/LastAddedPlaylist.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.model.smartplaylist 2 | 3 | import code.name.monkey.retromusic.App 4 | import code.name.monkey.retromusic.R 5 | import code.name.monkey.retromusic.model.Song 6 | import kotlinx.parcelize.Parcelize 7 | 8 | @Parcelize 9 | class LastAddedPlaylist : AbsSmartPlaylist( 10 | name = App.getContext().getString(R.string.last_added), 11 | iconRes = R.drawable.ic_library_add 12 | ) { 13 | override fun songs(): List { 14 | return lastAddedRepository.recentSongs() 15 | } 16 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/NotPlayedPlaylist.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.model.smartplaylist 2 | 3 | import code.name.monkey.retromusic.App 4 | import code.name.monkey.retromusic.R 5 | import code.name.monkey.retromusic.model.Song 6 | import kotlinx.parcelize.Parcelize 7 | 8 | @Parcelize 9 | class NotPlayedPlaylist : AbsSmartPlaylist( 10 | name = App.getContext().getString(R.string.not_recently_played), 11 | iconRes = R.drawable.ic_audiotrack 12 | ) { 13 | override fun songs(): List { 14 | return topPlayedRepository.notRecentlyPlayedTracks() 15 | } 16 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/PlaylistIdGenerator.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.model.smartplaylist 2 | 3 | import androidx.annotation.DrawableRes 4 | import kotlin.math.abs 5 | 6 | object PlaylistIdGenerator { 7 | 8 | operator fun invoke(name: String, @DrawableRes iconRes: Int): Long { 9 | return abs(31L * name.hashCode() + iconRes * name.hashCode() * 31L * 31L) 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/ShuffleAllPlaylist.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.model.smartplaylist 2 | 3 | import code.name.monkey.retromusic.App 4 | import code.name.monkey.retromusic.R 5 | import code.name.monkey.retromusic.model.Song 6 | import kotlinx.parcelize.Parcelize 7 | 8 | @Parcelize 9 | class ShuffleAllPlaylist : AbsSmartPlaylist( 10 | name = App.getContext().getString(R.string.action_shuffle_all), 11 | iconRes = R.drawable.ic_shuffle 12 | ) { 13 | override fun songs(): List { 14 | return songRepository.songs() 15 | } 16 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/TopTracksPlaylist.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.model.smartplaylist 2 | 3 | import code.name.monkey.retromusic.App 4 | import code.name.monkey.retromusic.R 5 | import code.name.monkey.retromusic.model.Song 6 | import kotlinx.parcelize.Parcelize 7 | 8 | @Parcelize 9 | class TopTracksPlaylist : AbsSmartPlaylist( 10 | name = App.getContext().getString(R.string.my_top_tracks), 11 | iconRes = R.drawable.ic_trending_up 12 | ) { 13 | override fun songs(): List { 14 | return topPlayedRepository.topTracks() 15 | } 16 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/transform/DefaultTransformer.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.transform 2 | 3 | import android.view.View 4 | import androidx.viewpager.widget.ViewPager 5 | 6 | class DefaultTransformer : ViewPager.PageTransformer { 7 | override fun transformPage(page: View, position: Float) {} 8 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/util/FilePathUtil.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.util 2 | 3 | import android.os.Environment 4 | 5 | object FilePathUtil { 6 | fun blacklistFilePaths(): List { 7 | return listOf( 8 | getExternalStoragePublicDirectory(Environment.DIRECTORY_ALARMS), 9 | getExternalStoragePublicDirectory(Environment.DIRECTORY_RINGTONES), 10 | getExternalStoragePublicDirectory(Environment.DIRECTORY_NOTIFICATIONS) 11 | ).map { 12 | FileUtil.safeGetCanonicalPath(it) 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/util/LogUtil.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.util 2 | 3 | import android.util.Log 4 | import code.name.monkey.retromusic.BuildConfig 5 | 6 | fun Any.logD(message: Any?) { 7 | logD(message.toString()) 8 | } 9 | 10 | fun Any.logD(message: String) { 11 | if (BuildConfig.DEBUG) { 12 | Log.d(name, message) 13 | } 14 | } 15 | 16 | fun Any.logE(message: String) { 17 | Log.e(name, message) 18 | } 19 | 20 | fun Any.logE(e: Exception) { 21 | Log.e(name, e.message ?: "Error") 22 | } 23 | 24 | private val Any.name: String get() = this::class.java.simpleName -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/util/UriUtil.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.util 2 | 3 | import android.content.ContentUris 4 | import android.content.Context 5 | import android.net.Uri 6 | import android.os.Build 7 | import android.provider.MediaStore 8 | import androidx.annotation.RequiresApi 9 | import code.name.monkey.retromusic.Constants 10 | 11 | object UriUtil { 12 | @RequiresApi(Build.VERSION_CODES.Q) 13 | fun getUriFromPath(context: Context, path: String): Uri { 14 | val uri = MediaStore.Files.getContentUri(MediaStore.VOLUME_EXTERNAL) 15 | val proj = arrayOf(MediaStore.Files.FileColumns._ID) 16 | context.contentResolver.query( 17 | uri, proj, Constants.DATA + "=?", arrayOf(path), null 18 | )?.use { cursor -> 19 | if (cursor.count != 0) { 20 | cursor.moveToFirst() 21 | return ContentUris.withAppendedId(uri, cursor.getLong(0)) 22 | } 23 | } 24 | return Uri.EMPTY 25 | } 26 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/util/theme/ThemeMode.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.util.theme 2 | 3 | enum class ThemeMode { 4 | LIGHT, 5 | DARK, 6 | BLACK, 7 | AUTO 8 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/views/AccentIcon.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.views 2 | 3 | import android.content.Context 4 | import android.content.res.ColorStateList 5 | import android.util.AttributeSet 6 | import androidx.appcompat.widget.AppCompatImageView 7 | import code.name.monkey.appthemehelper.ThemeStore 8 | 9 | class AccentIcon @JvmOverloads constructor( 10 | context: Context, 11 | attrs: AttributeSet? = null, 12 | defStyleAttr: Int = -1 13 | ) : AppCompatImageView(context, attrs, defStyleAttr) { 14 | init { 15 | imageTintList = ColorStateList.valueOf(ThemeStore.accentColor(context)) 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/views/insets/InsetsConstraintLayout.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.views.insets 2 | 3 | import android.content.Context 4 | import android.util.AttributeSet 5 | import androidx.constraintlayout.widget.ConstraintLayout 6 | import code.name.monkey.retromusic.util.PreferenceUtil 7 | import dev.chrisbanes.insetter.applyInsetter 8 | 9 | class InsetsConstraintLayout @JvmOverloads constructor( 10 | context: Context, 11 | attrs: AttributeSet? = null, 12 | defStyleAttr: Int = 0 13 | ) : ConstraintLayout(context, attrs, defStyleAttr) { 14 | init { 15 | if (!isInEditMode && !PreferenceUtil.isFullScreenMode) 16 | applyInsetter { 17 | type(navigationBars = true) { 18 | padding(vertical = true) 19 | } 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/views/insets/InsetsRecyclerView.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.retromusic.views.insets 2 | 3 | import android.content.Context 4 | import android.util.AttributeSet 5 | import androidx.recyclerview.widget.RecyclerView 6 | import code.name.monkey.retromusic.util.PreferenceUtil 7 | import dev.chrisbanes.insetter.applyInsetter 8 | 9 | class InsetsRecyclerView @JvmOverloads constructor( 10 | context: Context, 11 | attrs: AttributeSet? = null, 12 | defStyleAttr: Int = 0, 13 | ) : RecyclerView(context, attrs, defStyleAttr) { 14 | init { 15 | if (!isInEditMode && !PreferenceUtil.isFullScreenMode) 16 | applyInsetter { 17 | type(navigationBars = true) { 18 | padding(vertical = true) 19 | } 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /app/src/main/java/code/name/monkey/retromusic/volume/OnAudioVolumeChangedListener.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019 Hemanth Savarala. 3 | * 4 | * Licensed under the GNU General Public License v3 5 | * 6 | * This is free software: you can redistribute it and/or modify it under 7 | * the terms of the GNU General Public License as published by 8 | * the Free Software Foundation either version 3 of the License, or (at your option) any later version. 9 | * 10 | * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 11 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 | * See the GNU General Public License for more details. 13 | */ 14 | package code.name.monkey.retromusic.volume 15 | 16 | interface OnAudioVolumeChangedListener { 17 | fun onAudioVolumeChanged(currentVolume: Int, maxVolume: Int) 18 | } -------------------------------------------------------------------------------- /app/src/main/res/anim/item_animation_fall_down.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 8 | 9 | 13 | 14 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/anim/layout_anim_fade.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/layout_animation_fall_down.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/retro_fragment_fast_out_extra_slow_in.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi-v24/ic_notification.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/default_album_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-hdpi/default_album_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/default_artist_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-hdpi/default_artist_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/default_audio_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-hdpi/default_audio_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-hdpi/ic_notification.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/default_album_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-mdpi/default_album_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/default_artist_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-mdpi/default_artist_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/default_audio_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-mdpi/default_audio_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-mdpi/ic_notification.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-night-hdpi/default_album_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-night-hdpi/default_album_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-night-hdpi/default_artist_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-night-hdpi/default_artist_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-night-hdpi/default_audio_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-night-hdpi/default_audio_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-night-mdpi/default_album_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-night-mdpi/default_album_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-night-mdpi/default_artist_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-night-mdpi/default_artist_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-night-mdpi/default_audio_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-night-mdpi/default_audio_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-night-xhdpi/default_album_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-night-xhdpi/default_album_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-night-xhdpi/default_artist_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-night-xhdpi/default_artist_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-night-xhdpi/default_audio_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-night-xhdpi/default_audio_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-night-xxhdpi/default_album_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-night-xxhdpi/default_album_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-night-xxhdpi/default_artist_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-night-xxhdpi/default_artist_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-night-xxhdpi/default_audio_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-night-xxhdpi/default_audio_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-night-xxxhdpi/default_album_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-night-xxxhdpi/default_album_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-night-xxxhdpi/default_artist_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-night-xxxhdpi/default_artist_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-night-xxxhdpi/default_audio_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-night-xxxhdpi/default_audio_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v26/saf_guide_1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-v26/saf_guide_1.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v26/saf_guide_2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-v26/saf_guide_2.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-v26/saf_guide_3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-v26/saf_guide_3.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/default_album_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xhdpi/default_album_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/default_artist_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xhdpi/default_artist_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/default_audio_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xhdpi/default_audio_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xhdpi/ic_notification.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/default_album_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxhdpi/default_album_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/default_artist_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxhdpi/default_artist_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/default_audio_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxhdpi/default_audio_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxhdpi/ic_notification.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/default_album_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/default_album_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/default_artist_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/default_artist_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/default_audio_art.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/default_audio_art.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/ic_notification.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/ic_splash.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/np_adaptive.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/np_adaptive.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/np_blur.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/np_blur.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/np_blur_card.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/np_blur_card.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/np_card.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/np_card.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/np_circle.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/np_circle.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/np_classic.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/np_classic.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/np_color.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/np_color.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/np_fit.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/np_fit.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/np_flat.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/np_flat.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/np_full.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/np_full.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/np_gradient.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/np_gradient.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/np_material.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/np_material.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/np_minimalistic_circle.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/np_minimalistic_circle.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/np_normal.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/np_normal.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/np_peek.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/np_peek.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/np_plain.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/np_plain.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/np_simple.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/np_simple.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/np_tiny.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable-xxxhdpi/np_tiny.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/app_widget_background.xml: -------------------------------------------------------------------------------- 1 | 5 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/artist_card_gradient_effect.xml: -------------------------------------------------------------------------------- 1 | 14 | 15 | 17 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/asld_album.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 9 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/asld_artist.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/asld_face.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/asld_folder.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 9 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/asld_guitar.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 9 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/asld_heart.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 14 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/asld_music_note.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 9 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/asld_playlist.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/circle_widget_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/color_circle_gradient.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_album.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_app_shortcut_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_app_shortcut_last_added.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 15 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_app_shortcut_shuffle_all.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 15 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_app_shortcut_top_tracks.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 15 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_arrow_back.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_arrow_forward.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_artist.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_audiotrack.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_car.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_check_circle.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_clear_all.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_close.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_colorize.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_diamond.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_drag_handle.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_edit.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_equalizer.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_expand_less.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_face.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_fast_food_meal.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_favorite.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_file_edit.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_flag.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_folder.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_home.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_image.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_instagram.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_keyboard.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_keyboard_arrow_down.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_keyboard_arrow_right.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_keyboard_arrow_up.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_kofi.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_library_add.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_license.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lyrics.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lyrics_outline.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_mic.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_notification_classic.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_pause_outline.xml: -------------------------------------------------------------------------------- 1 | 6 | 11 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_pause_outline_small.xml: -------------------------------------------------------------------------------- 1 | 6 | 11 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_pause_white_64dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_play_arrow_outline.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_play_arrow_outline_small.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_play_arrow_sharp_white_64dp.xml: -------------------------------------------------------------------------------- 1 | 14 | 15 | 20 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_playlist_add.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_playlist_play.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_playlist_remove.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_redo.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_refresh.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_restore.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_save.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_search.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_select_all.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_send.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_share.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_shuffle.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_skip_next.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_skip_next_outline.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_skip_next_sharp.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_skip_previous.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_skip_previous_outline.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_skip_previous_sharp.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_sort.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_star.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_storage.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_telegram_white.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_trending_up.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twitter.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_view_carousel.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_volume_down.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_volume_up.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_website.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/instagram_story_background.xml: -------------------------------------------------------------------------------- 1 | 14 | 15 | 17 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/lyrics_mask.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/material_design_default.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable/material_design_default.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/notification_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/popup_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/progress_drawable_vertical.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_selector.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_selector_mask.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/rounded_drawable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/saf_guide_1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable/saf_guide_1.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/saf_guide_2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable/saf_guide_2.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/saf_guide_3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable/saf_guide_3.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/shadow_blur_theme.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shadow_down_full_theme.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shadow_down_strong.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shadow_pro.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shadow_up.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shadow_up_down.xml: -------------------------------------------------------------------------------- 1 | 14 | 15 | 17 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shadow_up_edited.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shadow_up_full_theme.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shadow_up_home.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shadow_up_strong.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/sld_lyrics.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/slider_thumb.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/splash.xml: -------------------------------------------------------------------------------- 1 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/switch_square.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/switch_thumb.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/switch_thumb_material.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/switch_track.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/tab_lyrics_indicator.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/widget_big_info.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable/widget_big_info.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/widget_button_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/widget_card_info.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable/widget_card_info.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/widget_classic.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable/widget_classic.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/widget_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/widget_selector_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/widget_selector_light.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/widget_small.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable/widget_small.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/widget_text.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/drawable/widget_text.webp -------------------------------------------------------------------------------- /app/src/main/res/font/manrope.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | 12 | 15 | 18 | 21 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/font/manrope_bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/font/manrope_bold.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/manrope_extrabold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/font/manrope_extrabold.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/manrope_extralight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/font/manrope_extralight.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/manrope_light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/font/manrope_light.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/manrope_medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/font/manrope_medium.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/manrope_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/font/manrope_regular.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/manrope_semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/font/manrope_semibold.ttf -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_about.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_about_content.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_album_full_cover.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_grid_genre.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_simple_text.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/preference_dialog_now_playing_screen.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/simple_appbar_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/status_bar.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/sub_header.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_artist_detail.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 8 | 9 | 13 | 14 | 18 | 19 | 23 | 24 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_artist_song_sort_order.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 10 | 13 | 16 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_backup.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 14 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_clear_history.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_genre_detail.xml: -------------------------------------------------------------------------------- 1 | 3 | 7 | 11 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_item_playlist.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 10 | 13 | 16 | 19 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_lyrics.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/values-land/integers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0 4 | 1 5 | -------------------------------------------------------------------------------- /app/src/main/res/values-night-v31/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values-night/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | @android:color/black 5 | 6 | #202020 7 | @color/darkerColorSurface 8 | -------------------------------------------------------------------------------- /app/src/main/res/values-night/colors_md3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @color/elevationOverlayDark 4 | -------------------------------------------------------------------------------- /app/src/main/res/values-sw600dp/integers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 4 | 6 5 | 6 | 2 7 | 3 8 | 9 | 6 10 | 8 11 | 1 12 | 1 13 | -------------------------------------------------------------------------------- /app/src/main/res/values-v23/bools.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | true 4 | -------------------------------------------------------------------------------- /app/src/main/res/values-v23/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 24dp 4 | -------------------------------------------------------------------------------- /app/src/main/res/values-v31/bools.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | true 4 | true 5 | -------------------------------------------------------------------------------- /app/src/main/res/values-v31/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @android:color/system_accent1_900 4 | @android:color/system_accent1_50 5 | -------------------------------------------------------------------------------- /app/src/main/res/values-v31/integers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0 4 | -------------------------------------------------------------------------------- /app/src/main/res/values-xlarge/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 64dp 3 | 64dp 4 | 72dp 5 | 16dp 6 | 80dp 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/values/bools.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | false 5 | 6 | true 7 | 8 | false 9 | -------------------------------------------------------------------------------- /app/src/main/res/values/circular_image_view_attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/values/color_icon_view_attrs.xml: -------------------------------------------------------------------------------- 1 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors_md3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @color/md_grey_500 4 | @color/md_grey_500 5 | @color/md_black_1000 6 | @color/elevationOverlayLight 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | -------------------------------------------------------------------------------- /app/src/main/res/values/integers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2 4 | 4 5 | 6 | 1 7 | 2 8 | 9 | 4 10 | 6 11 | 12 | 200 13 | 1 14 | 0 15 | 16 | 2 17 | -------------------------------------------------------------------------------- /app/src/main/res/values/list_item_view.xml: -------------------------------------------------------------------------------- 1 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/values/lrc_colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #9E9E9E 4 | #FF4081 5 | #F8BBD0 6 | #809E9E9E 7 | #809E9E9E 8 | -------------------------------------------------------------------------------- /app/src/main/res/values/lrc_dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1000 4 | 20sp 5 | 16sp 6 | 16dp 7 | 1dp 8 | 30dp 9 | 40dp 10 | -------------------------------------------------------------------------------- /app/src/main/res/values/permission_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values/shapeable_imageview.xml: -------------------------------------------------------------------------------- 1 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/values/values.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | album_art_transition 4 | user_image_transition 5 | album_art_transition 6 | album_art_transition 7 | artist_image_transition 8 | artist_image_transition 9 | artist_image_transition 10 | toolbar_transition 11 | -------------------------------------------------------------------------------- /app/src/main/res/xml/app_widget_big_info.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/xml/app_widget_card_info.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/xml/app_widget_circle_info.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/xml/app_widget_classic_info.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/xml/app_widget_md3_info.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/xml/app_widget_small_info.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/xml/app_widget_text.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/xml/automotive_app_desc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/xml/pref_images.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/xml/provider_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /appthemehelper/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | apply plugin: 'kotlin-android' 3 | android { 4 | compileSdk 33 5 | namespace "code.name.monkey.appthemehelper" 6 | 7 | defaultConfig { 8 | minSdk 21 9 | targetSdk 33 10 | } 11 | buildTypes { 12 | release { 13 | minifyEnabled true 14 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 15 | } 16 | } 17 | lint { 18 | abortOnError false 19 | } 20 | compileOptions { 21 | sourceCompatibility JavaVersion.VERSION_1_8 22 | targetCompatibility JavaVersion.VERSION_1_8 23 | } 24 | } 25 | 26 | dependencies { 27 | implementation "androidx.appcompat:appcompat:$appcompat_version" 28 | implementation "com.google.android.material:material:$mdc_version" 29 | implementation "androidx.preference:preference-ktx:$preference_version" 30 | } 31 | -------------------------------------------------------------------------------- /appthemehelper/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /appthemehelper/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/ATHActionBarActivity.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.appthemehelper.common 2 | 3 | import androidx.appcompat.widget.Toolbar 4 | 5 | import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper 6 | 7 | class ATHActionBarActivity : ATHToolbarActivity() { 8 | 9 | override fun getATHToolbar(): Toolbar? { 10 | return ToolbarContentTintHelper.getSupportActionBarView(supportActionBar) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/views/ATESwitch.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.appthemehelper.common.views 2 | 3 | import android.content.Context 4 | import android.util.AttributeSet 5 | import androidx.core.view.isVisible 6 | import code.name.monkey.appthemehelper.ATH 7 | import code.name.monkey.appthemehelper.ThemeStore 8 | import com.google.android.material.materialswitch.MaterialSwitch 9 | 10 | /** 11 | * @author Aidan Follestad (afollestad) 12 | */ 13 | class ATESwitch @JvmOverloads constructor( 14 | context: Context, 15 | attrs: AttributeSet? = null, 16 | defStyleAttr: Int = -1, 17 | ) : MaterialSwitch(context, attrs, defStyleAttr) { 18 | 19 | init { 20 | if (!isInEditMode && !ThemeStore.isMD3Enabled(context)) { 21 | ATH.setTint(this, ThemeStore.accentColor(context)) 22 | } 23 | } 24 | 25 | override fun isShown(): Boolean { 26 | return parent != null && isVisible 27 | } 28 | } -------------------------------------------------------------------------------- /appthemehelper/src/main/java/code/name/monkey/appthemehelper/util/ATHUtil.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.appthemehelper.util 2 | 3 | import android.content.Context 4 | import android.graphics.Color 5 | import androidx.annotation.AttrRes 6 | import androidx.core.content.res.use 7 | import java.lang.Exception 8 | 9 | /** 10 | * @author Aidan Follestad (afollestad) 11 | */ 12 | object ATHUtil { 13 | 14 | fun isWindowBackgroundDark(context: Context): Boolean { 15 | return !ColorUtil.isColorLight(resolveColor(context, android.R.attr.windowBackground)) 16 | } 17 | 18 | @JvmOverloads 19 | fun resolveColor(context: Context, @AttrRes attr: Int, fallback: Int = 0): Int { 20 | context.theme.obtainStyledAttributes(intArrayOf(attr)).use { 21 | return try { 22 | it.getColor(0, fallback); 23 | } catch (e: Exception) { 24 | Color.BLACK 25 | } 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /appthemehelper/src/main/java/code/name/monkey/appthemehelper/util/ViewUtil.kt: -------------------------------------------------------------------------------- 1 | package code.name.monkey.appthemehelper.util 2 | 3 | import android.graphics.drawable.Drawable 4 | import android.view.View 5 | import android.view.ViewTreeObserver 6 | 7 | object ViewUtil { 8 | fun removeOnGlobalLayoutListener(v: View, listener: ViewTreeObserver.OnGlobalLayoutListener) { 9 | v.viewTreeObserver.removeOnGlobalLayoutListener(listener) 10 | } 11 | 12 | fun setBackgroundCompat(view: View, drawable: Drawable?) { 13 | view.background = drawable 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /appthemehelper/src/main/res/drawable/ate_check.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /appthemehelper/src/main/res/layout/ate_preference_color.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /appthemehelper/src/main/res/layout/ate_preference_switch_support.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /appthemehelper/src/main/res/values-large/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /appthemehelper/src/main/res/values-night-v31/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @android:color/system_accent1_200 4 | @android:color/system_accent1_500 5 | -------------------------------------------------------------------------------- /appthemehelper/src/main/res/values-v31/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @android:color/system_accent1_600 4 | @android:color/system_accent1_50 5 | 6 | -------------------------------------------------------------------------------- /appthemehelper/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1dp 5 | 6 | -------------------------------------------------------------------------------- /appthemehelper/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | appthemehelper 3 | 4 | -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | ext { 5 | lifecycle_version = '2.6.1' 6 | navigation_version = '2.5.3' 7 | mdc_version = '1.9.0-beta01' 8 | preference_version = '1.2.0' 9 | appcompat_version = '1.6.1' 10 | core_version = '1.10.0-rc01' 11 | } 12 | 13 | repositories { 14 | mavenCentral() 15 | google() 16 | } 17 | dependencies { 18 | classpath 'com.android.tools.build:gradle:7.4.0' 19 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.10" 20 | classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$navigation_version" 21 | } 22 | } 23 | plugins { 24 | id "com.github.ben-manes.versions" version "0.46.0" 25 | id 'com.google.devtools.ksp' version '1.8.10-1.0.9' apply false 26 | } 27 | 28 | tasks.register('clean', Delete) { 29 | delete rootProject.buildDir 30 | } -------------------------------------------------------------------------------- /crowdin.yml: -------------------------------------------------------------------------------- 1 | files: 2 | - source: /app/src/main/res/values/strings.xml 3 | translation: /app/src/main/res/values-%android_code%/strings.xml 4 | content_segmentation: 0 5 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/10443.txt: -------------------------------------------------------------------------------- 1 | Added music suggestions with various internal changes -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/10445.txt: -------------------------------------------------------------------------------- 1 | - Fixed songs not loading from SD card 2 | - Changed default grid size for libraries 3 | - Fixed crash on rotating the device -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/10503.txt: -------------------------------------------------------------------------------- 1 | - Fixed crash on clicking app shortcuts 2 | - Re-added multiple selection 3 | - Removed billing activity -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/10579.txt: -------------------------------------------------------------------------------- 1 | - Migrate to Material 3 2 | - Support for Storage Access Framework 3 | - Bump SDK to 32 (Android 12L) 4 | - Minor fixes -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/10580.txt: -------------------------------------------------------------------------------- 1 | - Display song images along in the artist and album details pages 2 | - Removed the Internet permissions and all the associated features 3 | - Fixed crashing occurs during changing screen orientation 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/10597.txt: -------------------------------------------------------------------------------- 1 | Added lyrics downloading -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/10600.txt: -------------------------------------------------------------------------------- 1 | Synced with Retro Music Player. 2 | 3 | See in-app changelog for more information. 4 | 5 | NOTE: Metro is a fully offline music player, and intends to remain so. So, any features such as scribbling, fetching lyrics, album arts, etc. will never be available. -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/10603.txt: -------------------------------------------------------------------------------- 1 | - Remove startup warnings 2 | - Target Android 13 -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/full_description.txt: -------------------------------------------------------------------------------- 1 | Metro is a fork of Retro Music with Google Play API removed and all pro features unlocked. 2 | 3 | Features: 4 |
    5 |
  • Local playback only (based on the MediaStore)
  • 6 |
  • Sleep timer
  • 7 |
  • Folder browser
  • 8 |
  • Home screen widgets
  • 9 |
  • Themes (Just Black, Kinda Dark, Clearly White)
  • 10 |
  • Now playing themes
  • 11 |
  • Volume controls
  • 12 |
  • Blacklist
  • 13 |
  • Album artist support
  • 14 |
  • Auto-download artist images from Last.fm
  • 15 |
16 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/fastlane/metadata/android/en-US/images/icon.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/fastlane/metadata/android/en-US/images/logo.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/fastlane/metadata/android/en-US/images/phoneScreenshots/1.jpg -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/fastlane/metadata/android/en-US/images/phoneScreenshots/2.jpg -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/fastlane/metadata/android/en-US/images/phoneScreenshots/3.jpg -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/fastlane/metadata/android/en-US/images/phoneScreenshots/4.jpg -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/fastlane/metadata/android/en-US/images/phoneScreenshots/5.jpg -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/fastlane/metadata/android/en-US/images/phoneScreenshots/6.jpg -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/fastlane/metadata/android/en-US/images/phoneScreenshots/7.jpg -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/fastlane/metadata/android/en-US/images/phoneScreenshots/8.jpg -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/short_description.txt: -------------------------------------------------------------------------------- 1 | Best material design music player for Android -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/title.txt: -------------------------------------------------------------------------------- 1 | Metro - A music player for Android -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | android.injected.testOnly=false 2 | android.useAndroidX=true 3 | kotlin.code.style=official 4 | org.gradle.caching=true 5 | org.gradle.configureondemand=true 6 | org.gradle.jvmargs=-Xmx4g -XX:+UseParallelGC -Dfile.encoding=UTF-8 7 | org.gradle.parallel=true 8 | 9 | # https://developer.android.com/studio/build/optimize-your-build#use-non-transitive-r-classes 10 | android.nonTransitiveRClass=true 11 | # https://blog.jetbrains.com/kotlin/2022/07/a-new-approach-to-incremental-compilation-in-kotlin/ 12 | kotlin.incremental.useClasspathSnapshot=true 13 | # https://docs.gradle.org/7.5/userguide/configuration_cache.html 14 | org.gradle.unsafe.configuration-cache=true -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip 4 | networkTimeout=10000 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /screenshots/adaptive.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/screenshots/adaptive.jpg -------------------------------------------------------------------------------- /screenshots/blur.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/screenshots/blur.jpg -------------------------------------------------------------------------------- /screenshots/classic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/screenshots/classic.jpg -------------------------------------------------------------------------------- /screenshots/color.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/screenshots/color.jpg -------------------------------------------------------------------------------- /screenshots/fit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/screenshots/fit.jpg -------------------------------------------------------------------------------- /screenshots/flat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/screenshots/flat.jpg -------------------------------------------------------------------------------- /screenshots/material.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/screenshots/material.jpg -------------------------------------------------------------------------------- /screenshots/peak.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/screenshots/peak.jpg -------------------------------------------------------------------------------- /screenshots/peek.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/screenshots/peek.jpg -------------------------------------------------------------------------------- /screenshots/playlists.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/screenshots/playlists.jpg -------------------------------------------------------------------------------- /screenshots/synced_over_black.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/screenshots/synced_over_black.jpg -------------------------------------------------------------------------------- /screenshots/synced_over_dark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/screenshots/synced_over_dark.jpg -------------------------------------------------------------------------------- /screenshots/synced_over_light.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/screenshots/synced_over_light.jpg -------------------------------------------------------------------------------- /screenshots/synced_replace_black.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/screenshots/synced_replace_black.jpg -------------------------------------------------------------------------------- /screenshots/synced_replace_dark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/screenshots/synced_replace_dark.jpg -------------------------------------------------------------------------------- /screenshots/synced_replace_light.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/screenshots/synced_replace_light.jpg -------------------------------------------------------------------------------- /screenshots/tiny.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MuntashirAkon/Metro/32e0a24358b8f92bf1da748e7fcd08499346478c/screenshots/tiny.jpg -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | // https://docs.gradle.com/enterprise/gradle-plugin/ 2 | plugins { 3 | id "com.gradle.enterprise" version "3.10.3" 4 | } 5 | 6 | gradleEnterprise { 7 | buildScan { 8 | termsOfServiceUrl = "https://gradle.com/terms-of-service" 9 | termsOfServiceAgree = "yes" 10 | } 11 | } 12 | 13 | dependencyResolutionManagement { 14 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) 15 | repositories { 16 | google() 17 | mavenCentral() 18 | maven { url "https://jitpack.io" } 19 | } 20 | } 21 | 22 | include ':app', ':appthemehelper' -------------------------------------------------------------------------------- /spotless.license.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020 Hemanth Savarla. 3 | * 4 | * Licensed under the GNU General Public License v3 5 | * 6 | * This is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 9 | * 10 | * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 11 | * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 | * See the GNU General Public License for more details. 13 | * 14 | */ --------------------------------------------------------------------------------