Skip to content

Commit db21b59

Browse files
committed
Extract NavigationBarStyle
1 parent ff71715 commit db21b59

36 files changed

Lines changed: 118 additions & 104 deletions

Mixin.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1628,6 +1628,7 @@
16281628
94ECCCAB261A029F004E9E2A /* Window.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94ECCCAA261A029F004E9E2A /* Window.swift */; };
16291629
94ECDEBF2FD1DA1200617524 /* TokenCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94ECDEBE2FD1DA1200617524 /* TokenCell.swift */; };
16301630
94ECDEC72FD1DA3100617524 /* TokenCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 94ECDEC62FD1DA3100617524 /* TokenCell.xib */; };
1631+
94ECE18D2FFF8365000F434E /* NavigationBarStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94ECE18C2FFF8364000F434E /* NavigationBarStyle.swift */; };
16311632
94ED08B02B5FAFC900493312 /* AppUserSearchResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94ED08AF2B5FAFC900493312 /* AppUserSearchResult.swift */; };
16321633
94ED08B62B5FB1C300493312 /* ExploreActionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94ED08B42B5FB1C300493312 /* ExploreActionCell.swift */; };
16331634
94ED08B72B5FB1C300493312 /* ExploreActionCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 94ED08B52B5FB1C300493312 /* ExploreActionCell.xib */; };
@@ -3605,6 +3606,7 @@
36053606
94ECCCAA261A029F004E9E2A /* Window.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Window.swift; sourceTree = "<group>"; };
36063607
94ECDEBE2FD1DA1200617524 /* TokenCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TokenCell.swift; sourceTree = "<group>"; };
36073608
94ECDEC62FD1DA3100617524 /* TokenCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TokenCell.xib; sourceTree = "<group>"; };
3609+
94ECE18C2FFF8364000F434E /* NavigationBarStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationBarStyle.swift; sourceTree = "<group>"; };
36083610
94ED08AF2B5FAFC900493312 /* AppUserSearchResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppUserSearchResult.swift; sourceTree = "<group>"; };
36093611
94ED08B42B5FB1C300493312 /* ExploreActionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExploreActionCell.swift; sourceTree = "<group>"; };
36103612
94ED08B52B5FB1C300493312 /* ExploreActionCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ExploreActionCell.xib; sourceTree = "<group>"; };
@@ -4460,6 +4462,7 @@
44604462
7B26D1CD219EEB5A00AE113A /* Views */,
44614463
94E619B72645BA7400A38049 /* Web */,
44624464
DF2081B320060C4400B87DB0 /* QRCode Scanner */,
4465+
94ECE18C2FFF8364000F434E /* NavigationBarStyle.swift */,
44634466
94635C9C2CC264F7005BA4CA /* SelectCountryView.xib */,
44644467
7B2E3E4A1FA07F4500DDDDEB /* SelectCountryViewController.swift */,
44654468
943CAA222CC82C9E00346677 /* MobileNumberView.xib */,
@@ -9026,6 +9029,7 @@
90269029
946331B62C622BAE00C54B76 /* TransactionHistoryTypeFilterView.swift in Sources */,
90279030
9427D52225E0E8DE00B1EF0E /* PlaylistItemCell.swift in Sources */,
90289031
7B86B1E923F69E3600C80AD9 /* ContactMessageCellRightView.swift in Sources */,
9032+
94ECE18D2FFF8365000F434E /* NavigationBarStyle.swift in Sources */,
90299033
943CAA282CC832E000346677 /* UIBarButtonItem+Convenience.swift in Sources */,
90309034
94438D57252DAD73005760AF /* Clip.swift in Sources */,
90319035
7C6132B627953B15002777EE /* DeleteAccountAbortWindow.swift in Sources */,

Mixin/UserInterface/Controllers/Chat/ConversationViewController.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1427,10 +1427,10 @@ final class ConversationViewController: UIViewController {
14271427

14281428
}
14291429

