├── Android └── Cerradura │ ├── .idea │ ├── .name │ ├── copyright │ │ └── profiles_settings.xml │ ├── encodings.xml │ ├── vcs.xml │ ├── inspectionProfiles │ │ ├── profiles_settings.xml │ │ └── Project_Default.xml │ ├── modules.xml │ ├── runConfigurations.xml │ ├── compiler.xml │ ├── gradle.xml │ └── misc.xml │ ├── app │ ├── .gitignore │ ├── src │ │ ├── main │ │ │ ├── res │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── dimens.xml │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ ├── values-v21 │ │ │ │ │ └── styles.xml │ │ │ │ ├── values-w820dp │ │ │ │ │ └── dimens.xml │ │ │ │ ├── menu │ │ │ │ │ └── menu_main.xml │ │ │ │ └── layout │ │ │ │ │ ├── fragment_main.xml │ │ │ │ │ ├── fragment_near_lock.xml │ │ │ │ │ ├── content_near_lock.xml │ │ │ │ │ ├── activity_near_lock.xml │ │ │ │ │ └── activity_main.xml │ │ │ ├── AndroidManifest.xml │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── colemancda │ │ │ │ └── cerradura │ │ │ │ └── GATTProfile.java │ │ ├── test │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── colemancda │ │ │ │ └── cerradura │ │ │ │ └── ExampleUnitTest.java │ │ └── androidTest │ │ │ └── java │ │ │ └── com │ │ │ └── colemancda │ │ │ └── cerradura │ │ │ └── ApplicationTest.java │ ├── proguard-rules.pro │ └── build.gradle │ ├── settings.gradle │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── .gitignore │ ├── build.gradle │ ├── gradle.properties │ └── gradlew.bat ├── README.md ├── ._.DS_Store ├── Sketch.sketch ├── ._Package.swift ├── Tests ├── .DS_Store ├── ._.DS_Store ├── ._LinuxMain.swift ├── UnitTests │ ├── ._GATTProfileTests.swift │ ├── SerializationTests.swift │ └── CryptoTests.swift └── LinuxMain.swift ├── PaintCode └── StyleKit.pcvd ├── debianpackage ├── repo │ └── conf │ │ └── distributions ├── package.sh ├── swift.sh ├── lockd │ ├── DEBIAN │ │ └── control │ └── etc │ │ └── init.d │ │ └── lockd └── build.sh ├── Xcode ├── Cerradura │ ├── eKeyDocument.pdf │ ├── Assets.xcassets │ │ ├── Contents.json │ │ ├── Activity │ │ │ ├── Contents.json │ │ │ ├── activityDelete.imageset │ │ │ │ ├── Delete.pdf │ │ │ │ └── Contents.json │ │ │ ├── activityNewKey.imageset │ │ │ │ ├── NewKey.pdf │ │ │ │ └── Contents.json │ │ │ ├── activityRename.imageset │ │ │ │ ├── Rename.pdf │ │ │ │ └── Contents.json │ │ │ ├── activityUpdate.imageset │ │ │ │ ├── Update.pdf │ │ │ │ └── Contents.json │ │ │ ├── activityHomeKit.imageset │ │ │ │ ├── HomeKit.pdf │ │ │ │ └── Contents.json │ │ │ └── activityManageKeys.imageset │ │ │ │ ├── AccessList.pdf │ │ │ │ └── Contents.json │ │ ├── KeysVC │ │ │ ├── Contents.json │ │ │ ├── permissionBadgeAdmin.imageset │ │ │ │ ├── permissionBadgeAdmin.pdf │ │ │ │ └── Contents.json │ │ │ ├── permissionBadgeOwner.imageset │ │ │ │ ├── permissionBadgeOwner.pdf │ │ │ │ └── Contents.json │ │ │ ├── permissionBadgeAnytime.imageset │ │ │ │ ├── permissionBadgeAnytime.pdf │ │ │ │ └── Contents.json │ │ │ └── permissionBadgeScheduled.imageset │ │ │ │ ├── permissionBadgeScheduled.pdf │ │ │ │ └── Contents.json │ │ ├── Near Me │ │ │ ├── Contents.json │ │ │ ├── scan1.imageset │ │ │ │ ├── scan1.pdf │ │ │ │ └── Contents.json │ │ │ ├── scan2.imageset │ │ │ │ ├── scan2.pdf │ │ │ │ └── Contents.json │ │ │ ├── scan3.imageset │ │ │ │ ├── scan3.pdf │ │ │ │ └── Contents.json │ │ │ ├── scan4.imageset │ │ │ │ ├── scan4.pdf │ │ │ │ └── Contents.json │ │ │ ├── setupLock.imageset │ │ │ │ ├── setupLock.pdf │ │ │ │ └── Contents.json │ │ │ ├── unlockButton.imageset │ │ │ │ ├── unlockButton.pdf │ │ │ │ └── Contents.json │ │ │ ├── bluetoothLogo.imageset │ │ │ │ ├── bluetoothLogo.pdf │ │ │ │ └── Contents.json │ │ │ ├── setupLockSelected.imageset │ │ │ │ ├── setupLockSelected.pdf │ │ │ │ └── Contents.json │ │ │ ├── bluetoothLogoDisabled.imageset │ │ │ │ ├── bluetoothLogoDisabled.pdf │ │ │ │ └── Contents.json │ │ │ └── unlockButtonSelected.imageset │ │ │ │ ├── unlockButtonSelected.pdf │ │ │ │ └── Contents.json │ │ ├── Tab Bar Icons │ │ │ ├── Contents.json │ │ │ ├── Near.imageset │ │ │ │ ├── Near.png │ │ │ │ ├── Near@2x.png │ │ │ │ ├── Near@3x.png │ │ │ │ └── Contents.json │ │ │ ├── NearSelected.imageset │ │ │ │ ├── NearSelected.png │ │ │ │ ├── NearSelected@2x.png │ │ │ │ ├── NearSelected@3x.png │ │ │ │ └── Contents.json │ │ │ ├── SettingsTabBarIcon.imageset │ │ │ │ ├── Settings.pdf │ │ │ │ └── Contents.json │ │ │ ├── LockTabBarIcon.imageset │ │ │ │ ├── lockTabBarIcon.pdf │ │ │ │ └── Contents.json │ │ │ ├── LockTabBarIconSelected.imageset │ │ │ │ ├── lockTabBarIconSelected.pdf │ │ │ │ └── Contents.json │ │ │ └── SettingsTabBarIconSelected.imageset │ │ │ │ ├── SettingsTabBarIconSelected.pdf │ │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ ├── iPadIcon.png │ │ │ ├── Icon-Small.png │ │ │ ├── iPadIcon@2x.png │ │ │ ├── Icon-Small@2x.png │ │ │ ├── Icon-Small@3x.png │ │ │ ├── iPhoneIcon@2x.png │ │ │ ├── iPhoneIcon@3x.png │ │ │ ├── Icon-Small@2x-1.png │ │ │ ├── Icon-iPadPro@2x.png │ │ │ ├── Icon-Spotlight-40.png │ │ │ ├── Icon-Spotlight-40@2x.png │ │ │ ├── Icon-Spotlight-40@3x.png │ │ │ ├── Icon-Spotlight-40@2x-1.png │ │ │ └── Contents.json │ │ └── Brand Assets.launchimage │ │ │ └── Contents.json │ ├── NewKeyScheduleViewController.swift │ ├── Error.swift │ ├── Cerradura.entitlements │ ├── Constants.swift │ ├── Async.swift │ ├── LockTableViewCell.swift │ ├── Preferences.swift │ ├── CoreDataEncodable.swift │ ├── ActivityIndicatorViewController.swift │ ├── PresentPopover.swift │ ├── Model.xcdatamodeld │ │ └── Model.xcdatamodel │ │ │ └── contents │ ├── CoreDataDecodable.swift │ ├── ErrorAlert.swift │ ├── Base.lproj │ │ └── LaunchScreen.storyboard │ ├── EmptyTableView.swift │ ├── NewKeyParentViewController.swift │ ├── Info.plist │ ├── CoreDataExtensions.swift │ ├── BeaconController.swift │ └── LockCache.swift ├── CerraduraWatch │ ├── Assets.xcassets │ │ ├── Contents.json │ │ ├── ActivityIndicator │ │ │ ├── Contents.json │ │ │ ├── Activity1.imageset │ │ │ │ ├── Activity1@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity2.imageset │ │ │ │ ├── Activity2@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity3.imageset │ │ │ │ ├── Activity3@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity4.imageset │ │ │ │ ├── Activity4@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity5.imageset │ │ │ │ ├── Activity5@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity6.imageset │ │ │ │ ├── Activity6@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity7.imageset │ │ │ │ ├── Activity7@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity8.imageset │ │ │ │ ├── Activity8@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity9.imageset │ │ │ │ ├── Activity9@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity10.imageset │ │ │ │ ├── Activity10@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity11.imageset │ │ │ │ ├── Activity11@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity12.imageset │ │ │ │ ├── Activity12@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity13.imageset │ │ │ │ ├── Activity13@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity14.imageset │ │ │ │ ├── Activity14@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity15.imageset │ │ │ │ ├── Activity15@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity16.imageset │ │ │ │ ├── Activity16@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity17.imageset │ │ │ │ ├── Activity17@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity18.imageset │ │ │ │ ├── Activity18@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity19.imageset │ │ │ │ ├── Activity19@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity20.imageset │ │ │ │ ├── Activity20@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity21.imageset │ │ │ │ ├── Activity21@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity22.imageset │ │ │ │ ├── Activity22@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity23.imageset │ │ │ │ ├── Activity23@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity24.imageset │ │ │ │ ├── Activity24@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity25.imageset │ │ │ │ ├── Activity25@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity26.imageset │ │ │ │ ├── Activity26@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity27.imageset │ │ │ │ ├── Activity27@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity28.imageset │ │ │ │ ├── Activity28@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Activity29.imageset │ │ │ │ ├── Activity29@2x.png │ │ │ │ └── Contents.json │ │ │ └── Activity30.imageset │ │ │ │ ├── Activity30@2x.png │ │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ ├── Icon-24@2x.png │ │ │ ├── Icon-29@2x.png │ │ │ ├── Icon-29@3x.png │ │ │ ├── Icon-40@2x.png │ │ │ ├── Icon-44@2x.png │ │ │ ├── Icon-86@2x.png │ │ │ ├── Icon-98@2x.png │ │ │ ├── Icon-27_5@2x.png │ │ │ └── Contents.json │ │ ├── watchScan1.imageset │ │ │ ├── watchScan1.pdf │ │ │ └── Contents.json │ │ ├── watchScan2.imageset │ │ │ ├── watchScan2.pdf │ │ │ └── Contents.json │ │ ├── watchScan3.imageset │ │ │ ├── watchScan3.pdf │ │ │ └── Contents.json │ │ └── watchScan4.imageset │ │ │ ├── watchScan4.pdf │ │ │ └── Contents.json │ ├── CerraduraWatch.entitlements │ └── Info.plist ├── CerraduraWatch Extension │ ├── Assets.xcassets │ │ ├── Contents.json │ │ ├── watchAdmin.imageset │ │ │ ├── watchAdmin.pdf │ │ │ └── Contents.json │ │ ├── watchOwner.imageset │ │ │ ├── watchOwner.pdf │ │ │ └── Contents.json │ │ ├── watchAnytime.imageset │ │ │ ├── watchAnytime.pdf │ │ │ └── Contents.json │ │ ├── watchScheduled.imageset │ │ │ ├── watchScheduled.pdf │ │ │ └── Contents.json │ │ ├── modularSmallAdmin.imageset │ │ │ ├── modularSmallAdmin38.pdf │ │ │ ├── modularSmallAdmin42.pdf │ │ │ └── Contents.json │ │ └── PlaceholderComplication.complicationset │ │ │ ├── Extra Large.imageset │ │ │ └── Contents.json │ │ │ ├── PlaceholderModular.imageset │ │ │ ├── modularSmallAdmin38.pdf │ │ │ ├── modularSmallAdmin42.pdf │ │ │ └── Contents.json │ │ │ ├── Circular.imageset │ │ │ └── Contents.json │ │ │ ├── Utilitarian.imageset │ │ │ └── Contents.json │ │ │ └── Contents.json │ ├── CerraduraWatch Extension.entitlements │ ├── Context.swift │ ├── ErrorAlert.swift │ ├── Info.plist │ ├── ExtensionDelegate.swift │ ├── AnimatedButtonController.swift │ ├── LockInterfaceController.swift │ └── ComplicationController.swift ├── Lock.xcodeproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ ├── xcuserdata │ │ └── coleman.xcuserdatad │ │ │ └── xcschemes │ │ │ └── xcschememanagement.plist │ └── xcshareddata │ │ └── xcschemes │ │ ├── CoreLock iOS.xcscheme │ │ ├── LockDaemon.xcscheme │ │ └── Cerradura.xcscheme ├── CoreLock │ ├── CoreLock.h │ └── Info.plist ├── CerraduraTodayExtension │ ├── CerraduraTodayExtension.entitlements │ └── Info.plist ├── CoreLockTests │ └── Info.plist └── LockDaemon │ └── Info.plist ├── Cartfile ├── Sources ├── CoreLock │ ├── Beacon.swift │ ├── Secrets.swift.xctemplate │ ├── Version.swift │ ├── Model.swift │ ├── Integer.swift │ ├── Status.swift │ ├── Bool.swift │ ├── Crypto.swift │ ├── NewKeyInvitation.swift │ ├── Observable.swift │ ├── SecureData.swift │ ├── POSIXTime.swift │ └── NewKey.swift └── lockd │ ├── main.swift │ ├── Command.swift │ ├── File.swift │ ├── GPIO.swift │ ├── SunXi.swift │ └── Configuration.swift ├── .gitignore ├── Cartfile.resolved ├── Package.swift └── Package.pins /Android/Cerradura/.idea/.name: -------------------------------------------------------------------------------- 1 | Cerradura -------------------------------------------------------------------------------- /Android/Cerradura/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Lock 2 | Smart Lock controller 3 | -------------------------------------------------------------------------------- /Android/Cerradura/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /._.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/._.DS_Store -------------------------------------------------------------------------------- /Sketch.sketch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Sketch.sketch -------------------------------------------------------------------------------- /._Package.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/._Package.swift -------------------------------------------------------------------------------- /Tests/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Tests/.DS_Store -------------------------------------------------------------------------------- /Tests/._.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Tests/._.DS_Store -------------------------------------------------------------------------------- /PaintCode/StyleKit.pcvd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/PaintCode/StyleKit.pcvd -------------------------------------------------------------------------------- /Tests/._LinuxMain.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Tests/._LinuxMain.swift -------------------------------------------------------------------------------- /debianpackage/repo/conf/distributions: -------------------------------------------------------------------------------- 1 | Codename: jessie 2 | Components: main 3 | Architectures: armhf 4 | -------------------------------------------------------------------------------- /Xcode/Cerradura/eKeyDocument.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/eKeyDocument.pdf -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Tests/UnitTests/._GATTProfileTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Tests/UnitTests/._GATTProfileTests.swift -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Android/Cerradura/.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Activity/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/KeysVC/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Android/Cerradura/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Android/Cerradura/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Android/Cerradura/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | -------------------------------------------------------------------------------- /Android/Cerradura/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Android/Cerradura/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /Android/Cerradura/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Android/Cerradura/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /Android/Cerradura/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Android/Cerradura/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/iPadIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/iPadIcon.png -------------------------------------------------------------------------------- /Android/Cerradura/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Android/Cerradura/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Android/Cerradura/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Android/Cerradura/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/Icon-Small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/Icon-Small.png -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/iPadIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/iPadIcon@2x.png -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/scan1.imageset/scan1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Near Me/scan1.imageset/scan1.pdf -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/scan2.imageset/scan2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Near Me/scan2.imageset/scan2.pdf -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/scan3.imageset/scan3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Near Me/scan3.imageset/scan3.pdf -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/scan4.imageset/scan4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Near Me/scan4.imageset/scan4.pdf -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/iPhoneIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/iPhoneIcon@2x.png -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/iPhoneIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/iPhoneIcon@3x.png -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/Near.imageset/Near.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/Near.imageset/Near.png -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/Icon-iPadPro@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/Icon-iPadPro@2x.png -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/Near.imageset/Near@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/Near.imageset/Near@2x.png -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/Near.imageset/Near@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/Near.imageset/Near@3x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/AppIcon.appiconset/Icon-24@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/AppIcon.appiconset/Icon-24@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/AppIcon.appiconset/Icon-44@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/AppIcon.appiconset/Icon-44@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/AppIcon.appiconset/Icon-86@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/AppIcon.appiconset/Icon-86@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/AppIcon.appiconset/Icon-98@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/AppIcon.appiconset/Icon-98@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/watchScan1.imageset/watchScan1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/watchScan1.imageset/watchScan1.pdf -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/watchScan2.imageset/watchScan2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/watchScan2.imageset/watchScan2.pdf -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/watchScan3.imageset/watchScan3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/watchScan3.imageset/watchScan3.pdf -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/watchScan4.imageset/watchScan4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/watchScan4.imageset/watchScan4.pdf -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40.png -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/setupLock.imageset/setupLock.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Near Me/setupLock.imageset/setupLock.pdf -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/AppIcon.appiconset/Icon-27_5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/AppIcon.appiconset/Icon-27_5@2x.png -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Activity/activityDelete.imageset/Delete.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Activity/activityDelete.imageset/Delete.pdf -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Activity/activityNewKey.imageset/NewKey.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Activity/activityNewKey.imageset/NewKey.pdf -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Activity/activityRename.imageset/Rename.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Activity/activityRename.imageset/Rename.pdf -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Activity/activityUpdate.imageset/Update.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Activity/activityUpdate.imageset/Update.pdf -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x.png -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@3x.png -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Activity/activityHomeKit.imageset/HomeKit.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Activity/activityHomeKit.imageset/HomeKit.pdf -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x-1.png -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/unlockButton.imageset/unlockButton.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Near Me/unlockButton.imageset/unlockButton.pdf -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/bluetoothLogo.imageset/bluetoothLogo.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Near Me/bluetoothLogo.imageset/bluetoothLogo.pdf -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/Assets.xcassets/watchAdmin.imageset/watchAdmin.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch Extension/Assets.xcassets/watchAdmin.imageset/watchAdmin.pdf -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/Assets.xcassets/watchOwner.imageset/watchOwner.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch Extension/Assets.xcassets/watchOwner.imageset/watchOwner.pdf -------------------------------------------------------------------------------- /Android/Cerradura/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Activity/activityManageKeys.imageset/AccessList.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Activity/activityManageKeys.imageset/AccessList.pdf -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/NearSelected.imageset/NearSelected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/NearSelected.imageset/NearSelected.png -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/SettingsTabBarIcon.imageset/Settings.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/SettingsTabBarIcon.imageset/Settings.pdf -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/Assets.xcassets/watchAnytime.imageset/watchAnytime.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch Extension/Assets.xcassets/watchAnytime.imageset/watchAnytime.pdf -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/setupLockSelected.imageset/setupLockSelected.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Near Me/setupLockSelected.imageset/setupLockSelected.pdf -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/LockTabBarIcon.imageset/lockTabBarIcon.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/LockTabBarIcon.imageset/lockTabBarIcon.pdf -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/NearSelected.imageset/NearSelected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/NearSelected.imageset/NearSelected@2x.png -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/NearSelected.imageset/NearSelected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/NearSelected.imageset/NearSelected@3x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/Assets.xcassets/watchScheduled.imageset/watchScheduled.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch Extension/Assets.xcassets/watchScheduled.imageset/watchScheduled.pdf -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity1.imageset/Activity1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity1.imageset/Activity1@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity2.imageset/Activity2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity2.imageset/Activity2@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity3.imageset/Activity3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity3.imageset/Activity3@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity4.imageset/Activity4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity4.imageset/Activity4@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity5.imageset/Activity5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity5.imageset/Activity5@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity6.imageset/Activity6@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity6.imageset/Activity6@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity7.imageset/Activity7@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity7.imageset/Activity7@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity8.imageset/Activity8@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity8.imageset/Activity8@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity9.imageset/Activity9@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity9.imageset/Activity9@2x.png -------------------------------------------------------------------------------- /Android/Cerradura/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/KeysVC/permissionBadgeAdmin.imageset/permissionBadgeAdmin.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/KeysVC/permissionBadgeAdmin.imageset/permissionBadgeAdmin.pdf -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/KeysVC/permissionBadgeOwner.imageset/permissionBadgeOwner.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/KeysVC/permissionBadgeOwner.imageset/permissionBadgeOwner.pdf -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity10.imageset/Activity10@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity10.imageset/Activity10@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity11.imageset/Activity11@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity11.imageset/Activity11@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity12.imageset/Activity12@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity12.imageset/Activity12@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity13.imageset/Activity13@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity13.imageset/Activity13@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity14.imageset/Activity14@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity14.imageset/Activity14@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity15.imageset/Activity15@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity15.imageset/Activity15@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity16.imageset/Activity16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity16.imageset/Activity16@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity17.imageset/Activity17@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity17.imageset/Activity17@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity18.imageset/Activity18@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity18.imageset/Activity18@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity19.imageset/Activity19@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity19.imageset/Activity19@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity20.imageset/Activity20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity20.imageset/Activity20@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity21.imageset/Activity21@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity21.imageset/Activity21@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity22.imageset/Activity22@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity22.imageset/Activity22@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity23.imageset/Activity23@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity23.imageset/Activity23@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity24.imageset/Activity24@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity24.imageset/Activity24@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity25.imageset/Activity25@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity25.imageset/Activity25@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity26.imageset/Activity26@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity26.imageset/Activity26@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity27.imageset/Activity27@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity27.imageset/Activity27@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity28.imageset/Activity28@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity28.imageset/Activity28@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity29.imageset/Activity29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity29.imageset/Activity29@2x.png -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity30.imageset/Activity30@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity30.imageset/Activity30@2x.png -------------------------------------------------------------------------------- /Cartfile: -------------------------------------------------------------------------------- 1 | github "PureSwift/GATT" "master" 2 | github "PureSwift/JSON" "master" 3 | github "krzyzanowskim/CryptoSwift" 4 | github "kishikawakatsumi/KeychainAccess" 5 | github "JonasGessner/JGProgressHUD" 6 | github "ColemanCDA/BSON" "bson4" 7 | -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/bluetoothLogoDisabled.imageset/bluetoothLogoDisabled.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Near Me/bluetoothLogoDisabled.imageset/bluetoothLogoDisabled.pdf -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/unlockButtonSelected.imageset/unlockButtonSelected.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Near Me/unlockButtonSelected.imageset/unlockButtonSelected.pdf -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/KeysVC/permissionBadgeAnytime.imageset/permissionBadgeAnytime.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/KeysVC/permissionBadgeAnytime.imageset/permissionBadgeAnytime.pdf -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/Assets.xcassets/modularSmallAdmin.imageset/modularSmallAdmin38.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch Extension/Assets.xcassets/modularSmallAdmin.imageset/modularSmallAdmin38.pdf -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/Assets.xcassets/modularSmallAdmin.imageset/modularSmallAdmin42.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch Extension/Assets.xcassets/modularSmallAdmin.imageset/modularSmallAdmin42.pdf -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/KeysVC/permissionBadgeScheduled.imageset/permissionBadgeScheduled.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/KeysVC/permissionBadgeScheduled.imageset/permissionBadgeScheduled.pdf -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/CerraduraWatch.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/LockTabBarIconSelected.imageset/lockTabBarIconSelected.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/LockTabBarIconSelected.imageset/lockTabBarIconSelected.pdf -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/CerraduraWatch Extension.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/scan1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "scan1.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/scan2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "scan2.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/scan3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "scan3.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/scan4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "scan4.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/SettingsTabBarIconSelected.imageset/SettingsTabBarIconSelected.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/SettingsTabBarIconSelected.imageset/SettingsTabBarIconSelected.pdf -------------------------------------------------------------------------------- /Xcode/Lock.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Android/Cerradura/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/watchScan1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "watchScan1.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/watchScan2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "watchScan2.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/watchScan3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "watchScan3.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/watchScan4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "watchScan4.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Activity/activityDelete.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Delete.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Activity/activityHomeKit.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "HomeKit.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Activity/activityRename.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Rename.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Activity/activityUpdate.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Update.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Activity/activityManageKeys.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "AccessList.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/bluetoothLogo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "bluetoothLogo.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/Assets.xcassets/watchAdmin.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "watchAdmin.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/Assets.xcassets/watchOwner.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "watchOwner.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/LockTabBarIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "lockTabBarIcon.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/SettingsTabBarIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Settings.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/Assets.xcassets/watchAnytime.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "watchAnytime.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/Assets.xcassets/watchScheduled.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "watchScheduled.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/KeysVC/permissionBadgeAdmin.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "permissionBadgeAdmin.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/KeysVC/permissionBadgeOwner.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "permissionBadgeOwner.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Android/Cerradura/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Dec 28 10:00:20 PST 2015 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip 7 | -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/KeysVC/permissionBadgeAnytime.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "permissionBadgeAnytime.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/bluetoothLogoDisabled.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "bluetoothLogoDisabled.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/KeysVC/permissionBadgeScheduled.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "permissionBadgeScheduled.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/LockTabBarIconSelected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "lockTabBarIconSelected.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/Assets.xcassets/PlaceholderComplication.complicationset/Extra Large.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "watch", 5 | "scale" : "2x" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /debianpackage/package.sh: -------------------------------------------------------------------------------- 1 | echo "Building Debian package" 2 | dpkg-deb -b lockd lockd.deb 3 | 4 | echo "Creating static repo" 5 | reprepro -b ./repo includedeb jessie ./lockd.deb 6 | 7 | echo "Uploading to S3" 8 | s3cmd --verbose --acl-public --delete-removed sync ~/debianpackage/repo/ s3://cerraduraupdates/ 9 | -------------------------------------------------------------------------------- /Android/Cerradura/.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /debianpackage/swift.sh: -------------------------------------------------------------------------------- 1 | # Set Swift Path 2 | export PATH=/opt/colemancda/swift/usr/bin:"${PATH}" 3 | 4 | # Install Swift 5 | tar xvf swift.tar 6 | rm -rf /opt/colemancda/swift/* 7 | cp -rf ./usr /opt/colemancda/swift/ 8 | rm -rf ./lockd/opt/colemancda/swift/* 9 | cp -rf ./usr ./lockd/opt/colemancda/swift/ 10 | -------------------------------------------------------------------------------- /Sources/CoreLock/Beacon.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Beacon.swift 3 | // Lock 4 | // 5 | // Created by Alsey Coleman Miller on 6/12/16. 6 | // Copyright © 2016 ColemanCDA. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public let LockBeaconUUID = UUID(rawValue: "5109BE6D-3918-43FE-A629-CB2E0707EA5F")! 12 | -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/SettingsTabBarIconSelected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "SettingsTabBarIconSelected.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/Assets.xcassets/PlaceholderComplication.complicationset/PlaceholderModular.imageset/modularSmallAdmin38.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch Extension/Assets.xcassets/PlaceholderComplication.complicationset/PlaceholderModular.imageset/modularSmallAdmin38.pdf -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/Assets.xcassets/PlaceholderComplication.complicationset/PlaceholderModular.imageset/modularSmallAdmin42.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colemancda/Lock/HEAD/Xcode/CerraduraWatch Extension/Assets.xcassets/PlaceholderComplication.complicationset/PlaceholderModular.imageset/modularSmallAdmin42.pdf -------------------------------------------------------------------------------- /debianpackage/lockd/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: lockd 2 | Version: 1.0.4 3 | Architecture: armhf 4 | Essential: no 5 | Section: dev 6 | Priority: required 7 | Depends: uuid-dev,bluez,avahi-daemon,avahi-discover,libnss-mdns,libavahi-compat-libdnssd-dev 8 | Maintainer: Alsey Coleman Miller 9 | Installed-Size: 900000 10 | Description: Lock Deamon 11 | -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Activity/activityNewKey.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "NewKey.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | }, 12 | "properties" : { 13 | "compression-type" : "lossless" 14 | } 15 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/setupLock.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "setupLock.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/unlockButton.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "unlockButton.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } -------------------------------------------------------------------------------- /Android/Cerradura/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 16dp 6 | 8dp 7 | 8 | -------------------------------------------------------------------------------- /Sources/CoreLock/Secrets.swift.xctemplate: -------------------------------------------------------------------------------- 1 | // 2 | // Secrets.swift 3 | // Lock 4 | // 5 | // Created by Alsey Coleman Miller on 4/28/17. 6 | // Copyright © 2017 ColemanCDA. All rights reserved. 7 | // 8 | 9 | /// The salt used for initial setup of the lock. 10 | internal let SetupSalt = KeyData(data: "256 bit secret / 32 character random string".toUTF8Data())! 11 | -------------------------------------------------------------------------------- /debianpackage/build.sh: -------------------------------------------------------------------------------- 1 | # Set Swift Path 2 | export PATH=/opt/colemancda/swift/usr/bin:"${PATH}" 3 | 4 | # Build 5 | echo "Building lockd" 6 | cd ../ 7 | rm -rf .build 8 | swift build --configuration debug 9 | 10 | # Package 11 | echo "Creating Debian package" 12 | cp -rf .build/debug/lockd ./debianpackage/lockd/usr/bin/ 13 | cd ./debianpackage 14 | ./package.sh 15 | -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/setupLockSelected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "setupLockSelected.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Near Me/unlockButtonSelected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "unlockButtonSelected.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/NewKeyScheduleViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NewKeyScheduleViewController.swift 3 | // Lock 4 | // 5 | // Created by Alsey Coleman Miller on 4/26/16. 6 | // Copyright © 2016 ColemanCDA. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | final class NewKeyScheduleViewController: UITableViewController { 13 | 14 | 15 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/Context.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Context.swift 3 | // Lock 4 | // 5 | // Created by Alsey Coleman Miller on 7/9/16. 6 | // Copyright © 2016 ColemanCDA. All rights reserved. 7 | // 8 | 9 | final class LockContext { 10 | 11 | let lock: LockCache 12 | 13 | init(lock: LockCache) { 14 | 15 | self.lock = lock 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Sources/CoreLock/Version.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Version.swift 3 | // Lock 4 | // 5 | // Created by Alsey Coleman Miller on 4/17/16. 6 | // Copyright © 2016 ColemanCDA. All rights reserved. 7 | // 8 | 9 | /// CoreLock version 10 | public let CoreLockVersion: UInt64 = 1 11 | 12 | /// Version of the linux Debian Package 13 | public let LinuxPackageVersion: (UInt16, UInt16, UInt16) = (1, 0, 3) 14 | -------------------------------------------------------------------------------- /Android/Cerradura/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Sources/lockd/main.swift: -------------------------------------------------------------------------------- 1 | // 2 | // main.swift 3 | // Lock 4 | // 5 | // Created by Alsey Coleman Miller on 4/16/16. 6 | // Copyright © 2016 ColemanCDA. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import GATT 11 | import CoreLock 12 | import Foundation 13 | 14 | print("Starting Lock Daemon \(LinuxPackageVersion)...") 15 | 16 | let _ = LockController.shared 17 | 18 | while true { } 19 | -------------------------------------------------------------------------------- /Android/Cerradura/app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | -------------------------------------------------------------------------------- /Sources/lockd/Command.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Command.swift 3 | // Lock 4 | // 5 | // Created by Alsey Coleman Miller on 7/3/16. 6 | // Copyright © 2016 ColemanCDA. All rights reserved. 7 | // 8 | 9 | struct Command { 10 | 11 | static let reboot = "reboot" 12 | 13 | static let updatePackageList = "apt-get update" 14 | 15 | static let updateLock = "apt-get install -q -y --force-yes lockd" 16 | } 17 | -------------------------------------------------------------------------------- /Android/Cerradura/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /Xcode/Cerradura/Error.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Error.swift 3 | // Lock 4 | // 5 | // Created by Alsey Coleman Miller on 7/1/16. 6 | // Copyright © 2016 ColemanCDA. All rights reserved. 7 | // 8 | 9 | /// Cerrdaura errors 10 | enum AppError: Swift.Error { 11 | 12 | case bluetoothDisabled 13 | case lockNotInRange 14 | 15 | /// The lock was deleted from the users local database. 16 | case lockDeleted 17 | } 18 | -------------------------------------------------------------------------------- /Xcode/CoreLock/CoreLock.h: -------------------------------------------------------------------------------- 1 | // 2 | // CoreLock.h 3 | // CoreLock 4 | // 5 | // Created by Alsey Coleman Miller on 4/16/16. 6 | // Copyright © 2016 ColemanCDA. All rights reserved. 7 | // 8 | 9 | @import Foundation; 10 | 11 | //! Project version number for CoreLock. 12 | FOUNDATION_EXPORT double CoreLockVersionNumber; 13 | 14 | //! Project version string for CoreLock. 15 | FOUNDATION_EXPORT const unsigned char CoreLockVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Android/Cerradura/app/src/test/java/com/colemancda/cerradura/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.colemancda.cerradura; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * To work on unit tests, switch the Test Artifact in the Build Variants view. 9 | */ 10 | public class ExampleUnitTest { 11 | @Test 12 | public void addition_isCorrect() throws Exception { 13 | assertEquals(4, 2 + 2); 14 | } 15 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity1@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity2@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity3@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity4@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity5.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity5@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity6.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity6@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity7.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity7@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity8.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity8@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity9.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity9@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity10.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity10@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity11.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity11@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity12.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity12@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity13.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity13@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity14.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity14@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity15.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity15@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity16.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity16@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity17.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity17@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity18.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity18@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity19.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity19@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity20.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity20@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity21.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity21@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity22.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity22@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity23.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity23@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity24.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity24@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity25.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity25@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity26.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity26@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity27.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity27@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity28.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity28@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity29.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity29@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch/Assets.xcassets/ActivityIndicator/Activity30.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Activity30@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Android/Cerradura/app/src/androidTest/java/com/colemancda/cerradura/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.colemancda.cerradura; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /Sources/CoreLock/Model.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Model.swift 3 | // Lock 4 | // 5 | // Created by Alsey Coleman Miller on 4/17/16. 6 | // Copyright © 2016 ColemanCDA. All rights reserved. 7 | // 8 | 9 | /// Lock hardware model. 10 | public enum Model: UInt8 { 11 | 12 | case orangePiOne = 1 13 | } 14 | 15 | public extension Model { 16 | 17 | var name: String { 18 | 19 | switch self { 20 | case .orangePiOne: return "Classic" 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Android/Cerradura/app/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | Carthage 2 | .build 3 | Packages 4 | Xcode/Lock.xcodeproj/project.xcworkspace/xcuserdata 5 | Xcode/Lock.xcodeproj/xcuserdata 6 | 7 | Android/com.colemancda.Cerradura/bin 8 | Android/com.colemancda.Cerradura/obj 9 | 10 | .DS_Store 11 | ._ 12 | *.db 13 | 14 | *.gz 15 | 16 | debianpackage/lockd/usr/bin/lockd 17 | 18 | debianpackage/repo/dists/jessie/Release 19 | 20 | debianpackage/repo/dists/jessie/main/binary-armhf/Release 21 | 22 | debianpackage/repo/db/version 23 | 24 | Sources/CoreLock/Secrets.swift 25 | -------------------------------------------------------------------------------- /Cartfile.resolved: -------------------------------------------------------------------------------- 1 | github "ColemanCDA/BSON" "2266ac44f3503d5c9c6fec97c8fc98376071a768" 2 | github "PureSwift/Bluetooth" "19b30bf34419e24f537d1ea77e6ddfc51e97296b" 3 | github "krzyzanowskim/CryptoSwift" "0.6.8" 4 | github "JonasGessner/JGProgressHUD" "v1.4.1" 5 | github "PureSwift/JSON" "77d6203771ad21b1af3e10f7bb5ced109ee505ea" 6 | github "kishikawakatsumi/KeychainAccess" "v3.0.2" 7 | github "PureSwift/BluetoothLinux" "faaa9bd133d6fb1267e3f210a42813b327e06362" 8 | github "PureSwift/GATT" "3f244065f19af6b989200852a962b050dab78407" 9 | -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/Assets.xcassets/modularSmallAdmin.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "watch" 5 | }, 6 | { 7 | "idiom" : "watch", 8 | "filename" : "modularSmallAdmin38.pdf", 9 | "screen-width" : "<=145" 10 | }, 11 | { 12 | "idiom" : "watch", 13 | "filename" : "modularSmallAdmin42.pdf", 14 | "screen-width" : ">145" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Cerradura.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.application-groups 6 | 7 | group.com.colemancda.Cerradura 8 | 9 | keychain-access-groups 10 | 11 | $(AppIdentifierPrefix)group.com.colemancda.Cerradura 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Android/Cerradura/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Cerradura 3 | Settings 4 | Hello World from section: %1$d 5 | Near Lock 6 | Lock Image 7 | 8 | 9 | Hello blank fragment 10 | 11 | -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/Assets.xcassets/PlaceholderComplication.complicationset/Circular.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "watch", 5 | "scale" : "2x" 6 | }, 7 | { 8 | "idiom" : "watch", 9 | "scale" : "2x", 10 | "screen-width" : "<=145" 11 | }, 12 | { 13 | "idiom" : "watch", 14 | "scale" : "2x", 15 | "screen-width" : ">145" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/Assets.xcassets/PlaceholderComplication.complicationset/Utilitarian.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "watch", 5 | "scale" : "2x" 6 | }, 7 | { 8 | "idiom" : "watch", 9 | "scale" : "2x", 10 | "screen-width" : "<=145" 11 | }, 12 | { 13 | "idiom" : "watch", 14 | "scale" : "2x", 15 | "screen-width" : ">145" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Brand Assets.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "minimum-system-version" : "7.0", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "orientation" : "portrait", 11 | "idiom" : "iphone", 12 | "minimum-system-version" : "7.0", 13 | "subtype" : "retina4", 14 | "scale" : "2x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/Near.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Near.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Near@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Near@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Xcode/CerraduraTodayExtension/CerraduraTodayExtension.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.application-groups 6 | 7 | group.com.colemancda.Cerradura 8 | 9 | keychain-access-groups 10 | 11 | $(AppIdentifierPrefix)group.com.colemancda.Cerradura 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Sources/lockd/File.swift: -------------------------------------------------------------------------------- 1 | // 2 | // File.swift 3 | // Lock 4 | // 5 | // Created by Alsey Coleman Miller on 6/8/16. 6 | // Copyright © 2016 ColemanCDA. All rights reserved. 7 | // 8 | 9 | struct File { 10 | 11 | static let store = "/opt/colemancda/lockd/data.json" 12 | 13 | static let configuration = "/opt/colemancda/lockd/config.json" 14 | 15 | static let homeKitDaemon = "/opt/colemancda/HAP-NodeJS/Core.js" 16 | 17 | static let homeKitData = "/persist" 18 | 19 | static let nodejs = "/usr/bin/node" 20 | } 21 | -------------------------------------------------------------------------------- /Xcode/Cerradura/Assets.xcassets/Tab Bar Icons/NearSelected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "NearSelected.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "NearSelected@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "NearSelected@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/Constants.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Version.swift 3 | // Lock 4 | // 5 | // Created by Alsey Coleman Miller on 7/1/16. 6 | // Copyright © 2016 ColemanCDA. All rights reserved. 7 | // 8 | 9 | import Foundation.NSBundle 10 | 11 | /// Version of the app. 12 | public let AppVersion = Bundle.main.infoDictionary!["CFBundleShortVersionString"] as! String 13 | 14 | /// Build of the app. 15 | public let AppBuild = Bundle.main.infoDictionary!["CFBundleVersion"] as! String 16 | 17 | /// The App Group of Cerradura. 18 | public let AppGroup = "group.com.colemancda.Cerradura" 19 | -------------------------------------------------------------------------------- /Xcode/Cerradura/Async.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Async.swift 3 | // Lock 4 | // 5 | // Created by Alsey Coleman Miller on 6/12/16. 6 | // Copyright © 2016 ColemanCDA. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | func mainQueue(_ block: @escaping () -> ()) { 12 | 13 | OperationQueue.main.addOperation(block) 14 | } 15 | 16 | /// Perform a task on the internal queue. 17 | @inline(__always) 18 | func async(_ block: @escaping () -> ()) { 19 | 20 | queue.async { block() } 21 | } 22 | 23 | let queue = DispatchQueue(label: "Cerradura Queue", attributes: []) 24 | -------------------------------------------------------------------------------- /Sources/CoreLock/Integer.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Integer.swift 3 | // SwiftFoundation 4 | // 5 | // Created by Alsey Coleman Miller on 8/24/15. 6 | // Copyright © 2015 PureSwift. All rights reserved. 7 | // 8 | 9 | public extension UInt16 { 10 | 11 | /// Initializes value from two bytes. 12 | public init(bytes: (UInt8, UInt8)) { 13 | 14 | self = unsafeBitCast(bytes, to: UInt16.self) 15 | } 16 | 17 | /// Converts to two bytes. 18 | public var bytes: (UInt8, UInt8) { 19 | 20 | return unsafeBitCast(self, to: (UInt8, UInt8).self) 21 | } 22 | } 23 | 24 | -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/ErrorAlert.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ErrorAlert.swift 3 | // Lock 4 | // 5 | // Created by Alsey Coleman Miller on 7/8/16. 6 | // Copyright © 2016 ColemanCDA. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import WatchKit 11 | 12 | extension WKInterfaceController { 13 | 14 | func showError(_ error: String) { 15 | 16 | let action = WKAlertAction(title: "OK", style: WKAlertActionStyle.`default`) { } 17 | 18 | self.presentAlert(withTitle: "Error", message: error, preferredStyle: .actionSheet, actions: [action]) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Android/Cerradura/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:2.1.0' 9 | 10 | // NOTE: Do not place your application dependencies here; they belong 11 | // in the individual module build.gradle files 12 | } 13 | } 14 | 15 | allprojects { 16 | repositories { 17 | jcenter() 18 | } 19 | } 20 | 21 | task clean(type: Delete) { 22 | delete rootProject.buildDir 23 | } 24 | -------------------------------------------------------------------------------- /Android/Cerradura/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/Assets.xcassets/PlaceholderComplication.complicationset/PlaceholderModular.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "watch", 5 | "scale" : "2x" 6 | }, 7 | { 8 | "idiom" : "watch", 9 | "filename" : "modularSmallAdmin38.pdf", 10 | "screen-width" : "<=145", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "watch", 15 | "filename" : "modularSmallAdmin42.pdf", 16 | "screen-width" : ">145", 17 | "scale" : "2x" 18 | } 19 | ], 20 | "info" : { 21 | "version" : 1, 22 | "author" : "xcode" 23 | }, 24 | "properties" : { 25 | "template-rendering-intent" : "original" 26 | } 27 | } -------------------------------------------------------------------------------- /Xcode/Cerradura/LockTableViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LockTableViewCell.swift 3 | // Lock 4 | // 5 | // Created by Alsey Coleman Miller on 7/1/16. 6 | // Copyright © 2016 ColemanCDA. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | final class LockTableViewCell: UITableViewCell { 12 | 13 | // MARK: - Class Properties 14 | 15 | static let reuseIdentifier = "LockTableViewCell" 16 | 17 | static let nib = UINib(nibName: "LockTableViewCell", bundle: nil) 18 | 19 | // MARK: - IB Outlets 20 | 21 | @IBOutlet weak var lockImageView: UIImageView! 22 | 23 | @IBOutlet weak var lockTitleLabel: UILabel! 24 | 25 | @IBOutlet weak var lockDetailLabel: UILabel! 26 | } 27 | -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- 1 | import PackageDescription 2 | 3 | let package = Package( 4 | name: "Lock", 5 | targets: [ 6 | Target( 7 | name: "lockd", 8 | dependencies: [.Target(name: "CoreLock")] 9 | ), 10 | Target( 11 | name: "CoreLock" 12 | ) 13 | ], 14 | dependencies: [ 15 | .Package(url: "https://github.com/PureSwift/GATT", majorVersion: 1), 16 | .Package(url: "https://github.com/PureSwift/JSON", majorVersion: 1), 17 | .Package(url: "https://github.com/krzyzanowskim/CryptoSwift", majorVersion: 0), 18 | .Package(url: "https://github.com/ColemanCDA/BSON", majorVersion: 4) 19 | ], 20 | exclude: ["Xcode", "Android"] 21 | ) 22 | -------------------------------------------------------------------------------- /Xcode/CerraduraWatch Extension/Assets.xcassets/PlaceholderComplication.complicationset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "assets" : [ 3 | { 4 | "idiom" : "watch", 5 | "filename" : "Circular.imageset", 6 | "role" : "circular" 7 | }, 8 | { 9 | "idiom" : "watch", 10 | "filename" : "Extra Large.imageset", 11 | "role" : "extra-large" 12 | }, 13 | { 14 | "idiom" : "watch", 15 | "filename" : "PlaceholderModular.imageset", 16 | "role" : "modular" 17 | }, 18 | { 19 | "idiom" : "watch", 20 | "filename" : "Utilitarian.imageset", 21 | "role" : "utilitarian" 22 | } 23 | ], 24 | "info" : { 25 | "version" : 1, 26 | "author" : "xcode" 27 | } 28 | } -------------------------------------------------------------------------------- /Android/Cerradura/.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | -------------------------------------------------------------------------------- /Android/Cerradura/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/coleman/Library/Android/sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /Tests/LinuxMain.swift: -------------------------------------------------------------------------------- 1 | // 2 | // main.swift 3 | // GATT 4 | // 5 | // Created by Alsey Coleman Miller on 4/14/16. 6 | // Copyright © 2016 PureSwift. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import CoreLock 11 | @testable import UnitTests 12 | 13 | #if os(OSX) || os(iOS) || os(watchOS) 14 | func XCTMain(_ testCases: [XCTestCaseEntry]) { fatalError("Not Implemented. Linux only") } 15 | 16 | func testCase(_ allTests: [(String, (T) -> () throws -> Void)]) -> XCTestCaseEntry { fatalError("Not Implemented. Linux only") } 17 | 18 | struct XCTestCaseEntry { } 19 | #endif 20 | 21 | XCTMain([testCase(CryptoTests.allTests), 22 | testCase(GATTProfileTests.allTests), 23 | testCase(SerializationTests.allTests)]) 24 | -------------------------------------------------------------------------------- /Android/Cerradura/.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Android/Cerradura/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 19 | -------------------------------------------------------------------------------- /Sources/CoreLock/Status.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Status.swift 3 | // Lock 4 | // 5 | // Created by Alsey Coleman Miller on 4/16/16. 6 | // Copyright © 2016 ColemanCDA. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Lock status 12 | public enum Status: UInt8 { 13 | 14 | /// Initial Status 15 | case setup 16 | 17 | /// Idle / Unlock Mode 18 | case unlock 19 | } 20 | 21 | // MARK: - DataConvertible 22 | 23 | public extension Status { 24 | 25 | public init?(data: Data) { 26 | 27 | guard data.count == 1 28 | else { return nil } 29 | 30 | self.init(rawValue: data.bytes[0]) 31 | } 32 | 33 | public func toData() -> Data { 34 | 35 | return Data(bytes: [rawValue]) 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Android/Cerradura/app/src/main/res/layout/fragment_main.xml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Xcode/Cerradura/Preferences.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Preferences.swift 3 | // Lock 4 | // 5 | // Created by Alsey Coleman Miller on 7/3/16. 6 | // Copyright © 2016 ColemanCDA. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | final class Preferences { 12 | 13 | static let shared = Preferences() 14 | 15 | let userDefaults = UserDefaults.standard 16 | 17 | // MARK: 18 | 19 | var isAppInstalled: Bool { 20 | 21 | get { return userDefaults.bool(forKey: Key.isAppInstalled.rawValue) } 22 | 23 | set { userDefaults.set(newValue, forKey: Key.isAppInstalled.rawValue) } 24 | } 25 | } 26 | 27 | // MARK: - Keys 28 | 29 | extension Preferences { 30 | 31 | enum Key: String { 32 | 33 | case isAppInstalled 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Tests/UnitTests/SerializationTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SerializationTests.swift 3 | // Lock 4 | // 5 | // Created by Alsey Coleman Miller on 7/3/16. 6 | // Copyright © 2016 ColemanCDA. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | import Foundation 11 | @testable import CoreLock 12 | 13 | final class SerializationTests: XCTestCase { 14 | 15 | static let allTests: [(String, (SerializationTests) -> () throws -> Void)] = [("keyJSON", keyJSON)] 16 | 17 | func keyJSON() { 18 | 19 | let key = Key(identifier: UUID(), name: Key.Name(rawValue: "New Key")!, data: KeyData(), permission: .admin) 20 | 21 | guard let decodedKey = Key(JSONValue: key.toJSON()) 22 | else { XCTFail(); return } 23 | 24 | XCTAssert(key == decodedKey) 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Android/Cerradura/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 15 | 16 |