Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
56dac4c
set font color to blue
proth Dec 12, 2016
a2dce89
using graphics instead of custom drawn buttons
proth Dec 15, 2016
34d6d0b
changed tint color
proth Dec 15, 2016
9ef5fe1
Adding new variable to make tintColor customise. Lots of improvements…
Jan 11, 2017
79c8657
Customising font for passcode view. STRATODRVE-1146
Jan 11, 2017
1f60245
Minor improvements.
Jan 12, 2017
e04954b
Merge pull request #2 from smartmobilefactory/feature/STRATODRVE-1146
proth Jan 12, 2017
455dd20
Minor Improvement
Jan 12, 2017
9943a0e
Merge pull request #3 from smartmobilefactory/feature/STRATODRVE-1146
proth Jan 12, 2017
f762d3d
Release version 1.0.2
Jan 13, 2017
c9f922e
Release version 1.0.3
Jan 13, 2017
e824e72
Merge pull request #4 from smartmobilefactory/pod
proth Feb 7, 2017
2af8a46
included resources
proth Feb 9, 2017
ab17b8b
Adding tint color for touch id button
Mar 3, 2017
2a472a8
Merge pull request #5 from smartmobilefactory/feature/MAGENTACLD-306
proth Mar 3, 2017
2a68e3d
version bump
proth Mar 3, 2017
d8ef94a
Allow to pass new configuration when presenting passcode
mtet88 Apr 20, 2017
d2da945
Merge pull request #7 from smartmobilefactory/feature/MAGENTACLD-718
proth Apr 20, 2017
d3c3e48
Pod Release 1.0.8
proth Apr 20, 2017
fa73ffa
Send notification when maximum failed attempt reached
mtet88 Jun 16, 2017
28299e9
Merge pull request #8 from smartmobilefactory/feature/MAGENTACLD-893
mtet88 Jun 16, 2017
924a0e5
Merge pull request #9 from smartmobilefactory/development
proth Jun 16, 2017
7ce6eca
Pod Release 1.0.9
proth Jun 16, 2017
2405fd0
made passcodeLockWindow public
proth Jun 16, 2017
57a3381
Pod Release 1.0.10
proth Jun 16, 2017
480f18d
swift 3 migration
proth Aug 15, 2017
5d51731
fixed compiler error
proth Aug 15, 2017
97bb450
pod release 2.0.1
proth Aug 16, 2017
190275b
fixed window level
Jun 19, 2018
ef93584
Merge pull request #10 from smartmobilefactory/hotfix/windowLevel
tschob Jun 19, 2018
7c86143
moved touch ID button to support iPhone X
pokchy Jan 17, 2018
59ab6da
changed backgroundcolor to clear
pokchy Jan 17, 2018
1580fff
added support for FaceID
pokchy Jan 18, 2018
ff0c391
updated localized strings
pokchy Jan 18, 2018
3238802
improved FaceID support
pokchy Jan 18, 2018
28018c0
Merge pull request #11 from smartmobilefactory/feature/ducChanges
tschob Jun 20, 2018
a0dfcb2
Merge pull request #12 from smartmobilefactory/feature/STRFRAMEWORK-197
Jun 21, 2018
5e2a34d
Merge pull request #13 from smartmobilefactory/development
tschob Jun 21, 2018
b3b9002
Release version 2.1.0
Jun 21, 2018
a066223
Fix old tag scheme in Podspec
Jun 21, 2018
7629cd6
replace windowlevel 0 with constant UIWindowLevelNormal
pokchy Jul 27, 2018
b8d638f
hide window when dismissing
pokchy Jul 27, 2018
c97b0c7
Merge pull request #14 from smartmobilefactory/feature/FIX-VISIBILITY
lhmgrassi Jul 27, 2018
fb58fa2
Merge pull request #15 from smartmobilefactory/development
tschob Jul 27, 2018
56bd1b1
Release version 2.1.1
Jul 27, 2018
a20f28a
Xcode 10 Swift 4.2 migration
mtet88 Jan 24, 2019
8c1b79f
Swift 4.2 migration
pokchy Jan 29, 2019
a7f74c1
Update .swift-version
pokchy Jan 29, 2019
97bf868
Merge pull request #17 from smartmobilefactory/swift42
mtet88 Jan 30, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .swift-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
4.2
21 changes: 0 additions & 21 deletions PasscodeLock.podspec

