From e9aecbebf29cae9f992a2073c4d2f7ed6723be0a Mon Sep 17 00:00:00 2001 From: Yishi Lin Date: Sun, 23 Sep 2018 23:56:42 +0800 Subject: [PATCH] Move passcode extension display to passKit --- pass.xcodeproj/project.pbxproj | 8 +++---- .../AppIcon.appiconset/Contents.json | 21 +++++++++++++++++++ passExtension/PasscodeExtensionDisplay.swift | 9 ++++---- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/pass.xcodeproj/project.pbxproj b/pass.xcodeproj/project.pbxproj index 2fb48bc..b863d20 100644 --- a/pass.xcodeproj/project.pbxproj +++ b/pass.xcodeproj/project.pbxproj @@ -19,6 +19,7 @@ A2367BA01EF0387000C8FE8B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A2367B9F1EF0387000C8FE8B /* Assets.xcassets */; }; A239F51F2157B72700576CBF /* StringExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A239F51E2157B72700576CBF /* StringExtension.swift */; }; A239F5212157B75E00576CBF /* FileManagerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A239F5202157B75E00576CBF /* FileManagerExtension.swift */; }; + A239F5612157EEB000576CBF /* PasscodeExtensionDisplay.swift in Sources */ = {isa = PBXBuildFile; fileRef = A28C66671EF10EC900A398A1 /* PasscodeExtensionDisplay.swift */; }; A26075811EEC6F34005DB03E /* passKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A26075781EEC6F34005DB03E /* passKit.framework */; }; A26075881EEC6F34005DB03E /* passKitTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A26075871EEC6F34005DB03E /* passKitTests.swift */; }; A260758A1EEC6F34005DB03E /* passKit.h in Headers */ = {isa = PBXBuildFile; fileRef = A260757A1EEC6F34005DB03E /* passKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -31,7 +32,6 @@ A26700371EEC475600176B8A /* passProcessor.js in Resources */ = {isa = PBXBuildFile; fileRef = A26700351EEC475600176B8A /* passProcessor.js */; }; A2802BF91E70813A00879216 /* SliderTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A2802BF71E70813A00879216 /* SliderTableViewCell.swift */; }; A2802BFA1E70813A00879216 /* SliderTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = A2802BF81E70813A00879216 /* SliderTableViewCell.xib */; }; - A28C66681EF10EC900A398A1 /* PasscodeExtensionDisplay.swift in Sources */ = {isa = PBXBuildFile; fileRef = A28C66671EF10EC900A398A1 /* PasscodeExtensionDisplay.swift */; }; A2A61C131EEF90CB00CFE063 /* Base32.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A262A58C1E68749C006B0890 /* Base32.framework */; }; A2A61C151EEF90CB00CFE063 /* KeychainAccess.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCA742D91E599ED400D54E16 /* KeychainAccess.framework */; }; A2A61C161EEF90CB00CFE063 /* ObjectiveGit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC1208571E35EBE60042942E /* ObjectiveGit.framework */; }; @@ -196,7 +196,7 @@ A26700351EEC475600176B8A /* passProcessor.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = passProcessor.js; sourceTree = ""; }; A2802BF71E70813A00879216 /* SliderTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SliderTableViewCell.swift; sourceTree = ""; }; A2802BF81E70813A00879216 /* SliderTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SliderTableViewCell.xib; sourceTree = ""; }; - A28C66671EF10EC900A398A1 /* PasscodeExtensionDisplay.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PasscodeExtensionDisplay.swift; sourceTree = ""; }; + A28C66671EF10EC900A398A1 /* PasscodeExtensionDisplay.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PasscodeExtensionDisplay.swift; path = ../passExtension/PasscodeExtensionDisplay.swift; sourceTree = ""; }; A2A61C0C1EEF8DFE00CFE063 /* libPods-passExtension.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libPods-passExtension.a"; path = "../../Library/Developer/Xcode/DerivedData/pass-fwlmfsjroyvbfhdyqmglrwfhvjli/Build/Products/Debug-iphonesimulator/libPods-passExtension.a"; sourceTree = ""; }; A2A61C101EEF8E3500CFE063 /* libPods-passKit.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libPods-passKit.a"; path = "Pods/../build/Debug-iphoneos/libPods-passKit.a"; sourceTree = ""; }; A2A61C1F1EEFABAD00CFE063 /* UtilsExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UtilsExtension.swift; sourceTree = ""; }; @@ -333,7 +333,6 @@ isa = PBXGroup; children = ( A2A61C2B1EEFDF3300CFE063 /* ExtensionViewController.swift */, - A28C66671EF10EC900A398A1 /* PasscodeExtensionDisplay.swift */, ); name = Controllers; sourceTree = ""; @@ -388,6 +387,7 @@ children = ( A2C532BD201E5AA100DB9F53 /* PasscodeLockPresenter.swift */, A2C532BC201E5AA000DB9F53 /* PasscodeLockViewController.swift */, + A28C66671EF10EC900A398A1 /* PasscodeExtensionDisplay.swift */, ); name = Controllers; sourceTree = ""; @@ -972,6 +972,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + A239F5612157EEB000576CBF /* PasscodeExtensionDisplay.swift in Sources */, A2BEC1BB207D2EFE00F3051C /* UIViewExtension.swift in Sources */, A2C532BB201E5A9600DB9F53 /* PasscodeLock.swift in Sources */, A2F4E2151EED800F0011986E /* Password.swift in Sources */, @@ -1007,7 +1008,6 @@ files = ( A2A61C2C1EEFDF3300CFE063 /* ExtensionViewController.swift in Sources */, A2168A7F1EFD40D5005EA873 /* OnePasswordExtensionConstants.swift in Sources */, - A28C66681EF10EC900A398A1 /* PasscodeExtensionDisplay.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/pass/Assets.xcassets/AppIcon.appiconset/Contents.json b/pass/Assets.xcassets/AppIcon.appiconset/Contents.json index 0fa478c..17a5f8a 100644 --- a/pass/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/pass/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -188,6 +188,20 @@ "role" : "appLauncher", "subtype" : "38mm" }, + { + "size" : "44x44", + "idiom" : "watch", + "scale" : "2x", + "role" : "appLauncher", + "subtype" : "40mm" + }, + { + "size" : "50x50", + "idiom" : "watch", + "scale" : "2x", + "role" : "appLauncher", + "subtype" : "44mm" + }, { "size" : "86x86", "idiom" : "watch", @@ -204,6 +218,13 @@ "role" : "quickLook", "subtype" : "42mm" }, + { + "size" : "108x108", + "idiom" : "watch", + "scale" : "2x", + "role" : "quickLook", + "subtype" : "44mm" + }, { "size" : "1024x1024", "idiom" : "watch-marketing", diff --git a/passExtension/PasscodeExtensionDisplay.swift b/passExtension/PasscodeExtensionDisplay.swift index 24258af..0878df6 100644 --- a/passExtension/PasscodeExtensionDisplay.swift +++ b/passExtension/PasscodeExtensionDisplay.swift @@ -7,7 +7,6 @@ // import Foundation -import passKit // cancel means cancel the extension class PasscodeLockViewControllerForExtension: PasscodeLockViewController { @@ -26,12 +25,12 @@ class PasscodeLockViewControllerForExtension: PasscodeLockViewController { } } -class PasscodeExtensionDisplay { +open class PasscodeExtensionDisplay { private var isPasscodePresented = false private let passcodeLockVC: PasscodeLockViewControllerForExtension private let extensionContext: NSExtensionContext? - init(extensionContext: NSExtensionContext?) { + public init(extensionContext: NSExtensionContext?) { self.extensionContext = extensionContext passcodeLockVC = PasscodeLockViewControllerForExtension(extensionContext: extensionContext) passcodeLockVC.dismissCompletionCallback = { [weak self] in @@ -41,7 +40,7 @@ class PasscodeExtensionDisplay { } // present the passcode lock view if passcode is set and the view controller is not presented - func presentPasscodeLockIfNeeded(_ extensionVC: ExtensionViewController) { + public func presentPasscodeLockIfNeeded(_ extensionVC: UIViewController) { guard PasscodeLock.shared.hasPasscode && !isPasscodePresented == true else { return } @@ -49,7 +48,7 @@ class PasscodeExtensionDisplay { extensionVC.present(passcodeLockVC, animated: true, completion: nil) } - func dismiss(animated: Bool = true) { + public func dismiss(animated: Bool = true) { isPasscodePresented = false } }