Skip to content

Commit

Permalink
Extract twitter delegate into a separate file since this is a shared …
Browse files Browse the repository at this point in the history
…functionality now
  • Loading branch information
zats committed Mar 1, 2018
1 parent cc957c2 commit f3dc804
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 25 deletions.
12 changes: 12 additions & 0 deletions trySwift.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
499CCFF21CC2E0F4007A5BBB /* UIViewControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 499CCFF11CC2E0F4007A5BBB /* UIViewControllerExtension.swift */; };
49F7B2811E8475F900F09768 /* SplitViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49F7B2801E8475F900F09768 /* SplitViewController.swift */; };
4D498DB1B98D4B496FDBB7AA /* Pods_try__Extension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD2E9D5733A6E1B6E10AFEEF /* Pods_try__Extension.framework */; };
5CDB20792048952A00C3E0D3 /* TwitterFollowDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CDB20782048952A00C3E0D3 /* TwitterFollowDelegate.swift */; };
7AD1E19C80B78BB08E3DF079 /* Pods_trySwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 620220ABCCCDF47FDAF48B67 /* Pods_trySwift.framework */; };
EAFE1C26E49EFABF83487BDC /* Pods_try__Today.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 24718BF11477753FCD47A7A8 /* Pods_try__Today.framework */; };
FA0E2B4F1E63B90400B40814 /* SessionDetailInterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA0E2B4E1E63B90400B40814 /* SessionDetailInterfaceController.swift */; };
Expand Down Expand Up @@ -193,6 +194,7 @@
499CCFF11CC2E0F4007A5BBB /* UIViewControllerExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewControllerExtension.swift; sourceTree = "<group>"; };
49F7B2801E8475F900F09768 /* SplitViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SplitViewController.swift; sourceTree = "<group>"; };
58F81AD508535BD405F98215 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
5CDB20782048952A00C3E0D3 /* TwitterFollowDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TwitterFollowDelegate.swift; sourceTree = "<group>"; };
5FA07FBC036240AEF8B7C739 /* Pods-trySwift.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-trySwift.release.xcconfig"; path = "Pods/Target Support Files/Pods-trySwift/Pods-trySwift.release.xcconfig"; sourceTree = "<group>"; };
620220ABCCCDF47FDAF48B67 /* Pods_trySwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_trySwift.framework; sourceTree = BUILT_PRODUCTS_DIR; };
6C1F9C27BCD8099DCA758F7A /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; };
Expand Down Expand Up @@ -381,6 +383,14 @@
name = Frameworks;
sourceTree = "<group>";
};
5CDB20772048951F00C3E0D3 /* Twitter */ = {
isa = PBXGroup;
children = (
5CDB20782048952A00C3E0D3 /* TwitterFollowDelegate.swift */,
);
path = Twitter;
sourceTree = "<group>";
};
F413680C9BA29129B4319377 /* Pods */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -449,6 +459,7 @@
FA39E8CB1C6AF89D0074B6BE /* Utilities */ = {
isa = PBXGroup;
children = (
5CDB20772048951F00C3E0D3 /* Twitter */,
FA39E8ED1C6C034B0074B6BE /* UIColorExtension.swift */,
499CCFF11CC2E0F4007A5BBB /* UIViewControllerExtension.swift */,
FA3A1CB51D68E1950042F8DD /* WatchSessionManager.swift */,
Expand Down Expand Up @@ -1123,6 +1134,7 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
5CDB20792048952A00C3E0D3 /* TwitterFollowDelegate.swift in Sources */,
499BD62A1D05910200E74061 /* Twitter.swift in Sources */,
FA39E90F1C6C81870074B6BE /* SponsorsViewController.swift in Sources */,
FA36B7071E5DA3970022E6A9 /* DateFormatterExtension.swift in Sources */,
Expand Down
35 changes: 35 additions & 0 deletions trySwift/Twitter/TwitterFollowDelegate.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
//
// TwitterFollowDelegate.swift
// trySwift
//
// Created by Sash Zats on 3/2/18.
// Copyright © 2018 NatashaTheRobot. All rights reserved.
//

import UIKit

protocol TwitterFollowDelegate: class {
func followUser(_ username: String)
}

extension UIViewController: TwitterFollowDelegate {

func followUser(_ username: String) {
var applicationOpened = false
let application = UIApplication.shared
for twitterURL in Twitter.urls(forUsername: username) {
if let url = URL(string: twitterURL) , application.canOpenURL(url) && !applicationOpened {
application.open(url, options: [String:Any](), completionHandler: nil)
applicationOpened = true
break
}
}

if !applicationOpened {
if let twitterURL = URL(string: "https://twitter.com/\(username)") {
openSafariViewController(withURL: twitterURL)
}
}
}
}

4 changes: 0 additions & 4 deletions trySwift/TwitterFollowTableViewCell.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,6 @@

import UIKit

protocol TwitterFollowDelegate: class {
func followUser(_ username: String)
}

class TwitterFollowTableViewCell: UITableViewCell {

@IBOutlet weak var followButton: UIButton!
Expand Down
21 changes: 0 additions & 21 deletions trySwift/UIViewControllerExtension.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,27 +23,6 @@ extension UIViewController: SFSafariViewControllerDelegate {
}
}

extension UIViewController: TwitterFollowDelegate {

func followUser(_ username: String) {
var applicationOpened = false
let application = UIApplication.shared
for twitterURL in Twitter.urls(forUsername: username) {
if let url = URL(string: twitterURL) , application.canOpenURL(url) && !applicationOpened {
application.open(url, options: [String:Any](), completionHandler: nil)
applicationOpened = true
break
}
}

if !applicationOpened {
if let twitterURL = URL(string: "https://twitter.com/\(username)") {
openSafariViewController(withURL: twitterURL)
}
}
}
}

extension UIViewController: MFMailComposeViewControllerDelegate {

func sendMail(withConfiguration configuration: MailConfiguration) {
Expand Down

0 comments on commit f3dc804

Please sign in to comment.