Showing
15 changed files
with
186 additions
and
78 deletions
@@ -7,6 +7,7 @@ | @@ -7,6 +7,7 @@ | ||
7 | objects = { | 7 | objects = { |
8 | 8 | ||
9 | /* Begin PBXBuildFile section */ | 9 | /* Begin PBXBuildFile section */ |
10 | + 008858E128786A5B00B23E08 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 008858DF28786A5B00B23E08 /* Localizable.strings */; }; | ||
10 | 00A48B62285F8CDD00EF0A08 /* CodeVerificationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00A48B5F285F8CDD00EF0A08 /* CodeVerificationView.swift */; }; | 11 | 00A48B62285F8CDD00EF0A08 /* CodeVerificationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00A48B5F285F8CDD00EF0A08 /* CodeVerificationView.swift */; }; |
11 | 00A48B63285F8CDD00EF0A08 /* CodeVerificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00A48B61285F8CDD00EF0A08 /* CodeVerificationViewController.swift */; }; | 12 | 00A48B63285F8CDD00EF0A08 /* CodeVerificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00A48B61285F8CDD00EF0A08 /* CodeVerificationViewController.swift */; }; |
12 | 00A48B6A285F8CEA00EF0A08 /* AddResidentsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00A48B66285F8CEA00EF0A08 /* AddResidentsView.swift */; }; | 13 | 00A48B6A285F8CEA00EF0A08 /* AddResidentsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00A48B66285F8CEA00EF0A08 /* AddResidentsView.swift */; }; |
@@ -57,6 +58,8 @@ | @@ -57,6 +58,8 @@ | ||
57 | /* End PBXBuildFile section */ | 58 | /* End PBXBuildFile section */ |
58 | 59 | ||
59 | /* Begin PBXFileReference section */ | 60 | /* Begin PBXFileReference section */ |
61 | + 008858DC287869A100B23E08 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/LaunchScreen.strings; sourceTree = "<group>"; }; | ||
62 | + 008858E028786A5B00B23E08 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = "InterQR-Internship/Base.lproj/Localizable.strings"; sourceTree = SOURCE_ROOT; }; | ||
60 | 00A48B5F285F8CDD00EF0A08 /* CodeVerificationView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CodeVerificationView.swift; sourceTree = "<group>"; }; | 63 | 00A48B5F285F8CDD00EF0A08 /* CodeVerificationView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CodeVerificationView.swift; sourceTree = "<group>"; }; |
61 | 00A48B61285F8CDD00EF0A08 /* CodeVerificationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CodeVerificationViewController.swift; sourceTree = "<group>"; }; | 64 | 00A48B61285F8CDD00EF0A08 /* CodeVerificationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CodeVerificationViewController.swift; sourceTree = "<group>"; }; |
62 | 00A48B66285F8CEA00EF0A08 /* AddResidentsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddResidentsView.swift; sourceTree = "<group>"; }; | 65 | 00A48B66285F8CEA00EF0A08 /* AddResidentsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddResidentsView.swift; sourceTree = "<group>"; }; |
@@ -122,6 +125,14 @@ | @@ -122,6 +125,14 @@ | ||
122 | /* End PBXFrameworksBuildPhase section */ | 125 | /* End PBXFrameworksBuildPhase section */ |
123 | 126 | ||
124 | /* Begin PBXGroup section */ | 127 | /* Begin PBXGroup section */ |
128 | + 008858E228786B5B00B23E08 /* Model */ = { | ||
129 | + isa = PBXGroup; | ||
130 | + children = ( | ||
131 | + 00A48B67285F8CEA00EF0A08 /* ResidentModel.swift */, | ||
132 | + ); | ||
133 | + path = Model; | ||
134 | + sourceTree = "<group>"; | ||
135 | + }; | ||
125 | 00A48B5D285F8CDD00EF0A08 /* OneTimePasswordScreen */ = { | 136 | 00A48B5D285F8CDD00EF0A08 /* OneTimePasswordScreen */ = { |
126 | isa = PBXGroup; | 137 | isa = PBXGroup; |
127 | children = ( | 138 | children = ( |
@@ -151,9 +162,9 @@ | @@ -151,9 +162,9 @@ | ||
151 | 00A48B64285F8CEA00EF0A08 /* AddResidentsScreen */ = { | 162 | 00A48B64285F8CEA00EF0A08 /* AddResidentsScreen */ = { |
152 | isa = PBXGroup; | 163 | isa = PBXGroup; |
153 | children = ( | 164 | children = ( |
165 | + 008858E228786B5B00B23E08 /* Model */, | ||
154 | 00A48B68285F8CEA00EF0A08 /* ViewController */, | 166 | 00A48B68285F8CEA00EF0A08 /* ViewController */, |
155 | 00A48B65285F8CEA00EF0A08 /* View */, | 167 | 00A48B65285F8CEA00EF0A08 /* View */, |
156 | - 00A48B67285F8CEA00EF0A08 /* ResidentModel.swift */, | ||
157 | ); | 168 | ); |
158 | path = AddResidentsScreen; | 169 | path = AddResidentsScreen; |
159 | sourceTree = "<group>"; | 170 | sourceTree = "<group>"; |
@@ -516,6 +527,7 @@ | @@ -516,6 +527,7 @@ | ||
516 | 17FD60D82848A2CE00957A3A /* Resources */ = { | 527 | 17FD60D82848A2CE00957A3A /* Resources */ = { |
517 | isa = PBXGroup; | 528 | isa = PBXGroup; |
518 | children = ( | 529 | children = ( |
530 | + 008858DF28786A5B00B23E08 /* Localizable.strings */, | ||
519 | 17FD60D92848A56900957A3A /* Fonts */, | 531 | 17FD60D92848A56900957A3A /* Fonts */, |
520 | ); | 532 | ); |
521 | path = Resources; | 533 | path = Resources; |
@@ -592,6 +604,7 @@ | @@ -592,6 +604,7 @@ | ||
592 | knownRegions = ( | 604 | knownRegions = ( |
593 | en, | 605 | en, |
594 | Base, | 606 | Base, |
607 | + uk, | ||
595 | ); | 608 | ); |
596 | mainGroup = 17CF9ED42844ED8F000D8077; | 609 | mainGroup = 17CF9ED42844ED8F000D8077; |
597 | productRefGroup = 17CF9EDE2844ED8F000D8077 /* Products */; | 610 | productRefGroup = 17CF9EDE2844ED8F000D8077 /* Products */; |
@@ -609,6 +622,7 @@ | @@ -609,6 +622,7 @@ | ||
609 | buildActionMask = 2147483647; | 622 | buildActionMask = 2147483647; |
610 | files = ( | 623 | files = ( |
611 | 17CF9EED2844ED90000D8077 /* LaunchScreen.storyboard in Resources */, | 624 | 17CF9EED2844ED90000D8077 /* LaunchScreen.storyboard in Resources */, |
625 | + 008858E128786A5B00B23E08 /* Localizable.strings in Resources */, | ||
612 | 17287C6D2848C69600AA7113 /* Sk-Modernist-Mono.otf in Resources */, | 626 | 17287C6D2848C69600AA7113 /* Sk-Modernist-Mono.otf in Resources */, |
613 | 17287C692848C69600AA7113 /* Sk-Modernist-Bold.otf in Resources */, | 627 | 17287C692848C69600AA7113 /* Sk-Modernist-Bold.otf in Resources */, |
614 | 17287C6A2848C69600AA7113 /* Sk-Modernist-Regular.otf in Resources */, | 628 | 17287C6A2848C69600AA7113 /* Sk-Modernist-Regular.otf in Resources */, |
@@ -712,10 +726,19 @@ | @@ -712,10 +726,19 @@ | ||
712 | /* End PBXSourcesBuildPhase section */ | 726 | /* End PBXSourcesBuildPhase section */ |
713 | 727 | ||
714 | /* Begin PBXVariantGroup section */ | 728 | /* Begin PBXVariantGroup section */ |
729 | + 008858DF28786A5B00B23E08 /* Localizable.strings */ = { | ||
730 | + isa = PBXVariantGroup; | ||
731 | + children = ( | ||
732 | + 008858E028786A5B00B23E08 /* Base */, | ||
733 | + ); | ||
734 | + name = Localizable.strings; | ||
735 | + sourceTree = "<group>"; | ||
736 | + }; | ||
715 | 17CF9EEB2844ED90000D8077 /* LaunchScreen.storyboard */ = { | 737 | 17CF9EEB2844ED90000D8077 /* LaunchScreen.storyboard */ = { |
716 | isa = PBXVariantGroup; | 738 | isa = PBXVariantGroup; |
717 | children = ( | 739 | children = ( |
718 | 17CF9EEC2844ED90000D8077 /* Base */, | 740 | 17CF9EEC2844ED90000D8077 /* Base */, |
741 | + 008858DC287869A100B23E08 /* uk */, | ||
719 | ); | 742 | ); |
720 | name = LaunchScreen.storyboard; | 743 | name = LaunchScreen.storyboard; |
721 | sourceTree = "<group>"; | 744 | sourceTree = "<group>"; |
@@ -727,6 +750,7 @@ | @@ -727,6 +750,7 @@ | ||
727 | isa = XCBuildConfiguration; | 750 | isa = XCBuildConfiguration; |
728 | buildSettings = { | 751 | buildSettings = { |
729 | ALWAYS_SEARCH_USER_PATHS = NO; | 752 | ALWAYS_SEARCH_USER_PATHS = NO; |
753 | + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; | ||
730 | CLANG_ANALYZER_NONNULL = YES; | 754 | CLANG_ANALYZER_NONNULL = YES; |
731 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; | 755 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; |
732 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; | 756 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; |
@@ -788,6 +812,7 @@ | @@ -788,6 +812,7 @@ | ||
788 | isa = XCBuildConfiguration; | 812 | isa = XCBuildConfiguration; |
789 | buildSettings = { | 813 | buildSettings = { |
790 | ALWAYS_SEARCH_USER_PATHS = NO; | 814 | ALWAYS_SEARCH_USER_PATHS = NO; |
815 | + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; | ||
791 | CLANG_ANALYZER_NONNULL = YES; | 816 | CLANG_ANALYZER_NONNULL = YES; |
792 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; | 817 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; |
793 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; | 818 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; |
@@ -848,7 +873,7 @@ | @@ -848,7 +873,7 @@ | ||
848 | CODE_SIGN_IDENTITY = "Apple Development"; | 873 | CODE_SIGN_IDENTITY = "Apple Development"; |
849 | CODE_SIGN_STYLE = Automatic; | 874 | CODE_SIGN_STYLE = Automatic; |
850 | CURRENT_PROJECT_VERSION = 1; | 875 | CURRENT_PROJECT_VERSION = 1; |
851 | - DEVELOPMENT_TEAM = 4X46JG9W6V; | 876 | + DEVELOPMENT_TEAM = 52KCA3JZ59; |
852 | GENERATE_INFOPLIST_FILE = YES; | 877 | GENERATE_INFOPLIST_FILE = YES; |
853 | INFOPLIST_FILE = "InterQR-Internship/Info.plist"; | 878 | INFOPLIST_FILE = "InterQR-Internship/Info.plist"; |
854 | INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; | 879 | INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; |
@@ -877,7 +902,7 @@ | @@ -877,7 +902,7 @@ | ||
877 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; | 902 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; |
878 | CODE_SIGN_STYLE = Automatic; | 903 | CODE_SIGN_STYLE = Automatic; |
879 | CURRENT_PROJECT_VERSION = 1; | 904 | CURRENT_PROJECT_VERSION = 1; |
880 | - DEVELOPMENT_TEAM = 4X46JG9W6V; | 905 | + DEVELOPMENT_TEAM = 52KCA3JZ59; |
881 | GENERATE_INFOPLIST_FILE = YES; | 906 | GENERATE_INFOPLIST_FILE = YES; |
882 | INFOPLIST_FILE = "InterQR-Internship/Info.plist"; | 907 | INFOPLIST_FILE = "InterQR-Internship/Info.plist"; |
883 | INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; | 908 | INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; |
@@ -7,7 +7,7 @@ | @@ -7,7 +7,7 @@ | ||
7 | <key>InterQR-Internship.xcscheme_^#shared#^_</key> | 7 | <key>InterQR-Internship.xcscheme_^#shared#^_</key> |
8 | <dict> | 8 | <dict> |
9 | <key>orderHint</key> | 9 | <key>orderHint</key> |
10 | - <integer>2</integer> | 10 | + <integer>3</integer> |
11 | </dict> | 11 | </dict> |
12 | </dict> | 12 | </dict> |
13 | </dict> | 13 | </dict> |
@@ -14,9 +14,57 @@ | @@ -14,9 +14,57 @@ | ||
14 | filePath = "InterQR-Internship/Modules/VerificationSceen/ViewController/VerificationViewController.swift" | 14 | filePath = "InterQR-Internship/Modules/VerificationSceen/ViewController/VerificationViewController.swift" |
15 | startingColumnNumber = "9223372036854775807" | 15 | startingColumnNumber = "9223372036854775807" |
16 | endingColumnNumber = "9223372036854775807" | 16 | endingColumnNumber = "9223372036854775807" |
17 | - startingLineNumber = "117" | ||
18 | - endingLineNumber = "117" | ||
19 | - landmarkName = "keyboardWillHide(notification:)" | 17 | + startingLineNumber = "128" |
18 | + endingLineNumber = "128" | ||
19 | + landmarkName = "VerificationViewController" | ||
20 | + landmarkType = "21"> | ||
21 | + </BreakpointContent> | ||
22 | + </BreakpointProxy> | ||
23 | + <BreakpointProxy | ||
24 | + BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint"> | ||
25 | + <BreakpointContent | ||
26 | + uuid = "7E7A7FC7-3941-42FF-9D99-A8E8D38CAF4C" | ||
27 | + shouldBeEnabled = "No" | ||
28 | + ignoreCount = "0" | ||
29 | + continueAfterRunningActions = "No" | ||
30 | + filePath = "InterQR-Internship/Modules/ResidentsScreen/ViewController/ResidentsViewController.swift" | ||
31 | + startingColumnNumber = "9223372036854775807" | ||
32 | + endingColumnNumber = "9223372036854775807" | ||
33 | + startingLineNumber = "115" | ||
34 | + endingLineNumber = "115" | ||
35 | + landmarkName = "didRemoveButtonTapped(cell:)" | ||
36 | + landmarkType = "7"> | ||
37 | + </BreakpointContent> | ||
38 | + </BreakpointProxy> | ||
39 | + <BreakpointProxy | ||
40 | + BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint"> | ||
41 | + <BreakpointContent | ||
42 | + uuid = "EECC7F33-D6B0-4537-A925-697E0430E6CC" | ||
43 | + shouldBeEnabled = "No" | ||
44 | + ignoreCount = "0" | ||
45 | + continueAfterRunningActions = "No" | ||
46 | + filePath = "InterQR-Internship/Modules/VerificationSceen/ViewController/VerificationViewController.swift" | ||
47 | + startingColumnNumber = "9223372036854775807" | ||
48 | + endingColumnNumber = "9223372036854775807" | ||
49 | + startingLineNumber = "83" | ||
50 | + endingLineNumber = "83" | ||
51 | + landmarkName = "didCheckboxTapped(_:)" | ||
52 | + landmarkType = "7"> | ||
53 | + </BreakpointContent> | ||
54 | + </BreakpointProxy> | ||
55 | + <BreakpointProxy | ||
56 | + BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint"> | ||
57 | + <BreakpointContent | ||
58 | + uuid = "3F979C60-D565-4FB5-BB07-FBEE9DA2B47C" | ||
59 | + shouldBeEnabled = "No" | ||
60 | + ignoreCount = "0" | ||
61 | + continueAfterRunningActions = "No" | ||
62 | + filePath = "InterQR-Internship/Modules/VerificationSceen/View/VerificationView.swift" | ||
63 | + startingColumnNumber = "9223372036854775807" | ||
64 | + endingColumnNumber = "9223372036854775807" | ||
65 | + startingLineNumber = "329" | ||
66 | + endingLineNumber = "329" | ||
67 | + landmarkName = "handleUI(_:)" | ||
20 | landmarkType = "7"> | 68 | landmarkType = "7"> |
21 | </BreakpointContent> | 69 | </BreakpointContent> |
22 | </BreakpointProxy> | 70 | </BreakpointProxy> |
@@ -11,7 +11,6 @@ import ContactsUI | @@ -11,7 +11,6 @@ import ContactsUI | ||
11 | class AddResidentsViewController: UIViewController { | 11 | class AddResidentsViewController: UIViewController { |
12 | var isKeyboardAppear = false | 12 | var isKeyboardAppear = false |
13 | 13 | ||
14 | - var savedResidents: [ResidentModel] = [] | ||
15 | weak var delegate: ResidentSavable? | 14 | weak var delegate: ResidentSavable? |
16 | 15 | ||
17 | var contact = ContactPickerViewController() | 16 | var contact = ContactPickerViewController() |
@@ -70,20 +69,12 @@ class AddResidentsViewController: UIViewController { | @@ -70,20 +69,12 @@ class AddResidentsViewController: UIViewController { | ||
70 | else { | 69 | else { |
71 | return | 70 | return |
72 | } | 71 | } |
73 | - let model = [ResidentModel(name: name, | 72 | + let model = ResidentModel(name: name, |
74 | mobileNumber: mobileNumber, | 73 | mobileNumber: mobileNumber, |
75 | manager: mainView.managerButton.isSelected, | 74 | manager: mainView.managerButton.isSelected, |
76 | hidden: mainView.hiddenButton.isSelected, | 75 | hidden: mainView.hiddenButton.isSelected, |
77 | - heart: mainView.heartButton.isSelected)] | ||
78 | - savedResidents.append(contentsOf: model) | ||
79 | - delegate?.save(savedResidents) | ||
80 | - // ??????????????????????????????? | ||
81 | - mainView.nameTextField.text = "" //??? | ||
82 | - mainView.mobileNumberTextField.text = "" //??? | ||
83 | - mainView.managerButton.isSelected = false //??? | ||
84 | - mainView.hiddenButton.isSelected = false //??? | ||
85 | - mainView.heartButton.isSelected = false //??? | ||
86 | - // ??????????????????????????????? | 76 | + heart: mainView.heartButton.isSelected) |
77 | + delegate?.save(model) | ||
87 | } | 78 | } |
88 | 79 | ||
89 | @objc private func didTapOnChangeableButtons(_ sender: SquereCheckbox) { | 80 | @objc private func didTapOnChangeableButtons(_ sender: SquereCheckbox) { |
InterQR-Internship/Modules/OneTimePasswordScreen/ViewController/CodeVerificationViewController.swift
@@ -39,9 +39,10 @@ class CodeVerificationViewController: UIViewController { | @@ -39,9 +39,10 @@ class CodeVerificationViewController: UIViewController { | ||
39 | func networkingVerify() { | 39 | func networkingVerify() { |
40 | guard let verifyUrl = URL(string: Constants.APIRoutes.verifyURL.urlString) else { return } | 40 | guard let verifyUrl = URL(string: Constants.APIRoutes.verifyURL.urlString) else { return } |
41 | let verifyModel = verifyModelFilling() | 41 | let verifyModel = verifyModelFilling() |
42 | - networkManager.verifyRequest(verifyUrl, model: verifyModel!) { response in | 42 | + AuthNetworkManager.share.verifyRequest(verifyUrl, model: verifyModel!) { response in |
43 | print("3️⃣✅\(response.data)") | 43 | print("3️⃣✅\(response.data)") |
44 | print("\(response.message)✅") | 44 | print("\(response.message)✅") |
45 | + self.networkingLogin() | ||
45 | self.mainView.spinner.startAnimating() | 46 | self.mainView.spinner.startAnimating() |
46 | } fail: { error in | 47 | } fail: { error in |
47 | print("3️⃣\(error)") | 48 | print("3️⃣\(error)") |
@@ -55,6 +56,7 @@ class CodeVerificationViewController: UIViewController { | @@ -55,6 +56,7 @@ class CodeVerificationViewController: UIViewController { | ||
55 | self.networkManager.loginRequest(loginUrl, model: loginModel) { response in | 56 | self.networkManager.loginRequest(loginUrl, model: loginModel) { response in |
56 | guard let message = response.message else { return } | 57 | guard let message = response.message else { return } |
57 | print("4️⃣✅\(message)✅") | 58 | print("4️⃣✅\(message)✅") |
59 | + self.errorProcessing() | ||
58 | } fail: { error in | 60 | } fail: { error in |
59 | print("4️⃣⛔️\(error)⛔️") | 61 | print("4️⃣⛔️\(error)⛔️") |
60 | } | 62 | } |
@@ -76,7 +78,6 @@ class CodeVerificationViewController: UIViewController { | @@ -76,7 +78,6 @@ class CodeVerificationViewController: UIViewController { | ||
76 | //MARK: - Targets | 78 | //MARK: - Targets |
77 | extension CodeVerificationViewController { | 79 | extension CodeVerificationViewController { |
78 | @objc private func didTapVerifyButton() { | 80 | @objc private func didTapVerifyButton() { |
79 | - errorProcessing() | ||
80 | networkingVerify() | 81 | networkingVerify() |
81 | } | 82 | } |
82 | 83 | ||
@@ -97,12 +98,8 @@ extension CodeVerificationViewController { | @@ -97,12 +98,8 @@ extension CodeVerificationViewController { | ||
97 | mainView.errorAlertLabel.isHidden = false | 98 | mainView.errorAlertLabel.isHidden = false |
98 | mainView.otpView.textField.becomeFirstResponder() | 99 | mainView.otpView.textField.becomeFirstResponder() |
99 | } else { | 100 | } else { |
100 | - DispatchQueue.main.asyncAfter(deadline: .now() + 2) { | ||
101 | - self.networkingLogin() | ||
102 | self.mainView.spinner.stopAnimating() | 101 | self.mainView.spinner.stopAnimating() |
103 | self.showHomeVC() | 102 | self.showHomeVC() |
104 | - } | ||
105 | - | ||
106 | } | 103 | } |
107 | } | 104 | } |
108 | } | 105 | } |
@@ -7,7 +7,29 @@ | @@ -7,7 +7,29 @@ | ||
7 | 7 | ||
8 | import UIKit | 8 | import UIKit |
9 | 9 | ||
10 | +protocol ResidentTableViewCellDelegate: AnyObject { | ||
11 | + func didRemoveButtonTapped(cell: ResidentTableViewCell) | ||
12 | + func didManagerButtonTapped(cell: ResidentTableViewCell) | ||
13 | + func didHiddenButtonTapped(cell: ResidentTableViewCell) | ||
14 | + func didHeardButtonTapped(cell: ResidentTableViewCell) | ||
15 | + | ||
16 | +} | ||
17 | + | ||
10 | class ResidentTableViewCell: UITableViewCell { | 18 | class ResidentTableViewCell: UITableViewCell { |
19 | + var model: ResidentModel? { | ||
20 | + didSet { | ||
21 | + if let model = model { | ||
22 | + nameLabel.text = model.name | ||
23 | + phoneNumberLabel.text = model.mobileNumber | ||
24 | + managerButton.isSelected = model.manager | ||
25 | + hiddenButton.isSelected = model.hidden | ||
26 | + heartButton.isSelected = model.heart | ||
27 | + } | ||
28 | + } | ||
29 | + } | ||
30 | + | ||
31 | + weak var delegate: ResidentTableViewCellDelegate? | ||
32 | + | ||
11 | static let id = String(describing: ResidentTableViewCell.self) | 33 | static let id = String(describing: ResidentTableViewCell.self) |
12 | 34 | ||
13 | var containerView: UIView = { | 35 | var containerView: UIView = { |
@@ -67,7 +89,7 @@ class ResidentTableViewCell: UITableViewCell { | @@ -67,7 +89,7 @@ class ResidentTableViewCell: UITableViewCell { | ||
67 | }() | 89 | }() |
68 | 90 | ||
69 | var heartButton: UIButton = { | 91 | var heartButton: UIButton = { |
70 | - var obj = UIButton() | 92 | + var obj = UIButton(type: .system) |
71 | obj.setImage(UIImage(named: .Image.heart), for: .normal) | 93 | obj.setImage(UIImage(named: .Image.heart), for: .normal) |
72 | obj.setImage(UIImage(named: .Image.heartRed), for: .selected) | 94 | obj.setImage(UIImage(named: .Image.heartRed), for: .selected) |
73 | return obj | 95 | return obj |
@@ -160,6 +182,8 @@ class ResidentTableViewCell: UITableViewCell { | @@ -160,6 +182,8 @@ class ResidentTableViewCell: UITableViewCell { | ||
160 | $0.bottom.equalToSuperview().offset(-18) | 182 | $0.bottom.equalToSuperview().offset(-18) |
161 | $0.trailing.equalToSuperview().offset(-22) | 183 | $0.trailing.equalToSuperview().offset(-22) |
162 | } | 184 | } |
185 | + | ||
186 | + removeCellButton.addTarget(self, action: #selector(didRemoveButtonTapped(_:)), for: .touchUpInside) | ||
163 | } | 187 | } |
164 | 188 | ||
165 | override func layoutSubviews() { | 189 | override func layoutSubviews() { |
@@ -167,13 +191,11 @@ class ResidentTableViewCell: UITableViewCell { | @@ -167,13 +191,11 @@ class ResidentTableViewCell: UITableViewCell { | ||
167 | gradientBG.frame = serialNumberView.bounds | 191 | gradientBG.frame = serialNumberView.bounds |
168 | } | 192 | } |
169 | 193 | ||
170 | - func model(_ item: ResidentModel) { | ||
171 | - nameLabel.text = item.name | ||
172 | - phoneNumberLabel.text = item.mobileNumber | ||
173 | - managerButton.isSelected = item.manager | ||
174 | - hiddenButton.isSelected = item.hidden | ||
175 | - heartButton.isSelected = item.heart | 194 | +} |
195 | + | ||
196 | +//MARK: targets | ||
197 | +extension ResidentTableViewCell { | ||
198 | + @objc private func didRemoveButtonTapped(_ sender: UIButton) { | ||
199 | + delegate?.didRemoveButtonTapped(cell: self) | ||
176 | } | 200 | } |
177 | - | ||
178 | - | ||
179 | } | 201 | } |
@@ -11,7 +11,6 @@ class ResidentsViewController: UIViewController { | @@ -11,7 +11,6 @@ class ResidentsViewController: UIViewController { | ||
11 | var mainView = ResidentsView() | 11 | var mainView = ResidentsView() |
12 | var myData: [ResidentModel] = [] | 12 | var myData: [ResidentModel] = [] |
13 | 13 | ||
14 | - let addResidentsVC = AddResidentsViewController() | ||
15 | let networkManager = AuthNetworkManager() | 14 | let networkManager = AuthNetworkManager() |
16 | 15 | ||
17 | override func loadView() { | 16 | override func loadView() { |
@@ -62,6 +61,7 @@ class ResidentsViewController: UIViewController { | @@ -62,6 +61,7 @@ class ResidentsViewController: UIViewController { | ||
62 | } | 61 | } |
63 | 62 | ||
64 | @objc private func willShowAddResidentVC() { | 63 | @objc private func willShowAddResidentVC() { |
64 | + let addResidentsVC = AddResidentsViewController() | ||
65 | addResidentsVC.modalPresentationStyle = .overCurrentContext | 65 | addResidentsVC.modalPresentationStyle = .overCurrentContext |
66 | addResidentsVC.modalTransitionStyle = .crossDissolve | 66 | addResidentsVC.modalTransitionStyle = .crossDissolve |
67 | addResidentsVC.delegate = self | 67 | addResidentsVC.delegate = self |
@@ -79,12 +79,8 @@ extension ResidentsViewController: UITableViewDelegate, UITableViewDataSource { | @@ -79,12 +79,8 @@ extension ResidentsViewController: UITableViewDelegate, UITableViewDataSource { | ||
79 | guard let cell = tableView.dequeueReusableCell(withIdentifier: ResidentTableViewCell.id, for: indexPath) as? ResidentTableViewCell else { return UITableViewCell() } | 79 | guard let cell = tableView.dequeueReusableCell(withIdentifier: ResidentTableViewCell.id, for: indexPath) as? ResidentTableViewCell else { return UITableViewCell() } |
80 | cell.serialNumberLabel.text = "\(indexPath.row + 1)" | 80 | cell.serialNumberLabel.text = "\(indexPath.row + 1)" |
81 | let data = myData[indexPath.row] | 81 | let data = myData[indexPath.row] |
82 | - cell.model(data) | ||
83 | - | ||
84 | - cell.removeCellButton.addTarget(self, action: #selector(removeCell(_:)), for: .touchUpInside) | ||
85 | - cell.managerButton.addTarget(self, action: #selector(didTapManagerButton), for: .touchUpInside) | ||
86 | - cell.hiddenButton.addTarget(self, action: #selector(didTapManagerButton), for: .touchUpInside) | ||
87 | - cell.heartButton.addTarget(self, action: #selector(didTapManagerButton), for: .touchUpInside) | 82 | + cell.model = data |
83 | + cell.delegate = self | ||
88 | return cell | 84 | return cell |
89 | } | 85 | } |
90 | 86 | ||
@@ -104,8 +100,33 @@ extension ResidentsViewController: UITableViewDelegate, UITableViewDataSource { | @@ -104,8 +100,33 @@ extension ResidentsViewController: UITableViewDelegate, UITableViewDataSource { | ||
104 | } | 100 | } |
105 | //MARK: - ResidentSavable delegate | 101 | //MARK: - ResidentSavable delegate |
106 | extension ResidentsViewController: ResidentSavable { | 102 | extension ResidentsViewController: ResidentSavable { |
107 | - func save(_ data: [ResidentModel]) { | ||
108 | - self.myData = data | 103 | + func save(_ data: ResidentModel) { |
104 | + self.myData.append(data) | ||
109 | mainView.tableView.reloadData() | 105 | mainView.tableView.reloadData() |
110 | } | 106 | } |
111 | } | 107 | } |
108 | + | ||
109 | +//MARK: residentcell delegate | ||
110 | +extension ResidentsViewController: ResidentTableViewCellDelegate { | ||
111 | + func didRemoveButtonTapped(cell: ResidentTableViewCell) { | ||
112 | + guard let model = cell.model else { | ||
113 | + return | ||
114 | + } | ||
115 | + myData.removeAll(where: {$0.name == model.name}) | ||
116 | + mainView.tableView.reloadData() | ||
117 | + } | ||
118 | + | ||
119 | + func didManagerButtonTapped(cell: ResidentTableViewCell) { | ||
120 | + print("") | ||
121 | + } | ||
122 | + | ||
123 | + func didHiddenButtonTapped(cell: ResidentTableViewCell) { | ||
124 | + print("") | ||
125 | + } | ||
126 | + | ||
127 | + func didHeardButtonTapped(cell: ResidentTableViewCell) { | ||
128 | + print("") | ||
129 | + } | ||
130 | + | ||
131 | + | ||
132 | +} |
@@ -10,11 +10,11 @@ import UIKit | @@ -10,11 +10,11 @@ import UIKit | ||
10 | 10 | ||
11 | class VerificationView: UIView { | 11 | class VerificationView: UIView { |
12 | var isShow: Bool = false | 12 | var isShow: Bool = false |
13 | - var isChanged: Bool = false { | ||
14 | - didSet { | ||
15 | - handleUI(isChanged) | ||
16 | - } | ||
17 | - } | 13 | +// var isChanged: Bool = false { |
14 | +// didSet { | ||
15 | +// handleUI(isChanged) | ||
16 | +// } | ||
17 | +// } | ||
18 | var logoImage: UIImageView = { | 18 | var logoImage: UIImageView = { |
19 | var view = UIImageView() | 19 | var view = UIImageView() |
20 | view.image = UIImage(named: .Image.interQR) | 20 | view.image = UIImage(named: .Image.interQR) |
@@ -326,29 +326,11 @@ class VerificationView: UIView { | @@ -326,29 +326,11 @@ class VerificationView: UIView { | ||
326 | } | 326 | } |
327 | 327 | ||
328 | func handleUI(_ isChanged: Bool) { | 328 | func handleUI(_ isChanged: Bool) { |
329 | - switch isChanged { | ||
330 | - case emailButton.isSelected : | ||
331 | - emailTextField.isHidden = false | ||
332 | - phoneTextField.isHidden = true | ||
333 | - phoneNumberButton.isSelected = false | ||
334 | - emailButton.isSelected = true | ||
335 | - verificationDescriptionLabel.text = .Text.verificationCodeWillBeSentToYourEmail | ||
336 | - enterChosenAuthenticatorLabel.text = .Text.enterYourEmailAddress | ||
337 | - emailTextField.text = "" | ||
338 | - emailTextField.placeholder = .Text.exampleEmail | ||
339 | - showPickerButton.isHidden = true | ||
340 | - case phoneNumberButton.isSelected : | ||
341 | - emailTextField.isHidden = true | ||
342 | - phoneTextField.isHidden = false | ||
343 | - phoneNumberButton.isSelected = true | ||
344 | - emailButton.isSelected = false | ||
345 | - phoneNumberButton.image(for: .normal) | ||
346 | - verificationDescriptionLabel.text = .Text.verificationCodeWillBeSentToYourNumber | ||
347 | - enterChosenAuthenticatorLabel.text = .Text.enterYourPhoneNumber | ||
348 | - emailTextField.text = .Text.plusOne | ||
349 | - showPickerButton.isHidden = false | ||
350 | - default : | ||
351 | - return | ||
352 | - } | 329 | + emailTextField.isHidden = !isChanged |
330 | + phoneTextField.isHidden = isChanged | ||
331 | + verificationDescriptionLabel.text = isChanged ? .Text.verificationCodeWillBeSentToYourEmail : .Text.verificationCodeWillBeSentToYourNumber | ||
332 | + enterChosenAuthenticatorLabel.text = isChanged ? .Text.enterYourEmailAddress : .Text.enterYourPhoneNumber | ||
333 | + emailTextField.text = isChanged ? "" : .Text.plusOne | ||
334 | + showPickerButton.isHidden = isChanged | ||
353 | } | 335 | } |
354 | } | 336 | } |
@@ -80,8 +80,19 @@ extension VerificationViewController { | @@ -80,8 +80,19 @@ extension VerificationViewController { | ||
80 | //MARK: targets | 80 | //MARK: targets |
81 | extension VerificationViewController { | 81 | extension VerificationViewController { |
82 | @objc private func didCheckboxTapped(_ sender: Checkbox) { | 82 | @objc private func didCheckboxTapped(_ sender: Checkbox) { |
83 | - mainView.isChanged ? mainView.handleUI(true) : mainView.handleUI(false) | ||
84 | - mainView.isChanged.toggle() | 83 | + switch sender { |
84 | + case mainView.emailButton : | ||
85 | + sender.isSelected = true | ||
86 | + mainView.phoneNumberButton.isSelected = false | ||
87 | + mainView.handleUI(true) | ||
88 | + case mainView.phoneNumberButton: | ||
89 | + sender.isSelected = true | ||
90 | + mainView.emailButton.isSelected = false | ||
91 | + mainView.handleUI(false) | ||
92 | + default: | ||
93 | + return | ||
94 | + } | ||
95 | +// mainView.handleUI(mainView.emailButton.isSelected) | ||
85 | } | 96 | } |
86 | 97 | ||
87 | @objc private func didshowPickerButtonTapped(_ sender: UIButton) { | 98 | @objc private func didshowPickerButtonTapped(_ sender: UIButton) { |
@@ -9,6 +9,9 @@ import Foundation | @@ -9,6 +9,9 @@ import Foundation | ||
9 | import Alamofire | 9 | import Alamofire |
10 | 10 | ||
11 | class AuthNetworkManager { | 11 | class AuthNetworkManager { |
12 | + | ||
13 | + static let share = AuthNetworkManager() | ||
14 | + | ||
12 | var networkToken: String? { | 15 | var networkToken: String? { |
13 | get { | 16 | get { |
14 | // обязательно ключи на подобии NETWORK_TOKEN выносить в Constants.networkTokenKey | 17 | // обязательно ключи на подобии NETWORK_TOKEN выносить в Constants.networkTokenKey |
@@ -19,7 +19,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { | @@ -19,7 +19,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { | ||
19 | let viewController = VerificationViewController() | 19 | let viewController = VerificationViewController() |
20 | let homeVC = HomeViewController() | 20 | let homeVC = HomeViewController() |
21 | let residentVC = ResidentsViewController() | 21 | let residentVC = ResidentsViewController() |
22 | - let navigation = UINavigationController(rootViewController: residentVC) | 22 | + let navigation = UINavigationController(rootViewController: viewController) |
23 | navigation.isNavigationBarHidden = true | 23 | navigation.isNavigationBarHidden = true |
24 | window?.rootViewController = navigation | 24 | window?.rootViewController = navigation |
25 | window?.makeKeyAndVisible() | 25 | window?.makeKeyAndVisible() |
1 | + |
@@ -4,20 +4,27 @@ | @@ -4,20 +4,27 @@ | ||
4 | <dict> | 4 | <dict> |
5 | <key>SchemeUserState</key> | 5 | <key>SchemeUserState</key> |
6 | <dict> | 6 | <dict> |
7 | - <key>Pods-InterQR-Internship.xcscheme</key> | 7 | + <key>Alamofire.xcscheme</key> |
8 | <dict> | 8 | <dict> |
9 | <key>isShown</key> | 9 | <key>isShown</key> |
10 | <false/> | 10 | <false/> |
11 | <key>orderHint</key> | 11 | <key>orderHint</key> |
12 | <integer>0</integer> | 12 | <integer>0</integer> |
13 | </dict> | 13 | </dict> |
14 | - <key>SnapKit.xcscheme</key> | 14 | + <key>Pods-InterQR-Internship.xcscheme</key> |
15 | <dict> | 15 | <dict> |
16 | <key>isShown</key> | 16 | <key>isShown</key> |
17 | <false/> | 17 | <false/> |
18 | <key>orderHint</key> | 18 | <key>orderHint</key> |
19 | <integer>1</integer> | 19 | <integer>1</integer> |
20 | </dict> | 20 | </dict> |
21 | + <key>SnapKit.xcscheme</key> | ||
22 | + <dict> | ||
23 | + <key>isShown</key> | ||
24 | + <false/> | ||
25 | + <key>orderHint</key> | ||
26 | + <integer>2</integer> | ||
27 | + </dict> | ||
21 | </dict> | 28 | </dict> |
22 | <key>SuppressBuildableAutocreation</key> | 29 | <key>SuppressBuildableAutocreation</key> |
23 | <dict/> | 30 | <dict/> |
Please
register
or
login
to post a comment