This file was deleted.

64 changes: 38 additions & 26 deletions PasscodeLock.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

/* Begin PBXBuildFile section */
281AA9201DB626E000908E23 /* Localize.strings in Resources */ = {isa = PBXBuildFile; fileRef = 281AA9221DB626E000908E23 /* Localize.strings */; };
4A57CCF92010A437006A7B80 /* Localize.strings in Resources */ = {isa = PBXBuildFile; fileRef = 281AA9221DB626E000908E23 /* Localize.strings */; };
8F3B9D031E028815008CF18F /* PasscodeLockImages.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8F3B9D021E028815008CF18F /* PasscodeLockImages.xcassets */; };
C99EAF431B90B05700D61E1B /* PasscodeLock.h in Headers */ = {isa = PBXBuildFile; fileRef = C99EAF421B90B05700D61E1B /* PasscodeLock.h */; settings = {ATTRIBUTES = (Public, ); }; };
C99EAF4A1B90B05800D61E1B /* PasscodeLock.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C99EAF3F1B90B05700D61E1B /* PasscodeLock.framework */; };
C9D3DF0B1B919CE4008561EB /* PasscodeLockView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C9D3DF0A1B919CE4008561EB /* PasscodeLockView.xib */; };
Expand All @@ -22,31 +24,21 @@
C9D3DF461B91BD0E008561EB /* PasscodeLockConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9D3DF451B91BD0E008561EB /* PasscodeLockConfiguration.swift */; };
C9D3DF481B91F099008561EB /* PasscodeLockPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9D3DF471B91F099008561EB /* PasscodeLockPresenter.swift */; };
C9DC07D51B90B1F6007A4DD0 /* PasscodeRepositoryType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07D41B90B1F6007A4DD0 /* PasscodeRepositoryType.swift */; };
C9DC07D61B90B1F6007A4DD0 /* PasscodeRepositoryType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07D41B90B1F6007A4DD0 /* PasscodeRepositoryType.swift */; };
C9DC07D81B90B261007A4DD0 /* PasscodeLockStateType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07D71B90B261007A4DD0 /* PasscodeLockStateType.swift */; };
C9DC07D91B90B261007A4DD0 /* PasscodeLockStateType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07D71B90B261007A4DD0 /* PasscodeLockStateType.swift */; };
C9DC07DB1B90B730007A4DD0 /* PasscodeLockConfigurationType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07DA1B90B730007A4DD0 /* PasscodeLockConfigurationType.swift */; };
C9DC07DC1B90B730007A4DD0 /* PasscodeLockConfigurationType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07DA1B90B730007A4DD0 /* PasscodeLockConfigurationType.swift */; };
C9DC07DE1B90BA06007A4DD0 /* PasscodeLockType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07DD1B90BA06007A4DD0 /* PasscodeLockType.swift */; };
C9DC07DF1B90BA06007A4DD0 /* PasscodeLockType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07DD1B90BA06007A4DD0 /* PasscodeLockType.swift */; };
C9DC07E11B90BBFD007A4DD0 /* PasscodeLock.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07E01B90BBFD007A4DD0 /* PasscodeLock.swift */; };
C9DC07E21B90BBFD007A4DD0 /* PasscodeLock.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07E01B90BBFD007A4DD0 /* PasscodeLock.swift */; };
C9DC07E51B90BCF9007A4DD0 /* PasscodeLockTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07E41B90BCF9007A4DD0 /* PasscodeLockTests.swift */; };
C9DC07E71B90C382007A4DD0 /* LocalAuthentication.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9DC07E61B90C382007A4DD0 /* LocalAuthentication.framework */; };
C9DC07EA1B90C690007A4DD0 /* FakePasscodeState.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07E91B90C690007A4DD0 /* FakePasscodeState.swift */; };
C9DC07EC1B90C72A007A4DD0 /* FakePasscodeRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07EB1B90C72A007A4DD0 /* FakePasscodeRepository.swift */; };
C9DC07EE1B90C7CD007A4DD0 /* FakePasscodeLockConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07ED1B90C7CD007A4DD0 /* FakePasscodeLockConfiguration.swift */; };
C9DC07F01B90C8E1007A4DD0 /* FakePasscodeLockDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07EF1B90C8E1007A4DD0 /* FakePasscodeLockDelegate.swift */; };
C9DC07F21B90C9DE007A4DD0 /* EnterPasscodeState.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07F11B90C9DE007A4DD0 /* EnterPasscodeState.swift */; };
C9DC07F31B90C9DE007A4DD0 /* EnterPasscodeState.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07F11B90C9DE007A4DD0 /* EnterPasscodeState.swift */; };
C9DC07F81B90CF29007A4DD0 /* Functions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07F71B90CF29007A4DD0 /* Functions.swift */; };
C9DC07F91B90CF29007A4DD0 /* Functions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07F71B90CF29007A4DD0 /* Functions.swift */; };
C9DC07FF1B90D24A007A4DD0 /* SetPasscodeState.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07FE1B90D24A007A4DD0 /* SetPasscodeState.swift */; };
C9DC08001B90D24A007A4DD0 /* SetPasscodeState.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC07FE1B90D24A007A4DD0 /* SetPasscodeState.swift */; };
C9DC08021B90D2BA007A4DD0 /* ConfirmPasscodeState.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC08011B90D2BA007A4DD0 /* ConfirmPasscodeState.swift */; };
C9DC08031B90D2BA007A4DD0 /* ConfirmPasscodeState.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC08011B90D2BA007A4DD0 /* ConfirmPasscodeState.swift */; };
C9DC08051B90D394007A4DD0 /* ChangePasscodeState.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC08041B90D394007A4DD0 /* ChangePasscodeState.swift */; };
C9DC08061B90D394007A4DD0 /* ChangePasscodeState.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC08041B90D394007A4DD0 /* ChangePasscodeState.swift */; };
C9DC08081B90DAE6007A4DD0 /* EnterPasscodeStateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC08071B90DAE6007A4DD0 /* EnterPasscodeStateTests.swift */; };
C9DC080A1B90DB09007A4DD0 /* FakePasscodeLock.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC08091B90DB09007A4DD0 /* FakePasscodeLock.swift */; };
C9DC080C1B90DC38007A4DD0 /* SetPasscodeStateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC080B1B90DC38007A4DD0 /* SetPasscodeStateTests.swift */; };
Expand Down Expand Up @@ -107,6 +99,7 @@
285BBDA71DB62D9100F33CBA /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Main.strings; sourceTree = "<group>"; };
285BBDA81DB62D9100F33CBA /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/LaunchScreen.strings; sourceTree = "<group>"; };
285BBDA91DB62D9100F33CBA /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localize.strings; sourceTree = "<group>"; };
8F3B9D021E028815008CF18F /* PasscodeLockImages.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = PasscodeLockImages.xcassets; sourceTree = "<group>"; };
C99EAF3F1B90B05700D61E1B /* PasscodeLock.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PasscodeLock.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C99EAF421B90B05700D61E1B /* PasscodeLock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PasscodeLock.h; sourceTree = "<group>"; };
C99EAF441B90B05700D61E1B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
Expand Down Expand Up @@ -233,6 +226,7 @@
281AA9221DB626E000908E23 /* Localize.strings */,
C9DC08151B90DF4E007A4DD0 /* PasscodeLockViewController.swift */,
C9D3DF471B91F099008561EB /* PasscodeLockPresenter.swift */,
8F3B9D021E028815008CF18F /* PasscodeLockImages.xcassets */,
);
path = PasscodeLock;
sourceTree = "<group>";
Expand Down Expand Up @@ -448,19 +442,22 @@
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0700;
LastUpgradeCheck = 0800;
LastUpgradeCheck = 1010;
ORGANIZATIONNAME = "Yanko Dimitrov";
TargetAttributes = {
C99EAF3E1B90B05700D61E1B = {
CreatedOnToolsVersion = 7.0;
LastSwiftMigration = 0800;
LastSwiftMigration = 1010;
};
C99EAF481B90B05700D61E1B = {
CreatedOnToolsVersion = 7.0;
LastSwiftMigration = 1010;
};
C9D3DF0F1B91AD11008561EB = {
CreatedOnToolsVersion = 7.0;
DevelopmentTeam = JZ2H644EU7;
LastSwiftMigration = 0800;
ProvisioningStyle = Manual;
};
C9D3DF221B91AD11008561EB = {
CreatedOnToolsVersion = 7.0;
Expand Down Expand Up @@ -501,6 +498,7 @@
buildActionMask = 2147483647;
files = (
C9D3DF0B1B919CE4008561EB /* PasscodeLockView.xib in Resources */,
8F3B9D031E028815008CF18F /* PasscodeLockImages.xcassets in Resources */,
281AA9201DB626E000908E23 /* Localize.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand All @@ -519,6 +517,7 @@
C9D3DF1D1B91AD11008561EB /* LaunchScreen.storyboard in Resources */,
C9D3DF1A1B91AD11008561EB /* Assets.xcassets in Resources */,
C9D3DF181B91AD11008561EB /* Main.storyboard in Resources */,
4A57CCF92010A437006A7B80 /* Localize.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -565,24 +564,14 @@
buildActionMask = 2147483647;
files = (
C9DC07EC1B90C72A007A4DD0 /* FakePasscodeRepository.swift in Sources */,
C9DC08061B90D394007A4DD0 /* ChangePasscodeState.swift in Sources */,
C9DC080E1B90DC8F007A4DD0 /* ConfirmPasscodeStateTests.swift in Sources */,
C9DC07E51B90BCF9007A4DD0 /* PasscodeLockTests.swift in Sources */,
C9DC08031B90D2BA007A4DD0 /* ConfirmPasscodeState.swift in Sources */,
C9DC07F01B90C8E1007A4DD0 /* FakePasscodeLockDelegate.swift in Sources */,
C9DC07D91B90B261007A4DD0 /* PasscodeLockStateType.swift in Sources */,
C9DC07E21B90BBFD007A4DD0 /* PasscodeLock.swift in Sources */,
C9DC07EA1B90C690007A4DD0 /* FakePasscodeState.swift in Sources */,
C9DC08101B90DD91007A4DD0 /* ChangePasscodeStateTests.swift in Sources */,
C9DC07DC1B90B730007A4DD0 /* PasscodeLockConfigurationType.swift in Sources */,
C9DC07F31B90C9DE007A4DD0 /* EnterPasscodeState.swift in Sources */,
C9DC08001B90D24A007A4DD0 /* SetPasscodeState.swift in Sources */,
C9DC07EE1B90C7CD007A4DD0 /* FakePasscodeLockConfiguration.swift in Sources */,
C9DC080C1B90DC38007A4DD0 /* SetPasscodeStateTests.swift in Sources */,
C9DC08081B90DAE6007A4DD0 /* EnterPasscodeStateTests.swift in Sources */,
C9DC07DF1B90BA06007A4DD0 /* PasscodeLockType.swift in Sources */,
C9DC07D61B90B1F6007A4DD0 /* PasscodeRepositoryType.swift in Sources */,
C9DC07F91B90CF29007A4DD0 /* Functions.swift in Sources */,
C9DC080A1B90DB09007A4DD0 /* FakePasscodeLock.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand Down Expand Up @@ -677,14 +666,22 @@
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
Expand Down Expand Up @@ -713,6 +710,7 @@
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 4.2;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
Expand All @@ -728,14 +726,22 @@
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
Expand All @@ -757,6 +763,7 @@
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_VERSION = 4.2;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
Expand All @@ -780,7 +787,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 2.3;
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
};
name = Debug;
};
Expand All @@ -799,7 +806,7 @@
PRODUCT_BUNDLE_IDENTIFIER = com.yankodimitrov.PasscodeLock;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SWIFT_VERSION = 2.3;
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
};
name = Release;
};
Expand All @@ -813,6 +820,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "PasscodeLockTests/PasscodeLockTests-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_SWIFT3_OBJC_INFERENCE = On;
};
name = Debug;
};
Expand All @@ -825,6 +833,7 @@
PRODUCT_BUNDLE_IDENTIFIER = com.yankodimitrov.PasscodeLockTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "PasscodeLockTests/PasscodeLockTests-Bridging-Header.h";
SWIFT_SWIFT3_OBJC_INFERENCE = On;
};
name = Release;
};
Expand All @@ -833,12 +842,15 @@
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
DEVELOPMENT_TEAM = JZ2H644EU7;
INFOPLIST_FILE = PasscodeLockDemo/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.yankodimitrov.PasscodeLockDemo;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 2.3;
PROVISIONING_PROFILE = "c4ef3957-2c3b-4abf-b8dd-d5d2c5712664";
PROVISIONING_PROFILE_SPECIFIER = "XC Ad Hoc: *";
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
Expand All @@ -848,12 +860,12 @@
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = PasscodeLockDemo/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.yankodimitrov.PasscodeLockDemo;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 2.3;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0800"
LastUpgradeVersion = "1010"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
1 change: 1 addition & 0 deletions PasscodeLock/Base.lproj/Localize.strings
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,4 @@
"Cancel" = "Cancel";
"Delete" = "Delete";
"UseTouchId" = "Use TouchID";
"UseFaceId" = "Use FaceID";
19 changes: 12 additions & 7 deletions PasscodeLock/Functions.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,25 @@
//

import Foundation
import UIKit

func localizedStringFor(key: String, comment: String) -> String {
func localizedStringFor(_ key: String, comment: String) -> String {

let name = "Localize"
let bundle = bundleForResource(name, ofType: "strings")
return NSLocalizedString(key, tableName: name, bundle: bundle, comment: comment)

return NSLocalizedString(key, tableName: name, bundle: bundle, value: "", comment: comment)
}

func bundleForResource(name: String, ofType type: String) -> NSBundle {
func bundleForResource(_ name: String, ofType type: String) -> Bundle {

if(NSBundle.mainBundle().pathForResource(name, ofType: type) != nil) {
return NSBundle.mainBundle()
if(Bundle.main.path(forResource: name, ofType: type) != nil) {
return Bundle.main
}

return NSBundle(forClass: PasscodeLock.self)
return Bundle(for: PasscodeLock.self)
}

func defaultCustomColor() -> UIColor {
return UIColor(red: 0, green: 100/255, blue: 165/255, alpha: 1)
}
32 changes: 18 additions & 14 deletions PasscodeLock/PasscodeLock/ChangePasscodeState.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,34 +7,38 @@
//

import Foundation
import UIKit

struct ChangePasscodeState: PasscodeLockStateType {

let title: String
let description: String
let title : String
let description : String
let isCancellableAction = true
var isTouchIDAllowed = false

init(stringsToShow: StringsToBeDisplayed?) {

title = (stringsToShow?.passcodeLockChangeTitle ?? localizedStringFor("PasscodeLockChangeTitle", comment: "Change passcode title"))
description = (stringsToShow?.passcodeLockChangeDescription ?? localizedStringFor("PasscodeLockChangeDescription", comment: "Change passcode description"))
var isTouchIDAllowed = false
var tintColor : UIColor?
var font : UIFont?

init(stringsToShow: StringsToBeDisplayed?, tintColor: UIColor?, font: UIFont?) {


let defaultColor = defaultCustomColor()
self.title = (stringsToShow?.passcodeLockChangeTitle ?? localizedStringFor("PasscodeLockChangeTitle", comment: "Change passcode title"))
self.description = (stringsToShow?.passcodeLockChangeDescription ?? localizedStringFor("PasscodeLockChangeDescription", comment: "Change passcode description"))
self.tintColor = (tintColor ?? defaultColor)
self.font = (font ?? UIFont.systemFont(ofSize: 16))
}

func acceptPasscode(passcode: [String], fromLock lock: PasscodeLockType, stringsToShow: StringsToBeDisplayed?) {
func acceptPasscode(_ passcode: [String], fromLock lock: PasscodeLockType, stringsToShow: StringsToBeDisplayed?, tintColor: UIColor?, font: UIFont?) {

guard let currentPasscode = lock.repository.passcode else {
return
}

if passcode == currentPasscode {

let nextState = SetPasscodeState(stringsToShow: stringsToShow)

if (passcode == currentPasscode) {
let nextState = SetPasscodeState(stringsToShow: stringsToShow, tintColor: tintColor, font: font)
lock.changeStateTo(nextState)

} else {

lock.delegate?.passcodeLockDidFail(lock)
}
}
Expand Down
Loading