├── .github
├── AppStore
│ ├── Download_on_the_App_Store_Badge_US-UK_RGB_blk_092917.svg
│ └── Download_on_the_Mac_App_Store_Badge_US-UK_RGB_blk_092917.svg
├── FUNDING.yml
└── Screenshots
│ ├── AlbumDetail.jpg
│ ├── Library.jpg
│ ├── Player.jpg
│ └── macOS-Playlist.png
├── .gitignore
├── .gitmodules
├── .swiftformat
├── Amperfy.xcodeproj
├── project.pbxproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ ├── IDEWorkspaceChecks.plist
│ │ ├── WorkspaceSettings.xcsettings
│ │ └── swiftpm
│ │ └── Package.resolved
└── xcshareddata
│ └── xcschemes
│ ├── Amperfy.xcscheme
│ ├── AmperfyIntents.xcscheme
│ └── DebugCoreData.xcscheme
├── Amperfy
├── Amperfy.entitlements
├── AppDelegate.swift
├── AppDelegateAlertExtensions.swift
├── AppDelegateAppKitExtension.swift
├── AppDelegateKeyboardCommands.swift
├── AppDelegateNotificationExtensions.swift
├── AppIntentVocabulary.plist
├── CarPlay
│ ├── CarPlayFetchControllerExtension.swift
│ └── CarPlayNowPlayingExtension.swift
├── CarPlaySceneDelegate.swift
├── Haptics.swift
├── Info.plist
├── Intents
│ ├── AmperfyIntentHandler.swift
│ ├── IntentManager.swift
│ ├── Intents.intentdefinition
│ └── NSUserActivity+IntentData.swift
├── LibraryDisplayType+Extension.swift
├── MiniPlayerSceneDelegate.swift
├── SceneDelegate.swift
├── Screens
│ ├── AppStoryboard.swift
│ ├── Base.lproj
│ │ └── Main.storyboard
│ ├── Basics
│ │ ├── AnimatedGradientLayer.swift
│ │ ├── BasicButton.swift
│ │ ├── BasicCollectionCell.swift
│ │ ├── BasicTableCell.swift
│ │ ├── Corners.swift
│ │ ├── Mac - Toolbar
│ │ │ ├── AirplayBarButton.swift
│ │ │ ├── ControlBarButton.swift
│ │ │ ├── CustomBarButton.swift
│ │ │ ├── NowPlayingBarItem.swift
│ │ │ ├── QueueBarButton.swift
│ │ │ ├── Refreshable.swift
│ │ │ ├── SpaceBarItem.swift
│ │ │ └── VolumeBarItem.swift
│ │ ├── NotificationBannerCustomization.swift
│ │ ├── OptionsButton.swift
│ │ ├── PlayIndicator.swift
│ │ ├── PlaytimeSlider.swift
│ │ ├── SelectionAccessory.swift
│ │ ├── SpinnerViewController.swift
│ │ └── ViewCreator.swift
│ ├── LaunchScreen.storyboard
│ ├── Player
│ │ ├── BarPlayerHandler.swift
│ │ ├── LargeCurrentlyPlayingPlayerView.swift
│ │ ├── LargeCurrentlyPlayingPlayerView.xib
│ │ ├── PlayerControlView.swift
│ │ ├── PlayerControlView.xib
│ │ ├── PopupPlayer+Animations.swift
│ │ ├── PopupPlayer+TableViewExtension.swift
│ │ ├── PopupPlayer+Visuals.swift
│ │ ├── PopupPlayerVC.swift
│ │ ├── PopupPlayerVC.xib
│ │ └── SectionHeader
│ │ │ ├── ContextQueueNextSectionHeader.swift
│ │ │ ├── ContextQueueNextSectionHeader.xib
│ │ │ ├── ContextQueuePrevSectionHeader.swift
│ │ │ ├── ContextQueuePrevSectionHeader.xib
│ │ │ ├── CurrentlyPlayingTableCell.swift
│ │ │ ├── CurrentlyPlayingTableCell.xib
│ │ │ ├── UserQueueSectionHeader.swift
│ │ │ └── UserQueueSectionHeader.xib
│ ├── View
│ │ ├── AlbumDetailHeaderView.swift
│ │ ├── Collection
│ │ │ ├── AlbumCollectionCell.swift
│ │ │ ├── AlbumCollectionCell.xib
│ │ │ ├── CommonCollectionSectionHeader.swift
│ │ │ └── CommonCollectionSectionHeader.xib
│ │ ├── DirectoryTableCell.swift
│ │ ├── DirectoryTableCell.xib
│ │ ├── GenericDetailTableHeader.swift
│ │ ├── GenericDetailTableHeader.xib
│ │ ├── GenericTableCell.swift
│ │ ├── GenericTableCell.xib
│ │ ├── LibraryElementDetailTableHeaderView.swift
│ │ ├── LibraryElementDetailTableHeaderView.xib
│ │ ├── Lyrics
│ │ │ ├── LyricTableCell.swift
│ │ │ └── LyricsView.swift
│ │ ├── NewPlaylistTableHeader.swift
│ │ ├── NewPlaylistTableHeader.xib
│ │ ├── PlayableTableCell.swift
│ │ ├── PlayableTableCell.xib
│ │ ├── PlaylistTableCell.swift
│ │ ├── PlaylistTableCell.xib
│ │ ├── PodcastEpisodeTableCell.swift
│ │ └── PodcastEpisodeTableCell.xib
│ └── ViewController
│ │ ├── AlbumDetailVC.swift
│ │ ├── AlbumsCollectionVC.swift
│ │ ├── AlbumsCommonVCInteractions.swift
│ │ ├── AlbumsVC.swift
│ │ ├── ArtistDetailVC.swift
│ │ ├── ArtistsVC.swift
│ │ ├── CommonScreenOperations.swift
│ │ ├── DirectoriesVC.swift
│ │ ├── DownloadsVC.swift
│ │ ├── EntityPreviewVC.swift
│ │ ├── EntityPreviewVC.xib
│ │ ├── GenreDetailVC.swift
│ │ ├── GenresVC.swift
│ │ ├── IndexesVC.swift
│ │ ├── LibraryNavigatorConfigurator.swift
│ │ ├── LibrarySyncPopupVC.swift
│ │ ├── LibraryVC.swift
│ │ ├── LoginVC.swift
│ │ ├── Mac - Navigation
│ │ ├── InnerNavigationController.swift
│ │ └── SliderOverMenu
│ │ │ ├── LyricsVC.swift
│ │ │ ├── QueueVC.swift
│ │ │ ├── SlideOverHostingController.swift
│ │ │ └── SlideOverVC.swift
│ │ ├── MusicFoldersVC.swift
│ │ ├── NotificationDetailVC.swift
│ │ ├── NotificationDetailVC.xib
│ │ ├── PlainDetailsVC.swift
│ │ ├── PlainDetailsVC.xib
│ │ ├── PlaylistAdd
│ │ ├── PlaylistAddAlbumDetailVC.swift
│ │ ├── PlaylistAddAlbumsVC.swift
│ │ ├── PlaylistAddArtistDetailVC.swift
│ │ ├── PlaylistAddArtistsVC.swift
│ │ ├── PlaylistAddDirectoriesVC.swift
│ │ ├── PlaylistAddGenreDetailVC.swift
│ │ ├── PlaylistAddGenresVC.swift
│ │ ├── PlaylistAddIndexesVC.swift
│ │ ├── PlaylistAddLibraryVC.swift
│ │ ├── PlaylistAddMusicFoldersVC.swift
│ │ ├── PlaylistAddPlaylistDetailVC.swift
│ │ ├── PlaylistAddPlaylistsVC.swift
│ │ └── PlaylistAddSongsVC.swift
│ │ ├── PlaylistDetailVC.swift
│ │ ├── PlaylistEditVC.swift
│ │ ├── PlaylistSelectorVC.swift
│ │ ├── PlaylistsVC.swift
│ │ ├── PodcastDetailVC.swift
│ │ ├── PodcastsVC.swift
│ │ ├── RadiosVC.swift
│ │ ├── SearchVC.swift
│ │ ├── Segues.swift
│ │ ├── SettingsHostVC.swift
│ │ ├── SideBarVC.swift
│ │ ├── SongsVC.swift
│ │ ├── SplitVC.swift
│ │ ├── SyncVC.swift
│ │ ├── TabBarVC.swift
│ │ ├── TableViewHelper
│ │ ├── BasicCollectionViewController.swift
│ │ ├── BasicFetchedResultsTableViewController.swift
│ │ ├── BasicTableViewController.swift
│ │ ├── FetchUpdateHandler.swift
│ │ ├── KeyCommandCollectionViewController.swift
│ │ ├── KeyCommandTableViewController.swift
│ │ ├── MultiSourceTableViewController.swift
│ │ ├── SingleFetchedResultsTableViewController.swift
│ │ └── SingleSnapshotFetchedResultsTableViewController.swift
│ │ └── UpdateVC.swift
├── SettingsSceneDelegate.swift
├── SwiftUI
│ ├── Basics
│ │ ├── BehavioralStylable.swift
│ │ ├── ButtonStyles.swift
│ │ ├── FormSheet.swift
│ │ ├── InfoBannerView.swift
│ │ ├── MailView.swift
│ │ ├── MultiPickerView.swift
│ │ ├── SecondaryText.swift
│ │ ├── SettingsList.swift
│ │ ├── SettingsRow.swift
│ │ └── SettingsSection.swift
│ └── Settings
│ │ ├── Artwork
│ │ ├── ArtworkDisplaySettings.swift
│ │ ├── ArtworkDownloadSettingsView.swift
│ │ └── ArtworkSettingsView.swift
│ │ ├── DeveloperView.swift
│ │ ├── DisplaySettingsView.swift
│ │ ├── LibrarySettingsView.swift
│ │ ├── LicenseSettingsView.swift
│ │ ├── NavigationTarget.swift
│ │ ├── ObservableSettings.swift
│ │ ├── PlayerSettingsView.swift
│ │ ├── Server
│ │ ├── AlternativeURLAddDialogView.swift
│ │ ├── ServerSettingsView.swift
│ │ ├── ServerURLsSettingsView.swift
│ │ └── UpdatePasswordView.swift
│ │ ├── SettingsView.swift
│ │ ├── Support
│ │ ├── EventLogCellView.swift
│ │ ├── EventLogSettingsView.swift
│ │ └── SupportSettingsView.swift
│ │ ├── Swipe
│ │ ├── AddSwipeActionView.swift
│ │ ├── SwipeCellView.swift
│ │ └── SwipeSettingsView.swift
│ │ └── XCallbackURLsSetttingsView.swift
└── UtilitiesExtensions.swift
├── AmperfyKit
├── AmperfyKit.docc
│ └── AmpertyKit.md
├── AmperfyKit.h
├── AmperfyKit.swift
├── Api
│ ├── Ampache
│ │ ├── AlbumParserDelegate.swift
│ │ ├── AmpacheApi.swift
│ │ ├── AmpacheArtworkDownloadDelegate.swift
│ │ ├── AmpacheLibrarySyncer.swift
│ │ ├── AmpacheXmlParser.swift
│ │ ├── AmpacheXmlServerApi.swift
│ │ ├── ArtistParserDelegate.swift
│ │ ├── AuthParserDelegate.swift
│ │ ├── AuthentificationHandshake.swift
│ │ ├── CatalogParserDelegate.swift
│ │ ├── GenreParserDelegate.swift
│ │ ├── IDsParserDelegate.swift
│ │ ├── PlayableParserDelegate.swift
│ │ ├── PlaylistParserDelegate.swift
│ │ ├── PlaylistSongsParserDelegate.swift
│ │ ├── PodcastEpisodeParserDelegate.swift
│ │ ├── PodcastParserDelegate.swift
│ │ ├── RadioParserDelegate.swift
│ │ └── SongParserDelegate.swift
│ ├── AutoDownloadLibrarySyncer.swift
│ ├── BackendApi.swift
│ ├── BackendProxy.swift
│ ├── BackgroundFetchTriggeredSyncer.swift
│ ├── BackgroundLibrarySyncer.swift
│ ├── CommonLibrarySyncer.swift
│ ├── EventLogger.swift
│ ├── GenericXmlParser.swift
│ ├── LibrarySyncerProxy.swift
│ ├── LoginCredentials.swift
│ └── Subsonic
│ │ ├── SsAlbumParserDelegate.swift
│ │ ├── SsArtistParserDelegate.swift
│ │ ├── SsDirectoryParserDelegate.swift
│ │ ├── SsGenreParserDelegate.swift
│ │ ├── SsIDsParserDelegate.swift
│ │ ├── SsLyricsParserDelegate.swift
│ │ ├── SsMusicFolderParserDelegate.swift
│ │ ├── SsOpenSubsonicExtensionsParserDelegate.swift
│ │ ├── SsPingParserDelegate.swift
│ │ ├── SsPlayableParserDelegate.swift
│ │ ├── SsPlaylistParserDelegate.swift
│ │ ├── SsPlaylistSongsParserDelegate.swift
│ │ ├── SsPodcastEpisodeParserDelegate.swift
│ │ ├── SsPodcastParserDelegate.swift
│ │ ├── SsRadioParserDelegate.swift
│ │ ├── SsSongParserDelegate.swift
│ │ ├── SsXmlParser.swift
│ │ ├── SubsonicApi.swift
│ │ ├── SubsonicArtworkDownloadDelegate.swift
│ │ ├── SubsonicLibrarySyncer.swift
│ │ ├── SubsonicServerApi.swift
│ │ └── SubsonicVersion.swift
├── Assets
│ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── Icon-1024.png
│ │ │ ├── Icon-120.png
│ │ │ ├── Icon-121.png
│ │ │ ├── Icon-152.png
│ │ │ ├── Icon-167.png
│ │ │ ├── Icon-180.png
│ │ │ ├── Icon-20.png
│ │ │ ├── Icon-29.png
│ │ │ ├── Icon-40.png
│ │ │ ├── Icon-41.png
│ │ │ ├── Icon-42.png
│ │ │ ├── Icon-58.png
│ │ │ ├── Icon-59.png
│ │ │ ├── Icon-60.png
│ │ │ ├── Icon-76.png
│ │ │ ├── Icon-80.png
│ │ │ ├── Icon-81.png
│ │ │ └── Icon-87.png
│ │ ├── Blue
│ │ │ ├── BlueAlbum.imageset
│ │ │ │ ├── BlueAlbumDark.png
│ │ │ │ ├── BlueAlbumLight.png
│ │ │ │ └── Contents.json
│ │ │ ├── BlueArtist.imageset
│ │ │ │ ├── BlueArtistDark.png
│ │ │ │ ├── BlueArtistLight.png
│ │ │ │ └── Contents.json
│ │ │ ├── BlueFolder.imageset
│ │ │ │ ├── BlueFolderDark.png
│ │ │ │ ├── BlueFolderLight.png
│ │ │ │ └── Contents.json
│ │ │ ├── BlueGenre.imageset
│ │ │ │ ├── BlueGenreDark.png
│ │ │ │ ├── BlueGenreLight.png
│ │ │ │ └── Contents.json
│ │ │ ├── BluePlaylist.imageset
│ │ │ │ ├── BluePlaylistDark.png
│ │ │ │ ├── BluePlaylistLight.png
│ │ │ │ └── Contents.json
│ │ │ ├── BluePodcast.imageset
│ │ │ │ ├── BluePodcastDark.png
│ │ │ │ ├── BluePodcastLight.png
│ │ │ │ └── Contents.json
│ │ │ ├── BluePodcastEpisode.imageset
│ │ │ │ ├── BluePodcastEpisodeDark.png
│ │ │ │ ├── BluePodcastEpisodeLight.png
│ │ │ │ └── Contents.json
│ │ │ ├── BlueRadio.imageset
│ │ │ │ ├── BlueRadioDark.png
│ │ │ │ ├── BlueRadioLight.png
│ │ │ │ └── Contents.json
│ │ │ ├── BlueSong.imageset
│ │ │ │ ├── BlueSongDark.png
│ │ │ │ ├── BlueSongLight.png
│ │ │ │ └── Contents.json
│ │ │ └── Contents.json
│ │ ├── Contents.json
│ │ ├── Green
│ │ │ ├── Contents.json
│ │ │ ├── GreenAlbum.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── GreenAlbumDark.png
│ │ │ │ └── GreenAlbumLight.png
│ │ │ ├── GreenArtist.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── GreenArtistDark.png
│ │ │ │ └── GreenArtistLight.png
│ │ │ ├── GreenFolder.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── GreenFolderDark.png
│ │ │ │ └── GreenFolderLight.png
│ │ │ ├── GreenGenre.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── GreenGenreDark.png
│ │ │ │ └── GreenGenreLight.png
│ │ │ ├── GreenPlaylist.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── GreenPlaylistDark.png
│ │ │ │ └── GreenPlaylistLight.png
│ │ │ ├── GreenPodcast.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── GreenPodcastDark.png
│ │ │ │ └── GreenPodcastLight.png
│ │ │ ├── GreenPodcastEpisode.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── GreenPodcastEpisodeDark.png
│ │ │ │ └── GreenPodcastEpisodeLight.png
│ │ │ ├── GreenRadio.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── GreenRadioDark.png
│ │ │ │ └── GreenRadioLight.png
│ │ │ └── GreenSong.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── GreenSongDark.png
│ │ │ │ └── GreenSongLight.png
│ │ ├── Icon-1024.imageset
│ │ │ ├── Contents.json
│ │ │ └── Icon-1024.png
│ │ ├── ImageOverlayBackground.colorset
│ │ │ └── Contents.json
│ │ ├── Orange
│ │ │ ├── Contents.json
│ │ │ ├── OrangeAlbum.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── OrangeAlbumDark.png
│ │ │ │ └── OrangeAlbumLight.png
│ │ │ ├── OrangeArtist.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── OrangeArtistDark.png
│ │ │ │ └── OrangeArtistLight.png
│ │ │ ├── OrangeFolder.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── OrangeFolderDark.png
│ │ │ │ └── OrangeFolderLight.png
│ │ │ ├── OrangeGenre.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── OrangeGenreDark.png
│ │ │ │ └── OrangeGenreLight.png
│ │ │ ├── OrangePlaylist.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── OrangePlaylistDark.png
│ │ │ │ └── OrangePlaylistLight.png
│ │ │ ├── OrangePodcast.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── OrangePodcastDark.png
│ │ │ │ └── OrangePodcastLight.png
│ │ │ ├── OrangePodcastEpisode.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── OrangePodcastEpisodeDark.png
│ │ │ │ └── OrangePodcastEpisodeLight.png
│ │ │ ├── OrangeRadio.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── OrangeRadioDark.png
│ │ │ │ └── OrangeRadioLight.png
│ │ │ └── OrangeSong.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── OrangeSongDark.png
│ │ │ │ └── OrangeSongLight.png
│ │ ├── Pink
│ │ │ ├── Contents.json
│ │ │ ├── PinkAlbum.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── PinkAlbumDark.png
│ │ │ │ └── PinkAlbumLight.png
│ │ │ ├── PinkArtist.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── PinkArtistDark.png
│ │ │ │ └── PinkArtistLight.png
│ │ │ ├── PinkFolder.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── PinkFolderDark.png
│ │ │ │ └── PinkFolderLight.png
│ │ │ ├── PinkGenre.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── PinkGenreDark.png
│ │ │ │ └── PinkGenreLight.png
│ │ │ ├── PinkPlaylist.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── PinkPlaylistDark.png
│ │ │ │ └── PinkPlaylistLight.png
│ │ │ ├── PinkPodcast.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── PinkPodcastDark.png
│ │ │ │ └── PinkPodcastLight.png
│ │ │ ├── PinkPodcastEpisode.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── PinkPodcastEpisodeDark.png
│ │ │ │ └── PinkPodcastEpisodeLight.png
│ │ │ ├── PinkRadio.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── PinkRadioDark.png
│ │ │ │ └── PinkRadioLight.png
│ │ │ └── PinkSong.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── PinkSongDark.png
│ │ │ │ └── PinkSongLight.png
│ │ ├── PopupRootOverlayColor.colorset
│ │ │ └── Contents.json
│ │ ├── Purple
│ │ │ ├── Contents.json
│ │ │ ├── PurpleAlbum.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── PurpleAlbumDark.png
│ │ │ │ └── PurpleAlbumLight.png
│ │ │ ├── PurpleArtist.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── PurpleArtistDark.png
│ │ │ │ └── PurpleArtistLight.png
│ │ │ ├── PurpleFolder.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── PurpleFolderDark.png
│ │ │ │ └── PurpleFolderLight.png
│ │ │ ├── PurpleGenre.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── PurpleGenreDark.png
│ │ │ │ └── PurpleGenreLight.png
│ │ │ ├── PurplePlaylist.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── PurplePlaylistDark.png
│ │ │ │ └── PurplePlaylistLight.png
│ │ │ ├── PurplePodcast.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── PurplePodcastDark.png
│ │ │ │ └── PurplePodcastLight.png
│ │ │ ├── PurplePodcastEpisode.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── PurplePodcastEpisodeDark.png
│ │ │ │ └── PurplePodcastEpisodeLight.png
│ │ │ ├── PurpleRadio.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── PurpleRadioDark.png
│ │ │ │ └── PurpleRadioLight.png
│ │ │ └── PurpleSong.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── PurpleSongDark.png
│ │ │ │ └── PurpleSongLight 1.png
│ │ ├── Red
│ │ │ ├── Contents.json
│ │ │ ├── RedAlbum.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── RedAlbumDark.png
│ │ │ │ └── RedAlbumLight.png
│ │ │ ├── RedArtist.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── RedArtistDark.png
│ │ │ │ └── RedArtistLight.png
│ │ │ ├── RedFolder.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── RedFolderDark.png
│ │ │ │ └── RedFolderLight.png
│ │ │ ├── RedGenre.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── RedGenreDark.png
│ │ │ │ └── RedGenreLight.png
│ │ │ ├── RedPlaylist.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── RedPlaylistDark.png
│ │ │ │ └── RedPlaylistLight.png
│ │ │ ├── RedPodcast.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── RedPodcastDark.png
│ │ │ │ └── RedPodcastLight.png
│ │ │ ├── RedPodcastEpisode.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── RedPodcastEpisodeDark.png
│ │ │ │ └── RedPodcastEpisodeLight.png
│ │ │ ├── RedRadio.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── RedRadioDark.png
│ │ │ │ └── RedRadioLight.png
│ │ │ └── RedSong.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── RedSongDark.png
│ │ │ │ └── RedSongLight.png
│ │ ├── Yellow
│ │ │ ├── Contents.json
│ │ │ ├── YellowAlbum.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── YellowAlbumDark.png
│ │ │ │ └── YellowAlbumLight.png
│ │ │ ├── YellowArtist.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── YellowArtistDark.png
│ │ │ │ └── YellowArtistLight.png
│ │ │ ├── YellowFolder.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── YellowFolderDark.png
│ │ │ │ └── YellowFolderLight.png
│ │ │ ├── YellowGenre.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── YellowGenreDark.png
│ │ │ │ └── YellowGenreLight.png
│ │ │ ├── YellowPlaylist.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── YellowPlaylistDark.png
│ │ │ │ └── YellowPlaylistLight.png
│ │ │ ├── YellowPodcast.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── YellowPodcastDark.png
│ │ │ │ └── YellowPodcastLight.png
│ │ │ ├── YellowPodcastEpisode.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── YellowPodcastEpisodeDark.png
│ │ │ │ └── YellowPodcastEpisodeLight.png
│ │ │ ├── YellowRadio.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── YellowRadioDark.png
│ │ │ │ └── YellowRadioLight.png
│ │ │ └── YellowSong.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── YellowSongDark.png
│ │ │ │ └── YellowSongLight.png
│ │ ├── album_newest.symbolset
│ │ │ ├── Contents.json
│ │ │ └── staroflife.square.stack.svg
│ │ ├── album_recent.symbolset
│ │ │ ├── Contents.json
│ │ │ └── timer.square.stack.svg
│ │ ├── context_queue_append.symbolset
│ │ │ ├── Contents.json
│ │ │ └── custom.text.line.last.and.arrowtriangle.forward.svg
│ │ ├── context_queue_insert.symbolset
│ │ │ ├── Contents.json
│ │ │ └── custom.text.line.first.and.arrowtriangle.forward.svg
│ │ ├── gauge.symbolset
│ │ │ ├── Contents.json
│ │ │ └── custom.gauge.open.with.lines.needle.33percent.svg
│ │ ├── gauge_down.symbolset
│ │ │ ├── Contents.json
│ │ │ └── custom.gauge.open.with.lines.needle.33percent.badge.arrow.down.svg
│ │ ├── gauge_up.symbolset
│ │ │ ├── Contents.json
│ │ │ └── custom.gauge.open.with.lines.needle.33percent.badge.arrow.up.svg
│ │ ├── lyrics.symbolset
│ │ │ ├── Contents.json
│ │ │ └── book.pages.svg
│ │ ├── podcast.symbolset
│ │ │ ├── Contents.json
│ │ │ └── podcast-symbol.svg
│ │ ├── user_queue_append.symbolset
│ │ │ ├── Contents.json
│ │ │ └── custom.text.line.last.and.arrowtriangle.forward.badge.person.crop.svg
│ │ └── user_queue_insert.symbolset
│ │ │ ├── Contents.json
│ │ │ └── custom.text.line.first.and.arrowtriangle.forward.badge.person.crop.svg
│ └── UIImageAssetsExtension.swift
├── Common
│ ├── AsyncOperation.swift
│ ├── EventNotificationHandler.swift
│ ├── FuzzySearcher.swift
│ ├── JSONConverter.swift
│ ├── LocalNotificationManager.swift
│ ├── LogData.swift
│ ├── NetworkMonitor.swift
│ ├── QuickActionsHandler.swift
│ ├── StringHasher.swift
│ └── Utilities.swift
├── Download
│ ├── DownloadError.swift
│ ├── DownloadManager.swift
│ ├── DownloadManagerSessionExtension.swift
│ ├── DownloadProtocols.swift
│ └── PlayableDownloadDelegate.swift
├── Player
│ ├── AudioPlayer.swift
│ ├── AudioSessionHandler.swift
│ ├── BackendAudioPlayer.swift
│ ├── EmbeddedArtworkExtractor.swift
│ ├── NowPlayingInfoCenterHandler.swift
│ ├── PlayQueueHandler.swift
│ ├── PlayerDownloadPreparationHandler.swift
│ ├── PlayerFacade.swift
│ ├── PlayerNotificationAdapter.swift
│ ├── PlayerUtil.swift
│ ├── RemoteCommandCenterHandler.swift
│ └── ScrobbleSyncer.swift
├── Screens
│ ├── ArtworkCollection.swift
│ ├── ClockTime.swift
│ ├── CommonString.swift
│ ├── EntityImageView.swift
│ ├── EntityImageView.xib
│ ├── LibraryEntityImage.swift
│ └── RoundedImage.swift
└── Storage
│ ├── CacheFileManager.swift
│ ├── DownloadRequestManager.swift
│ ├── DuplicateEntitiesResolver.swift
│ ├── EntityWrappers
│ ├── AbstractLibraryEntity.swift
│ ├── AbstractPlayable.swift
│ ├── Album.swift
│ ├── Artist.swift
│ ├── Artwork.swift
│ ├── Directory.swift
│ ├── Download.swift
│ ├── EmbeddedArtwork.swift
│ ├── Genre.swift
│ ├── LogEntry.swift
│ ├── MusicFolder.swift
│ ├── PlayableContainable.swift
│ ├── PlayableFile.swift
│ ├── PlayerData.swift
│ ├── Playlist.swift
│ ├── PlaylistItem.swift
│ ├── Podcast.swift
│ ├── PodcastEpisode.swift
│ ├── Radio.swift
│ ├── ScrobbleEntry.swift
│ ├── SearchHistoryItem.swift
│ ├── Song.swift
│ └── UserStatistics.swift
│ ├── Identifyable.swift
│ ├── LibraryDisplaySettings.swift
│ ├── LibraryElementEnum.swift
│ ├── LibraryStorage.swift
│ ├── LibrarySyncVersion.swift
│ ├── LibraryUpdater.swift
│ ├── ManagedObjects
│ ├── AbstractLibraryEntityMO+CoreDataClass.swift
│ ├── AbstractLibraryEntityMO+CoreDataProperties.swift
│ ├── AbstractPlayableMO+CoreDataClass.swift
│ ├── AbstractPlayableMO+CoreDataProperties.swift
│ ├── AlbumMO+CoreDataClass.swift
│ ├── AlbumMO+CoreDataProperties.swift
│ ├── Amperfy.xcdatamodeld
│ │ ├── .xccurrentversion
│ │ ├── Amperfy v10.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v11.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v12.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v13.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v14.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v15.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v16.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v17.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v18.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v19.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v2.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v20.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v21.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v22.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v23.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v24.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v25.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v26.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v27.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v28.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v29.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v3.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v30.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v31.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v32.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v33.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v34.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v35.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v36.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v37.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v38.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v39.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v4.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v40.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v41.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v42.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v43.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v44.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v45.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v5.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v6.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v7.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v8.xcdatamodel
│ │ │ └── contents
│ │ ├── Amperfy v9.xcdatamodel
│ │ │ └── contents
│ │ └── Amperfy.xcdatamodel
│ │ │ └── contents
│ ├── ArtistMO+CoreDataClass.swift
│ ├── ArtistMO+CoreDataProperties.swift
│ ├── ArtworkMO+CoreDataClass.swift
│ ├── ArtworkMO+CoreDataProperties.swift
│ ├── DirectoryMO+CoreDataClass.swift
│ ├── DirectoryMO+CoreDataProperties.swift
│ ├── DownloadMO+CoreDataClass.swift
│ ├── DownloadMO+CoreDataProperties.swift
│ ├── EmbeddedArtworkMO+CoreDataClass.swift
│ ├── EmbeddedArtworkMO+CoreDataProperties.swift
│ ├── GenreMO+CoreDataClass.swift
│ ├── GenreMO+CoreDataProperties.swift
│ ├── LogEntryMO+CoreDataClass.swift
│ ├── LogEntryMO+CoreDataProperties.swift
│ ├── Migration
│ │ ├── CoreDataMigrationExtensions.swift
│ │ ├── CoreDataMigrationStep.swift
│ │ ├── CoreDataMigrationVersion.swift
│ │ └── CoreDataMigrator.swift
│ ├── MusicFolderMO+CoreDataClass.swift
│ ├── MusicFolderMO+CoreDataProperties.swift
│ ├── PlayableFileMO+CoreDataClass.swift
│ ├── PlayableFileMO+CoreDataProperties.swift
│ ├── PlayerMO+CoreDataClass.swift
│ ├── PlayerMO+CoreDataProperties.swift
│ ├── PlaylistItemMO+CoreDataClass.swift
│ ├── PlaylistItemMO+CoreDataProperties.swift
│ ├── PlaylistMO+CoreDataClass.swift
│ ├── PlaylistMO+CoreDataProperties.swift
│ ├── PodcastEpisodeMO+CoreDataClass.swift
│ ├── PodcastEpisodeMO+CoreDataProperties.swift
│ ├── PodcastMO+CoreDataClass.swift
│ ├── PodcastMO+CoreDataProperties.swift
│ ├── RadioMO+CoreDataClass.swift
│ ├── RadioMO+CoreDataProperties.swift
│ ├── ScrobbleEntryMO+CoreDataClass.swift
│ ├── ScrobbleEntryMO+CoreDataProperties.swift
│ ├── SearchHistoryItemMO+CoreDataClass.swift
│ ├── SearchHistoryItemMO+CoreDataProperties.swift
│ ├── SongMO+CoreDataClass.swift
│ ├── SongMO+CoreDataProperties.swift
│ ├── UserStatisticsMO+CoreDataClass.swift
│ ├── UserStatisticsMO+CoreDataProperties.swift
│ └── VersionMappings
│ │ ├── MappingModelV10toV11.xcmappingmodel
│ │ └── xcmapping.xml
│ │ ├── MappingModelV4toV5.xcmappingmodel
│ │ └── xcmapping.xml
│ │ └── MigrationPolicyV4toV5.swift
│ ├── PersistentStorage.swift
│ ├── PlayerDisplayStyleType.swift
│ ├── PodcastsShowType.swift
│ ├── ResultController
│ ├── BasicFetchedResultsController.swift
│ └── FetchedResultsControllers.swift
│ └── SwipeActionSettings.swift
├── AmperfyKitTests
├── AmpertyKitTests.swift
├── Cases
│ ├── API
│ │ ├── Ampache
│ │ │ ├── AbstractAmpacheTest.swift
│ │ │ ├── AlbumParserTest.swift
│ │ │ ├── ArtistParserTest.swift
│ │ │ ├── AuthParserTest.swift
│ │ │ ├── CatalogParserTest.swift
│ │ │ ├── ErrorParserTest.swift
│ │ │ ├── PlaylistSongsParserTest.swift
│ │ │ ├── PlaylistsParserTest.swift
│ │ │ ├── PodcastEpisodesExample2ParserTest.swift
│ │ │ ├── PodcastEpisodesParserTest.swift
│ │ │ ├── PodcastsParserTest.swift
│ │ │ ├── RadiosExampleParserTest.swift
│ │ │ ├── Samples
│ │ │ │ ├── GenreParserTest.swift
│ │ │ │ ├── albums.xml
│ │ │ │ ├── artists.xml
│ │ │ │ ├── catalogs.xml
│ │ │ │ ├── error-4700.xml
│ │ │ │ ├── genres.xml
│ │ │ │ ├── handshake.xml
│ │ │ │ ├── live_streams.xml
│ │ │ │ ├── playlist_songs.xml
│ │ │ │ ├── playlists.xml
│ │ │ │ ├── podcast_episodes.xml
│ │ │ │ ├── podcast_episodes_example_2.xml
│ │ │ │ ├── podcasts.xml
│ │ │ │ └── songs.xml
│ │ │ └── SongParserTest.swift
│ │ ├── PrefetchIdTester.swift
│ │ ├── Subsonic
│ │ │ ├── AbstractSsTest.swift
│ │ │ ├── Samples
│ │ │ │ ├── OpenSubsonicExtensions_example_1.xml
│ │ │ │ ├── album_example_1.xml
│ │ │ │ ├── album_example_2.xml
│ │ │ │ ├── album_missing_artistId.xml
│ │ │ │ ├── album_multidisc_example_1.xml
│ │ │ │ ├── artist_example_1.xml
│ │ │ │ ├── artists_example_1.xml
│ │ │ │ ├── directory_example_1.xml
│ │ │ │ ├── directory_example_2.xml
│ │ │ │ ├── error_example_1.xml
│ │ │ │ ├── genres_example_1.xml
│ │ │ │ ├── getLyricsBySongId_example_1.xml
│ │ │ │ ├── getLyricsBySongId_example_2.xml
│ │ │ │ ├── indexes_example_1.xml
│ │ │ │ ├── internetRadioStations_example_1.xml
│ │ │ │ ├── musicFolders_example_1.xml
│ │ │ │ ├── ping_example_1.xml
│ │ │ │ ├── playlist_example_1.xml
│ │ │ │ ├── playlists_example_1.xml
│ │ │ │ ├── podcast_example_1.xml
│ │ │ │ └── podcasts_example_1.xml
│ │ │ ├── SsAlbumMissingArtistsIdParserTest.swift
│ │ │ ├── SsAlbumMultidiscExample1ParserTest.swift
│ │ │ ├── SsAlbumParserPreCreatedArtistsTest.swift
│ │ │ ├── SsAlbumParserTest.swift
│ │ │ ├── SsArtistParserTest.swift
│ │ │ ├── SsDirectoriesExample1ParserTest.swift
│ │ │ ├── SsDirectoriesExample2ParserTest.swift
│ │ │ ├── SsGenreParserTest.swift
│ │ │ ├── SsIndexesParserTest.swift
│ │ │ ├── SsLyricsBySongId1ParserTest.swift
│ │ │ ├── SsLyricsBySongId2ParserTest.swift
│ │ │ ├── SsMusicFolderParserTest.swift
│ │ │ ├── SsOpenSubsonicExtensionsParserTest.swift
│ │ │ ├── SsPingParserTest.swift
│ │ │ ├── SsPlaylistSongsParserTest.swift
│ │ │ ├── SsPlaylistsParserTest.swift
│ │ │ ├── SsPodcastEpisodesParserTest.swift
│ │ │ ├── SsPodcastParserTest.swift
│ │ │ ├── SsRadioExampleParserTest.swift
│ │ │ ├── SsSongExample1ParserTest.swift
│ │ │ ├── SsSongExample2ParserTest.swift
│ │ │ └── SsXmlParserTest.swift
│ │ └── SubsonicVersionTest.swift
│ ├── Common
│ │ └── UtilitiesTest.swift
│ ├── HelperTest.swift
│ ├── Player
│ │ ├── MusicPlayerTest.swift
│ │ └── PlayQueueHandlerTest.swift
│ └── Storage
│ │ └── ManagedObjects
│ │ ├── AlbumTest.swift
│ │ ├── ArtistTest.swift
│ │ ├── ArtworkTest.swift
│ │ ├── PlayerDataTest.swift
│ │ ├── PlaylistItemTest.swift
│ │ ├── PlaylistTest.swift
│ │ ├── PodcastEpisodeTest.swift
│ │ └── SongTest.swift
└── Helper
│ ├── CoreDataHelper.swift
│ ├── CoreDataSeeder.swift
│ └── UnitTestHelper.swift
├── AppKitIntegration
└── AppKitController.swift
├── BuildTools
├── Dummy.swift
├── Package.resolved
├── Package.swift
└── applyFormat.sh
├── CHANGELOG.md
├── Design
├── Logo.xcf
└── Playlist.xcf
├── Helper
├── add-license-header.sh
└── license-header.txt
├── LICENSE
└── README.md
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 | # github: BLeeEZ
3 | custom: ['paypal.me/BLeeEZ25']
--------------------------------------------------------------------------------
/.github/Screenshots/AlbumDetail.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/.github/Screenshots/AlbumDetail.jpg
--------------------------------------------------------------------------------
/.github/Screenshots/Library.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/.github/Screenshots/Library.jpg
--------------------------------------------------------------------------------
/.github/Screenshots/Player.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/.github/Screenshots/Player.jpg
--------------------------------------------------------------------------------
/.github/Screenshots/macOS-Playlist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/.github/Screenshots/macOS-Playlist.png
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/.gitmodules
--------------------------------------------------------------------------------
/Amperfy.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Amperfy.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Amperfy.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Amperfy/Amperfy.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.developer.carplay-audio
6 |
7 | com.apple.developer.siri
8 |
9 | com.apple.security.app-sandbox
10 |
11 | com.apple.security.network.client
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Amperfy/AppIntentVocabulary.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IntentPhrases
6 |
7 |
8 | IntentName
9 | INPlayMediaIntent
10 | IntentExamples
11 |
12 | Play the example band in Amperfy
13 | Play playlist example in Amperfy
14 | Play title by artist in Amperfy
15 |
16 |
17 |
18 | ParameterVocabularies
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/Amperfy/Intents/NSUserActivity+IntentData.swift:
--------------------------------------------------------------------------------
1 | //
2 | // NSUserActivity+IntentData.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 06.06.22.
6 | // Copyright (c) 2022 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import Foundation
23 |
24 | extension NSUserActivity {
25 | public enum ActivityKeys: String {
26 | case searchTerm
27 | case searchCategory
28 | case id
29 | case libraryElementType
30 | case shuffleOption
31 | case repeatOption
32 | case offlineMode
33 | case onlyCached
34 | case rating
35 | case favorite
36 | }
37 |
38 | public static let searchAndPlayActivityType = "de.familie-zimba.Amperfy.SearchAndPlay"
39 | public static let playIdActivityType = "de.familie-zimba.Amperfy.PlayID"
40 | public static let playRandomSongsActivityType =
41 | "de.familie-zimba.Amperfy.PlayRandomSongsActivityType"
42 | }
43 |
--------------------------------------------------------------------------------
/Amperfy/Screens/Basics/BasicButton.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BasicButton.swift
3 | // Amperfy
4 | //
5 | // Created by Maximilian Bauer on 09.03.19.
6 | // Copyright (c) 2019 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import UIKit
23 |
24 | class BasicButton: UIButton {
25 | static let cornerRadius = 10.0
26 |
27 | required init?(coder aDecoder: NSCoder) {
28 | super.init(coder: aDecoder)
29 | configureStyle()
30 | }
31 |
32 | func configureStyle() {
33 | layer.cornerRadius = Self.cornerRadius
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Amperfy/Screens/Basics/BasicCollectionCell.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BasicCollectionCell.swift
3 | // Amperfy
4 | //
5 | // Created by Maximilian Bauer on 28.09.22.
6 | // Copyright (c) 2022 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import UIKit
23 |
24 | class BasicCollectionCell: UICollectionViewCell {
25 | static let margin = UIView.defaultMarginCell
26 |
27 | required init?(coder aDecoder: NSCoder) {
28 | super.init(coder: aDecoder)
29 | self.layoutMargins = BasicTableCell.margin
30 | }
31 |
32 | override init(frame: CGRect) {
33 | super.init(frame: frame)
34 | }
35 |
36 | override func awakeFromNib() {
37 | super.awakeFromNib()
38 | }
39 |
40 | override var layoutMargins: UIEdgeInsets { get { BasicTableCell.margin } set {} }
41 | }
42 |
--------------------------------------------------------------------------------
/Amperfy/Screens/Basics/BasicTableCell.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BasicTableCell.swift
3 | // Amperfy
4 | //
5 | // Created by Maximilian Bauer on 06.03.21.
6 | // Copyright (c) 2021 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import UIKit
23 |
24 | class BasicTableCell: UITableViewCell {
25 | static let margin = UIView.defaultMarginCell
26 |
27 | required init?(coder: NSCoder) {
28 | super.init(coder: coder)
29 | self.layoutMargins = BasicTableCell.margin
30 | }
31 |
32 | override var layoutMargins: UIEdgeInsets { get { BasicTableCell.margin } set {} }
33 |
34 | override func prepareForReuse() {
35 | super.prepareForReuse()
36 | markAsUnfocused()
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Amperfy/Screens/Basics/Mac - Toolbar/Refreshable.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Refreshable.swift
3 | // Amperfy
4 | //
5 | // Created by David Klopp on 22.08.24.
6 | // Copyright (c) 2024 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import Foundation
23 |
24 | #if targetEnvironment(macCatalyst)
25 |
26 | @MainActor
27 | protocol Refreshable {
28 | func reload()
29 | }
30 |
31 | #endif
32 |
--------------------------------------------------------------------------------
/Amperfy/Screens/Basics/ViewCreator.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ViewBuilder.swift
3 | // Amperfy
4 | //
5 | // Created by Maximilian Bauer on 09.03.19.
6 | // Copyright (c) 2019 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import AmperfyKit
23 | import UIKit
24 |
25 | @MainActor
26 | class ViewCreator {
27 | static func createFromNib() -> ViewType? {
28 | UINib(
29 | nibName: ViewType.typeName,
30 | bundle: nil
31 | ).instantiate(withOwner: nil, options: nil)[0] as? ViewType
32 | }
33 |
34 | static func createFromNib(withinFixedFrame rect: CGRect) -> ViewType? {
35 | guard let nibView: ViewType = createFromNib() else {
36 | return nil
37 | }
38 | nibView.frame = rect
39 | return nibView
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/Amperfy/Screens/ViewController/Segues.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Segues.swift
3 | // Amperfy
4 | //
5 | // Created by Maximilian Bauer on 09.03.19.
6 | // Copyright (c) 2019 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import Foundation
23 |
24 | enum Segues: String {
25 | case toLogin
26 | case toArtistDetail
27 | case toAlbumDetail
28 | case toPlaylistDetail
29 | case toGenreDetail
30 | case toDirectories
31 | case toPodcastDetail
32 | }
33 |
--------------------------------------------------------------------------------
/Amperfy/Screens/ViewController/TabBarVC.swift:
--------------------------------------------------------------------------------
1 | //
2 | // TabBarVC.swift
3 | // Amperfy
4 | //
5 | // Created by Maximilian Bauer on 09.03.19.
6 | // Copyright (c) 2019 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import AmperfyKit
23 | import UIKit
24 |
25 | class TabBarVC: UITabBarController {
26 | override func viewDidLoad() {
27 | super.viewDidLoad()
28 | }
29 |
30 | override func viewIsAppearing(_ animated: Bool) {
31 | super.viewIsAppearing(animated)
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Amperfy/SwiftUI/Basics/InfoBannerView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // InfoBannerView.swift
3 | // Amperfy
4 | //
5 | // Created by Maximilian Bauer on 15.09.22.
6 | // Copyright (c) 2022 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import SwiftUI
23 |
24 | // MARK: - InfoBannerView
25 |
26 | struct InfoBannerView: View {
27 | var message: String
28 | var color: Color
29 |
30 | var body: some View {
31 | Text(message)
32 | .padding()
33 | .frame(maxWidth: .infinity)
34 | .foregroundColor(.white)
35 | .background(RoundedRectangle(cornerRadius: 10).fill(color.opacity(1)))
36 | }
37 | }
38 |
39 | // MARK: - InfoBannerView_Previews
40 |
41 | struct InfoBannerView_Previews: PreviewProvider {
42 | static var previews: some View {
43 | VStack {
44 | InfoBannerView(message: "Test error message", color: .error)
45 | InfoBannerView(message: "Test success message", color: .success)
46 | }
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/Amperfy/SwiftUI/Basics/SecondaryText.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SecondaryText.swift
3 | // Amperfy
4 | //
5 | // Created by David Klopp on 16.08.24.
6 | // Copyright (c) 2024 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import Foundation
23 |
24 | import SwiftUI
25 |
26 | struct SecondaryText: View {
27 | let text: String
28 |
29 | init(_ text: String) {
30 | self.text = text
31 | }
32 |
33 | var body: some View {
34 | Text(text)
35 | .foregroundStyle(Color.secondaryLabel)
36 | .help(text)
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Amperfy/SwiftUI/Basics/SettingsList.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SettingsList.swift
3 | // Amperfy
4 | //
5 | // Created by David Klopp on 07.09.24.
6 | // Copyright (c) 2024 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import Foundation
23 | import SwiftUI
24 |
25 | struct SettingsList: View, BehavioralStylable {
26 | @State
27 | var preferredBehavioralStyle: UIBehavioralStyle = .defaultStyle
28 | let content: () -> Content
29 |
30 | init(@ViewBuilder content: @escaping () -> Content) {
31 | self.content = content
32 | }
33 |
34 | var body: some View {
35 | if behavioralStyle == .mac, #available(iOS 16, *) {
36 | List {
37 | self.content()
38 | }
39 | .background(Color.clear)
40 | .scrollContentBackground(.hidden)
41 | } else {
42 | List {
43 | content()
44 | }
45 | .background(Color.clear)
46 | }
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/Amperfy/SwiftUI/Settings/Swipe/SwipeCellView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SwipeCellView.swift
3 | // Amperfy
4 | //
5 | // Created by Maximilian Bauer on 16.09.22.
6 | // Copyright (c) 2022 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import AmperfyKit
23 | import SwiftUI
24 |
25 | // MARK: - SwipeCellView
26 |
27 | struct SwipeCellView: View {
28 | @Environment(\.colorScheme)
29 | var colorScheme: ColorScheme
30 |
31 | var swipe: SwipeActionType
32 |
33 | var body: some View {
34 | HStack {
35 | Image(uiImage: colorScheme == .light ? swipe.image : swipe.image.invertedImage())
36 | Text(swipe.settingsName)
37 | Spacer()
38 | }
39 | .contentShape(Rectangle())
40 | }
41 | }
42 |
43 | // MARK: - SwipeCellView_Previews
44 |
45 | struct SwipeCellView_Previews: PreviewProvider {
46 | static var previews: some View {
47 | SwipeCellView(swipe: .addToPlaylist)
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/AmperfyKit/AmperfyKit.docc/AmpertyKit.md:
--------------------------------------------------------------------------------
1 | # ``AmpertyKit``
2 |
3 | Summary
4 |
5 | ## Overview
6 |
7 | Text
8 |
9 | ## Topics
10 |
11 | ### Group
12 |
13 | - ``Symbol``
--------------------------------------------------------------------------------
/AmperfyKit/AmperfyKit.h:
--------------------------------------------------------------------------------
1 | //
2 | // AmperfyKit.h
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 07.06.22.
6 | // Copyright (c) 2022 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | #import
23 |
24 | //! Project version number for AmperfyKit.
25 | FOUNDATION_EXPORT double AmperfyKitVersionNumber;
26 |
27 | //! Project version string for AmperfyKit.
28 | FOUNDATION_EXPORT const unsigned char AmperfyKitVersionString[];
29 |
30 | // In this header, you should import all the public headers of your framework using statements like #import
31 |
32 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-1024.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-120.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-121.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-121.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-152.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-167.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-167.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-180.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-20.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-29.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-40.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-41.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-41.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-42.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-42.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-58.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-58.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-59.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-59.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-60.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-76.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-80.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-81.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-81.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-87.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/AppIcon.appiconset/Icon-87.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BlueAlbum.imageset/BlueAlbumDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Blue/BlueAlbum.imageset/BlueAlbumDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BlueAlbum.imageset/BlueAlbumLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Blue/BlueAlbum.imageset/BlueAlbumLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BlueAlbum.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "BlueAlbumLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "BlueAlbumDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BlueArtist.imageset/BlueArtistDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Blue/BlueArtist.imageset/BlueArtistDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BlueArtist.imageset/BlueArtistLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Blue/BlueArtist.imageset/BlueArtistLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BlueArtist.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "BlueArtistLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "BlueArtistDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BlueFolder.imageset/BlueFolderDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Blue/BlueFolder.imageset/BlueFolderDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BlueFolder.imageset/BlueFolderLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Blue/BlueFolder.imageset/BlueFolderLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BlueFolder.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "BlueFolderLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "BlueFolderDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BlueGenre.imageset/BlueGenreDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Blue/BlueGenre.imageset/BlueGenreDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BlueGenre.imageset/BlueGenreLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Blue/BlueGenre.imageset/BlueGenreLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BlueGenre.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "BlueGenreLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "BlueGenreDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BluePlaylist.imageset/BluePlaylistDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Blue/BluePlaylist.imageset/BluePlaylistDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BluePlaylist.imageset/BluePlaylistLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Blue/BluePlaylist.imageset/BluePlaylistLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BluePlaylist.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "BluePlaylistLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "BluePlaylistDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BluePodcast.imageset/BluePodcastDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Blue/BluePodcast.imageset/BluePodcastDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BluePodcast.imageset/BluePodcastLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Blue/BluePodcast.imageset/BluePodcastLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BluePodcast.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "BluePodcastLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "BluePodcastDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BluePodcastEpisode.imageset/BluePodcastEpisodeDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Blue/BluePodcastEpisode.imageset/BluePodcastEpisodeDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BluePodcastEpisode.imageset/BluePodcastEpisodeLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Blue/BluePodcastEpisode.imageset/BluePodcastEpisodeLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BluePodcastEpisode.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "BluePodcastEpisodeLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "BluePodcastEpisodeDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BlueRadio.imageset/BlueRadioDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Blue/BlueRadio.imageset/BlueRadioDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BlueRadio.imageset/BlueRadioLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Blue/BlueRadio.imageset/BlueRadioLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BlueRadio.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "BlueRadioLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "BlueRadioDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BlueSong.imageset/BlueSongDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Blue/BlueSong.imageset/BlueSongDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BlueSong.imageset/BlueSongLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Blue/BlueSong.imageset/BlueSongLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/BlueSong.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "BlueSongLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "BlueSongDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Blue/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenAlbum.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "GreenAlbumLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "GreenAlbumDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenAlbum.imageset/GreenAlbumDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Green/GreenAlbum.imageset/GreenAlbumDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenAlbum.imageset/GreenAlbumLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Green/GreenAlbum.imageset/GreenAlbumLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenArtist.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "GreenArtistLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "GreenArtistDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenArtist.imageset/GreenArtistDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Green/GreenArtist.imageset/GreenArtistDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenArtist.imageset/GreenArtistLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Green/GreenArtist.imageset/GreenArtistLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenFolder.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "GreenFolderLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "GreenFolderDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenFolder.imageset/GreenFolderDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Green/GreenFolder.imageset/GreenFolderDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenFolder.imageset/GreenFolderLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Green/GreenFolder.imageset/GreenFolderLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenGenre.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "GreenGenreLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "GreenGenreDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenGenre.imageset/GreenGenreDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Green/GreenGenre.imageset/GreenGenreDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenGenre.imageset/GreenGenreLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Green/GreenGenre.imageset/GreenGenreLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenPlaylist.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "GreenPlaylistLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "GreenPlaylistDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenPlaylist.imageset/GreenPlaylistDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Green/GreenPlaylist.imageset/GreenPlaylistDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenPlaylist.imageset/GreenPlaylistLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Green/GreenPlaylist.imageset/GreenPlaylistLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenPodcast.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "GreenPodcastLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "GreenPodcastDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenPodcast.imageset/GreenPodcastDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Green/GreenPodcast.imageset/GreenPodcastDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenPodcast.imageset/GreenPodcastLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Green/GreenPodcast.imageset/GreenPodcastLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenPodcastEpisode.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "GreenPodcastEpisodeLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "GreenPodcastEpisodeDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenPodcastEpisode.imageset/GreenPodcastEpisodeDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Green/GreenPodcastEpisode.imageset/GreenPodcastEpisodeDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenPodcastEpisode.imageset/GreenPodcastEpisodeLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Green/GreenPodcastEpisode.imageset/GreenPodcastEpisodeLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenRadio.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "GreenRadioLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "GreenRadioDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenRadio.imageset/GreenRadioDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Green/GreenRadio.imageset/GreenRadioDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenRadio.imageset/GreenRadioLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Green/GreenRadio.imageset/GreenRadioLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenSong.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "GreenSongLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "GreenSongDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenSong.imageset/GreenSongDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Green/GreenSong.imageset/GreenSongDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Green/GreenSong.imageset/GreenSongLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Green/GreenSong.imageset/GreenSongLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Icon-1024.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Icon-1024.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Icon-1024.imageset/Icon-1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Icon-1024.imageset/Icon-1024.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/ImageOverlayBackground.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "0.600",
8 | "blue" : "0x29",
9 | "green" : "0x29",
10 | "red" : "0x29"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeAlbum.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "OrangeAlbumLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "OrangeAlbumDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeAlbum.imageset/OrangeAlbumDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeAlbum.imageset/OrangeAlbumDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeAlbum.imageset/OrangeAlbumLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeAlbum.imageset/OrangeAlbumLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeArtist.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "OrangeArtistLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "OrangeArtistDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeArtist.imageset/OrangeArtistDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeArtist.imageset/OrangeArtistDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeArtist.imageset/OrangeArtistLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeArtist.imageset/OrangeArtistLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeFolder.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "OrangeFolderLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "OrangeFolderDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeFolder.imageset/OrangeFolderDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeFolder.imageset/OrangeFolderDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeFolder.imageset/OrangeFolderLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeFolder.imageset/OrangeFolderLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeGenre.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "OrangeGenreLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "OrangeGenreDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeGenre.imageset/OrangeGenreDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeGenre.imageset/OrangeGenreDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeGenre.imageset/OrangeGenreLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeGenre.imageset/OrangeGenreLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangePlaylist.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "OrangePlaylistLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "OrangePlaylistDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangePlaylist.imageset/OrangePlaylistDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Orange/OrangePlaylist.imageset/OrangePlaylistDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangePlaylist.imageset/OrangePlaylistLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Orange/OrangePlaylist.imageset/OrangePlaylistLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangePodcast.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "OrangePodcastLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "OrangePodcastDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangePodcast.imageset/OrangePodcastDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Orange/OrangePodcast.imageset/OrangePodcastDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangePodcast.imageset/OrangePodcastLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Orange/OrangePodcast.imageset/OrangePodcastLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangePodcastEpisode.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "OrangePodcastEpisodeLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "OrangePodcastEpisodeDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangePodcastEpisode.imageset/OrangePodcastEpisodeDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Orange/OrangePodcastEpisode.imageset/OrangePodcastEpisodeDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangePodcastEpisode.imageset/OrangePodcastEpisodeLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Orange/OrangePodcastEpisode.imageset/OrangePodcastEpisodeLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeRadio.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "OrangeRadioLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "OrangeRadioDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeRadio.imageset/OrangeRadioDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeRadio.imageset/OrangeRadioDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeRadio.imageset/OrangeRadioLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeRadio.imageset/OrangeRadioLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeSong.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "OrangeSongLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "OrangeSongDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeSong.imageset/OrangeSongDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeSong.imageset/OrangeSongDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeSong.imageset/OrangeSongLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Orange/OrangeSong.imageset/OrangeSongLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkAlbum.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "PinkAlbumLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "PinkAlbumDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkAlbum.imageset/PinkAlbumDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Pink/PinkAlbum.imageset/PinkAlbumDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkAlbum.imageset/PinkAlbumLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Pink/PinkAlbum.imageset/PinkAlbumLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkArtist.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "PinkArtistLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "PinkArtistDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkArtist.imageset/PinkArtistDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Pink/PinkArtist.imageset/PinkArtistDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkArtist.imageset/PinkArtistLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Pink/PinkArtist.imageset/PinkArtistLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkFolder.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "PinkFolderLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "PinkFolderDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkFolder.imageset/PinkFolderDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Pink/PinkFolder.imageset/PinkFolderDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkFolder.imageset/PinkFolderLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Pink/PinkFolder.imageset/PinkFolderLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkGenre.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "PinkGenreLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "PinkGenreDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkGenre.imageset/PinkGenreDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Pink/PinkGenre.imageset/PinkGenreDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkGenre.imageset/PinkGenreLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Pink/PinkGenre.imageset/PinkGenreLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkPlaylist.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "PinkPlaylistLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "PinkPlaylistDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkPlaylist.imageset/PinkPlaylistDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Pink/PinkPlaylist.imageset/PinkPlaylistDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkPlaylist.imageset/PinkPlaylistLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Pink/PinkPlaylist.imageset/PinkPlaylistLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkPodcast.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "PinkPodcastLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "PinkPodcastDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkPodcast.imageset/PinkPodcastDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Pink/PinkPodcast.imageset/PinkPodcastDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkPodcast.imageset/PinkPodcastLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Pink/PinkPodcast.imageset/PinkPodcastLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkPodcastEpisode.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "PinkPodcastEpisodeLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "PinkPodcastEpisodeDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkPodcastEpisode.imageset/PinkPodcastEpisodeDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Pink/PinkPodcastEpisode.imageset/PinkPodcastEpisodeDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkPodcastEpisode.imageset/PinkPodcastEpisodeLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Pink/PinkPodcastEpisode.imageset/PinkPodcastEpisodeLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkRadio.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "PinkRadioLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "PinkRadioDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkRadio.imageset/PinkRadioDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Pink/PinkRadio.imageset/PinkRadioDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkRadio.imageset/PinkRadioLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Pink/PinkRadio.imageset/PinkRadioLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkSong.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "PinkSongLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "PinkSongDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkSong.imageset/PinkSongDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Pink/PinkSong.imageset/PinkSongDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Pink/PinkSong.imageset/PinkSongLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Pink/PinkSong.imageset/PinkSongLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/PopupRootOverlayColor.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "0.803",
8 | "blue" : "0.360",
9 | "green" : "0.360",
10 | "red" : "0.360"
11 | }
12 | },
13 | "idiom" : "universal"
14 | },
15 | {
16 | "appearances" : [
17 | {
18 | "appearance" : "luminosity",
19 | "value" : "dark"
20 | }
21 | ],
22 | "color" : {
23 | "color-space" : "srgb",
24 | "components" : {
25 | "alpha" : "0.798",
26 | "blue" : "0.000",
27 | "green" : "0.000",
28 | "red" : "0.000"
29 | }
30 | },
31 | "idiom" : "universal"
32 | }
33 | ],
34 | "info" : {
35 | "author" : "xcode",
36 | "version" : 1
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleAlbum.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "PurpleAlbumLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "PurpleAlbumDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleAlbum.imageset/PurpleAlbumDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleAlbum.imageset/PurpleAlbumDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleAlbum.imageset/PurpleAlbumLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleAlbum.imageset/PurpleAlbumLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleArtist.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "PurpleArtistLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "PurpleArtistDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleArtist.imageset/PurpleArtistDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleArtist.imageset/PurpleArtistDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleArtist.imageset/PurpleArtistLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleArtist.imageset/PurpleArtistLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleFolder.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "PurpleFolderLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "PurpleFolderDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleFolder.imageset/PurpleFolderDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleFolder.imageset/PurpleFolderDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleFolder.imageset/PurpleFolderLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleFolder.imageset/PurpleFolderLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleGenre.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "PurpleGenreLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "PurpleGenreDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleGenre.imageset/PurpleGenreDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleGenre.imageset/PurpleGenreDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleGenre.imageset/PurpleGenreLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleGenre.imageset/PurpleGenreLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurplePlaylist.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "PurplePlaylistLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "PurplePlaylistDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurplePlaylist.imageset/PurplePlaylistDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Purple/PurplePlaylist.imageset/PurplePlaylistDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurplePlaylist.imageset/PurplePlaylistLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Purple/PurplePlaylist.imageset/PurplePlaylistLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurplePodcast.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "PurplePodcastLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "PurplePodcastDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurplePodcast.imageset/PurplePodcastDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Purple/PurplePodcast.imageset/PurplePodcastDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurplePodcast.imageset/PurplePodcastLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Purple/PurplePodcast.imageset/PurplePodcastLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurplePodcastEpisode.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "PurplePodcastEpisodeLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "PurplePodcastEpisodeDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurplePodcastEpisode.imageset/PurplePodcastEpisodeDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Purple/PurplePodcastEpisode.imageset/PurplePodcastEpisodeDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurplePodcastEpisode.imageset/PurplePodcastEpisodeLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Purple/PurplePodcastEpisode.imageset/PurplePodcastEpisodeLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleRadio.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "PurpleRadioLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "PurpleRadioDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleRadio.imageset/PurpleRadioDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleRadio.imageset/PurpleRadioDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleRadio.imageset/PurpleRadioLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleRadio.imageset/PurpleRadioLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleSong.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "PurpleSongLight 1.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "PurpleSongDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleSong.imageset/PurpleSongDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleSong.imageset/PurpleSongDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleSong.imageset/PurpleSongLight 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Purple/PurpleSong.imageset/PurpleSongLight 1.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedAlbum.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "RedAlbumLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "RedAlbumDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedAlbum.imageset/RedAlbumDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Red/RedAlbum.imageset/RedAlbumDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedAlbum.imageset/RedAlbumLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Red/RedAlbum.imageset/RedAlbumLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedArtist.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "RedArtistLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "RedArtistDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedArtist.imageset/RedArtistDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Red/RedArtist.imageset/RedArtistDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedArtist.imageset/RedArtistLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Red/RedArtist.imageset/RedArtistLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedFolder.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "RedFolderLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "RedFolderDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedFolder.imageset/RedFolderDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Red/RedFolder.imageset/RedFolderDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedFolder.imageset/RedFolderLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Red/RedFolder.imageset/RedFolderLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedGenre.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "RedGenreLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "RedGenreDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedGenre.imageset/RedGenreDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Red/RedGenre.imageset/RedGenreDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedGenre.imageset/RedGenreLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Red/RedGenre.imageset/RedGenreLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedPlaylist.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "RedPlaylistLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "RedPlaylistDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedPlaylist.imageset/RedPlaylistDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Red/RedPlaylist.imageset/RedPlaylistDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedPlaylist.imageset/RedPlaylistLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Red/RedPlaylist.imageset/RedPlaylistLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedPodcast.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "RedPodcastLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "RedPodcastDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedPodcast.imageset/RedPodcastDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Red/RedPodcast.imageset/RedPodcastDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedPodcast.imageset/RedPodcastLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Red/RedPodcast.imageset/RedPodcastLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedPodcastEpisode.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "RedPodcastEpisodeLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "RedPodcastEpisodeDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedPodcastEpisode.imageset/RedPodcastEpisodeDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Red/RedPodcastEpisode.imageset/RedPodcastEpisodeDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedPodcastEpisode.imageset/RedPodcastEpisodeLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Red/RedPodcastEpisode.imageset/RedPodcastEpisodeLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedRadio.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "RedRadioLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "RedRadioDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedRadio.imageset/RedRadioDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Red/RedRadio.imageset/RedRadioDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedRadio.imageset/RedRadioLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Red/RedRadio.imageset/RedRadioLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedSong.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "RedSongLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "RedSongDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedSong.imageset/RedSongDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Red/RedSong.imageset/RedSongDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Red/RedSong.imageset/RedSongLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Red/RedSong.imageset/RedSongLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowAlbum.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "YellowAlbumLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "YellowAlbumDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowAlbum.imageset/YellowAlbumDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowAlbum.imageset/YellowAlbumDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowAlbum.imageset/YellowAlbumLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowAlbum.imageset/YellowAlbumLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowArtist.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "YellowArtistLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "YellowArtistDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowArtist.imageset/YellowArtistDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowArtist.imageset/YellowArtistDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowArtist.imageset/YellowArtistLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowArtist.imageset/YellowArtistLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowFolder.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "YellowFolderLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "YellowFolderDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowFolder.imageset/YellowFolderDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowFolder.imageset/YellowFolderDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowFolder.imageset/YellowFolderLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowFolder.imageset/YellowFolderLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowGenre.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "YellowGenreLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "YellowGenreDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowGenre.imageset/YellowGenreDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowGenre.imageset/YellowGenreDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowGenre.imageset/YellowGenreLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowGenre.imageset/YellowGenreLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowPlaylist.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "YellowPlaylistLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "YellowPlaylistDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowPlaylist.imageset/YellowPlaylistDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowPlaylist.imageset/YellowPlaylistDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowPlaylist.imageset/YellowPlaylistLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowPlaylist.imageset/YellowPlaylistLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowPodcast.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "YellowPodcastLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "YellowPodcastDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowPodcast.imageset/YellowPodcastDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowPodcast.imageset/YellowPodcastDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowPodcast.imageset/YellowPodcastLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowPodcast.imageset/YellowPodcastLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowPodcastEpisode.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "YellowPodcastEpisodeLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "YellowPodcastEpisodeDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowPodcastEpisode.imageset/YellowPodcastEpisodeDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowPodcastEpisode.imageset/YellowPodcastEpisodeDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowPodcastEpisode.imageset/YellowPodcastEpisodeLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowPodcastEpisode.imageset/YellowPodcastEpisodeLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowRadio.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "YellowRadioLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "YellowRadioDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowRadio.imageset/YellowRadioDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowRadio.imageset/YellowRadioDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowRadio.imageset/YellowRadioLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowRadio.imageset/YellowRadioLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowSong.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "idiom" : "universal",
15 | "scale" : "1x"
16 | },
17 | {
18 | "idiom" : "universal",
19 | "scale" : "2x"
20 | },
21 | {
22 | "appearances" : [
23 | {
24 | "appearance" : "luminosity",
25 | "value" : "dark"
26 | }
27 | ],
28 | "idiom" : "universal",
29 | "scale" : "2x"
30 | },
31 | {
32 | "filename" : "YellowSongLight.png",
33 | "idiom" : "universal",
34 | "scale" : "3x"
35 | },
36 | {
37 | "appearances" : [
38 | {
39 | "appearance" : "luminosity",
40 | "value" : "dark"
41 | }
42 | ],
43 | "filename" : "YellowSongDark.png",
44 | "idiom" : "universal",
45 | "scale" : "3x"
46 | }
47 | ],
48 | "info" : {
49 | "author" : "xcode",
50 | "version" : 1
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowSong.imageset/YellowSongDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowSong.imageset/YellowSongDark.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowSong.imageset/YellowSongLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/AmperfyKit/Assets/Assets.xcassets/Yellow/YellowSong.imageset/YellowSongLight.png
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/album_newest.symbolset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | },
6 | "symbols" : [
7 | {
8 | "filename" : "staroflife.square.stack.svg",
9 | "idiom" : "universal"
10 | }
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/album_recent.symbolset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | },
6 | "symbols" : [
7 | {
8 | "filename" : "timer.square.stack.svg",
9 | "idiom" : "universal"
10 | }
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/context_queue_append.symbolset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | },
6 | "symbols" : [
7 | {
8 | "filename" : "custom.text.line.last.and.arrowtriangle.forward.svg",
9 | "idiom" : "universal"
10 | }
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/context_queue_insert.symbolset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | },
6 | "symbols" : [
7 | {
8 | "filename" : "custom.text.line.first.and.arrowtriangle.forward.svg",
9 | "idiom" : "universal"
10 | }
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/gauge.symbolset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | },
6 | "symbols" : [
7 | {
8 | "filename" : "custom.gauge.open.with.lines.needle.33percent.svg",
9 | "idiom" : "universal"
10 | }
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/gauge_down.symbolset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | },
6 | "symbols" : [
7 | {
8 | "filename" : "custom.gauge.open.with.lines.needle.33percent.badge.arrow.down.svg",
9 | "idiom" : "universal"
10 | }
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/gauge_up.symbolset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | },
6 | "symbols" : [
7 | {
8 | "filename" : "custom.gauge.open.with.lines.needle.33percent.badge.arrow.up.svg",
9 | "idiom" : "universal"
10 | }
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/lyrics.symbolset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | },
6 | "symbols" : [
7 | {
8 | "filename" : "book.pages.svg",
9 | "idiom" : "universal"
10 | }
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/podcast.symbolset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | },
6 | "symbols" : [
7 | {
8 | "filename" : "podcast-symbol.svg",
9 | "idiom" : "universal"
10 | }
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/user_queue_append.symbolset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | },
6 | "symbols" : [
7 | {
8 | "filename" : "custom.text.line.last.and.arrowtriangle.forward.badge.person.crop.svg",
9 | "idiom" : "universal"
10 | }
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/AmperfyKit/Assets/Assets.xcassets/user_queue_insert.symbolset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | },
6 | "symbols" : [
7 | {
8 | "filename" : "custom.text.line.first.and.arrowtriangle.forward.badge.person.crop.svg",
9 | "idiom" : "universal"
10 | }
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/AmperfyKit/Screens/ArtworkCollection.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ArtworkCollection.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 06.06.22.
6 | // Copyright (c) 2022 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import Foundation
23 | import UIKit
24 |
25 | public class ArtworkCollection {
26 | let defaultArtworkType: ArtworkType
27 | let singleImageEntity: AbstractLibraryEntity?
28 | let quadImageEntity: [AbstractLibraryEntity]?
29 |
30 | init(
31 | defaultArtworkType: ArtworkType,
32 | singleImageEntity: AbstractLibraryEntity?,
33 | quadImageEntity: [AbstractLibraryEntity]? = nil
34 | ) {
35 | self.defaultArtworkType = defaultArtworkType
36 | self.singleImageEntity = singleImageEntity
37 | self.quadImageEntity = quadImageEntity
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/AmperfyKit/Screens/CommonString.swift:
--------------------------------------------------------------------------------
1 | //
2 | // CommonString.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 06.06.22.
6 | // Copyright (c) 2022 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import Foundation
23 |
24 | public class CommonString {
25 | public static let oneMiddleDot: String = "\u{00B7}"
26 | public static let threeMiddleDots: String = "\u{00B7}\u{00B7}\u{00B7}" // ellipsis
27 | }
28 |
--------------------------------------------------------------------------------
/AmperfyKit/Storage/LibraryElementEnum.swift:
--------------------------------------------------------------------------------
1 | //
2 | // LibraryElementEnum.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 09.03.19.
6 | // Copyright (c) 2019 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import Foundation
23 |
24 | public enum LibraryElement: Int, CaseIterable {
25 | case Playlist = 0
26 | case Artist = 1
27 | case Album = 2
28 | case Song = 3
29 | }
30 |
--------------------------------------------------------------------------------
/AmperfyKit/Storage/ManagedObjects/AbstractLibraryEntityMO+CoreDataClass.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AbstractLibraryEntityMO+CoreDataClass.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 09.03.19.
6 | // Copyright (c) 2019 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import CoreData
23 | import Foundation
24 |
25 | @objc(AbstractLibraryEntityMO)
26 | public class AbstractLibraryEntityMO: NSManagedObject {
27 | static var excludeRemoteDeleteFetchPredicate: NSPredicate {
28 | NSCompoundPredicate(orPredicateWithSubpredicates: [
29 | NSPredicate(
30 | format: "%K == %i",
31 | #keyPath(AbstractLibraryEntityMO.remoteStatus),
32 | RemoteStatus.available.rawValue
33 | ),
34 | ])
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/AmperfyKit/Storage/ManagedObjects/Amperfy.xcdatamodeld/.xccurrentversion:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | _XCCurrentVersionName
6 | Amperfy v45.xcdatamodel
7 |
8 |
9 |
--------------------------------------------------------------------------------
/AmperfyKit/Storage/ManagedObjects/ArtworkMO+CoreDataClass.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ArtworkMO+CoreDataClass.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 01.01.20.
6 | // Copyright (c) 2020 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import CoreData
23 | import Foundation
24 |
25 | @objc(ArtworkMO)
26 | public class ArtworkMO: NSManagedObject {}
27 |
--------------------------------------------------------------------------------
/AmperfyKit/Storage/ManagedObjects/EmbeddedArtworkMO+CoreDataClass.swift:
--------------------------------------------------------------------------------
1 | //
2 | // EmbeddedArtworkMO+CoreDataClass.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 07.11.21.
6 | // Copyright (c) 2021 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import CoreData
23 | import Foundation
24 |
25 | @objc(EmbeddedArtworkMO)
26 | public class EmbeddedArtworkMO: NSManagedObject {}
27 |
--------------------------------------------------------------------------------
/AmperfyKit/Storage/ManagedObjects/EmbeddedArtworkMO+CoreDataProperties.swift:
--------------------------------------------------------------------------------
1 | //
2 | // EmbeddedArtworkMO+CoreDataProperties.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 07.11.21.
6 | // Copyright (c) 2021 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import CoreData
23 | import Foundation
24 |
25 | extension EmbeddedArtworkMO {
26 | @nonobjc
27 | public class func fetchRequest() -> NSFetchRequest {
28 | NSFetchRequest(entityName: "EmbeddedArtwork")
29 | }
30 |
31 | @NSManaged
32 | public var imageData: Data? /// deprecated! use relFilePath instead
33 | @NSManaged
34 | public var relFilePath: String?
35 | @NSManaged
36 | public var owner: AbstractPlayableMO?
37 | }
38 |
--------------------------------------------------------------------------------
/AmperfyKit/Storage/ManagedObjects/LogEntryMO+CoreDataClass.swift:
--------------------------------------------------------------------------------
1 | //
2 | // LogEntryMO+CoreDataClass.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 16.05.21.
6 | // Copyright (c) 2021 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import CoreData
23 | import Foundation
24 |
25 | // MARK: - LogEntryMO
26 |
27 | @objc(LogEntryMO)
28 | public class LogEntryMO: NSManagedObject {}
29 |
30 | extension LogEntryMO {
31 | public static var creationDateSortedFetchRequest: NSFetchRequest {
32 | let fetchRequest: NSFetchRequest = LogEntryMO.fetchRequest()
33 | fetchRequest.sortDescriptors = [
34 | NSSortDescriptor(key: #keyPath(LogEntryMO.creationDate), ascending: false),
35 | ]
36 | return fetchRequest
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/AmperfyKit/Storage/ManagedObjects/LogEntryMO+CoreDataProperties.swift:
--------------------------------------------------------------------------------
1 | //
2 | // LogEntryMO+CoreDataProperties.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 16.05.21.
6 | // Copyright (c) 2021 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import CoreData
23 | import Foundation
24 |
25 | extension LogEntryMO {
26 | @nonobjc
27 | public class func fetchRequest() -> NSFetchRequest {
28 | NSFetchRequest(entityName: "LogEntry")
29 | }
30 |
31 | @NSManaged
32 | public var creationDate: Date
33 | @NSManaged
34 | public var message: String
35 | @NSManaged
36 | public var statusCode: Int32
37 | @NSManaged
38 | public var type: Int16
39 | @NSManaged
40 | public var suppressionTimeInterval: Int32
41 | }
42 |
--------------------------------------------------------------------------------
/AmperfyKit/Storage/ManagedObjects/PlayableFileMO+CoreDataClass.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PlayableFileMO+CoreDataClass.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 29.06.21.
6 | // Copyright (c) 2021 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import CoreData
23 | import Foundation
24 |
25 | /// deprecated! use FileManger instead
26 | @objc(PlayableFileMO)
27 | public class PlayableFileMO: NSManagedObject {}
28 |
--------------------------------------------------------------------------------
/AmperfyKit/Storage/ManagedObjects/PlayableFileMO+CoreDataProperties.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PlayableFileMO+CoreDataProperties.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 29.06.21.
6 | // Copyright (c) 2021 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import CoreData
23 | import Foundation
24 |
25 | extension PlayableFileMO {
26 | @nonobjc
27 | public class func fetchRequest() -> NSFetchRequest {
28 | NSFetchRequest(entityName: "PlayableFile")
29 | }
30 |
31 | @NSManaged
32 | public var data: Data?
33 | @NSManaged
34 | public var info: AbstractPlayableMO?
35 | }
36 |
--------------------------------------------------------------------------------
/AmperfyKit/Storage/ManagedObjects/PlayerMO+CoreDataClass.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PlayerMO+CoreDataClass.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 02.01.20.
6 | // Copyright (c) 2020 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import CoreData
23 | import Foundation
24 |
25 | @objc(PlayerMO)
26 | public class PlayerMO: NSManagedObject {}
27 |
--------------------------------------------------------------------------------
/AmperfyKit/Storage/ManagedObjects/PlaylistItemMO+CoreDataClass.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PlaylistItemMO+CoreDataClass.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 31.12.19.
6 | // Copyright (c) 2019 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import CoreData
23 | import Foundation
24 |
25 | @objc(PlaylistItemMO)
26 | public class PlaylistItemMO: NSManagedObject {
27 | public static let orderDistance: Int32 = 32
28 |
29 | static var playlistOrderSortedFetchRequest: NSFetchRequest {
30 | let fetchRequest: NSFetchRequest = PlaylistItemMO.fetchRequest()
31 | fetchRequest.sortDescriptors = [
32 | NSSortDescriptor(key: #keyPath(PlaylistItemMO.order), ascending: true),
33 | ]
34 | return fetchRequest
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/AmperfyKit/Storage/ManagedObjects/RadioMO+CoreDataProperties.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RadioMO+CoreDataProperties.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 27.12.24.
6 | // Copyright (c) 2024 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import CoreData
23 | import Foundation
24 |
25 | extension RadioMO {
26 | @nonobjc
27 | public class func fetchRequest() -> NSFetchRequest {
28 | NSFetchRequest(entityName: "Radio")
29 | }
30 |
31 | @NSManaged
32 | public var siteUrl: String?
33 |
34 | static let relationshipKeyPathsForPrefetching = [
35 | #keyPath(RadioMO.artwork),
36 | #keyPath(RadioMO.embeddedArtwork),
37 | ]
38 | }
39 |
--------------------------------------------------------------------------------
/AmperfyKit/Storage/ManagedObjects/ScrobbleEntryMO+CoreDataClass.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ScrobbleEntryMO+CoreDataClass.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 05.03.22.
6 | // Copyright (c) 2022 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import CoreData
23 | import Foundation
24 |
25 | @objc(ScrobbleEntryMO)
26 | public class ScrobbleEntryMO: NSManagedObject {}
27 |
--------------------------------------------------------------------------------
/AmperfyKit/Storage/ManagedObjects/ScrobbleEntryMO+CoreDataProperties.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ScrobbleEntryMO+CoreDataProperties.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 05.03.22.
6 | // Copyright (c) 2022 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import CoreData
23 | import Foundation
24 |
25 | extension ScrobbleEntryMO {
26 | @nonobjc
27 | public class func fetchRequest() -> NSFetchRequest {
28 | NSFetchRequest(entityName: "ScrobbleEntry")
29 | }
30 |
31 | @NSManaged
32 | public var date: Date?
33 | @NSManaged
34 | public var isUploaded: Bool
35 | @NSManaged
36 | public var playable: AbstractPlayableMO?
37 | }
38 |
--------------------------------------------------------------------------------
/AmperfyKit/Storage/ManagedObjects/SearchHistoryItemMO+CoreDataProperties.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SearchHistoryItemMO+CoreDataProperties.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 21.02.24.
6 | // Copyright (c) 2024 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import CoreData
23 | import Foundation
24 |
25 | extension SearchHistoryItemMO {
26 | @nonobjc
27 | public class func fetchRequest() -> NSFetchRequest {
28 | NSFetchRequest(entityName: "SearchHistoryItem")
29 | }
30 |
31 | @NSManaged
32 | public var date: Date?
33 | @NSManaged
34 | public var searchedLibraryEntity: AbstractLibraryEntityMO?
35 | @NSManaged
36 | public var searchedPlaylist: PlaylistMO?
37 | }
38 |
--------------------------------------------------------------------------------
/AmperfyKit/Storage/ManagedObjects/UserStatisticsMO+CoreDataClass.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UserStatisticsMO+CoreDataClass.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 24.05.21.
6 | // Copyright (c) 2021 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import CoreData
23 | import Foundation
24 |
25 | @objc(UserStatisticsMO)
26 | public class UserStatisticsMO: NSManagedObject {}
27 |
--------------------------------------------------------------------------------
/AmperfyKit/Storage/ManagedObjects/VersionMappings/MigrationPolicyV4toV5.swift:
--------------------------------------------------------------------------------
1 | //
2 | // MigrationPolicyV4toV5.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 23.02.21.
6 | // Copyright (c) 2021 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import CoreData
23 | import Foundation
24 |
25 | public class MigrationPolicyV4toV5: NSEntityMigrationPolicy {
26 | @objc
27 | func stringId(forIntId: NSNumber) -> NSString {
28 | forIntId.stringValue as NSString
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/AmperfyKit/Storage/PlayerDisplayStyleType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PlayerDisplayStyleType.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 06.06.22.
6 | // Copyright (c) 2022 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import Foundation
23 |
24 | public enum PlayerDisplayStyle: Int, Sendable {
25 | case compact = 0
26 | case large = 1
27 |
28 | static let defaultValue: PlayerDisplayStyle = .large
29 |
30 | public mutating func switchToNextStyle() {
31 | switch self {
32 | case .compact:
33 | self = .large
34 | case .large:
35 | self = .compact
36 | }
37 | }
38 |
39 | public var description: String {
40 | switch self {
41 | case .compact: return "Compact"
42 | case .large: return "Large"
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/AmperfyKit/Storage/PodcastsShowType.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PodcastsShowType.swift
3 | // AmperfyKit
4 | //
5 | // Created by Maximilian Bauer on 06.06.22.
6 | // Copyright (c) 2022 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | import Foundation
23 |
24 | public enum PodcastsShowType: Int, Sendable {
25 | case podcasts = 0
26 | case episodesSortedByReleaseDate = 1
27 |
28 | static let defaultValue: PodcastsShowType = .podcasts
29 | }
30 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Ampache/ErrorParserTest.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ErrorParserTest.swift
3 | // AmperfyKitTests
4 | //
5 | // Created by Maximilian Bauer on 01.06.21.
6 | // Copyright (c) 2021 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | @testable import AmperfyKit
23 | import XCTest
24 |
25 | class ErrorParserTest: XCTestCase {
26 | var xmlData: Data!
27 |
28 | override func setUp() {
29 | xmlData = getTestFileData(name: "error-4700")
30 | }
31 |
32 | func testParsing() {
33 | let parserDelegate = AmpacheXmlParser(performanceMonitor: MOCK_PerformanceMonitor())
34 | let parser = XMLParser(data: xmlData)
35 | parser.delegate = parserDelegate
36 | parser.parse()
37 |
38 | guard let error = parserDelegate.error else { XCTFail(); return }
39 | XCTAssertEqual(error.statusCode, 4700)
40 | XCTAssertEqual(error.message, "Access Denied")
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Ampache/Samples/error-4700.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Ampache/Samples/genres.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 6
4 |
5 |
6 | 1
7 | 1
8 | 11
9 | 0
10 | 0
11 | 0
12 |
13 |
14 |
15 | 1
16 | 1
17 | 4
18 | 0
19 | 0
20 | 0
21 |
22 |
23 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Ampache/Samples/handshake.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Ampache/Samples/live_streams.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 3
4 |
5 |
6 |
7 |
8 | 1
9 |
10 |
11 |
12 |
13 |
14 |
15 | 1
16 |
17 |
18 |
19 |
20 |
21 |
22 | 1
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Subsonic/Samples/OpenSubsonicExtensions_example_1.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 | 1
5 |
6 |
7 | 1
8 |
9 |
10 | 1
11 |
12 |
13 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Subsonic/Samples/album_example_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Subsonic/Samples/artists_example_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Subsonic/Samples/directory_example_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Subsonic/Samples/directory_example_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
11 |
12 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Subsonic/Samples/error_example_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Subsonic/Samples/genres_example_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Electronic
7 | Hard Rock
8 | R&B
9 | Blues
10 | Podcast
11 | Brit Pop
12 | Live
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Subsonic/Samples/getLyricsBySongId_example_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | It's bugging me
5 | Grating me
6 | And twisting me around...
7 |
8 |
9 | It's bugging2 me
10 | Grating2 me
11 | And twisting2 me around...
12 |
13 |
14 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Subsonic/Samples/getLyricsBySongId_example_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | It's bugging me
6 |
7 |
8 | Grating me
9 |
10 |
11 | And twisting me around...
12 |
13 |
14 |
15 |
16 | It's bugging2 me
17 |
18 |
19 | Grating2 me
20 |
21 |
22 | And twisting2 me around...
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Subsonic/Samples/indexes_example_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
22 |
23 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Subsonic/Samples/internetRadioStations_example_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Subsonic/Samples/musicFolders_example_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Subsonic/Samples/ping_example_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Subsonic/Samples/playlists_example_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | sindre
7 | john
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Subsonic/SsPingParserTest.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SsPingParserTest.swift
3 | // AmperfyKitTests
4 | //
5 | // Created by Maximilian Bauer on 01.06.21.
6 | // Copyright (c) 2021 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | @testable import AmperfyKit
23 | import XCTest
24 |
25 | class SsPingParserTest: XCTestCase {
26 | var xmlData: Data!
27 |
28 | override func setUp() {
29 | xmlData = getTestFileData(name: "ping_example_1")
30 | }
31 |
32 | override func tearDown() {}
33 |
34 | func testParsing() {
35 | let parserDelegate = SsPingParserDelegate(performanceMonitor: MOCK_PerformanceMonitor())
36 | let parser = XMLParser(data: xmlData)
37 | parser.delegate = parserDelegate
38 | parser.parse()
39 |
40 | XCTAssertNil(parserDelegate.error)
41 | XCTAssertTrue(parserDelegate.isAuthValid)
42 | XCTAssertEqual(parserDelegate.serverApiVersion, "1.1.1")
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/API/Subsonic/SsXmlParserTest.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SsXmlParserTest.swift
3 | // AmperfyKitTests
4 | //
5 | // Created by Maximilian Bauer on 01.06.21.
6 | // Copyright (c) 2021 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | @testable import AmperfyKit
23 | import XCTest
24 |
25 | class SsXmlParserTest: XCTestCase {
26 | var xmlData: Data!
27 |
28 | override func setUp() {
29 | xmlData = getTestFileData(name: "error_example_1")
30 | }
31 |
32 | override func tearDown() {}
33 |
34 | func testParsing() {
35 | let parserDelegate = SsPingParserDelegate(performanceMonitor: MOCK_PerformanceMonitor())
36 | let parser = XMLParser(data: xmlData)
37 | parser.delegate = parserDelegate
38 | parser.parse()
39 |
40 | guard let error = parserDelegate.error else { XCTFail(); return }
41 | XCTAssertEqual(error.statusCode, 40)
42 | XCTAssertEqual(error.message, "Wrong username or password")
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/AmperfyKitTests/Cases/HelperTest.swift:
--------------------------------------------------------------------------------
1 | //
2 | // HelperTest.swift
3 | // AmperfyKitTests
4 | //
5 | // Created by Maximilian Bauer on 30.12.19.
6 | // Copyright (c) 2019 Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 | @testable import AmperfyKit
23 | import XCTest
24 |
25 | @MainActor
26 | class HelperTest: XCTestCase {
27 | var cdHelper: CoreDataHelper!
28 | var library: LibraryStorage!
29 |
30 | override func setUp() async throws {
31 | cdHelper = CoreDataHelper()
32 | library = cdHelper.createSeededStorage()
33 | }
34 |
35 | override func tearDown() {}
36 |
37 | func testSeeder() {
38 | XCTAssertEqual(library.getArtists().count, cdHelper.seeder.artists.count)
39 | XCTAssertEqual(library.getAlbums().count, cdHelper.seeder.albums.count)
40 | XCTAssertEqual(library.getSongs().count, cdHelper.seeder.songs.count)
41 | XCTAssertEqual(library.getPlaylists().count, cdHelper.seeder.playlists.count)
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/BuildTools/Dummy.swift:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/BuildTools/Dummy.swift
--------------------------------------------------------------------------------
/BuildTools/Package.resolved:
--------------------------------------------------------------------------------
1 | {
2 | "object": {
3 | "pins": [
4 | {
5 | "package": "SwiftFormat",
6 | "repositoryURL": "https://github.com/nicklockwood/SwiftFormat",
7 | "state": {
8 | "branch": null,
9 | "revision": "468a7d32dedc8d352c191594b3b45d9fd8ba291b",
10 | "version": "0.55.5"
11 | }
12 | }
13 | ]
14 | },
15 | "version": 1
16 | }
17 |
--------------------------------------------------------------------------------
/BuildTools/Package.swift:
--------------------------------------------------------------------------------
1 | // swift-tools-version:5.1
2 | import PackageDescription
3 |
4 | let package = Package(
5 | name: "BuildTools",
6 | platforms: [.macOS(.v10_11)],
7 | dependencies: [
8 | .package(
9 | url: "https://github.com/nicklockwood/SwiftFormat",
10 | from: "0.55.5"
11 | ),
12 | ],
13 | targets: [.target(name: "BuildTools", path: "")]
14 | )
15 |
--------------------------------------------------------------------------------
/BuildTools/applyFormat.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Get the current working directory
4 | cwd=$(pwd)
5 |
6 | target_dir="BuildTools"
7 | swiftformat_exec="./.build/release/swiftformat"
8 |
9 | # Check if the current directory ends with "BuildTools"
10 | if [[ "$cwd" =~ $target_dir$ ]]; then
11 | :
12 | else
13 | cd "$target_dir"
14 | fi
15 |
16 | # Check if SwiftFormat has already been build
17 | if [ ! -f "$swiftformat_exec" ]; then
18 | echo "SwiftFormat not build yet: start build"
19 | SDKROOT=(xcrun --sdk macosx --show-sdk-path)
20 | swift run -c release swiftformat "$SRCROOT"
21 | fi
22 |
23 | "$swiftformat_exec" ..
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | CHANGELOG
2 | =========
3 |
4 | See the changes in each release here: [https://github.com/BLeeEZ/amperfy/releases](https://github.com/BLeeEZ/amperfy/releases)
--------------------------------------------------------------------------------
/Design/Logo.xcf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/Design/Logo.xcf
--------------------------------------------------------------------------------
/Design/Playlist.xcf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BLeeEZ/amperfy/09b7fcde67333914e064f40677ad0a36c984e0d6/Design/Playlist.xcf
--------------------------------------------------------------------------------
/Helper/add-license-header.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # use this script in the root directory to add the license header to all files
4 |
5 | for i in $(git ls-files | grep "\.swift$"); do
6 | creationDate=$(git log --follow --diff-filter=A --date=format:'%d.%m.%y %H:%M:%S' $i | grep Date | tail -1 | awk '{ print $2 }')
7 | creationYear=$(git log --follow --diff-filter=A --date=format:'%Y' $i | grep Date | tail -1 | awk '{ print $2 }')
8 | filename=$(echo $i | sed "s/.*\///")
9 | modulename=$(echo $i | awk -F/ '{ print $1 }')
10 | echo "Info: <$creationYear> <$creationDate> <$modulename> <$filename> from $i"
11 | cat ./Helper/license-header.txt |sed "s|THEDATE|$creationDate|" |sed "s|THEYEAR|$creationYear|" |sed "s|THEFILENAME|$filename|" |sed "s|THEMODULENAME|$modulename|"| cat - $i > /tmp/temp && mv /tmp/temp $i
12 | done
--------------------------------------------------------------------------------
/Helper/license-header.txt:
--------------------------------------------------------------------------------
1 | //
2 | // THEFILENAME
3 | // THEMODULENAME
4 | //
5 | // Created by Maximilian Bauer on THEDATE.
6 | // Copyright (c) THEYEAR Maximilian Bauer. All rights reserved.
7 | //
8 | // This program is free software: you can redistribute it and/or modify
9 | // it under the terms of the GNU General Public License as published by
10 | // the Free Software Foundation, either version 3 of the License, or
11 | // (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program. If not, see .
20 | //
21 |
22 |
--------------------------------------------------------------------------------