From db5b27720b9998f85b933363efaa1430ff95b050 Mon Sep 17 00:00:00 2001 From: grenos Date: Sat, 4 Apr 2020 13:20:57 +0200 Subject: [PATCH] item info vc subclass and UserInfoVC --- GHFollowers.xcodeproj/project.pbxproj | 18 ++++++++++- .../UserInterfaceState.xcuserstate | Bin 64736 -> 70600 bytes GHFollowers/Components/Buttons/GFButton.swift | 10 +++++- .../ItemInfoVCs/GFFollowerItemVC.swift | 30 ++++++++++++++++++ .../{ => ItemInfoVCs}/GFItemInfoVC.swift | 17 +++++++++- .../ItemInfoVCs/GFRepoItemVC.swift | 30 ++++++++++++++++++ GHFollowers/Screens/UserInfoVC.swift | 7 ++-- 7 files changed, 105 insertions(+), 7 deletions(-) create mode 100644 GHFollowers/Components/ViewControllers/ItemInfoVCs/GFFollowerItemVC.swift rename GHFollowers/Components/ViewControllers/{ => ItemInfoVCs}/GFItemInfoVC.swift (84%) create mode 100644 GHFollowers/Components/ViewControllers/ItemInfoVCs/GFRepoItemVC.swift diff --git a/GHFollowers.xcodeproj/project.pbxproj b/GHFollowers.xcodeproj/project.pbxproj index 91a0c9e..7a81a70 100644 --- a/GHFollowers.xcodeproj/project.pbxproj +++ b/GHFollowers.xcodeproj/project.pbxproj @@ -9,6 +9,8 @@ /* Begin PBXBuildFile section */ 7D7C665224388F0900733687 /* GFItemInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D7C665124388F0900733687 /* GFItemInfoView.swift */; }; 7D7C6654243897F300733687 /* GFItemInfoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D7C6653243897F300733687 /* GFItemInfoVC.swift */; }; + 7D7C665624389E0600733687 /* GFRepoItemVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D7C665524389E0600733687 /* GFRepoItemVC.swift */; }; + 7D7C66582438A22C00733687 /* GFFollowerItemVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D7C66572438A22C00733687 /* GFFollowerItemVC.swift */; }; 7D98BB282428FE73006C53E9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D98BB272428FE73006C53E9 /* AppDelegate.swift */; }; 7D98BB2A2428FE73006C53E9 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D98BB292428FE73006C53E9 /* SceneDelegate.swift */; }; 7D98BB312428FE75006C53E9 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7D98BB302428FE75006C53E9 /* Assets.xcassets */; }; @@ -40,6 +42,8 @@ /* Begin PBXFileReference section */ 7D7C665124388F0900733687 /* GFItemInfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GFItemInfoView.swift; sourceTree = ""; }; 7D7C6653243897F300733687 /* GFItemInfoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GFItemInfoVC.swift; sourceTree = ""; }; + 7D7C665524389E0600733687 /* GFRepoItemVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GFRepoItemVC.swift; sourceTree = ""; }; + 7D7C66572438A22C00733687 /* GFFollowerItemVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GFFollowerItemVC.swift; sourceTree = ""; }; 7D98BB242428FE73006C53E9 /* GHFollowers.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GHFollowers.app; sourceTree = BUILT_PRODUCTS_DIR; }; 7D98BB272428FE73006C53E9 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7D98BB292428FE73006C53E9 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; @@ -81,6 +85,16 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 7D7C66592438A2B300733687 /* ItemInfoVCs */ = { + isa = PBXGroup; + children = ( + 7D7C6653243897F300733687 /* GFItemInfoVC.swift */, + 7D7C665524389E0600733687 /* GFRepoItemVC.swift */, + 7D7C66572438A22C00733687 /* GFFollowerItemVC.swift */, + ); + path = ItemInfoVCs; + sourceTree = ""; + }; 7D98BB1B2428FE73006C53E9 = { isa = PBXGroup; children = ( @@ -238,9 +252,9 @@ 7DA45F7D2433DCE700AB426F /* ViewControllers */ = { isa = PBXGroup; children = ( + 7D7C66592438A2B300733687 /* ItemInfoVCs */, 7D98BB49242A55ED006C53E9 /* GFAlertVC.swift */, 7DA45F842433FAF800AB426F /* GFUserInfoheaderVC.swift */, - 7D7C6653243897F300733687 /* GFItemInfoVC.swift */, ); path = ViewControllers; sourceTree = ""; @@ -327,6 +341,7 @@ 7DA45F71242BC5C100AB426F /* GFAvatarImageView.swift in Sources */, 7D98BB48242A5507006C53E9 /* GFBodyLabel.swift in Sources */, 7DA45F7C2430E3C900AB426F /* UserInfoVC.swift in Sources */, + 7D7C665624389E0600733687 /* GFRepoItemVC.swift in Sources */, 7DA45F64242B73E600AB426F /* Follower.swift in Sources */, 7D98BB46242A52B7006C53E9 /* GFTitleLabel.swift in Sources */, 7D98BB4C242A7327006C53E9 /* UIViewController+EXT.swift in Sources */, @@ -334,6 +349,7 @@ 7D98BB44242A29B4006C53E9 /* FollowerListVC.swift in Sources */, 7DA45F6C242BAEEC00AB426F /* ErrorMessage.swift in Sources */, 7D7C6654243897F300733687 /* GFItemInfoVC.swift in Sources */, + 7D7C66582438A22C00733687 /* GFFollowerItemVC.swift in Sources */, 7DA45F73242E332000AB426F /* UIHelper.swift in Sources */, 7DA45F69242B831900AB426F /* NetworkManager.swift in Sources */, 7D98BB282428FE73006C53E9 /* AppDelegate.swift in Sources */, diff --git a/GHFollowers.xcodeproj/project.xcworkspace/xcuserdata/vasilis.xcuserdatad/UserInterfaceState.xcuserstate b/GHFollowers.xcodeproj/project.xcworkspace/xcuserdata/vasilis.xcuserdatad/UserInterfaceState.xcuserstate index 62da82d5509d842b3e01415273b6b293ae9e19d4..8736c592b5ae3e799d84f34b3ba8aacb481a5981 100644 GIT binary patch delta 34544 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 bit%&*tM*Qs^uN0>`2V}U|BDkQJfHD@mJf6R delta 31509 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 z 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 L_`m%Bd6D%$S{;-+ diff --git a/GHFollowers/Components/Buttons/GFButton.swift b/GHFollowers/Components/Buttons/GFButton.swift index 8e225ad..0337a43 100644 --- a/GHFollowers/Components/Buttons/GFButton.swift +++ b/GHFollowers/Components/Buttons/GFButton.swift @@ -45,6 +45,14 @@ class GFButton: UIButton { // dynamic font (app responds to global text size changes) titleLabel?.font = UIFont.preferredFont(forTextStyle: .headline) translatesAutoresizingMaskIntoConstraints = false - } + + + + // this is to configure our button after the first init of the button + func set(backgroundColor: UIColor, title: String) { + self.backgroundColor = backgroundColor + setTitle(title, for: .normal) + } + } diff --git a/GHFollowers/Components/ViewControllers/ItemInfoVCs/GFFollowerItemVC.swift b/GHFollowers/Components/ViewControllers/ItemInfoVCs/GFFollowerItemVC.swift new file mode 100644 index 0000000..43ca611 --- /dev/null +++ b/GHFollowers/Components/ViewControllers/ItemInfoVCs/GFFollowerItemVC.swift @@ -0,0 +1,30 @@ +// +// GFFollowerItemVC.swift +// GHFollowers +// +// Created by Vasileios Gkreen on 04/04/2020. +// Copyright © 2020 Vasileios Gkreen. All rights reserved. +// + +import UIKit + +// THIS CLASS IS A SUBLCLASS OF GFItemInfoVC, IT INHERITS ALL OF ITS PROPERTIES + +class GFFollowerItemVC: GFItemInfoVC { + + override func viewDidLoad() { + super.viewDidLoad() + configureItems() + + } + + private func configureItems() { + // 1) get itemInfoView1 which is declarered in the superClass GFItemInfoVC + // 2) itemInfoView1 is GFItemInfoView() created to hold the symbols and github info + // 3) set is a func created in GFItemInfoView to controlls what info to show based on what we pass with itemInfoType + // 4) the user object is passed from the superClass, which we pass from the UserInfoVC screen + itemInfoView1.set(itemInfoType: .followers, withCount: user.followers) + itemInfoView2.set(itemInfoType: .following, withCount: user.following) + actionButton.set(backgroundColor: .systemGreen, title: "Get Followers") + } +} diff --git a/GHFollowers/Components/ViewControllers/GFItemInfoVC.swift b/GHFollowers/Components/ViewControllers/ItemInfoVCs/GFItemInfoVC.swift similarity index 84% rename from GHFollowers/Components/ViewControllers/GFItemInfoVC.swift rename to GHFollowers/Components/ViewControllers/ItemInfoVCs/GFItemInfoVC.swift index 6c716e6..1cf3f32 100644 --- a/GHFollowers/Components/ViewControllers/GFItemInfoVC.swift +++ b/GHFollowers/Components/ViewControllers/ItemInfoVCs/GFItemInfoVC.swift @@ -14,7 +14,22 @@ class GFItemInfoVC: UIViewController { let itemInfoView1 = GFItemInfoView() let itemInfoView2 = GFItemInfoView() let actionButton = GFButton() - + + var user: User! + + // create a custom initializer + // so when we initialize the VC we can pass the User object + init(user: User) { + super.init(nibName: nil, bundle: nil) + self.user = user + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + override func viewDidLoad() { super.viewDidLoad() configureBackgroundView() diff --git a/GHFollowers/Components/ViewControllers/ItemInfoVCs/GFRepoItemVC.swift b/GHFollowers/Components/ViewControllers/ItemInfoVCs/GFRepoItemVC.swift new file mode 100644 index 0000000..23d589c --- /dev/null +++ b/GHFollowers/Components/ViewControllers/ItemInfoVCs/GFRepoItemVC.swift @@ -0,0 +1,30 @@ +// +// GFRepoItemVC.swift +// GHFollowers +// +// Created by Vasileios Gkreen on 04/04/2020. +// Copyright © 2020 Vasileios Gkreen. All rights reserved. +// + +import UIKit + +// THIS CLASS IS A SUBLCLASS OF GFItemInfoVC, IT INHERITS ALL OF ITS PROPERTIES + +class GFRepoItemVC: GFItemInfoVC { + + override func viewDidLoad() { + super.viewDidLoad() + configureItems() + + } + + private func configureItems() { + // 1) get itemInfoView1 which is declarered in the superClass GFItemInfoVC + // 2) itemInfoView1 is GFItemInfoView() created to hold the symbols and github info + // 3) set is a func created in GFItemInfoView to controlls what info to show based on what we pass with itemInfoType + // 4) the user object is passed from the superClass, which we pass from the UserInfoVC screen + itemInfoView1.set(itemInfoType: .repos, withCount: user.publicRepos) + itemInfoView2.set(itemInfoType: .gists, withCount: user.publicGists) + actionButton.set(backgroundColor: .systemPurple, title: "GitHub Profile") + } +} diff --git a/GHFollowers/Screens/UserInfoVC.swift b/GHFollowers/Screens/UserInfoVC.swift index db21a40..22d7fc8 100644 --- a/GHFollowers/Screens/UserInfoVC.swift +++ b/GHFollowers/Screens/UserInfoVC.swift @@ -48,9 +48,10 @@ class UserInfoVC: UIViewController { switch result { case .success(let user): - DispatchQueue.main.async { self.add(childVC: GFUserInfoheaderVC(user: user), to: self.headerView) + self.add(childVC: GFRepoItemVC(user: user), to: self.itemViewOne) + self.add(childVC: GFFollowerItemVC(user: user), to: self.itemViewTwo) } case .failure(let error): @@ -77,9 +78,7 @@ class UserInfoVC: UIViewController { ]) } - itemViewOne.backgroundColor = .systemPink - itemViewTwo.backgroundColor = .systemBlue - + NSLayoutConstraint.activate([ headerView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), headerView.heightAnchor.constraint(equalToConstant: 180),