From 4ac22ce2e11eedab8b4d97a63b1aa1b3aad85acd Mon Sep 17 00:00:00 2001 From: Brad Root Date: Sat, 27 Jul 2019 19:13:53 -0700 Subject: [PATCH] v1.3.4 (#60) - Adds basic Amazon support - Adds basic Deezer support - Removes some code from the 1.3.2 transition to a different pusher instance - Adds proper iPad support --- Numu Tracker.xcodeproj/project.pbxproj | 46 +- .../xcschemes/Numu Tracker.xcscheme | 2 +- Numu Tracker/AppDelegate.swift | 5 - .../AppIcon.appiconset/Contents.json | 58 +- .../AppIcon.appiconset/numuIcon_1024.png | Bin 59259 -> 53600 bytes .../AppIcon.appiconset/numuIcon_152.png | Bin 0 -> 6661 bytes .../AppIcon.appiconset/numuIcon_167.png | Bin 0 -> 7393 bytes .../AppIcon.appiconset/numuIcon_20.png | Bin 0 -> 561 bytes .../AppIcon.appiconset/numuIcon_29.png | Bin 0 -> 787 bytes .../AppIcon.appiconset/numuIcon_40-1.png | Bin 0 -> 1083 bytes .../AppIcon.appiconset/numuIcon_40-2.png | Bin 0 -> 1083 bytes .../AppIcon.appiconset/numuIcon_58-1.png | Bin 0 -> 1890 bytes .../AppIcon.appiconset/numuIcon_76.png | Bin 0 -> 2633 bytes .../AppIcon.appiconset/numuIcon_80-1.png | Bin 0 -> 2867 bytes .../amazonIcon.imageset/Contents.json | 26 + .../amazonIcon.imageset/amazonIcon.png | Bin 0 -> 435 bytes .../amazonIcon.imageset/amazonIcon@2x.png | Bin 0 -> 819 bytes .../amazonIcon.imageset/amazonIcon@3x.png | Bin 0 -> 1272 bytes .../deezerIcon.imageset/Contents.json | 26 + .../deezerIcon.imageset/deezerIcon@2x.png | Bin 0 -> 496 bytes .../deezerIcon.imageset/deezerIcon@3x.png | Bin 0 -> 610 bytes .../Classes/Interface/NumuUIButton.swift | 19 - Numu Tracker/Info.plist | 12 +- .../Views/ArtistsSplitViewController.swift | 24 + Numu Tracker/Views/Base.lproj/Main.storyboard | 689 ++++++++++++------ .../ReleaseDetailsViewController.swift | 28 + .../ReleaseDetailsViewController.xib | 34 +- .../Rows/SearchAmazonTableViewCell.xib | 77 ++ .../Rows/SearchAmazonViewCell.swift | 63 ++ .../Rows/SearchDeezerTableViewCell.xib | 77 ++ .../Rows/SearchDeezerViewCell.swift | 58 ++ .../Views/Modals/Sort/NumuSortView.xib | 65 +- .../NumuTabBarController.swift | 0 .../Interface => Views}/NumuTextField.swift | 0 Numu Tracker/Views/NumuUIButton.swift | 37 + .../ArtistReleaseTableViewCell.swift | 2 +- .../ArtistReleasesTableViewController.swift | 9 +- .../Views/artists/ArtistTableViewCell.swift | 5 + .../artists/ArtistsTableViewController.swift | 20 +- .../AllReleasesTableViewController.swift | 10 - .../Views/releases/ReleaseTableViewCell.swift | 2 +- .../Views/settings/HelpViewController.swift | 14 +- .../ImportAppleMusicViewController.swift | 5 - .../ImportSpotifyViewController.swift | 4 - .../settings/MoreTableViewController.swift | 42 ++ .../MusicServicesViewController.swift | 21 + Numu Tracker/backend/Extensions.swift | 14 + Pods/Pods.xcodeproj/project.pbxproj | 45 +- 48 files changed, 1182 insertions(+), 357 deletions(-) create mode 100644 Numu Tracker/Assets.xcassets/AppIcon.appiconset/numuIcon_152.png create mode 100644 Numu Tracker/Assets.xcassets/AppIcon.appiconset/numuIcon_167.png create mode 100644 Numu Tracker/Assets.xcassets/AppIcon.appiconset/numuIcon_20.png create mode 100644 Numu Tracker/Assets.xcassets/AppIcon.appiconset/numuIcon_29.png create mode 100644 Numu Tracker/Assets.xcassets/AppIcon.appiconset/numuIcon_40-1.png create mode 100644 Numu Tracker/Assets.xcassets/AppIcon.appiconset/numuIcon_40-2.png create mode 100644 Numu Tracker/Assets.xcassets/AppIcon.appiconset/numuIcon_58-1.png create mode 100644 Numu Tracker/Assets.xcassets/AppIcon.appiconset/numuIcon_76.png create mode 100644 Numu Tracker/Assets.xcassets/AppIcon.appiconset/numuIcon_80-1.png create mode 100644 Numu Tracker/Assets.xcassets/amazonIcon.imageset/Contents.json create mode 100644 Numu Tracker/Assets.xcassets/amazonIcon.imageset/amazonIcon.png create mode 100644 Numu Tracker/Assets.xcassets/amazonIcon.imageset/amazonIcon@2x.png create mode 100644 Numu Tracker/Assets.xcassets/amazonIcon.imageset/amazonIcon@3x.png create mode 100644 Numu Tracker/Assets.xcassets/deezerIcon.imageset/Contents.json create mode 100644 Numu Tracker/Assets.xcassets/deezerIcon.imageset/deezerIcon@2x.png create mode 100644 Numu Tracker/Assets.xcassets/deezerIcon.imageset/deezerIcon@3x.png delete mode 100644 Numu Tracker/Classes/Interface/NumuUIButton.swift create mode 100644 Numu Tracker/Views/ArtistsSplitViewController.swift create mode 100644 Numu Tracker/Views/Modals/Release Details/Rows/SearchAmazonTableViewCell.xib create mode 100644 Numu Tracker/Views/Modals/Release Details/Rows/SearchAmazonViewCell.swift create mode 100644 Numu Tracker/Views/Modals/Release Details/Rows/SearchDeezerTableViewCell.xib create mode 100644 Numu Tracker/Views/Modals/Release Details/Rows/SearchDeezerViewCell.swift rename Numu Tracker/{Classes/Interface => Views}/NumuTabBarController.swift (100%) rename Numu Tracker/{Classes/Interface => Views}/NumuTextField.swift (100%) create mode 100644 Numu Tracker/Views/NumuUIButton.swift create mode 100644 Numu Tracker/Views/settings/MoreTableViewController.swift diff --git a/Numu Tracker.xcodeproj/project.pbxproj b/Numu Tracker.xcodeproj/project.pbxproj index f025294..45c9385 100644 --- a/Numu Tracker.xcodeproj/project.pbxproj +++ b/Numu Tracker.xcodeproj/project.pbxproj @@ -8,6 +8,10 @@ /* Begin PBXBuildFile section */ 4401CBB8215DC8D000B0EB23 /* AlbumArtCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4401CBB7215DC8D000B0EB23 /* AlbumArtCache.swift */; }; + 4403C1FB22A0597E003A09B0 /* SearchDeezerViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4403C1FA22A0597E003A09B0 /* SearchDeezerViewCell.swift */; }; + 4403C1FD22A05991003A09B0 /* SearchDeezerTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4403C1FC22A05991003A09B0 /* SearchDeezerTableViewCell.xib */; }; + 4403C1FF22A05F0C003A09B0 /* SearchAmazonTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4403C1FE22A05F0C003A09B0 /* SearchAmazonTableViewCell.xib */; }; + 4403C20122A05F1C003A09B0 /* SearchAmazonViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4403C20022A05F1C003A09B0 /* SearchAmazonViewCell.swift */; }; 4406A0032173A674002900E8 /* ImportSpotifyOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4406A0022173A674002900E8 /* ImportSpotifyOperation.swift */; }; 4406A00821744F38002900E8 /* ListenAMTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4406A00621744F38002900E8 /* ListenAMTableViewCell.swift */; }; 4406A00921744F38002900E8 /* ListenAMTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4406A00721744F38002900E8 /* ListenAMTableViewCell.xib */; }; @@ -66,6 +70,8 @@ B4CCFCC51DB4311B00D2277B /* ImportAppleMusicViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4CCFCC41DB4311B00D2277B /* ImportAppleMusicViewController.swift */; }; B4CCFCC71DB4353E00D2277B /* NumuUIButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4CCFCC61DB4353E00D2277B /* NumuUIButton.swift */; }; B4CCFCC91DB447B200D2277B /* HelpViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4CCFCC81DB447B200D2277B /* HelpViewController.swift */; }; + B4D5960922B23D46006B4439 /* ArtistsSplitViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4D5960822B23D46006B4439 /* ArtistsSplitViewController.swift */; }; + B4D5960B22B41F2F006B4439 /* MoreTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4D5960A22B41F2F006B4439 /* MoreTableViewController.swift */; }; B4F1E3AB2058C6C100F2544A /* NumuReviewHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4F1E3AA2058C6C100F2544A /* NumuReviewHelper.swift */; }; E4EB5ACCF23F58468A5C04FF /* Pods_Numu_Tracker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBD0F3687066D64A7B28C145 /* Pods_Numu_Tracker.framework */; }; /* End PBXBuildFile section */ @@ -73,6 +79,10 @@ /* Begin PBXFileReference section */ 01361C8695313B7121751750 /* Pods-Numu Tracker.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Numu Tracker.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Numu Tracker/Pods-Numu Tracker.debug.xcconfig"; sourceTree = ""; }; 4401CBB7215DC8D000B0EB23 /* AlbumArtCache.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AlbumArtCache.swift; sourceTree = ""; }; + 4403C1FA22A0597E003A09B0 /* SearchDeezerViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchDeezerViewCell.swift; sourceTree = ""; }; + 4403C1FC22A05991003A09B0 /* SearchDeezerTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SearchDeezerTableViewCell.xib; sourceTree = ""; }; + 4403C1FE22A05F0C003A09B0 /* SearchAmazonTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SearchAmazonTableViewCell.xib; sourceTree = ""; }; + 4403C20022A05F1C003A09B0 /* SearchAmazonViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchAmazonViewCell.swift; sourceTree = ""; }; 4406A0022173A674002900E8 /* ImportSpotifyOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImportSpotifyOperation.swift; sourceTree = ""; }; 4406A00621744F38002900E8 /* ListenAMTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListenAMTableViewCell.swift; sourceTree = ""; }; 4406A00721744F38002900E8 /* ListenAMTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ListenAMTableViewCell.xib; sourceTree = ""; }; @@ -135,6 +145,8 @@ B4CCFCC41DB4311B00D2277B /* ImportAppleMusicViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImportAppleMusicViewController.swift; sourceTree = ""; }; B4CCFCC61DB4353E00D2277B /* NumuUIButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NumuUIButton.swift; sourceTree = ""; }; B4CCFCC81DB447B200D2277B /* HelpViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HelpViewController.swift; sourceTree = ""; }; + B4D5960822B23D46006B4439 /* ArtistsSplitViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArtistsSplitViewController.swift; sourceTree = ""; }; + B4D5960A22B41F2F006B4439 /* MoreTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MoreTableViewController.swift; sourceTree = ""; }; B4F1E3AA2058C6C100F2544A /* NumuReviewHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NumuReviewHelper.swift; sourceTree = ""; }; CBD0F3687066D64A7B28C145 /* Pods_Numu_Tracker.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Numu_Tracker.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -174,7 +186,6 @@ 441CC0A7215C516E009F4114 /* Classes */ = { isa = PBXGroup; children = ( - 441CC0A9215C522E009F4114 /* Interface */, B42866071DA5FC53000E5FA6 /* User.swift */, B440D9D61DB2D19300477938 /* ArtistItem.swift */, B4283ABC1D8658AD00467CE6 /* ReleaseItem.swift */, @@ -193,18 +204,12 @@ B4CCFCBD1DB4258C00D2277B /* Artists */, B4CCFCC01DB425D900D2277B /* More */, 447FED38217811810084530E /* Modals */, - ); - path = Views; - sourceTree = ""; - }; - 441CC0A9215C522E009F4114 /* Interface */ = { - isa = PBXGroup; - children = ( + B4D5960822B23D46006B4439 /* ArtistsSplitViewController.swift */, B4CCFCC61DB4353E00D2277B /* NumuUIButton.swift */, B471648C1F5FA24600D4E03E /* NumuTextField.swift */, B40E35911DB1D88C004BA8C7 /* NumuTabBarController.swift */, ); - path = Interface; + path = Views; sourceTree = ""; }; 443EBB91217054800071A11D /* Release Details */ = { @@ -271,6 +276,10 @@ 447FED40217BA34A0084530E /* SearchSoundCloudTableViewCell.xib */, 447FED43217BB68D0084530E /* SearchYouTubeTableViewCell.swift */, 447FED44217BB68D0084530E /* SearchYouTubeTableViewCell.xib */, + 4403C1FC22A05991003A09B0 /* SearchDeezerTableViewCell.xib */, + 4403C1FA22A0597E003A09B0 /* SearchDeezerViewCell.swift */, + 4403C20022A05F1C003A09B0 /* SearchAmazonViewCell.swift */, + 4403C1FE22A05F0C003A09B0 /* SearchAmazonTableViewCell.xib */, 447FED47217BC17C0084530E /* NumuModalButton.swift */, ); path = Rows; @@ -359,6 +368,7 @@ B46754571F6DA66F00C80544 /* InstructionsViewController.swift */, B43E36B11F5DFAD0009834C9 /* LogRegPromptViewController.swift */, 447FED3D217B839F0084530E /* MusicServicesViewController.swift */, + B4D5960A22B41F2F006B4439 /* MoreTableViewController.swift */, ); name = More; path = settings; @@ -429,13 +439,13 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0800; - LastUpgradeCheck = 0930; + LastUpgradeCheck = 1020; ORGANIZATIONNAME = "Numu Tracker"; TargetAttributes = { B4283A801D8548F300467CE6 = { CreatedOnToolsVersion = 8.0; DevelopmentTeam = 2Y9M69QJKZ; - LastSwiftMigration = 1000; + LastSwiftMigration = 1020; ProvisioningStyle = Automatic; SystemCapabilities = { com.apple.BackgroundModes = { @@ -456,7 +466,7 @@ }; buildConfigurationList = B4283A7C1D8548F300467CE6 /* Build configuration list for PBXProject "Numu Tracker" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, @@ -482,10 +492,12 @@ 443EBB902170547A0071A11D /* ReleaseDetailsViewController.xib in Resources */, 4459C3D821658A7900EB4048 /* NumuAlertView.xib in Resources */, 443EBB8C217053530071A11D /* LoginSpotifyViewController.xib in Resources */, + 4403C1FF22A05F0C003A09B0 /* SearchAmazonTableViewCell.xib in Resources */, B4283A911D8548F300467CE6 /* LaunchScreen.storyboard in Resources */, 449F5A7C2176B99900B9C919 /* MoreReleasesTableViewCell.xib in Resources */, 447FED3721780B410084530E /* ListenSpotifyTableViewCell.xib in Resources */, B4283A8E1D8548F300467CE6 /* Assets.xcassets in Resources */, + 4403C1FD22A05991003A09B0 /* SearchDeezerTableViewCell.xib in Resources */, 447FED46217BB68D0084530E /* SearchYouTubeTableViewCell.xib in Resources */, 4406A00921744F38002900E8 /* ListenAMTableViewCell.xib in Resources */, B4283A8C1D8548F300467CE6 /* Main.storyboard in Resources */, @@ -621,6 +633,7 @@ 446DBDE8215AF82400AE2AA7 /* ImportAppleMusicOperation.swift in Sources */, 4461CB8D21589D7A001939F0 /* AuthOperation.swift in Sources */, 443EBB8821702D430071A11D /* ImportSpotifyViewController.swift in Sources */, + 4403C20122A05F1C003A09B0 /* SearchAmazonViewCell.swift in Sources */, 447FED48217BC17C0084530E /* NumuModalButton.swift in Sources */, B4283ABD1D8658AD00467CE6 /* ReleaseItem.swift in Sources */, B4CCFCC91DB447B200D2277B /* HelpViewController.swift in Sources */, @@ -628,6 +641,7 @@ B46754581F6DA66F00C80544 /* InstructionsViewController.swift in Sources */, 4461CB7F21585488001939F0 /* NumuAPI.swift in Sources */, 448C68EB21CB092B00ECEC61 /* AlertModal.swift in Sources */, + B4D5960922B23D46006B4439 /* ArtistsSplitViewController.swift in Sources */, B4B940AE1E6131B800F52027 /* NotificationsViewController.swift in Sources */, 447FED3E217B839F0084530E /* MusicServicesViewController.swift in Sources */, B4283A851D8548F300467CE6 /* AppDelegate.swift in Sources */, @@ -636,6 +650,7 @@ B4CCFCC51DB4311B00D2277B /* ImportAppleMusicViewController.swift in Sources */, 4461CB8B21589AB4001939F0 /* RegisterWithCKOperation.swift in Sources */, 4401CBB8215DC8D000B0EB23 /* AlbumArtCache.swift in Sources */, + B4D5960B22B41F2F006B4439 /* MoreTableViewController.swift in Sources */, 4459C3D721658A7900EB4048 /* NumuAlertView.swift in Sources */, B440D9D71DB2D19300477938 /* ArtistItem.swift in Sources */, 447FED41217BA34A0084530E /* SearchSoundCloudTableViewCell.swift in Sources */, @@ -650,6 +665,7 @@ B45A134120551C46001EBDA5 /* Extensions.swift in Sources */, B42866081DA5FC53000E5FA6 /* User.swift in Sources */, 4461CB79215844C9001939F0 /* AsyncOperation.swift in Sources */, + 4403C1FB22A0597E003A09B0 /* SearchDeezerViewCell.swift in Sources */, 443EBB8F2170547A0071A11D /* ReleaseDetailsViewController.swift in Sources */, 44D3917021691D5000CFB9A3 /* NumuSortView.swift in Sources */, 447FED3621780B410084530E /* ListenSpotifyTableViewCell.swift in Sources */, @@ -689,6 +705,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -748,6 +765,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -816,7 +834,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = 1; + TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; @@ -839,7 +857,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.numutracker.Numu-Tracker"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = 1; + TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release; }; diff --git a/Numu Tracker.xcodeproj/xcshareddata/xcschemes/Numu Tracker.xcscheme b/Numu Tracker.xcodeproj/xcshareddata/xcschemes/Numu Tracker.xcscheme index f9d6c13..7e68cb4 100644 --- a/Numu Tracker.xcodeproj/xcshareddata/xcschemes/Numu Tracker.xcscheme +++ b/Numu Tracker.xcodeproj/xcshareddata/xcschemes/Numu Tracker.xcscheme @@ -1,6 +1,6 @@ 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 literal 59259 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 USbBNOVU)}r;n82!ZcWVlFV&V3S^xk5 diff --git a/Numu Tracker/Assets.xcassets/AppIcon.appiconset/numuIcon_152.png b/Numu Tracker/Assets.xcassets/AppIcon.appiconset/numuIcon_152.png new file mode 100644 index 0000000000000000000000000000000000000000..8f61f5a22e68e31aa2f1470b2330399500a29bc3 GIT binary patch literal 6661 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 Ww)9BI`I~0>PF`9?s#fA_=>Gv$EQyo= literal 0 HcmV?d00001 diff --git a/Numu Tracker/Assets.xcassets/AppIcon.appiconset/numuIcon_20.png b/Numu Tracker/Assets.xcassets/AppIcon.appiconset/numuIcon_20.png new file mode 100644 index 0000000000000000000000000000000000000000..3ce1d02dd014d8c5d8cd3fb2b0d726653b158495 GIT binary patch literal 561 zcmV-10?z%3P)Tl)rD&KorNn@6L%_xe$ZY0`0)iCQ6qqFo2?NKtQ5D zl%2WE{6qW&k;)Q;)D4L+z!IU7T57sdA+=ScBt`b!RcFVsFHXX*KKZP7=ey7Qaej|B z-tH@CAwndSsG#r}y%IgOM#gsn!!?U#op?x@pHKytF$<{W;^P7O-`gfoZ`TJo;~-)NEC!ZJB~&WYb9V85-wZjQ&%^iq=pRxt zgeaxP8`jp>vAy*Y#bOb?UJvzp-2{I9jMcPXt&!LnET+7>0uD~M%hUvA!P#8#yro% zEOB4#n!wA;UvqPk4nO1F=95ebS~_R{0@SdTJ+n$8pb&or{B3jiQGFI^sS-;!So`@6 z6g8Bw(QU>JcDh)>{j~{7wqxh!5hmn%J2rqTNFluH3Ze{EC0JnXl1!BU zqeD9}HA4zB9XfTP69WT^6e6-zV#>sX5JHuxl%^sIly;!4VmtPsyS8ak`+}_w9r!9Q z_Fa7Ux%ckH_sG=iihvSPpEHqjU4soWbQx}wbGKw@O8G@`3Az+0H+P!n+#hI!M7)=} z0{?2}V$jUT_pt{2a6L3T9e^A!Coy>kiOIW|c=#ABnT!S{ghY7kO!iI_M_b?f?W1pB z)RkFlNEe1fEe!Y8x=8Na(Hn&DYo0dru9BX z;_cNdq2AK*L;{Ran5LoZ)LY#?UrVP^DwR;JRy7JT^ia}etGJjgfxagrc%csDjSaBy&-?w6OB zwNQ7r6NH*4NhJS+oO5u-ln%P^h z_*nm3HE(2LO-&EfNdG>C$o;jqF^g>iVwnA|p__=sHt$amtHQsS{*wwHz+a`T{Q@zY Rb)^6R002ovPDHLkV1hq5ZyEpq literal 0 HcmV?d00001 diff --git a/Numu Tracker/Assets.xcassets/AppIcon.appiconset/numuIcon_40-1.png b/Numu Tracker/Assets.xcassets/AppIcon.appiconset/numuIcon_40-1.png new file mode 100644 index 0000000000000000000000000000000000000000..1bbb8ae8240732e46658e799b3d60951036edb52 GIT binary patch literal 1083 zcmV-B1jPG^P)S9$UCd(ZEE{CmIOv;Bm=Z+Pnx><0|O*knu-@UZ(!^D+kvlP%?!{k{dfN!@9E^# z3Ev(M)Pi;qWcJ|$e?TTl5JmC80ZChT=TXvBZ$KrcAQp>3QDoO7Nz%Rn65Q5z-u@`& z^92}&fl|qGP2dsVK0q>tUD-z&Pb)H6jzZTBJ`iIJk|@F`7EvyjYjA!_BoY`K8$(Y| z4`f+JHk-x5!U8roH|ws<<#PN;?KDl}dGf_~KmFX@f`T9-6bf;WQmKT3t_QN3J&li# zBb7>_zrP;?0|OWx9YrRS;n0mNScN0)Jbm2I1fppcAxR=cQQ-a-i9~q589=(mO*1ny z=<4cnwV+*v=l?VYEEY`|MzIzQMZ@5E#ww|qC|+M*uLGExnrb+BRbD<>f%v z(`%Wl1hVD3r%q@ry?8*AsUUM zP|&$QwyMd=Nvy7}`rlYzvN0e%Nyz7D;Ur5Ly3Wrjku+6><>Q01v$K578yXsds;XF8 zTEgPuBG%T{0^MSK@Z*Mc!llb!mC0IUHHv1kCIwEAz^LlypY8>2>!wq;zQvKw1I=BlU1LF$#jik|Zm5@5{93=&YHkY`0Ea8TYi_ zp#sv>cAUT9+wM>R3GV%g$v|xn6p%jVXS9$UCd(ZEE{CmIOv;Bm=Z+Pnx><0|O*knu-@UZ(!^D+kvlP%?!{k{dfN!@9E^# z3Ev(M)Pi;qWcJ|$e?TTl5JmC80ZChT=TXvBZ$KrcAQp>3QDoO7Nz%Rn65Q5z-u@`& z^92}&fl|qGP2dsVK0q>tUD-z&Pb)H6jzZTBJ`iIJk|@F`7EvyjYjA!_BoY`K8$(Y| z4`f+JHk-x5!U8roH|ws<<#PN;?KDl}dGf_~KmFX@f`T9-6bf;WQmKT3t_QN3J&li# zBb7>_zrP;?0|OWx9YrRS;n0mNScN0)Jbm2I1fppcAxR=cQQ-a-i9~q589=(mO*1ny z=<4cnwV+*v=l?VYEEY`|MzIzQMZ@5E#ww|qC|+M*uLGExnrb+BRbD<>f%v z(`%Wl1hVD3r%q@ry?8*AsUUM zP|&$QwyMd=Nvy7}`rlYzvN0e%Nyz7D;Ur5Ly3Wrjku+6><>Q01v$K578yXsds;XF8 zTEgPuBG%T{0^MSK@Z*Mc!llb!mC0IUHHv1kCIwEAz^LlypY8>2>!wq;zQvKw1I=BlU1LF$#jik|Zm5@5{93=&YHkY`0Ea8TYi_ zp#sv>cAUT9+wM>R3GV%g$v|xn6p%jVX z0001>0bPE(qW}O06iGxuRA_jsODNCNyiwJAUz9uY2X{BM6=t{#X(Uk@U#LcBd!&?@0<1Y-14Lz9mTN=Vk&LiXu zFL6miq`DRstN3z>R{i#)sXq`ZcjNJEEr|Gihy{ZPjSTSf_6?gL$WGWiRS?}ZrpiEI z7L(0tc6b2&-+jAeA0q7B+Jusw%_!N?46E!cx*V+NBhEuS7R%cw7F6K>>kr<5E|j&t z1<#&?5IxmJlf!h48X11-*IwQ#-ff4c<4{pFED%w%n^8RLxrTvHKZbJeZsA1vBR8`x z?!q-eot(h%=bvEem!Aq6hrRp=rw!xXUA$lUo9`I9e_5Mu3Z9xo_#v`JHEX`<7Ra-< zb{%E{0j%G&nIDgJcNvQTvt|uiTU+7t z`EdWPWwHz(&!B!r&EbzUWlqc?%lx4$N)VzbaxK`z z#48mMjbxCG#bSsgAB-NRBzQ+h2U=QM;C8#=a5(tbeSLlC?(W9;_;}VWQ&UrXOB!{# z63(c)rUt%gAA-RkKX%t`#N@~j4>y(Xy`NVMK@bG4z0}+!#}tjl5LQ)K8Cx)C^_s5B z>B8yLr#VUT11Y#%F6`dD8@;`~IC}JG`uxbqNP3?%nnM4B2i$bsNwbxb1q09k73F!mpE+{|m6eq^fBrl_9v&V>Q&SV3KYtFt--mcS z#vhEsAtMm*LzbNgCc}&W&pu7!2xLNPBnm6DrX7*&bV7E@usa;Ek(QIqOs{+D)G2J+ zwk>@;Jw1(w4xEdfugCDruO`i6WVZtW`H7Orii{zs1fc{J-a<1Ws9`mIoN6<{8ABOV zCQh67DHLpWc9stj3WfOAW)nf4nEnK-HK&Q`K|DTJH$Hpz zENziH^IR@o zyl9B1Rd(g=!$?CU3{Mc01PRhCg&8`g%qay!8r9gJQb96nBcNhv6R-eV%q1!g$ozBm)*5%SJqwRl&)O4g4?%m8zM<4+4+X1ewIBQd%21z6Qa<9 zLo zpR2ON0jpKuW*d!Wd{QuAy7RwEQo>Lyl(oLC`LjjBbmMXEU3un{jD3_yP==HV(x#&5 zD@vL9^|h+wpys}8W+sv8gu~%<7DGhI!;<&SM8ZRx<8}2yk2W#)J_^Kglue>~s|h(# ze4#!OzpP;`B+J9ZMzMs066nP6tkp)`s(Jk858 zgCCjxGp1W}=ol(ARQnc#=|l@vDXnjyIcdaPGhzA~hC)DV8LB_fR-n#@Wof$Ei#3Y# zsrm&F)z(km+Jw>_%_!OVIz)GMvG}E7y6HMLy@HKxdl8RB5xoC*)-}1YiJPT;!)CL^ zfTiKf%cictrb?oPzQ4|2BKLw5XqpFTkwTmTB5iSu1jIHHl;GeW@TQ54 zy}z?NQ=Pjr>)rJ%cy?xYYHL6FYG>xo%$@!A+;hHjX2x90pFhI3uYv4Ez6Pw;dV%Z9C!u;?KV%hfr zS1&+)HiD^L6CjyQ>v+BpKe0rT%HPJ=l_Hse)v9Tf9S#2 z8SA`Ufr_m##6E{C+t$O=Ui$dIj(P2c|!{dh$_~b%C$KlDs+-=T&p};2>@%Z<@nH4;o0?)44 z%~k+JzI}`*AO03oegAZxFizKxZZ)SN`+V$-cK%a%#lDuL(u6INDU29MVZxk5&{EW_*d&be_s@463bY-~&|S5{VGWMmkfop0by z-yPH~TZW}e>oD}>3AXB12i>3L3sFs|h{xmbcs!6q0iZTlws{_rNW}J+&KEQVCnhFP zU0scah6dcbcMoe@S}-~~0>9sf>FH@a8yiDM=NtI)#y`-|(u${p{Rj@;X8|CeQV|~t zhY?d01VbT&!Vya?O4VB17M7ot8BU%oj7XcDoJ4EuI*betv;H-&zmESrdW0=ox|oI4 z)YPJ>rY3d#fB*j1yvF4PK|onq8OtYCRn2IkC_ofNXqq;wj~eu+fVS#H;4plUtceN zqz8bBo7Y(6veYu7%*rcImKKI7xh zv9{&M80h~RvMi%kmNBLuKlRm@sJ55^2#i*WSlQLJ9Q8s+8XrsI&+b$53&GH=|tk?{rY-o1raBu+a?VU&{F$5+jpejiNsOowvH#;Uz?<6a(WF;I2O;ZsLhf|$I z26X3cHhqj~X$Ko#GVQW)`0!yYUc4A5PMpZ-q3KAnqJBj^rlzLg_mdubin_Ww1cO1` zzkd&#+dB{p1#zeEE39Z~#mHcPUg;7~JSg!v^S?A5(|r_0PO>965q*+qPwFqbNx_jPS)5J!w8{95uB`(MqJzvJ#we z_Ez&tF|PZdq!yDHNd}UZq_Jq3zTE&#)o3)D*O#6_exx5eb_};}-Ab*K2202E^b|%% zN7D0nZXGkmJPB9a_r>nckbMY zb?erd?zeaE-jo)DE;F(b)Gdi*MQA9*mcI*(Gtvx%tWL=?N{hK@0FpyfV(fyeu%a({r5k^EY@k*M&rS;>_o;{l(TJ6AU5mBVeCI7|b zgd`#yPF7GQNlZ-%N}nPwSyDFo`}=Y7HjpMNUxiDTE@AiX-42q~X89PA{1kM5Wsqec8jT>4P+2BGq-7^a zR1b?p>{;IJ-d;R<^ay+Q>|q5&GxYTIF!kTt+iPpAZ1_9gw0w-1NW@b~w5ldjN|K_Z zky}z7Nfga}nC&R3CDRyc=gyr&b8|B*Cekf4N~noUx|vZ3Sgp1)!l-mZRjGuUEFPv4 zU?_Yd#%Ymi21<*_M^P&@s<-dT>-ktFTvbhF(~Ii+aeazXK53*vBsmnNa5a55Q2kbZ zPxFXMOkvZJ>ggm{g*2^2_bjPwO~iS#HJDzmwSQl-_=JTCog@p)!WQ6^q-fZ1{DXqLTRHDu|9ce{?|z3#heEwa>AHnEHN4!?mKF&M zckgcATbO_IRxIB0ZeGQ}d@wJ4n7p|dn+P{$rU=aVl;%oB*5Nv*zUgc+pGBjk9&v`GI-W*(yS-<>R?M3_aC r2(yS1VHQy$%pyvJSwx92D**66ELLG1u3qJE00000NkvXXu0mjfq1*6I literal 0 HcmV?d00001 diff --git a/Numu Tracker/Assets.xcassets/AppIcon.appiconset/numuIcon_80-1.png b/Numu Tracker/Assets.xcassets/AppIcon.appiconset/numuIcon_80-1.png new file mode 100644 index 0000000000000000000000000000000000000000..c302022d08d024c38affb8cfb64d62cbdffb760e GIT binary patch literal 2867 zcmV-33(WM1P)t+Gpvx4N5%7nG`KMICjw3MhgOo36^4 z`^;(HZ!R)01I(N=Fu*+F%Q^GiIP=W=y|?q7!&(0Fm4a^I*kAAH)QO8YbOG1n$8MAK zsk*OyyZ7UwHud2PbKU##y^l(xC!`5fi8O&KktR?j(gdnRnn0CE6Q~j*lqhase}n6j z)0vVG6|X1CbtUdd_u4O7Um}p>!STYNBUALgc^$naUIKd@)&qeY2Tl;c8;sx#rol&G z(b>PJz-0i>R;~x9Gl1g@TE@1Zsh|_19UEER!*2({|``k}r{bz=cSGq9N?o27J5yx3E?HE%^j; zL9b$={0o zH49d&75VvN(9zKWkG%u=gQ#6j%k#)A6JgS~Rf#)GoI*HOsLqGzHii&Xc>QyXRvIKQ?b;!@p$J@6ZSiIyz zJbm&MmT}`CN)qe){kdw@OPQCp)_7%9JTMe*8FQ&z^;N{yZucEy6#mt5I3` zYt&x7g2|I6BPVAR+S_dypPd~ZYde{E%q;qSJ_tMqpVteA*PGBJ$%rKS3UZo5OLxVJ z6;Kof$BrFiR`}}+7chN#8CqLgnTj%-&G_bJ0`M z^m;g)PIx;J$Z;G@Mk544U{dCEI^id2OER*vv$0^o0!*Dc6*`?RT!^4cmoDM)%2Ut5)OWi4&M!HiNk}cDo%vl_azV z=lTBJSIGO#@8bS)+}gG46p|tOk!mSBzbm+13sTGhThW7 z58Se43nosS*elU9X3W5;Q>Urz#m{&Z1s<|2L+S8B#Pa;cSnqDZf-_lVIi_cj9{N1J$i(^ygYQsWH@99oe~vy1;QD{lK|%=d#k3#QXQ|v-8&07Z^Qy z^gF_cM6)?~Zbx%-6LN|INd}6KrCX5JJS`^mMqtX;@FE9 zFS6@dwrm*-!(xF9$CWEr!mao2-HYgX`}Xa31j=^EatAwax4mLV@&yxxXfm1DG9{8+ zE>{F0bn)aqxZUoUL~$BtQV2J0+`ztl`@)}VYiqH0?_Mlkyf|uqibDDdG9n?69xS$$ z;D53mFPj7Pw2W!zLtnv*LCK<+mMo!OA8=e*oi3mQ$Eg zHQ>onCIaZ_@wi!`CEL|D5`iw4Gu$WCFB#;`pFh7_-O{B?WA?v%`SO7M6e1Y{BFD>g zpgY_kk!e>HxIJ#@b$SQ_50}daMM=K2m6erY=gyrtefl)hv1CN3!~$htw1U~vcYO+$ zOwj9@{v&^mmNFR*RyYoRBGB!DD2S|1rxW4xy)!1sw8ArI&cwWV^TIK3PdIv1eQG{Y zh-4TPC=f&ef=__a7`Rxf^LRXrBwDHzjRZ0yk^jl*bPcEur0Alv3!?_c!oFMI5W<_x zLlJ@3<7EcK?^oa&U2wM(M$i$YT9a5%$_ zMuUMx8$_zp<{xtza&RPyc}t==a0rbV86M2z=n~9O*S$%FL}%0v1@} zd6q9!QsJ=(06TWl$R6_*P<$A|S?C__!sNJfI3 z=&m}DeRW0ALH$_ENjo+1iGEQ1v!eTi7#FoEvilBHwlyem9|INQ=2)JPvv=5f~n z!jC>&sY?0~(t*Pf zb2JPq3DlZA3>OKc2eoP0YE2%7g9MVbE!h64W;(AchO`8}zhotIRkX0Su^bvu2dT-TI8Z z_M|7!TRQ0N92CP!D)M+*L3F&A9c3ym;a@VLVH}72$`#=CM%og_s%WpCPnN@zc3+kQ z`EbQMaK(TAM+&@zmJ4nn=A&=6j5=wI3yd;%%o?uee$fYZ*)zlm(N=Lk5*R^PYDiT) zi1Ff`#0l)RU$1=!7t$|aREac!Dv>5oCDH_{M4CXANE4_MX#!OuO`sY8_&*LqZDi4y R>J1P<}+2^Xj-1n)4ecE@}&dyE@jrF@FC zkI6Jenw;|TI`e6*32qhJQnCFSd|DV2w1%W!@wtalA(*z%2=Vw{Fujvj#vGIT=*Mv54aeLG$Z=1C~16?$Y7xf0{KcP$}q z;WTkynv;_UX-Ym2Z!p5?stCWsID5qAre>$+d(13JkNP{AvI72fgR%(m=oV6OI@7%n dHtSAM^#@w%pIO(Y{j~r9002ovPDHLkV1gwCt=a$p literal 0 HcmV?d00001 diff --git a/Numu Tracker/Assets.xcassets/amazonIcon.imageset/amazonIcon@2x.png b/Numu Tracker/Assets.xcassets/amazonIcon.imageset/amazonIcon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c0c08e2aad5629a71e939c5beef7aad8b752fd0b GIT binary patch literal 819 zcmV-31I+x1P)q;tos)z78NABo%NSoKpd$g17@)J4ikq2DAbRcr$Nq z3@d5h3Q5c28^i-?e%IU?X6BkjWB6C|r1={g!9laqdRgaqTnc>5$<@OkUK1l zz2<++ci!b53*iok>bT1t5`)lAc`5-F5~B=o=4>3Q0@^SMi9kXJj%c^gZrf7W{vL^N z5DcDs`jE^-~Trag=uN@>gfdI z5s2>iVgd?;JH@GY4cYrcQUTJ)v%`F5C|s`#!ioYEWX|^`bJ&7_N-%ig>4UJ60D>&~ z6rrCW0n(FL32gqrpJEUqLn=U$0z3(9vPd>>kP5g(97xJ1gaAkdNTT8sNsyIJcr1m; zC?VVXvzdKJce7v|g#$khw10ryc}sCW<@ z+lU;)IkOQ9*}ygX$f~|Zgp1NG3E>l+%-{A5p`iwR!=0|Rgs|fexI}z!uGw>96omJu zWo_0ZA*}o xAXx(vD9x|9)Itf@Yv$STN%NoiJt4xUs#jv*o~92n#Cre$002ovPDHLkV1kpvY#0Cl literal 0 HcmV?d00001 diff --git a/Numu Tracker/Assets.xcassets/amazonIcon.imageset/amazonIcon@3x.png b/Numu Tracker/Assets.xcassets/amazonIcon.imageset/amazonIcon@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a654e43c3e4261cd671dc64701fe4f3d02ad6f64 GIT binary patch literal 1272 zcmV+5J z_2gJ`_{_X*y9G|&TTxFZe{;6yq zVY}u&!WE!3Vnw_teKu>M9Cc~$C$JSW;~moo)3!%G?!&TW!}Q{K+mbmc#qsuzOj(g$ z9B+=y5b_Zx%ciCY%1IzKArl<-Oz8M%-P}W(`{}59LG6`d1bRy*6xcHGFyP(}`ylgY zGQpC8kkWP71lo}Sj_`zU2xp5;q-Z`NjyuBnfpC7oh7d`tK<@+3*HA@CILSgBpAtvW z9JMCBqMi#0{Uv9u2_=b$6-X(1zL&;SG!;*4+mB33^yGC6f%+&(Sn>_g0>$=0xl}RKwE4HcZ4C#P$0pU=ndfri3ExXcQ|ZVf@VS@ zVg&jI8&8CjY*HH|kPwbF_-(Kza%_$S6xb8I zqhBQbK6dj|*YiwG?FKtK6OXOFy2&dAr>Bd1GWf9n%z$R6xuEQwzRa>E|gDbkvm;HXRT+y(~Cpw^ai zYh!%~wWxZZ<-luhPS}eR+YeGoE`xM@S27)%S1kZ__h0gI#O~j+)}6RT*A2Y;TycG9 z;H+Ty7^-tYQ`Pj%L94599Y|$=SN5Sf{#n_tE&HwcZBRdUJf>N39oyuD^K1X@+O_7) z$!(GJ^F7zcafe)R$n)7yt?<%)UW-sF%vaQ&vz;IHgg&o>T1~r8x(1x(Dg=p_N z@=a_@AbpcjFO-lkD$3{7eaf*1(+=BDVqNQdQ{k^U?G`uW^D4F<@cCxc<=WMgN$Z+| zL!q0UlH>doLVs7W7EJ5?d`(eNPQ{GWovUk?qw9UXhHmKUMF^XaZkq%z7_TY%8lr+| zpR#VAb8Zl*;&chH;83eNA7)`mJw_73(Bb?u^^pEAK7M7Y>^R^5>5@Pz`}e&VPQWdpJLd*sLKjnR_23+hGwl-K1)G6Q^~5+WS_J)@aTMd zJGW;8K@bE%5Uj@?E}MrjD(CsI!DV9!Y@O%*J^ndMTd0Cxa-)Y%VuGbDWFs}^)dM>O44w9zBcSeY_-yUpdEh^__y#xWXba|;Wtiglre zXg)BNis^E>Gu>=SrZZajzn|F>c!N(@UdnX2+?lQ~6H~CU+>_WYu?N;f`Jpkgpqo!k m)*e+|hBmh#2!bF8R^tccJ=2qUlxtW3000098My)F259| zpY#+YYS}y`f1DJ6h=_=Yh=_>jtXyC?#=a`(G*=jo%GVuq+$HEFHYj08mssO#4V|X1 zkRFB7*o7)OXJ2Q~t*;q$me8L8$EILNcaIH9=<5=bz;w`QkY{I@a|=4Hue+FpW$BQf zfg#;JHYlO5ke0yIhHlO#v9CGLpM>-y^cKjw?aEGisvClLUth4VcM|5+aB_)_QQpWf zZ+wojuGcc>m?53O1|>)aSx(v9ZGX<|4(oa?a~^K<+TEpCBCkoZtJQ||C)$vQ+Q5`|GZNAj^c>ntOdIe!Y0xY5 zp3nyEJ#;p{UVP1cT|?*1SB>)P#okaA+CNe|ZWSh87{<=S*rMxY1|CFBundlePackageType APPL CFBundleShortVersionString - 1.3.3 + 1.3.4 CFBundleURLTypes @@ -32,7 +32,7 @@ CFBundleVersion - 951 + 1109 Fabric APIKey @@ -85,6 +85,14 @@ UISupportedInterfaceOrientations UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight UIViewControllerBasedStatusBarAppearance diff --git a/Numu Tracker/Views/ArtistsSplitViewController.swift b/Numu Tracker/Views/ArtistsSplitViewController.swift new file mode 100644 index 0000000..d4ec531 --- /dev/null +++ b/Numu Tracker/Views/ArtistsSplitViewController.swift @@ -0,0 +1,24 @@ +// +// ArtistsSplitViewController.swift +// Numu Tracker +// +// Created by Bradley Root on 6/13/19. +// Copyright © 2019 Numu Tracker. All rights reserved. +// + +import UIKit + +class ArtistsSplitViewController: UISplitViewController, UISplitViewControllerDelegate { + + override func viewDidLoad() { + super.viewDidLoad() + self.preferredDisplayMode = .allVisible + self.view.backgroundColor = UIColor(white: 0.1, alpha: 1) + self.delegate = self + } + + func splitViewController(_ splitViewController: UISplitViewController, collapseSecondary secondaryViewController: UIViewController, onto primaryViewController: UIViewController) -> Bool { + return true + } + +} diff --git a/Numu Tracker/Views/Base.lproj/Main.storyboard b/Numu Tracker/Views/Base.lproj/Main.storyboard index 1c9ea25..81818df 100644 --- a/Numu Tracker/Views/Base.lproj/Main.storyboard +++ b/Numu Tracker/Views/Base.lproj/Main.storyboard @@ -1,11 +1,11 @@ - - + + - + @@ -18,11 +18,14 @@ - + @@ -55,8 +58,8 @@ Any imported artists you've unfollowed will not be re-imported. - - + + @@ -66,7 +69,7 @@ Any imported artists you've unfollowed will not be re-imported. - + @@ -76,12 +79,12 @@ Any imported artists you've unfollowed will not be re-imported. - - + + - + @@ -273,9 +276,9 @@ Any imported artists you've unfollowed will not be re-imported. @@ -413,7 +416,7 @@ Any imported artists you've unfollowed will not be re-imported. - + @@ -423,12 +426,12 @@ Any imported artists you've unfollowed will not be re-imported. - - + + - + - + @@ -448,34 +451,34 @@ Any imported artists you've unfollowed will not be re-imported. - + - + - + - + @@ -485,41 +488,39 @@ Any imported artists you've unfollowed will not be re-imported. - - + @@ -1869,7 +2005,7 @@ You can import artists from Apple Music, Spotify, or manually search and follow - + @@ -1882,7 +2018,7 @@ You can import artists from Apple Music, Spotify, or manually search and follow - + @@ -1894,16 +2030,64 @@ You can import artists from Apple Music, Spotify, or manually search and follow - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2036,27 +2245,7 @@ Any imported artists you've unfollowed will not be re-imported. - - - - - - - - - - - - - - - - - - - - - + @@ -2065,7 +2254,7 @@ Any imported artists you've unfollowed will not be re-imported. - + @@ -2076,7 +2265,7 @@ Any imported artists you've unfollowed will not be re-imported. - + @@ -2085,7 +2274,7 @@ Any imported artists you've unfollowed will not be re-imported. - + @@ -2097,7 +2286,7 @@ Any imported artists you've unfollowed will not be re-imported. - + @@ -2107,35 +2296,38 @@ Any imported artists you've unfollowed will not be re-imported. - - + + - + - - + + - + - - + + - - - + + + - + @@ -2374,11 +2567,11 @@ On the - + - + - + - + - + - + - - + + - + - I'm @amiantos on Twitter. Feel free to @ me with ideas, problems, or just to chat. Follow me to get updates on Numu and what I'm up to. @@ -2447,24 +2639,24 @@ On the - + - + - + - - + + - + @@ -2486,7 +2678,39 @@ On the - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2496,15 +2720,15 @@ On the - - + + - + - + - + - + - + - - + - + @@ -2722,7 +2948,7 @@ On the - + @@ -2730,7 +2956,7 @@ On the - + @@ -2741,7 +2967,27 @@ On the - + + + + + + + + + + + + + + + + + + + + + @@ -2750,5 +2996,8 @@ On the + + + diff --git a/Numu Tracker/Views/Modals/Release Details/ReleaseDetailsViewController.swift b/Numu Tracker/Views/Modals/Release Details/ReleaseDetailsViewController.swift index 1cebf62..471ee0a 100644 --- a/Numu Tracker/Views/Modals/Release Details/ReleaseDetailsViewController.swift +++ b/Numu Tracker/Views/Modals/Release Details/ReleaseDetailsViewController.swift @@ -45,6 +45,12 @@ class ReleaseDetailsViewController: UIViewController, UITableViewDataSource { self.releaseOptionsTableView.register( UINib(nibName: "SearchYouTubeTableViewCell", bundle: nil), forCellReuseIdentifier: "searchYouTubeCell") + self.releaseOptionsTableView.register( + UINib(nibName: "SearchDeezerTableViewCell", bundle: nil), + forCellReuseIdentifier: "searchDeezerCell") + self.releaseOptionsTableView.register( + UINib(nibName: "SearchAmazonTableViewCell", bundle: nil), + forCellReuseIdentifier: "searchAmazonCell") self.releaseOptionsTableView.dataSource = self let tap = UITapGestureRecognizer(target: self, action: #selector(ReleaseDetailsViewController.dismissView)) self.tapRecognizerView.addGestureRecognizer(tap) @@ -97,6 +103,14 @@ class ReleaseDetailsViewController: UIViewController, UITableViewDataSource { self.options.append("youtube") } + if defaults.enabledDeezer { + self.options.append("deezer") + } + + if defaults.enabledAmazon { + self.options.append("amazon") + } + if let tabBar = self.presentingViewController as? UITabBarController, let window = tabBar.selectedViewController as? UINavigationController, let viewController = window.visibleViewController { @@ -207,6 +221,20 @@ class ReleaseDetailsViewController: UIViewController, UITableViewDataSource { cell.configure(release: self.releaseData!) return cell } + case "deezer": + if let cell = tableView.dequeueReusableCell( + withIdentifier: "searchDeezerCell", + for: indexPath) as? SearchDeezerTableViewCell { + cell.configure(release: self.releaseData!) + return cell + } + case "amazon": + if let cell = tableView.dequeueReusableCell( + withIdentifier: "searchAmazonCell", + for: indexPath) as? SearchAmazonTableViewCell { + cell.configure(release: self.releaseData!) + return cell + } default: break } diff --git a/Numu Tracker/Views/Modals/Release Details/ReleaseDetailsViewController.xib b/Numu Tracker/Views/Modals/Release Details/ReleaseDetailsViewController.xib index 826b8ec..55c0733 100644 --- a/Numu Tracker/Views/Modals/Release Details/ReleaseDetailsViewController.xib +++ b/Numu Tracker/Views/Modals/Release Details/ReleaseDetailsViewController.xib @@ -1,11 +1,11 @@ - - + + - + @@ -26,22 +26,22 @@ - + - + - + - + - + @@ -51,10 +51,10 @@ - + - + @@ -62,13 +62,13 @@ diff --git a/Numu Tracker/Views/Modals/Release Details/Rows/SearchAmazonTableViewCell.xib b/Numu Tracker/Views/Modals/Release Details/Rows/SearchAmazonTableViewCell.xib new file mode 100644 index 0000000..c7c1ae7 --- /dev/null +++ b/Numu Tracker/Views/Modals/Release Details/Rows/SearchAmazonTableViewCell.xib @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Numu Tracker/Views/Modals/Release Details/Rows/SearchAmazonViewCell.swift b/Numu Tracker/Views/Modals/Release Details/Rows/SearchAmazonViewCell.swift new file mode 100644 index 0000000..e452f8d --- /dev/null +++ b/Numu Tracker/Views/Modals/Release Details/Rows/SearchAmazonViewCell.swift @@ -0,0 +1,63 @@ +// +// SearchYouTubeTableViewCell.swift +// Numu Tracker +// +// Created by Brad Root on 10/20/18. +// Copyright © 2018 Numu Tracker. All rights reserved. +// + +import UIKit + +class SearchAmazonTableViewCell: UITableViewCell { + + @IBOutlet weak var cellLabel: UILabel! + @IBOutlet weak var cellImage: UIImageView! + @IBOutlet weak var cellButton: NumuModalButton! + + @IBAction func searchAmazon(_ sender: Any) { + if let urlString = self.searchUrl { + UIApplication.shared.open(URL(string: urlString)!) + } + } + + var releaseData: ReleaseItem? + var searchUrl: String? + + func configure(release: ReleaseItem) { + self.releaseData = release + self.cellButton.isEnabled = false + self.cellLabel.textColor = UIColor.init(white: 1, alpha: 0.1) + self.cellImage.image = self.cellImage.image?.withRenderingMode(.alwaysTemplate) + self.cellImage.tintColor = UIColor.init(white: 1, alpha: 0.1) + self.makeSearchURL() + } + + func makeSearchURL() { + if let artist = self.releaseData?.artistName, + let album = self.releaseData?.albumName { + if let query = "\(artist) \(album)".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) { + // I would love to properly link to Amazon Music's iOS app here + // But unfortunately their app just doesn't support deep links to the search page. + // So instead we try to link to search in the Amazon app, which still + // doesn't properly redirect to the Amazon Music app. It really sucks. + self.searchUrl = "https://www.amazon.com/s?k=\(query)&i=digital-music" +// self.searchUrl = "amznmp3://search?k=\(query)" + self.cellButton.isEnabled = true + self.cellLabel.textColor = .white + self.cellImage.tintColor = .white + } + } + } + + override func awakeFromNib() { + super.awakeFromNib() + // Initialization code + } + + override func setSelected(_ selected: Bool, animated: Bool) { + super.setSelected(selected, animated: animated) + + // Configure the view for the selected state + } + +} diff --git a/Numu Tracker/Views/Modals/Release Details/Rows/SearchDeezerTableViewCell.xib b/Numu Tracker/Views/Modals/Release Details/Rows/SearchDeezerTableViewCell.xib new file mode 100644 index 0000000..2dc5692 --- /dev/null +++ b/Numu Tracker/Views/Modals/Release Details/Rows/SearchDeezerTableViewCell.xib @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Numu Tracker/Views/Modals/Release Details/Rows/SearchDeezerViewCell.swift b/Numu Tracker/Views/Modals/Release Details/Rows/SearchDeezerViewCell.swift new file mode 100644 index 0000000..d45b38e --- /dev/null +++ b/Numu Tracker/Views/Modals/Release Details/Rows/SearchDeezerViewCell.swift @@ -0,0 +1,58 @@ +// +// SearchYouTubeTableViewCell.swift +// Numu Tracker +// +// Created by Brad Root on 10/20/18. +// Copyright © 2018 Numu Tracker. All rights reserved. +// + +import UIKit + +class SearchDeezerTableViewCell: UITableViewCell { + + @IBOutlet weak var cellLabel: UILabel! + @IBOutlet weak var cellImage: UIImageView! + @IBOutlet weak var cellButton: NumuModalButton! + + @IBAction func searchDeezer(_ sender: Any) { + if let urlString = self.searchUrl { + UIApplication.shared.open(URL(string: urlString)!) + } + } + + var releaseData: ReleaseItem? + var searchUrl: String? + + func configure(release: ReleaseItem) { + self.releaseData = release + self.cellButton.isEnabled = false + self.cellLabel.textColor = UIColor.init(white: 1, alpha: 0.1) + self.cellImage.image = self.cellImage.image?.withRenderingMode(.alwaysTemplate) + self.cellImage.tintColor = UIColor.init(white: 1, alpha: 0.1) + self.makeSearchURL() + } + + func makeSearchURL() { + if let artist = self.releaseData?.artistName, + let album = self.releaseData?.albumName { + if let query = "\(artist) \(album)".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) { + self.searchUrl = "deezer://www.deezer.com/search/\(query)" + self.cellButton.isEnabled = true + self.cellLabel.textColor = .white + self.cellImage.tintColor = .white + } + } + } + + override func awakeFromNib() { + super.awakeFromNib() + // Initialization code + } + + override func setSelected(_ selected: Bool, animated: Bool) { + super.setSelected(selected, animated: animated) + + // Configure the view for the selected state + } + +} diff --git a/Numu Tracker/Views/Modals/Sort/NumuSortView.xib b/Numu Tracker/Views/Modals/Sort/NumuSortView.xib index 195642f..c4ee2ab 100644 --- a/Numu Tracker/Views/Modals/Sort/NumuSortView.xib +++ b/Numu Tracker/Views/Modals/Sort/NumuSortView.xib @@ -1,11 +1,11 @@ - - + + - + @@ -19,14 +19,14 @@ - + - + - + + + - - + + - + + + + - + - - + + - + + @@ -150,12 +158,15 @@ + - - + + + - - + + + diff --git a/Numu Tracker/Classes/Interface/NumuTabBarController.swift b/Numu Tracker/Views/NumuTabBarController.swift similarity index 100% rename from Numu Tracker/Classes/Interface/NumuTabBarController.swift rename to Numu Tracker/Views/NumuTabBarController.swift diff --git a/Numu Tracker/Classes/Interface/NumuTextField.swift b/Numu Tracker/Views/NumuTextField.swift similarity index 100% rename from Numu Tracker/Classes/Interface/NumuTextField.swift rename to Numu Tracker/Views/NumuTextField.swift diff --git a/Numu Tracker/Views/NumuUIButton.swift b/Numu Tracker/Views/NumuUIButton.swift new file mode 100644 index 0000000..9c7920e --- /dev/null +++ b/Numu Tracker/Views/NumuUIButton.swift @@ -0,0 +1,37 @@ +// +// NumuUIButton.swift +// Numu Tracker +// +// Created by Bradley Root on 10/16/16. +// Copyright © 2016 Numu Tracker. All rights reserved. +// + +import UIKit + +class NumuUIButton: UIButton { + + override init(frame: CGRect) { + super.init(frame: frame) + setup() + } + + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + setup() + } + + override var isHighlighted: Bool { + didSet { + self.backgroundColor = isHighlighted ? .selectedCell : .numuBlue + } + } + + func setup() { + self.layer.cornerRadius = self.frame.size.height/2 + self.clipsToBounds = true + self.backgroundColor = .numuBlue + self.titleLabel?.font = UIFont.boldSystemFont(ofSize: 15) + self.contentEdgeInsets = UIEdgeInsets(top: 0, left: 32, bottom: 0, right: 32) + } + +} diff --git a/Numu Tracker/Views/artistreleases/ArtistReleaseTableViewCell.swift b/Numu Tracker/Views/artistreleases/ArtistReleaseTableViewCell.swift index 05401cc..850a85e 100644 --- a/Numu Tracker/Views/artistreleases/ArtistReleaseTableViewCell.swift +++ b/Numu Tracker/Views/artistreleases/ArtistReleaseTableViewCell.swift @@ -49,7 +49,7 @@ class ArtistReleaseTableViewCell: UITableViewCell { self.selectionStyle = .default let bgColorView = UIView() - bgColorView.backgroundColor = UIColor(red: 0.17, green: 0.17, blue: 0.17, alpha: 1.0) + bgColorView.backgroundColor = .selectedCell self.selectedBackgroundView = bgColorView } diff --git a/Numu Tracker/Views/artistreleases/ArtistReleasesTableViewController.swift b/Numu Tracker/Views/artistreleases/ArtistReleasesTableViewController.swift index 463c30d..d55bec9 100644 --- a/Numu Tracker/Views/artistreleases/ArtistReleasesTableViewController.swift +++ b/Numu Tracker/Views/artistreleases/ArtistReleasesTableViewController.swift @@ -19,6 +19,7 @@ class ArtistReleasesTableViewController: UITableViewController { @IBOutlet var footerView: UIView! @IBOutlet var noResultsView: UIView! + @IBOutlet var selectAnArtistView: UIView! override func viewDidLoad() { super.viewDidLoad() @@ -27,9 +28,13 @@ class ArtistReleasesTableViewController: UITableViewController { navigationItem.rightBarButtonItem = add + navigationItem.leftBarButtonItem = + splitViewController?.displayModeButtonItem + navigationItem.leftItemsSupplementBackButton = true + self.navigationController?.navigationBar.tintColor = .white + if let artistId = self.artistId { - self.navigationController?.navigationBar.tintColor = .white let selectedArtist: String = artistId self.title = artistName self.tableView.tableFooterView = footerView @@ -56,6 +61,8 @@ class ArtistReleasesTableViewController: UITableViewController { } } Answers.logCustomEvent(withName: "Artist Screen", customAttributes: ["Artist ID": selectedArtist]) + } else { + self.tableView.tableFooterView = self.selectAnArtistView } } diff --git a/Numu Tracker/Views/artists/ArtistTableViewCell.swift b/Numu Tracker/Views/artists/ArtistTableViewCell.swift index 8327a4f..c657dcf 100644 --- a/Numu Tracker/Views/artists/ArtistTableViewCell.swift +++ b/Numu Tracker/Views/artists/ArtistTableViewCell.swift @@ -47,6 +47,11 @@ class ArtistTableViewCell: UITableViewCell { artistArt.layer.shadowOpacity = 0.3 artistArt.layer.shadowOffset = .zero artistArt.layer.shadowRadius = 5 + + self.selectionStyle = .default + let bgColorView = UIView() + bgColorView.backgroundColor = .selectedCell + self.selectedBackgroundView = bgColorView } public func toggleFollow() { diff --git a/Numu Tracker/Views/artists/ArtistsTableViewController.swift b/Numu Tracker/Views/artists/ArtistsTableViewController.swift index 6580d2c..d2f0885 100644 --- a/Numu Tracker/Views/artists/ArtistsTableViewController.swift +++ b/Numu Tracker/Views/artists/ArtistsTableViewController.swift @@ -183,6 +183,7 @@ class ArtistsTableViewController: UITableViewController, UISearchBarDelegate, UI override func viewDidLoad() { super.viewDidLoad() + title = "Artists" tableView.tableFooterView = footerView tableView.backgroundView = UIView() tableView.keyboardDismissMode = .onDrag @@ -205,16 +206,6 @@ class ArtistsTableViewController: UITableViewController, UISearchBarDelegate, UI self.view?.snapshotView(afterScreenUpdates: true) - importAppleMusicButton.backgroundColor = .clear - importAppleMusicButton.layer.cornerRadius = 5 - importAppleMusicButton.layer.borderWidth = 1 - importAppleMusicButton.layer.borderColor = UIColor.gray.cgColor - - importSpotifyButton.backgroundColor = .clear - importSpotifyButton.layer.cornerRadius = 5 - importSpotifyButton.layer.borderWidth = 1 - importSpotifyButton.layer.borderColor = UIColor.gray.cgColor - var newFrame = noResultsView.frame var height: CGFloat = self.tableView.bounds.height height -= UIApplication.shared.statusBarFrame.size.height @@ -450,9 +441,10 @@ class ArtistsTableViewController: UITableViewController, UISearchBarDelegate, UI override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "showArtistReleases", - let destination = segue.destination as? ArtistReleasesTableViewController, + let destination = segue.destination as? UINavigationController, let releaseIndex = tableView.indexPathForSelectedRow?.row, let sectionIndex = tableView.indexPathForSelectedRow?.section { + self.searchTerms = searchController.searchBar.text var artistId = artists[releaseIndex].artistId @@ -467,8 +459,10 @@ class ArtistsTableViewController: UITableViewController, UISearchBarDelegate, UI self.lastSelectedArtistId = artistId self.lastSelectedArtistName = artistName - destination.artistId = artistId - destination.artistName = artistName + if let artistView = destination.topViewController as? ArtistReleasesTableViewController { + artistView.artistId = artistId + artistView.artistName = artistName + } } } } diff --git a/Numu Tracker/Views/releases/AllReleasesTableViewController.swift b/Numu Tracker/Views/releases/AllReleasesTableViewController.swift index a7ed752..938eaab 100644 --- a/Numu Tracker/Views/releases/AllReleasesTableViewController.swift +++ b/Numu Tracker/Views/releases/AllReleasesTableViewController.swift @@ -175,16 +175,6 @@ class AllReleasesTableViewController: UITableViewController { self.tableView.tableFooterView = self.footerView - importFromAMButton.backgroundColor = .clear - importFromAMButton.layer.cornerRadius = 5 - importFromAMButton.layer.borderWidth = 1 - importFromAMButton.layer.borderColor = UIColor.gray.cgColor - - importSpotifyButton.backgroundColor = .clear - importSpotifyButton.layer.cornerRadius = 5 - importSpotifyButton.layer.borderWidth = 1 - importSpotifyButton.layer.borderColor = UIColor.gray.cgColor - var newFrame = noResultsFooterView.frame var height: CGFloat = self.tableView.bounds.height height -= UIApplication.shared.statusBarFrame.size.height diff --git a/Numu Tracker/Views/releases/ReleaseTableViewCell.swift b/Numu Tracker/Views/releases/ReleaseTableViewCell.swift index 3df033a..2fb495b 100644 --- a/Numu Tracker/Views/releases/ReleaseTableViewCell.swift +++ b/Numu Tracker/Views/releases/ReleaseTableViewCell.swift @@ -58,7 +58,7 @@ class ReleaseTableViewCell: UITableViewCell { self.selectionStyle = .default let bgColorView = UIView() - bgColorView.backgroundColor = UIColor(red: 0.17, green: 0.17, blue: 0.17, alpha: 1.0) + bgColorView.backgroundColor = .selectedCell self.selectedBackgroundView = bgColorView } diff --git a/Numu Tracker/Views/settings/HelpViewController.swift b/Numu Tracker/Views/settings/HelpViewController.swift index 249e3da..fb3b965 100644 --- a/Numu Tracker/Views/settings/HelpViewController.swift +++ b/Numu Tracker/Views/settings/HelpViewController.swift @@ -45,7 +45,7 @@ class HelpViewController: UIViewController, MFMailComposeViewControllerDelegate mail.setMessageBody("

Numu feedback goes here:

", isHTML: true) present(mail, animated: true, completion: nil) } else { - // show failure alert + UIApplication.shared.openURL(URL(string: "mailto:info@numutracker.com")!) } } @@ -55,23 +55,11 @@ class HelpViewController: UIViewController, MFMailComposeViewControllerDelegate error: Error?) { controller.dismiss(animated: true, completion: nil) } - - func setupButton(button: NumuUIButton) { - button.backgroundColor = .clear - button.layer.cornerRadius = 5 - button.layer.borderWidth = 1 - button.layer.borderColor = UIColor.gray.cgColor - } - override func viewDidLoad() { super.viewDidLoad() self.navigationController?.navigationBar.tintColor = .white - setupButton(button: emailDeveloperButton) - setupButton(button: discussOnRedditButtonOutlet) - setupButton(button: joinSlackButton) - Answers.logCustomEvent(withName: "Help View", customAttributes: nil) } diff --git a/Numu Tracker/Views/settings/Import Artists/ImportAppleMusicViewController.swift b/Numu Tracker/Views/settings/Import Artists/ImportAppleMusicViewController.swift index 671531e..cba9086 100644 --- a/Numu Tracker/Views/settings/Import Artists/ImportAppleMusicViewController.swift +++ b/Numu Tracker/Views/settings/Import Artists/ImportAppleMusicViewController.swift @@ -33,11 +33,6 @@ class ImportAppleMusicViewController: UIViewController { self.navigationController?.navigationBar.tintColor = .white - addFromAppleMusic.backgroundColor = .clear - addFromAppleMusic.layer.cornerRadius = 5 - addFromAppleMusic.layer.borderWidth = 1 - addFromAppleMusic.layer.borderColor = UIColor.gray.cgColor - } override func didReceiveMemoryWarning() { diff --git a/Numu Tracker/Views/settings/Import Artists/ImportSpotifyViewController.swift b/Numu Tracker/Views/settings/Import Artists/ImportSpotifyViewController.swift index 73cdc64..91bd0f2 100644 --- a/Numu Tracker/Views/settings/Import Artists/ImportSpotifyViewController.swift +++ b/Numu Tracker/Views/settings/Import Artists/ImportSpotifyViewController.swift @@ -29,10 +29,6 @@ class ImportSpotifyViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() - spotifyButton.backgroundColor = .clear - spotifyButton.layer.cornerRadius = 5 - spotifyButton.layer.borderWidth = 1 - spotifyButton.layer.borderColor = UIColor.gray.cgColor } } diff --git a/Numu Tracker/Views/settings/MoreTableViewController.swift b/Numu Tracker/Views/settings/MoreTableViewController.swift new file mode 100644 index 0000000..b894643 --- /dev/null +++ b/Numu Tracker/Views/settings/MoreTableViewController.swift @@ -0,0 +1,42 @@ +// +// MoreTableViewController.swift +// Numu Tracker +// +// Created by Bradley Root on 6/14/19. +// Copyright © 2019 Numu Tracker. All rights reserved. +// + +import UIKit + +class MoreTableViewController: UITableViewController { + + @IBAction func patronButton(_ sender: NumuUIButton) { + UIApplication.shared.open( + URL( + string: "https://www.patreon.com/amiantos?utm_source=numu_ios&utm_medium=button&utm_campaign=more_screen" + )!, + options: [:], + completionHandler: nil + ) + } + @IBAction func visitBlogButton(_ sender: NumuUIButton) { + UIApplication.shared.open( + URL(string: "https://amiantos.net/?utm_source=numu_ios&utm_medium=button&utm_campaign=more_screen")!, + options: [:], + completionHandler: nil + ) + } + @IBAction func learnMoreButton(_ sender: NumuUIButton) { + UIApplication.shared.open( + URL(string: "https://www.github.com/numutracker/numutracker_ios")!, + options: [:], + completionHandler: nil + ) + } + + override func viewDidLoad() { + super.viewDidLoad() + + } + +} diff --git a/Numu Tracker/Views/settings/MusicServicesViewController.swift b/Numu Tracker/Views/settings/MusicServicesViewController.swift index 59490c8..64c6f54 100644 --- a/Numu Tracker/Views/settings/MusicServicesViewController.swift +++ b/Numu Tracker/Views/settings/MusicServicesViewController.swift @@ -15,6 +15,8 @@ class MusicServicesViewController: UIViewController { @IBOutlet weak var spotifySwitch: UISwitch! @IBOutlet weak var youTubeSwitch: UISwitch! @IBOutlet weak var soundCloudSwitch: UISwitch! + @IBOutlet weak var deezerSwitch: UISwitch! + @IBOutlet weak var amazonSwitch: UISwitch! @IBAction func appleMusicAction(_ sender: UISwitch) { self.serviceSwitch(state: !sender.isOn, type: "disabledAppleMusic") @@ -48,6 +50,23 @@ class MusicServicesViewController: UIViewController { } } + @IBAction func deezerAction(_ sender: UISwitch) { + self.serviceSwitch(state: sender.isOn, type: "enabledDeezer") + } + @IBAction func amazonAction(_ sender: UISwitch) { + self.serviceSwitch(state: sender.isOn, type: "enabledAmazon") + if sender.isOn { + AlertModal( + title: "Important Notice", + button: "Oh, okay", + message: "Amazon's iOS app doesn't work very well when it comes to finding streaming music, " + + "as a result this option doesn't work as well as it should. " + + "If you're upset about it, contact Amazon and tell them to enable " + + "deep-linking for search in their iOS Amazon Music app." + ).present() + } + } + override func viewDidLoad() { super.viewDidLoad() setUpSwitches() @@ -67,6 +86,8 @@ class MusicServicesViewController: UIViewController { if defaults.enabledSpotify { spotifySwitch.isOn = true } if defaults.enabledYouTube { youTubeSwitch.isOn = true } if defaults.enabledSoundCloud { soundCloudSwitch.isOn = true } + if defaults.enabledDeezer { deezerSwitch.isOn = true } + if defaults.enabledAmazon { amazonSwitch.isOn = true } } func serviceSwitch(state: Bool, type: String) { diff --git a/Numu Tracker/backend/Extensions.swift b/Numu Tracker/backend/Extensions.swift index d6bae1d..7206bad 100644 --- a/Numu Tracker/backend/Extensions.swift +++ b/Numu Tracker/backend/Extensions.swift @@ -48,6 +48,8 @@ extension String { static let enabledSpotify = "enabledSpotify" static let enabledYouTube = "enabledYouTube" static let enabledSoundCloud = "enabledSoundCloud" + static let enabledAmazon = "enabledAmazon" + static let enabledDeezer = "enabledDeezer" } extension UserDefaults { @@ -95,6 +97,16 @@ extension UserDefaults { get { return bool(forKey: .enabledSoundCloud) } set { set(newValue, forKey: .enabledSoundCloud) } } + + var enabledAmazon: Bool { + get { return bool(forKey: .enabledAmazon) } + set { set(newValue, forKey: .enabledAmazon) } + } + + var enabledDeezer: Bool { + get { return bool(forKey: .enabledDeezer) } + set { set(newValue, forKey: .enabledDeezer) } + } } extension Notification.Name { @@ -122,6 +134,8 @@ extension UIView { extension UIColor { static let shadow = UIColor(red: 28/255, green: 202/255, blue: 241/255, alpha: 1) static let background = UIColor(red: 48/255, green: 156/255, blue: 172/255, alpha: 1) + static let numuBlue = UIColor(red: 0.12, green: 0.62, blue: 0.69, alpha: 1.0) + static let selectedCell = UIColor(red: 0.17, green: 0.17, blue: 0.17, alpha: 1.0) } extension UIImageView { diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index 64a9ede..b8960a3 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -2079,19 +2079,56 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0930; - LastUpgradeCheck = 0930; + LastUpgradeCheck = 1020; TargetAttributes = { + 0882708950626A3ECBCB6A065347330B = { + LastSwiftMigration = 1020; + }; + 1780C14C19D0C1935B5AC4D68FB773C0 = { + LastSwiftMigration = 1020; + }; + 3383968E74B5371B20BB519B170DC7FD = { + LastSwiftMigration = 1020; + }; + 464A7D341C2A3C9ABE8E7EF25CA59657 = { + LastSwiftMigration = 1020; + }; + 4A0A22DC77365EB37D44E9B9E0F3ABD4 = { + LastSwiftMigration = 1020; + }; + 743E4A349913BA26BF7AEE81D0D0DC34 = { + LastSwiftMigration = 1020; + }; 75252EE503C70690FEAE769E7B2BEFA0 = { - LastSwiftMigration = 1010; + LastSwiftMigration = 1020; + }; + 90DFF15BFABD5F2337D3A71747F0BE35 = { + LastSwiftMigration = 1020; + }; + AB7C08C1EB0EAF7D1F392B8C08144D51 = { + LastSwiftMigration = 1020; + }; + B8D70028BC542B2A1ECC63134BF9C8C6 = { + LastSwiftMigration = 1020; + }; + C96DAD7E39A2D336B0233A69073F19DF = { + LastSwiftMigration = 1020; + }; + DFBB750E924C65F3574C45E497FFD9AC = { + LastSwiftMigration = 1020; + }; + F954FC9297BDF88E463223E96E915841 = { + LastSwiftMigration = 1020; }; }; }; buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, + Base, ); mainGroup = CF1408CF629C7361332E53B88F7BD30C; productRefGroup = 199F6B3C03B13121012979AD2AE13321 /* Products */; @@ -2777,6 +2814,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -2975,6 +3013,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";