diff --git a/AltStore/Base.lproj/Main.storyboard b/AltStore/Base.lproj/Main.storyboard index 5e796cf0..6a392a2c 100644 --- a/AltStore/Base.lproj/Main.storyboard +++ b/AltStore/Base.lproj/Main.storyboard @@ -19,9 +19,6 @@ - - - @@ -30,7 +27,7 @@ - + diff --git a/AltStore/Components/AppBannerView.swift b/AltStore/Components/AppBannerView.swift index e2eb257d..4e9c6802 100644 --- a/AltStore/Components/AppBannerView.swift +++ b/AltStore/Components/AppBannerView.swift @@ -11,6 +11,8 @@ import Roxas class AppBannerView: RSTNibView { + private var originalTintColor: UIColor? + @IBOutlet var titleLabel: UILabel! @IBOutlet var subtitleLabel: UILabel! @IBOutlet var iconImageView: AppIconImageView! @@ -25,6 +27,11 @@ class AppBannerView: RSTNibView { super.tintColorDidChange() + if self.tintAdjustmentMode != .dimmed + { + self.originalTintColor = self.tintColor + } + self.update() } } @@ -36,9 +43,7 @@ private extension AppBannerView self.clipsToBounds = true self.layer.cornerRadius = 22 - self.subtitleLabel.textColor = self.tintColor - self.button.tintColor = self.tintColor - - self.backgroundEffectView.backgroundColor = self.tintColor + self.subtitleLabel.textColor = self.originalTintColor ?? self.tintColor + self.backgroundEffectView.backgroundColor = self.originalTintColor ?? self.tintColor } } diff --git a/AltStore/LaunchViewController.swift b/AltStore/LaunchViewController.swift index 7cb18eb9..97554963 100644 --- a/AltStore/LaunchViewController.swift +++ b/AltStore/LaunchViewController.swift @@ -11,6 +11,8 @@ import Roxas class LaunchViewController: RSTLaunchViewController { + private var didFinishLaunching = false + override var launchConditions: [RSTLaunchCondition] { let isDatabaseStarted = RSTLaunchCondition(condition: { DatabaseManager.shared.isStarted }) { (completionHandler) in DatabaseManager.shared.start(completionHandler: completionHandler) @@ -18,6 +20,14 @@ class LaunchViewController: RSTLaunchViewController return [isDatabaseStarted] } + + override var childForStatusBarStyle: UIViewController? { + return self.children.first + } + + override var childForStatusBarHidden: UIViewController? { + return self.children.first + } } extension LaunchViewController @@ -44,9 +54,24 @@ extension LaunchViewController { super.finishLaunching() + guard !self.didFinishLaunching else { return } + AppManager.shared.update() PatreonAPI.shared.refreshPatreonAccount() - self.performSegue(withIdentifier: "finishLaunching", sender: nil) + // Add view controller as child (rather than presenting modally) + // so tint adjustment + card presentations works correctly. + let viewController = self.storyboard!.instantiateViewController(withIdentifier: "tabBarController") as! TabBarController + viewController.view.frame = CGRect(x: 0, y: 0, width: self.view.bounds.width, height: self.view.bounds.height) + viewController.view.alpha = 0.0 + self.addChild(viewController) + self.view.addSubview(viewController.view, pinningEdgesWith: .zero) + viewController.didMove(toParent: self) + + UIView.animate(withDuration: 0.2) { + viewController.view.alpha = 1.0 + } + + self.didFinishLaunching = true } }