diff --git a/AltStore.xcodeproj/project.pbxproj b/AltStore.xcodeproj/project.pbxproj index 8cb680fb..960a0d08 100644 --- a/AltStore.xcodeproj/project.pbxproj +++ b/AltStore.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ 0E33F94B8D78AB969FD309A3 /* Pods_AltStoreCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A08F67C18350C7990753F03F /* Pods_AltStoreCore.framework */; }; + 19B9B7452845E6DF0076EF69 /* SelectTeamViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19B9B7442845E6DF0076EF69 /* SelectTeamViewController.swift */; }; 2A77E3D272F3D92436FAC272 /* Pods_AltStore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9EEAA842DA87A88A870053B /* Pods_AltStore.framework */; }; A8BCEBEAC0620CF80A2FD26D /* Pods_AltServer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FC3822AB1C4CF1D4CDF7445D /* Pods_AltServer.framework */; }; BF02419622F2199300129732 /* RefreshAttemptsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF02419522F2199300129732 /* RefreshAttemptsViewController.swift */; }; @@ -464,6 +465,7 @@ /* Begin PBXFileReference section */ 11611D46F8A7C8B928E8156B /* Pods-AltServer.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AltServer.debug.xcconfig"; path = "Target Support Files/Pods-AltServer/Pods-AltServer.debug.xcconfig"; sourceTree = ""; }; + 19B9B7442845E6DF0076EF69 /* SelectTeamViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectTeamViewController.swift; sourceTree = ""; }; 589BA531D903B28F292063E5 /* Pods-AltServer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AltServer.release.xcconfig"; path = "Target Support Files/Pods-AltServer/Pods-AltServer.release.xcconfig"; sourceTree = ""; }; A08F67C18350C7990753F03F /* Pods_AltStoreCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_AltStoreCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; A136EE677716B80768E9F0A2 /* Pods-AltStore.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AltStore.release.xcconfig"; path = "Target Support Files/Pods-AltStore/Pods-AltStore.release.xcconfig"; sourceTree = ""; }; @@ -1700,6 +1702,7 @@ BFF0B6932321CB85007A79E1 /* AuthenticationViewController.swift */, BFF0B6972322CAB8007A79E1 /* InstructionsViewController.swift */, BF6F439123644C6E00A0B879 /* RefreshAltStoreViewController.swift */, + 19B9B7442845E6DF0076EF69 /* SelectTeamViewController.swift */, ); path = Authentication; sourceTree = ""; @@ -2602,6 +2605,7 @@ BF08858522DE7EC800DE9F1E /* UpdateCollectionViewCell.swift in Sources */, BFB39B5C252BC10E00D1BE50 /* Managed.swift in Sources */, BF770E5822BC3D0F002A40FE /* RefreshGroup.swift in Sources */, + 19B9B7452845E6DF0076EF69 /* SelectTeamViewController.swift in Sources */, BF18B0F122E25DF9005C4CF5 /* ToastView.swift in Sources */, BF3D649F22E7B24C00E9056B /* CollapsingTextView.swift in Sources */, BF02419622F2199300129732 /* RefreshAttemptsViewController.swift in Sources */, @@ -3371,8 +3375,8 @@ "$(PROJECT_DIR)/Dependencies/fragmentzip", "$(PROJECT_DIR)/Dependencies/libcurl", ); - PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltStore; MARKETING_VERSION = 1.5.1b; + PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltStore; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "AltStore/AltStore-Bridging-Header.h"; @@ -3405,8 +3409,8 @@ "$(PROJECT_DIR)/Dependencies/fragmentzip", "$(PROJECT_DIR)/Dependencies/libcurl", ); - PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltStore; MARKETING_VERSION = 1.5.1b; + PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltStore; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "AltStore/AltStore-Bridging-Header.h"; diff --git a/AltStore/Authentication/Authentication.storyboard b/AltStore/Authentication/Authentication.storyboard index aaf662be..278831b0 100644 --- a/AltStore/Authentication/Authentication.storyboard +++ b/AltStore/Authentication/Authentication.storyboard @@ -493,14 +493,72 @@ - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AltStore/Authentication/SelectTeamViewController.swift b/AltStore/Authentication/SelectTeamViewController.swift new file mode 100644 index 00000000..822dc945 --- /dev/null +++ b/AltStore/Authentication/SelectTeamViewController.swift @@ -0,0 +1,61 @@ +// +// SelectTeamViewController.swift +// AltStore +// +// Created by Megarushing on 4/26/21. +// Copyright © 2021 Riley Testut. All rights reserved. +// + +import UIKit +import SafariServices +import MessageUI +import Intents +import IntentsUI + +import AltSign + +class SelectTeamViewController: UITableViewController +{ + public var teams: [ALTTeam]? + public var completionHandler: ((Result) -> Void)? + + private var prototypeHeaderFooterView: SettingsHeaderFooterView! + + override var preferredStatusBarStyle: UIStatusBarStyle { + return .lightContent + } + + override func numberOfSections(in tableView: UITableView) -> Int { + return 1 + } + + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return teams?.count ?? 0 + } + + override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + return self.completionHandler!(.success((self.teams?[indexPath.row])!)) + } + + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: "TeamCell", for: indexPath) as! InsetGroupTableViewCell + + cell.textLabel?.text = self.teams?[indexPath.row].name + cell.detailTextLabel?.text = self.teams?[indexPath.row].type.localizedDescription + if indexPath.row == 0 + { + cell.style = InsetGroupTableViewCell.Style.top + } else if indexPath.row == self.tableView(self.tableView, numberOfRowsInSection: indexPath.section) - 1 { + cell.style = InsetGroupTableViewCell.Style.bottom + } else { + cell.style = InsetGroupTableViewCell.Style.middle + } + + return cell + } + + override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { + "Teams" + } + +} diff --git a/AltStore/Operations/AuthenticationOperation.swift b/AltStore/Operations/AuthenticationOperation.swift index 1aaf81bd..c787ffdc 100644 --- a/AltStore/Operations/AuthenticationOperation.swift +++ b/AltStore/Operations/AuthenticationOperation.swift @@ -17,6 +17,7 @@ enum AuthenticationError: LocalizedError { case noTeam case noCertificate + case teamSelectorError case missingPrivateKey case missingCertificate @@ -24,6 +25,7 @@ enum AuthenticationError: LocalizedError var errorDescription: String? { switch self { case .noTeam: return NSLocalizedString("Developer team could not be found.", comment: "") + case .teamSelectorError: return NSLocalizedString("Error presenting team selector view.", comment: "") case .noCertificate: return NSLocalizedString("Developer certificate could not be found.", comment: "") case .missingPrivateKey: return NSLocalizedString("The certificate's private key could not be found.", comment: "") case .missingCertificate: return NSLocalizedString("The certificate could not be found.", comment: "") @@ -441,24 +443,27 @@ private extension AuthenticationOperation func fetchTeam(for account: ALTAccount, session: ALTAppleAPISession, completionHandler: @escaping (Result) -> Void) { func selectTeam(from teams: [ALTTeam]) - { - if let team = teams.first(where: { $0.type == .individual }) - { - return completionHandler(.success(team)) - } - else if let team = teams.first(where: { $0.type == .free }) - { - return completionHandler(.success(team)) - } - else if let team = teams.first - { - return completionHandler(.success(team)) - } - else - { - return completionHandler(.failure(AuthenticationError.noTeam)) - } - } + { + if teams.count <= 1 { + if let team = teams.first { + return completionHandler(.success(team)) + } else { + return completionHandler(.failure(AuthenticationError.noTeam)) + } + } else { + DispatchQueue.main.async { + let selectTeamViewController = self.storyboard.instantiateViewController(withIdentifier: "selectTeamViewController") as! SelectTeamViewController + + selectTeamViewController.teams = teams + selectTeamViewController.completionHandler = completionHandler + + if !self.present(selectTeamViewController) + { + return completionHandler(.failure(AuthenticationError.noTeam)) + } + } + } + } ALTAppleAPI.shared.fetchTeams(for: account, session: session) { (teams, error) in switch Result(teams, error) diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/100.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/100.png new file mode 100644 index 00000000..bed24cc0 Binary files /dev/null and b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/100.png differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/1024.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/1024.png new file mode 100644 index 00000000..49dadce4 Binary files /dev/null and b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/1024.png differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/114.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/114.png new file mode 100644 index 00000000..b5ecd2d4 Binary files /dev/null and b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/114.png differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/120.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/120.png new file mode 100644 index 00000000..5956cfca Binary files /dev/null and b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/120.png differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/144.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/144.png new file mode 100644 index 00000000..4ab92aa3 Binary files /dev/null and b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/144.png differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/152.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/152.png new file mode 100644 index 00000000..5bd4ca4e Binary files /dev/null and b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/152.png differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/167.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/167.png new file mode 100644 index 00000000..b1aa0db7 Binary files /dev/null and b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/167.png differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/180.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/180.png new file mode 100644 index 00000000..33f8950b Binary files /dev/null and b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/180.png differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/20.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/20.png new file mode 100644 index 00000000..480b9c9d Binary files /dev/null and b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/20.png differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/29.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/29.png new file mode 100644 index 00000000..9133c150 Binary files /dev/null and b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/29.png differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/40.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/40.png new file mode 100644 index 00000000..b4621d91 Binary files /dev/null and b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/40.png differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/50.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/50.png new file mode 100644 index 00000000..52357d5f Binary files /dev/null and b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/50.png differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/57.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/57.png new file mode 100644 index 00000000..09344338 Binary files /dev/null and b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/57.png differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/58.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/58.png new file mode 100644 index 00000000..4bc05a25 Binary files /dev/null and b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/58.png differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/60.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/60.png new file mode 100644 index 00000000..da8cf2c3 Binary files /dev/null and b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/60.png differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/72.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/72.png new file mode 100644 index 00000000..fc6cce9e Binary files /dev/null and b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/72.png differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/76.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/76.png new file mode 100644 index 00000000..d1a06664 Binary files /dev/null and b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/76.png differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/80.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/80.png new file mode 100644 index 00000000..0a4cf0ff Binary files /dev/null and b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/80.png differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/87.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/87.png new file mode 100644 index 00000000..779b59b6 Binary files /dev/null and b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/87.png differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json index b8d71191..65b74d7e 100644 --- a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,101 +1 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "3x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Group 23_120.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Group 23_180.png", - "scale" : "3x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "76x76", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "76x76", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "83.5x83.5", - "scale" : "2x" - }, - { - "size" : "1024x1024", - "idiom" : "ios-marketing", - "filename" : "Group 23.png", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file +{"images":[{"size":"60x60","expected-size":"180","filename":"180.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"40x40","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"60x60","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"57x57","expected-size":"57","filename":"57.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"57x57","expected-size":"114","filename":"114.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"60","filename":"60.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"1024x1024","filename":"1024.png","expected-size":"1024","idiom":"ios-marketing","folder":"Assets.xcassets/AppIcon.appiconset/","scale":"1x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"72x72","expected-size":"72","filename":"72.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"76x76","expected-size":"152","filename":"152.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"50x50","expected-size":"100","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"76x76","expected-size":"76","filename":"76.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"50x50","expected-size":"50","filename":"50.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"72x72","expected-size":"144","filename":"144.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"40x40","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"83.5x83.5","expected-size":"167","filename":"167.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"20x20","expected-size":"20","filename":"20.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"}]} \ No newline at end of file diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/Group 23.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/Group 23.png deleted file mode 100644 index a88f8a08..00000000 Binary files a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/Group 23.png and /dev/null differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/Group 23_120.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/Group 23_120.png deleted file mode 100644 index 3626fdb7..00000000 Binary files a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/Group 23_120.png and /dev/null differ diff --git a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/Group 23_180.png b/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/Group 23_180.png deleted file mode 100644 index 245d2785..00000000 Binary files a/AltStore/Resources/Assets.xcassets/AppIcon.appiconset/Group 23_180.png and /dev/null differ diff --git a/AltStore/Resources/Assets.xcassets/Colors/SettingsBackground.colorset/Contents.json b/AltStore/Resources/Assets.xcassets/Colors/SettingsBackground.colorset/Contents.json index ba4b0d05..3612f72e 100644 --- a/AltStore/Resources/Assets.xcassets/Colors/SettingsBackground.colorset/Contents.json +++ b/AltStore/Resources/Assets.xcassets/Colors/SettingsBackground.colorset/Contents.json @@ -1,23 +1,18 @@ { - "info" : { - "version" : 1, - "author" : "xcode" - }, "colors" : [ { - "idiom" : "universal", "color" : { "color-space" : "srgb", "components" : { - "red" : "1", "alpha" : "1.000", - "blue" : "132", - "green" : "128" + "blue" : "255", + "green" : "67", + "red" : "128" } - } + }, + "idiom" : "universal" }, { - "idiom" : "universal", "appearances" : [ { "appearance" : "luminosity", @@ -27,12 +22,17 @@ "color" : { "color-space" : "srgb", "components" : { - "red" : "2", "alpha" : "1.000", "blue" : "103", - "green" : "82" + "green" : "0", + "red" : "60" } - } + }, + "idiom" : "universal" } - ] -} \ No newline at end of file + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/AltStore/Resources/Assets.xcassets/Colors/SettingsHighlighted.colorset/Contents.json b/AltStore/Resources/Assets.xcassets/Colors/SettingsHighlighted.colorset/Contents.json index 14f49d48..cb10d5a0 100644 --- a/AltStore/Resources/Assets.xcassets/Colors/SettingsHighlighted.colorset/Contents.json +++ b/AltStore/Resources/Assets.xcassets/Colors/SettingsHighlighted.colorset/Contents.json @@ -1,23 +1,18 @@ { - "info" : { - "version" : 1, - "author" : "xcode" - }, "colors" : [ { - "idiom" : "universal", "color" : { "color-space" : "srgb", "components" : { - "red" : "0.008", "alpha" : "1.000", - "blue" : "0.404", - "green" : "0.322" + "blue" : "103", + "green" : "0", + "red" : "60" } - } + }, + "idiom" : "universal" }, { - "idiom" : "universal", "appearances" : [ { "appearance" : "luminosity", @@ -27,12 +22,17 @@ "color" : { "color-space" : "srgb", "components" : { - "red" : "0.004", "alpha" : "1.000", - "blue" : "0.518", - "green" : "0.502" + "blue" : "255", + "green" : "67", + "red" : "128" } - } + }, + "idiom" : "universal" } - ] -} \ No newline at end of file + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/AltStore/Server/Server.swift b/AltStore/Server/Server.swift index 86d26606..acc35505 100644 --- a/AltStore/Server/Server.swift +++ b/AltStore/Server/Server.swift @@ -59,6 +59,7 @@ extension Server self.service = service self.identifier = identifier + self.isPreferred = true } init?(service: NetService) @@ -66,6 +67,7 @@ extension Server self.service = service self.connectionType = .manual self.identifier = String(data: "yolo".data(using: .utf8)!, encoding: .utf8) + self.isPreferred = false } } diff --git a/AltStore/Server/ServerManager.swift b/AltStore/Server/ServerManager.swift index 8083668b..85fefb5c 100644 --- a/AltStore/Server/ServerManager.swift +++ b/AltStore/Server/ServerManager.swift @@ -140,7 +140,7 @@ private extension ServerManager func addDiscoveredServer(_ server: Server) { var server = server - server.isPreferred = (server.identifier == UserDefaults.standard.preferredServerID) + server.isPreferred = true guard !self.discoveredServers.contains(server) else { return } diff --git a/AltStoreCore/Resources/Colors.xcassets/Primary.colorset/Contents.json b/AltStoreCore/Resources/Colors.xcassets/Primary.colorset/Contents.json index 1f36569e..4936c49f 100644 --- a/AltStoreCore/Resources/Colors.xcassets/Primary.colorset/Contents.json +++ b/AltStoreCore/Resources/Colors.xcassets/Primary.colorset/Contents.json @@ -5,9 +5,9 @@ "color-space" : "srgb", "components" : { "alpha" : "1.000", - "blue" : "0.518", - "green" : "0.502", - "red" : "0.004" + "blue" : "255", + "green" : "67", + "red" : "128" } }, "idiom" : "universal"