1430-
// MARK: - HomeNavigationController.NavigationBarStyling
1431-
extension ConversationViewController: HomeNavigationController.NavigationBarStyling {
1430+
// MARK: - NavigationBarStyling
1431+
extension ConversationViewController: NavigationBarStyling {
14321432

1433-
var navigationBarStyle: HomeNavigationController.NavigationBarStyle {
1433+
var navigationBarStyle: NavigationBarStyle {
14341434
.hide
14351435
}
14361436

Mixin/UserInterface/Controllers/Collectible/InscriptionViewController.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -323,9 +323,9 @@ final class InscriptionViewController: UIViewController {
323323

324324
}
325325

326-
extension InscriptionViewController: HomeNavigationController.NavigationBarStyling {
326+
extension InscriptionViewController: NavigationBarStyling {
327327

328-
var navigationBarStyle: HomeNavigationController.NavigationBarStyle {
328+
var navigationBarStyle: NavigationBarStyle {
329329
.hide
330330
}
331331

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import UIKit
2+
3+
enum NavigationBarStyle {
4+
5+
case normal
6+
case secondaryBackground
7+
case hide
8+
9+
static func updateAppearances(
10+
navigationController: UINavigationController,
11+
willShow viewController: UIViewController,
12+
animated: Bool
13+
) {
14+
let style = (viewController as? NavigationBarStyling)?.navigationBarStyle ?? .normal
15+
switch style {
16+
case .normal:
17+
if navigationController.isNavigationBarHidden {
18+
navigationController.setNavigationBarHidden(false, animated: animated)
19+
}
20+
if navigationController.navigationBar.standardAppearance != .general {
21+
navigationController.navigationBar.standardAppearance = .general
22+
navigationController.navigationBar.scrollEdgeAppearance = .general
23+
}
24+
case .secondaryBackground:
25+
if navigationController.isNavigationBarHidden {
26+
navigationController.setNavigationBarHidden(false, animated: animated)
27+
}
28+
if navigationController.navigationBar.standardAppearance != .secondaryBackgroundColor {
29+
navigationController.navigationBar.standardAppearance = .secondaryBackgroundColor
30+
navigationController.navigationBar.scrollEdgeAppearance = .secondaryBackgroundColor
31+
}
32+
case .hide:
33+
if !navigationController.isNavigationBarHidden {
34+
navigationController.setNavigationBarHidden(true, animated: animated)
35+
}
36+
}
37+
}
38+
39+
}
40+
41+
protocol NavigationBarStyling {
42+
var navigationBarStyle: NavigationBarStyle { get }
43+
}

Mixin/UserInterface/Controllers/Common/QRCode Scanner/QRCodeScannerViewController.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,9 +178,9 @@ final class QRCodeScannerViewController: UIViewController, MixinNavigationAnimat
178178

179179
}
180180

181-
extension QRCodeScannerViewController: HomeNavigationController.NavigationBarStyling {
181+
extension QRCodeScannerViewController: NavigationBarStyling {
182182

183-
var navigationBarStyle: HomeNavigationController.NavigationBarStyle {
183+
var navigationBarStyle: NavigationBarStyle {
184184
.hide
185185
}
186186

Mixin/UserInterface/Controllers/Contact/ReceiveMoneyViewController.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,9 @@ final class ReceiveMoneyViewController: UIViewController {
8787

8888
}
8989

90-
extension ReceiveMoneyViewController: HomeNavigationController.NavigationBarStyling {
90+
extension ReceiveMoneyViewController: NavigationBarStyling {
9191

92-
var navigationBarStyle: HomeNavigationController.NavigationBarStyle {
92+
var navigationBarStyle: NavigationBarStyle {
9393
.secondaryBackground
9494
}
9595

Mixin/UserInterface/Controllers/Home/HomeNavigationController.swift

Lines changed: 5 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -74,30 +74,11 @@ class HomeNavigationController: GeneralAppearanceNavigationController {
7474
extension HomeNavigationController: UINavigationControllerDelegate {
7575

7676
func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
77-
let style = (viewController as? NavigationBarStyling)?.navigationBarStyle ?? .normal
78-
switch style {
79-
case .normal:
80-
if navigationController.isNavigationBarHidden {
81-
navigationController.setNavigationBarHidden(false, animated: animated)
82-
}
83-
if navigationController.navigationBar.standardAppearance != .general {
84-
navigationController.navigationBar.standardAppearance = .general
85-
navigationController.navigationBar.scrollEdgeAppearance = .general
86-
}
87-
case .secondaryBackground:
88-
if navigationController.isNavigationBarHidden {
89-
navigationController.setNavigationBarHidden(false, animated: animated)
90-
}
91-
if navigationController.navigationBar.standardAppearance != .secondaryBackgroundColor {
92-
navigationController.navigationBar.standardAppearance = .secondaryBackgroundColor
93-
navigationController.navigationBar.scrollEdgeAppearance = .secondaryBackgroundColor
94-
}
95-
case .hide:
96-
if !navigationController.isNavigationBarHidden {
97-
navigationController.setNavigationBarHidden(true, animated: animated)
98-
}
99-
}
100-
77+
NavigationBarStyle.updateAppearances(
78+
navigationController: navigationController,
79+
willShow: viewController,
80+
animated: animated
81+
)
10182
if let container = UIApplication.homeContainerViewController {
10283
let webViewControllers = container.children.compactMap { child in
10384
child as? MixinWebViewController
@@ -149,17 +130,3 @@ extension HomeNavigationController: UIGestureRecognizerDelegate {
149130
}
150131

151132
}
152-
153-
extension HomeNavigationController {
154-
155-
enum NavigationBarStyle {
156-
case normal
157-
case secondaryBackground
158-
case hide
159-
}
160-
161-
protocol NavigationBarStyling {
162-
var navigationBarStyle: NavigationBarStyle { get }
163-
}
164-
165-
}

Mixin/UserInterface/Controllers/Home/HomeTabBarController.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -247,9 +247,9 @@ extension HomeTabBarController: TabBarDelegate {
247247

248248
}
249249

250-
extension HomeTabBarController: HomeNavigationController.NavigationBarStyling {
250+
extension HomeTabBarController: NavigationBarStyling {
251251

252-
var navigationBarStyle: HomeNavigationController.NavigationBarStyle {
252+
var navigationBarStyle: NavigationBarStyle {
253253
.hide
254254
}
255255

Mixin/UserInterface/Controllers/Setting/AllMembershipOrdersViewController.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ final class AllMembershipOrdersViewController: UIViewController {
5050

5151
}
5252

53-
extension AllMembershipOrdersViewController: HomeNavigationController.NavigationBarStyling {
53+
extension AllMembershipOrdersViewController: NavigationBarStyling {
5454

55-
var navigationBarStyle: HomeNavigationController.NavigationBarStyle {
55+
var navigationBarStyle: NavigationBarStyle {
5656
.secondaryBackground
5757
}
5858

Mixin/UserInterface/Controllers/Setting/MembershipOrderViewController.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ final class MembershipOrderViewController: UIViewController {
6666

6767
}
6868

69-
extension MembershipOrderViewController: HomeNavigationController.NavigationBarStyling {
69+
extension MembershipOrderViewController: NavigationBarStyling {
7070

71-
var navigationBarStyle: HomeNavigationController.NavigationBarStyle {
71+
var navigationBarStyle: NavigationBarStyle {
7272
.secondaryBackground
7373
}
7474

0 commit comments

Comments
 (0)