From 219378c12f159f5ec974bc0e0b0a792925df3c89 Mon Sep 17 00:00:00 2001 From: Alexander Davis Date: Sat, 8 Apr 2017 00:50:26 +0100 Subject: [PATCH] Repairs to Repository and Creation of Parse Security Key --- Task Master.xcodeproj/project.pbxproj | 466 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 23217 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 71 +++ .../xcschemes/Task Master.xcscheme | 101 ++++ .../xcschemes/xcschememanagement.plist | 27 + Task Master/AppDelegate.swift | 46 ++ .../AppIcon.appiconset/Contents.json | 48 ++ .../create_new-50.imageset/Contents.json | 23 + .../create_new-50.imageset/create_new-25.png | Bin 0 -> 445 bytes .../create_new-50.imageset/create_new-32.png | Bin 0 -> 615 bytes .../create_new-50.imageset/create_new-50.png | Bin 0 -> 874 bytes .../first.imageset/Contents.json | 12 + .../Assets.xcassets/first.imageset/first.pdf | Bin 0 -> 2465 bytes .../report_card-50.imageset/Contents.json | 23 + .../report_card-25.png | Bin 0 -> 209 bytes .../report_card-32.png | Bin 0 -> 495 bytes .../report_card-50.png | Bin 0 -> 318 bytes .../second.imageset/Contents.json | 12 + .../second.imageset/second.pdf | Bin 0 -> 2423 bytes Task Master/Base.lproj/Main.storyboard | 199 ++++++++ Task Master/FirstViewController.swift | 56 +++ Task Master/Info.plist | 55 +++ Task Master/LaunchScreen.storyboard | 54 ++ Task Master/SecondViewController.swift | 60 +++ Task Master/Task Master.entitlements | 12 + Task Master/TaskMaster.swift | 26 + Task Master/ToDoListTableViewController.h | 19 + Task Master/ToDoListTableViewController.swift | 95 ++++ Task MasterTests/Info.plist | 22 + Task MasterTests/Task_MasterTests.swift | 36 ++ TaskMasterParse Security Key.pem | 23 + 32 files changed, 1493 insertions(+) create mode 100644 Task Master.xcodeproj/project.pbxproj create mode 100644 Task Master.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Task Master.xcodeproj/project.xcworkspace/xcuserdata/alexanderdavis.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 Task Master.xcodeproj/xcuserdata/alexanderdavis.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 Task Master.xcodeproj/xcuserdata/alexanderdavis.xcuserdatad/xcschemes/Task Master.xcscheme create mode 100644 Task Master.xcodeproj/xcuserdata/alexanderdavis.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 Task Master/AppDelegate.swift create mode 100755 Task Master/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100755 Task Master/Assets.xcassets/create_new-50.imageset/Contents.json create mode 100755 Task Master/Assets.xcassets/create_new-50.imageset/create_new-25.png create mode 100755 Task Master/Assets.xcassets/create_new-50.imageset/create_new-32.png create mode 100755 Task Master/Assets.xcassets/create_new-50.imageset/create_new-50.png create mode 100755 Task Master/Assets.xcassets/first.imageset/Contents.json create mode 100755 Task Master/Assets.xcassets/first.imageset/first.pdf create mode 100755 Task Master/Assets.xcassets/report_card-50.imageset/Contents.json create mode 100755 Task Master/Assets.xcassets/report_card-50.imageset/report_card-25.png create mode 100755 Task Master/Assets.xcassets/report_card-50.imageset/report_card-32.png create mode 100755 Task Master/Assets.xcassets/report_card-50.imageset/report_card-50.png create mode 100755 Task Master/Assets.xcassets/second.imageset/Contents.json create mode 100755 Task Master/Assets.xcassets/second.imageset/second.pdf create mode 100644 Task Master/Base.lproj/Main.storyboard create mode 100644 Task Master/FirstViewController.swift create mode 100644 Task Master/Info.plist create mode 100644 Task Master/LaunchScreen.storyboard create mode 100644 Task Master/SecondViewController.swift create mode 100644 Task Master/Task Master.entitlements create mode 100644 Task Master/TaskMaster.swift create mode 100644 Task Master/ToDoListTableViewController.h create mode 100644 Task Master/ToDoListTableViewController.swift create mode 100644 Task MasterTests/Info.plist create mode 100644 Task MasterTests/Task_MasterTests.swift create mode 100644 TaskMasterParse Security Key.pem diff --git a/Task Master.xcodeproj/project.pbxproj b/Task Master.xcodeproj/project.pbxproj new file mode 100644 index 0000000..e4bfb88 --- /dev/null +++ b/Task Master.xcodeproj/project.pbxproj @@ -0,0 +1,466 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 5F05B7221DFE210A0095C03B /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F05B7211DFE210A0095C03B /* AppDelegate.swift */; }; + 5F05B7261DFE210A0095C03B /* SecondViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F05B7251DFE210A0095C03B /* SecondViewController.swift */; }; + 5F05B7291DFE210A0095C03B /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5F05B7271DFE210A0095C03B /* Main.storyboard */; }; + 5F05B72B1DFE210A0095C03B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5F05B72A1DFE210A0095C03B /* Assets.xcassets */; }; + 5F05B7391DFE210A0095C03B /* Task_MasterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F05B7381DFE210A0095C03B /* Task_MasterTests.swift */; }; + 5F05B7441DFE21290095C03B /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5F05B7431DFE21290095C03B /* LaunchScreen.storyboard */; }; + 5F7AECE81E94B8D900CB5A9F /* ToDoListTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F7AECE71E94B8D900CB5A9F /* ToDoListTableViewController.swift */; }; + 5F8812851DFE25F60041BEAB /* TaskMaster.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F8812841DFE25F60041BEAB /* TaskMaster.swift */; }; + 5F8812871DFE26520041BEAB /* FirstViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F8812861DFE26520041BEAB /* FirstViewController.swift */; }; + 5F88128B1DFE27BA0041BEAB /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5F88128A1DFE27BA0041BEAB /* MapKit.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 5F05B7351DFE210A0095C03B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5F05B7161DFE210A0095C03B /* Project object */; + proxyType = 1; + remoteGlobalIDString = 5F05B71D1DFE210A0095C03B; + remoteInfo = "Task Master"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 5F05B71E1DFE210A0095C03B /* Task Master.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Task Master.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5F05B7211DFE210A0095C03B /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 5F05B7251DFE210A0095C03B /* SecondViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecondViewController.swift; sourceTree = ""; }; + 5F05B7281DFE210A0095C03B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 5F05B72A1DFE210A0095C03B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 5F05B72F1DFE210A0095C03B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 5F05B7341DFE210A0095C03B /* Task MasterTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Task MasterTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5F05B7381DFE210A0095C03B /* Task_MasterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Task_MasterTests.swift; sourceTree = ""; }; + 5F05B73A1DFE210A0095C03B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 5F05B7431DFE21290095C03B /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; }; + 5F7AECE61E94B87000CB5A9F /* ToDoListTableViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ToDoListTableViewController.h; sourceTree = ""; }; + 5F7AECE71E94B8D900CB5A9F /* ToDoListTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ToDoListTableViewController.swift; sourceTree = ""; }; + 5F8812841DFE25F60041BEAB /* TaskMaster.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TaskMaster.swift; sourceTree = ""; }; + 5F8812861DFE26520041BEAB /* FirstViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FirstViewController.swift; sourceTree = ""; }; + 5F8812881DFE27970041BEAB /* Task Master.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "Task Master.entitlements"; sourceTree = ""; }; + 5F88128A1DFE27BA0041BEAB /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 5F05B71B1DFE210A0095C03B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 5F88128B1DFE27BA0041BEAB /* MapKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5F05B7311DFE210A0095C03B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 5F05B7151DFE210A0095C03B = { + isa = PBXGroup; + children = ( + 5F05B7201DFE210A0095C03B /* Task Master */, + 5F05B7371DFE210A0095C03B /* Task MasterTests */, + 5F05B71F1DFE210A0095C03B /* Products */, + 5F8812891DFE27BA0041BEAB /* Frameworks */, + ); + sourceTree = ""; + }; + 5F05B71F1DFE210A0095C03B /* Products */ = { + isa = PBXGroup; + children = ( + 5F05B71E1DFE210A0095C03B /* Task Master.app */, + 5F05B7341DFE210A0095C03B /* Task MasterTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 5F05B7201DFE210A0095C03B /* Task Master */ = { + isa = PBXGroup; + children = ( + 5F8812881DFE27970041BEAB /* Task Master.entitlements */, + 5F8812861DFE26520041BEAB /* FirstViewController.swift */, + 5F8812841DFE25F60041BEAB /* TaskMaster.swift */, + 5F05B7211DFE210A0095C03B /* AppDelegate.swift */, + 5F05B7251DFE210A0095C03B /* SecondViewController.swift */, + 5F05B7271DFE210A0095C03B /* Main.storyboard */, + 5F7AECE61E94B87000CB5A9F /* ToDoListTableViewController.h */, + 5F7AECE71E94B8D900CB5A9F /* ToDoListTableViewController.swift */, + 5F05B7431DFE21290095C03B /* LaunchScreen.storyboard */, + 5F05B72A1DFE210A0095C03B /* Assets.xcassets */, + 5F05B72F1DFE210A0095C03B /* Info.plist */, + ); + path = "Task Master"; + sourceTree = ""; + }; + 5F05B7371DFE210A0095C03B /* Task MasterTests */ = { + isa = PBXGroup; + children = ( + 5F05B7381DFE210A0095C03B /* Task_MasterTests.swift */, + 5F05B73A1DFE210A0095C03B /* Info.plist */, + ); + path = "Task MasterTests"; + sourceTree = ""; + }; + 5F8812891DFE27BA0041BEAB /* Frameworks */ = { + isa = PBXGroup; + children = ( + 5F88128A1DFE27BA0041BEAB /* MapKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 5F05B71D1DFE210A0095C03B /* Task Master */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5F05B73D1DFE210A0095C03B /* Build configuration list for PBXNativeTarget "Task Master" */; + buildPhases = ( + 5F05B71A1DFE210A0095C03B /* Sources */, + 5F05B71B1DFE210A0095C03B /* Frameworks */, + 5F05B71C1DFE210A0095C03B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Task Master"; + productName = "Task Master"; + productReference = 5F05B71E1DFE210A0095C03B /* Task Master.app */; + productType = "com.apple.product-type.application"; + }; + 5F05B7331DFE210A0095C03B /* Task MasterTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5F05B7401DFE210A0095C03B /* Build configuration list for PBXNativeTarget "Task MasterTests" */; + buildPhases = ( + 5F05B7301DFE210A0095C03B /* Sources */, + 5F05B7311DFE210A0095C03B /* Frameworks */, + 5F05B7321DFE210A0095C03B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 5F05B7361DFE210A0095C03B /* PBXTargetDependency */, + ); + name = "Task MasterTests"; + productName = "Task MasterTests"; + productReference = 5F05B7341DFE210A0095C03B /* Task MasterTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 5F05B7161DFE210A0095C03B /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0810; + LastUpgradeCheck = 0810; + ORGANIZATIONNAME = "Alexander Davis Computing and Media"; + TargetAttributes = { + 5F05B71D1DFE210A0095C03B = { + CreatedOnToolsVersion = 8.1; + DevelopmentTeam = 28CC8SCVUN; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.BackgroundModes = { + enabled = 1; + }; + com.apple.DataProtection = { + enabled = 1; + }; + com.apple.Maps.iOS = { + enabled = 1; + }; + com.apple.Push = { + enabled = 1; + }; + com.apple.Siri = { + enabled = 1; + }; + }; + }; + 5F05B7331DFE210A0095C03B = { + CreatedOnToolsVersion = 8.1; + DevelopmentTeam = 28CC8SCVUN; + ProvisioningStyle = Automatic; + TestTargetID = 5F05B71D1DFE210A0095C03B; + }; + }; + }; + buildConfigurationList = 5F05B7191DFE210A0095C03B /* Build configuration list for PBXProject "Task Master" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 5F05B7151DFE210A0095C03B; + productRefGroup = 5F05B71F1DFE210A0095C03B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 5F05B71D1DFE210A0095C03B /* Task Master */, + 5F05B7331DFE210A0095C03B /* Task MasterTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 5F05B71C1DFE210A0095C03B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5F05B7441DFE21290095C03B /* LaunchScreen.storyboard in Resources */, + 5F05B72B1DFE210A0095C03B /* Assets.xcassets in Resources */, + 5F05B7291DFE210A0095C03B /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5F05B7321DFE210A0095C03B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5F05B71A1DFE210A0095C03B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5F05B7261DFE210A0095C03B /* SecondViewController.swift in Sources */, + 5F7AECE81E94B8D900CB5A9F /* ToDoListTableViewController.swift in Sources */, + 5F05B7221DFE210A0095C03B /* AppDelegate.swift in Sources */, + 5F8812851DFE25F60041BEAB /* TaskMaster.swift in Sources */, + 5F8812871DFE26520041BEAB /* FirstViewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5F05B7301DFE210A0095C03B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5F05B7391DFE210A0095C03B /* Task_MasterTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 5F05B7361DFE210A0095C03B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 5F05B71D1DFE210A0095C03B /* Task Master */; + targetProxy = 5F05B7351DFE210A0095C03B /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 5F05B7271DFE210A0095C03B /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 5F05B7281DFE210A0095C03B /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 5F05B73B1DFE210A0095C03B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 10.1; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 5F05B73C1DFE210A0095C03B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 10.1; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 5F05B73E1DFE210A0095C03B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = "Task Master/Task Master.entitlements"; + DEVELOPMENT_TEAM = 28CC8SCVUN; + INFOPLIST_FILE = "Task Master/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "ADCMNetworks.Task-Master"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + }; + name = Debug; + }; + 5F05B73F1DFE210A0095C03B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = "Task Master/Task Master.entitlements"; + DEVELOPMENT_TEAM = 28CC8SCVUN; + INFOPLIST_FILE = "Task Master/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "ADCMNetworks.Task-Master"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + }; + name = Release; + }; + 5F05B7411DFE210A0095C03B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + DEVELOPMENT_TEAM = 28CC8SCVUN; + INFOPLIST_FILE = "Task MasterTests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "ADCMNetworks.Task-MasterTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Task Master.app/Task Master"; + }; + name = Debug; + }; + 5F05B7421DFE210A0095C03B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + DEVELOPMENT_TEAM = 28CC8SCVUN; + INFOPLIST_FILE = "Task MasterTests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "ADCMNetworks.Task-MasterTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Task Master.app/Task Master"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 5F05B7191DFE210A0095C03B /* Build configuration list for PBXProject "Task Master" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5F05B73B1DFE210A0095C03B /* Debug */, + 5F05B73C1DFE210A0095C03B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 5F05B73D1DFE210A0095C03B /* Build configuration list for PBXNativeTarget "Task Master" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5F05B73E1DFE210A0095C03B /* Debug */, + 5F05B73F1DFE210A0095C03B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 5F05B7401DFE210A0095C03B /* Build configuration list for PBXNativeTarget "Task MasterTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5F05B7411DFE210A0095C03B /* Debug */, + 5F05B7421DFE210A0095C03B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 5F05B7161DFE210A0095C03B /* Project object */; +} diff --git a/Task Master.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Task Master.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..d44d66f --- /dev/null +++ b/Task Master.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Task Master.xcodeproj/project.xcworkspace/xcuserdata/alexanderdavis.xcuserdatad/UserInterfaceState.xcuserstate b/Task Master.xcodeproj/project.xcworkspace/xcuserdata/alexanderdavis.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..9885b2548a880c49682d892d3537e86b76dd3912 GIT binary patch literal 23217 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 MN@jSvBdQPoKWB + + + + + + + + + + + + + + + + + + + + diff --git a/Task Master.xcodeproj/xcuserdata/alexanderdavis.xcuserdatad/xcschemes/Task Master.xcscheme b/Task Master.xcodeproj/xcuserdata/alexanderdavis.xcuserdatad/xcschemes/Task Master.xcscheme new file mode 100644 index 0000000..d3a629d --- /dev/null +++ b/Task Master.xcodeproj/xcuserdata/alexanderdavis.xcuserdatad/xcschemes/Task Master.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Task Master.xcodeproj/xcuserdata/alexanderdavis.xcuserdatad/xcschemes/xcschememanagement.plist b/Task Master.xcodeproj/xcuserdata/alexanderdavis.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..bcb8bd7 --- /dev/null +++ b/Task Master.xcodeproj/xcuserdata/alexanderdavis.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,27 @@ + + + + + SchemeUserState + + Task Master.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 5F05B71D1DFE210A0095C03B + + primary + + + 5F05B7331DFE210A0095C03B + + primary + + + + + diff --git a/Task Master/AppDelegate.swift b/Task Master/AppDelegate.swift new file mode 100644 index 0000000..1803b80 --- /dev/null +++ b/Task Master/AppDelegate.swift @@ -0,0 +1,46 @@ +// +// AppDelegate.swift +// Task Master +// +// Created by Alexander Davis on 12/12/2016. +// Copyright © 2016 Alexander Davis Computing and Media. All rights reserved. +// + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + func applicationWillResignActive(_ application: UIApplication) { + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. + } + + func applicationDidEnterBackground(_ application: UIApplication) { + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. + } + + func applicationWillEnterForeground(_ application: UIApplication) { + // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. + } + + func applicationDidBecomeActive(_ application: UIApplication) { + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. + } + + func applicationWillTerminate(_ application: UIApplication) { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. + } + + +} + diff --git a/Task Master/Assets.xcassets/AppIcon.appiconset/Contents.json b/Task Master/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100755 index 0000000..b8236c6 --- /dev/null +++ b/Task Master/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,48 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Task Master/Assets.xcassets/create_new-50.imageset/Contents.json b/Task Master/Assets.xcassets/create_new-50.imageset/Contents.json new file mode 100755 index 0000000..c084b4d --- /dev/null +++ b/Task Master/Assets.xcassets/create_new-50.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "create_new-25.png" + }, + { + "idiom" : "universal", + "scale" : "2x", + "filename" : "create_new-32.png" + }, + { + "idiom" : "universal", + "scale" : "3x", + "filename" : "create_new-50.png" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Task Master/Assets.xcassets/create_new-50.imageset/create_new-25.png b/Task Master/Assets.xcassets/create_new-50.imageset/create_new-25.png new file mode 100755 index 0000000000000000000000000000000000000000..a5a31cc43ccbb9405a216fd5e16fcb0937bc2d1b GIT binary patch literal 445 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~%1|*NXY)uAIEX7WqAsj$Z!;#Vf4nJ zu)P6cM!8Z8Q;?1l*NBqf{Irtt#G+J&^73-M%)IR4JY5_^ zJUZWAwf15T6k&VtzAIy<>JOhJ-H6DJ-lcQ7KTLhWm9w=}H}CK{HEn~Bj7@7fZpCo> z8}b?Y83k7*NYq)(c|R|4#>C=lUs{=Y3cBA`@`ih53d`R(z_f1my$3wsGZO7LI35!4 zHWlA-h+A*N>|(iPQ=)DhRC>Z@_TqSAxRU;Hx7ib4E54Z8FqPpPm+fX{#-0sP3~jCp z#F{QMTvJ-lcHwwxu1Z5Y(+05w{i1cP4^$ey7CHb$+_xyNXRnBQHJkTfA!kNEbDA4d zh0}5dn@3Nk|9dGQGqvHINHQI}h07w@dt_%_>YrKc%lCinzlkfe kFVdQ&MBb@0P+~Hwg3PC literal 0 HcmV?d00001 diff --git a/Task Master/Assets.xcassets/create_new-50.imageset/create_new-32.png b/Task Master/Assets.xcassets/create_new-50.imageset/create_new-32.png new file mode 100755 index 0000000000000000000000000000000000000000..ceb4e8cb8b99d8f3899bafe5f23a85a0da44e161 GIT binary patch literal 615 zcmV-t0+{`YP)@`V?m7Fub9RPhLzoe9=@eHe2$DMe7JEU}L zZ7DG}a1T@XiCLuRMv6{!FqER;E?yR#{coJYbG??|&pGFmQo=)=$vI!$OwPDj_?u7S z2j*%spN)=8S8~e=U?Sl2HTYZ|UR(g<0q-=xr?#jmBM|U)EY#rhAvLMDFi#g3z*xW+ zYw%75eq3*NoGmJV(SSd$!50EP5%*36tDHa$-dBMy#{Kb1Zdn10;5(Ko@V=1w2VPtN z!vSAzfRAlaQ%0ZyU#Y>D0zTSMw|fCx!8g4hOBKExQd`1{2vp!}HTX)vN4BZoxd1LV zz*hr4++qSd6F@({;wkzo@U@WI7XCkhKHJAR4B|YFq?G!j?YD3v=lr_GI~rr4Mb0Js z!b!ZsM_dc|o87?M3S5Z1O^L&}o^yV?TX(OQr z?r9td90+Xgf{VQ~!=A>mrU&npKbkd-E(WXrg1-!2_1R(P`kw#*002ovPDHLkV1mh6 B3R?gG literal 0 HcmV?d00001 diff --git a/Task Master/Assets.xcassets/create_new-50.imageset/create_new-50.png b/Task Master/Assets.xcassets/create_new-50.imageset/create_new-50.png new file mode 100755 index 0000000000000000000000000000000000000000..01be1c07e917a49b28f87792232cb04590d089fd GIT binary patch literal 874 zcmV-w1C{)VP)8a1t_Do`|wcL~q zxDV_D2f#OA7r0}s#YjQw!x+;GyaZ}PsUJXHP4X>8j<3M4JmYtPXQ_u6V}^|}Bi7na zKnw6QPg%zMx-asX7y>Q<3pC1D9l>YBs_npgvjq@?3NaSSg)#d8uR}VY+o&`;09?q} zxC5HQoD+PTd2c?9=vRmd2SP8i-rP5@1+4F-B+c|G#H6EUO!6b4@pM3dUWJ%))Qn61 z5*SV$1n7~qZh>h>&4fY><;nYn0Nn~PkRF1dgsF_!Y?oiG@B!pOY)GSE;4Cu;}_X`0s3bEp-SyYIuqsAWu zXa!E>7^{w&C57lLFqa<)!C!MZ#G0dKSs^-#%$Ga_XjX`IN6m`lPl5Il=1dj>Gy%sl z?}nphRUz6+oHscL(5Mib5d6C-RI^qtB2h>PvE@LlOa27NlsSL=5TF4#lDW3S2*3av z3eg(j81X`Y#|p9IKx`^ROT^>E2Lb98V%LG#lKe5ye2q6O9tiLVIF$YO9Efd&Xo`x6 z8}eE9ec?dtC`99R5V1jkd$QjZ@LWR#u`BtbN+9BdbjyCfQP&LF_7tL_5{ObDw}}=H z<hB{DLaz;Q3;05C zEB-Fxypbd7(t1yDA^Zq@$Zgiz@0Dt-+%N>E3~Q|^QtLI0F$Mcf{ZDVDMir8_s6x^f zRY=;R3Q1f1H;}*gTDe<*n;JF18{bWo5zb!!0MhoC^X2R2n*aa+07*qoM6N<$g0Yx^ A2mk;8 literal 0 HcmV?d00001 diff --git a/Task Master/Assets.xcassets/first.imageset/Contents.json b/Task Master/Assets.xcassets/first.imageset/Contents.json new file mode 100755 index 0000000..33a7451 --- /dev/null +++ b/Task Master/Assets.xcassets/first.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "first.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Task Master/Assets.xcassets/first.imageset/first.pdf b/Task Master/Assets.xcassets/first.imageset/first.pdf new file mode 100755 index 0000000000000000000000000000000000000000..47d911dea647d55983671ead4d08b6f6b3600715 GIT binary patch literal 2465 zcmai03se(l7FLvisY+L#f-EBsK`11Xkc1=%MIujmB|xQ!>5vQ%APFP`Mlf5nSPOKE z2-^C>7DZkM!J;Da5{kfrC?Kvp3J41-3shFXvhuJqKo*oer*r0H{{P-P_x0cTzLzjD!bE z0qT;#Q7l4Gy%fMoXJaKT`@{5#R(MOqJPwQifv8iK6A%Ot9L14h2`38T!2s4PM=1!< zmL06}VYAA|ay#jZRs>HpA%X+eQW4rufWU%d1w5GTy!X#LeZsF_+~ccZmn3Fi)v^Z; zIG;?uU*yLLEYs61tjD>gXOFvSWsh{48xJvPNqKrIJtMdCz2cA2aC7TF?b@K`V!Lw- zE;zpH&ApqhoRjAHt}gK}>(qAc8dvrkD31*`<5<%C(&4_LqhQ3-GOf8~n^leG?+-@@^pjPa$J2gW@O)!b9hdTJ zTauyIJ&~rqeEZC1p9dWgx7{_WRc2=drMO=wcT7B{Zd58z`d)r_36r4V<6PGkCjpGfbnVMtm@;b}F!T?)Qav$_y7H5T;Mf!T}M zWxP9TNqrV?e5;b|pWd3^u2KAatk&3aDB@0 zZBaQNdCZ2#fblzYZnRCCjQ-GQWb-s8bX&<)?SxnUGdDYVFVk`xIf7@g3~$DX`H71_;r5OSZz1p`$_8y_9 z{;MJJ+n=>7Ewg;GnGHoz)&ID0z@F2!e$F7cWQ?d6s(!VY)_Gw})xCyMvsD={5i&H* zAIr_ACo8;Se6<*!-mm9Am79Iz^RVlc?%S5sg|E*SyIV{dd9{Mpf#d3cih5WKt=%ps zBEo)bt8EjmeCFYJRYU|b7d`p+-V|X2wOCYtyLP6t=!WH-kgdf0A};ytPfZiCwVPx{ z`g;zpe{8a4RQxQUwVU02<4X3w|9h;}XjhGWquqn{vVqq8g{*}BQF9=ybe_TM*!M=rFs1pN)yzctIXAoicsCe6>fit>wgZ#vp^hZOY0`J`rx zwdSK?GwR_xm9;5XjH|vf{O+Yg-)z;s*xt>;-vU`D-_SK<=~4eEVQkV~57{vyH6ebu>DqwE~Mx_A31Lg~$ zy`i52ew?GEluE%AN>ju*5z~dx2QQLP-G+E>o|En2+s&<^4*d zWD+<8PXs_Jp7_5Dpi(Gg3J?M;%Rn0{dcxQRh!ip+iHJ_e`!bM1MGxwI8Iedr+x>wI zq@&04fsADHfBccq^gpm8Q_u-~Uj|Z$YwSR(^_mzUb!}Xb2Cj`uqphg}v_Y%?Fs=;= zWq3s{hy)Tu!ji@RJsd$C+G{F6V2j1*Xk+7xo|LO7M2yb)(wc=%x-AclP9pLsbTF7m tf?*P!2EjJu5MD57P32Q4pdJ3tO_shCDT2=K;$ebx8ymcd$v!V9{2$sQiO>K5 literal 0 HcmV?d00001 diff --git a/Task Master/Assets.xcassets/report_card-50.imageset/Contents.json b/Task Master/Assets.xcassets/report_card-50.imageset/Contents.json new file mode 100755 index 0000000..58b2369 --- /dev/null +++ b/Task Master/Assets.xcassets/report_card-50.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "report_card-25.png" + }, + { + "idiom" : "universal", + "scale" : "2x", + "filename" : "report_card-32.png" + }, + { + "idiom" : "universal", + "scale" : "3x", + "filename" : "report_card-50.png" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Task Master/Assets.xcassets/report_card-50.imageset/report_card-25.png b/Task Master/Assets.xcassets/report_card-50.imageset/report_card-25.png new file mode 100755 index 0000000000000000000000000000000000000000..f18566eec3ae1016f1d2e64db9c5ac32c394664e GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~&3?$8t&jv{IdeC{Gl%uDMV@O3@(gF4_|CJk<4zshd{5Wu=fv4bO z1kVAR$_b22d-|CrBo-_)FxZf$m++(Euusjh0(m)&U;ze$D+LFc8LnHHx9DmsOMqPE M>FVdQ&MBb@0Q1H(qyPW_ literal 0 HcmV?d00001 diff --git a/Task Master/Assets.xcassets/report_card-50.imageset/report_card-32.png b/Task Master/Assets.xcassets/report_card-50.imageset/report_card-32.png new file mode 100755 index 0000000000000000000000000000000000000000..fdf21c7012dcc189a7ceddc9e67bf35499a95a08 GIT binary patch literal 495 zcmVwk6Lv$+!}G zh`YGd6g)75xP_pNuTEe*#uMDc826fnu(1R9hTBK}cVHa=@D6XVjJHW%)(Sh5A%g&Cl0R6TmNOU`E|gN9HN|Q&oX3NfJRg$0+J~`-fB1zLSZgZkvIBSU1@8eX zwZtw}u#6wL(aSPQ@-)eOl25gq!KmO&Ddk#ItfqoFTxrR(p5*5~jM*exfakba!|ZAq zy~Y|=FvddD5Y`?r!l{-%Gl6jdUlBZNwF{E$U}H+V549w}ODWfJ6`yN)T`!|ee4Lgu l3>i+d-Vc-hPqV>a$Ga1Tz?>lrZ#Mt{002ovPDHLkV1mW6)e-;z literal 0 HcmV?d00001 diff --git a/Task Master/Assets.xcassets/report_card-50.imageset/report_card-50.png b/Task Master/Assets.xcassets/report_card-50.imageset/report_card-50.png new file mode 100755 index 0000000000000000000000000000000000000000..fe73ac5eddf45c8f9d1257eea28ce80918ccf8ed GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=3?wxlRx|^tzyO~R*Z=?j1DR9=IvvXjfW}Fc z1o;IssJv&|QXM{tZ&9{v2IIfA2e$@(cr9`9Pk^x4;qU1{RZX5Qjv*CsZ>~CWJ2(im zJ>=iq(bawF-~an~92V{z)WJA&2)5rW!|I?;o?oI*%zejJiuY>hFLQwKlAa9O+PnPh#% zJp~JAfs-De6u@;{cREMs}D-sGib_4>50m8_|Uj-zC0m@Qx zJV+^5Da4Qxpf3sBtKZs<_aI$Cb1T+h<->yL^rfiGNelYkqgC3#SqVP_iy*_RPcbjH)xYf zvYdC-)D_t8c{=5%;$VJQxs_#61J*kuXMC?|&PbPo-7uSxoNr~&J94|gKk+03JGXXM zx4w~=^VUzWqQveu_ilRgPdgNNdnLZCH`=;w91}cP5ihdm*B_jI+rk=Pz2Lk!)XUu| zkls3P5&YHJ!t0kF+MUVBHOAx)a zy|JxHNd37z*~b5#%*0w_F|#4?erNP;pG`Fevoq2%?9Y>%Cmzv1(ks;aPIGaiy1mhU zr{7lB^Mem&`QK{b{uiDC zLD8muY(FNk{YdV|zO#o_VB%);8|~Bh(Z4p?GM}g-HN2;q7~YNl-lD~HZ$taYw$Fzbn6c?c5eo=@`i>()el#qwB)hI-gp0 ztsw@dh-I5NJkk)RCoBC`L8ffKfY)=oG=#4LA9TO6eA}9~@a6dupB+=S{%s&NY}^0GY`hAqod)uxXHitrN%bWOJohV>t?!&Z#d4y^7J@=Oh`HV zee**4j>xRUd)|D0^I-B#<`m1-5PO{)!v(q?ecFYqr_8Q{+z7#n0uFbq%_?hZ-Ck(6NRn=vDS7Nb1Xxx_)9`!i- zGR>av*PJ+P_AGO*a_$FbtCCISg5PK44p&W#t$)+HVcxpR9LAL%_Pv$p`0tO*sYZD0 zCG3-ipr4WoVbjpw%Nf^r^rnWcDcjumgBPEjO;NM6QtZ8wU#0rjHx5zs%CahF4$W*U zxu!q8kYP+>v!BNPVIRJUGIWU@7qVvx2VZDw4gV8%z%bjpF#aF(W|PmliwlakuRq>= zhaCRc^R!7T)#Twb0{!Tns=CxGcGX|leErg`f3|v0eBXxHU&6Sj-_>zOL!!d+j5Xt* zPS;rWd^zEF{5d5%)nNK=)zFJ8Uc=aQKD%UK)_TNes1Gh{SD*Mb_@O` z7*zs9Uq~Vq?v|^8FcM-yLGMKzR3YFB0z@CFM2X-dio%Gu6&MJj=I?uS7sA3AdE^p8 zE49$PjJzPIJwfn;jso7X2#jynr3dO@p5QAK1O9wqKLC=PkQjj~p#n|-5O`ihbTzzu zL{}2QEe28pJYfVZRW56FL`LvO&|C^1Th{0}hQMW$Ng$QPpnzlwnMnf=kVy8(y==L% zLMa>r0gELdT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Task Master/FirstViewController.swift b/Task Master/FirstViewController.swift new file mode 100644 index 0000000..8f29dc3 --- /dev/null +++ b/Task Master/FirstViewController.swift @@ -0,0 +1,56 @@ +// +// FirstViewController.swift +// Task Master +// +// Created by Alexander Davis on 12/12/2016. +// Copyright © 2016 Alexander Davis Computing and Media. All rights reserved. +// + +import UIKit + +class FirstViewController: UIViewController, UITableViewDelegate, UITableViewDataSource + +{ + @IBOutlet var tblTasks : UITableView! + + + override func viewDidLoad() { + super.viewDidLoad() + tblTasks.reloadData() + } + + override func viewWillAppear(_ animated: Bool) { + self.tblTasks.reloadData() + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{ + return taskMgr.tasks.count + } + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{ + + let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.subtitle, reuseIdentifier: "Default Tasks") + + //Assign the contents of var "items" to the textLabel of each cell + cell.textLabel!.text = taskMgr.tasks[indexPath.row].name + cell.detailTextLabel!.text = taskMgr.tasks[indexPath.row].desc + + return cell + + } + + func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath){ + + if (editingStyle == UITableViewCellEditingStyle.delete){ + + taskMgr.tasks.remove(at: indexPath.row) + tblTasks.reloadData() + } + } + +} diff --git a/Task Master/Info.plist b/Task Master/Info.plist new file mode 100644 index 0000000..5637e6a --- /dev/null +++ b/Task Master/Info.plist @@ -0,0 +1,55 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UIBackgroundModes + + fetch + location + remote-notification + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UIStatusBarTintParameters + + UINavigationBar + + Style + UIBarStyleDefault + Translucent + + + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + UIInterfaceOrientationPortraitUpsideDown + + + diff --git a/Task Master/LaunchScreen.storyboard b/Task Master/LaunchScreen.storyboard new file mode 100644 index 0000000..e98734a --- /dev/null +++ b/Task Master/LaunchScreen.storyboard @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Task Master/SecondViewController.swift b/Task Master/SecondViewController.swift new file mode 100644 index 0000000..8596a37 --- /dev/null +++ b/Task Master/SecondViewController.swift @@ -0,0 +1,60 @@ +// +// SecondViewController.swift +// Task Master +// +// Created by Alexander Davis on 12/12/2016. +// Copyright © 2016 Alexander Davis Computing and Media. All rights reserved. +// + +import UIKit + +class SecondViewController: UIViewController, UITextFieldDelegate { + + @IBOutlet var txtTask: UITextField! + @IBOutlet var txtDesc: UITextField! + + override func viewDidLoad() { + super.viewDidLoad() + // Do any additional setup after loading the view, typically from a nib. + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + @IBAction func btnAddTask(_ sender : UIButton){ + if (txtTask.text == ""){ + //App won't add task if textbox is empty + } else { + //If above case is 'false', Task Master will create a task + let name: String = txtTask.text! + let description: String = txtDesc.text! + taskMgr.addTask(name, desc: description) + + //Once Task is added, keyboard will be dismissed and form will reset + + self.view.endEditing(true) + txtTask.text = nil + txtDesc.text = nil + + } + } + + override func touchesBegan(_ touches: Set, with event: UIEvent?) { + self.view.endEditing(true) + } + + func textFieldShouldReturn(_ textField: UITextField) -> Bool{ + textField.resignFirstResponder() + return true + } + + @IBAction func btnLocaionOffline(_ sender : UIButton){ + let alertController = UIAlertController(title: "Location Based Tasks Not Available", message: + "Location based tasks are not available just yet. I will add these later!", preferredStyle: UIAlertControllerStyle.alert) + alertController.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default,handler: nil)) + + self.present(alertController, animated: true, completion: nil) + } +} diff --git a/Task Master/Task Master.entitlements b/Task Master/Task Master.entitlements new file mode 100644 index 0000000..2159b92 --- /dev/null +++ b/Task Master/Task Master.entitlements @@ -0,0 +1,12 @@ + + + + + aps-environment + development + com.apple.developer.default-data-protection + NSFileProtectionComplete + com.apple.developer.siri + + + diff --git a/Task Master/TaskMaster.swift b/Task Master/TaskMaster.swift new file mode 100644 index 0000000..be6b835 --- /dev/null +++ b/Task Master/TaskMaster.swift @@ -0,0 +1,26 @@ +// +// TaskMaster.swift +// Task Master +// +// Created by Alexander Davis on 12/12/2016. +// Copyright © 2016 Alexander Davis Computing and Media. All rights reserved. +// + +import UIKit + +var taskMgr: TaskManager = TaskManager() + +struct task { + var name = "not defined" + var desc = "not defined" +} + +class TaskManager: NSObject { + var tasks = [task]() + + func addTask(_ name: String, desc: String){ + tasks.append(task(name: name, desc: desc)) + } + +} + diff --git a/Task Master/ToDoListTableViewController.h b/Task Master/ToDoListTableViewController.h new file mode 100644 index 0000000..30f5d69 --- /dev/null +++ b/Task Master/ToDoListTableViewController.h @@ -0,0 +1,19 @@ +// +// ToDoListTableViewController.h +// Task Master +// +// Created by Alexander Davis on 05/04/2017. +// Copyright © 2017 Alexander Davis Computing and Media. All rights reserved. +// + +#ifndef ToDoListTableViewController_h +#define ToDoListTableViewController_h + + +#endif /* ToDoListTableViewController_h */ + +@interface ToDoListTableViewController (Workaround) + +-(IBAction)unwindToList: (UIStoryboardSegue *)segue; + +@end diff --git a/Task Master/ToDoListTableViewController.swift b/Task Master/ToDoListTableViewController.swift new file mode 100644 index 0000000..1d45c92 --- /dev/null +++ b/Task Master/ToDoListTableViewController.swift @@ -0,0 +1,95 @@ +// +// ToDoListTableViewController.swift +// Task Master +// +// Created by Alexander Davis on 05/04/2017. +// Copyright © 2017 Alexander Davis Computing and Media. All rights reserved. +// + +import UIKit + +class ToDoListTableViewController: UITableViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Uncomment the following line to preserve selection between presentations + // self.clearsSelectionOnViewWillAppear = false + + // Uncomment the following line to display an Edit button in the navigation bar for this view controller. + // self.navigationItem.rightBarButtonItem = self.editButtonItem() + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + // MARK: - Table view data source + + override func numberOfSections(in tableView: UITableView) -> Int { + // #warning Incomplete implementation, return the number of sections + return 0 + } + + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + // #warning Incomplete implementation, return the number of rows + return 0 + } + + /* + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: indexPath) + + // Configure the cell... + + return cell + } + */ + + /* + // Override to support conditional editing of the table view. + override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool { + // Return false if you do not want the specified item to be editable. + return true + } + */ + + /* + // Override to support editing the table view. + override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) { + if editingStyle == .delete { + // Delete the row from the data source + tableView.deleteRows(at: [indexPath], with: .fade) + } else if editingStyle == .insert { + // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view + } + } + */ + + /* + // Override to support rearranging the table view. + override func tableView(_ tableView: UITableView, moveRowAt fromIndexPath: IndexPath, to: IndexPath) { + + } + */ + + /* + // Override to support conditional rearranging of the table view. + override func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool { + // Return false if you do not want the item to be re-orderable. + return true + } + */ + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destinationViewController. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/Task MasterTests/Info.plist b/Task MasterTests/Info.plist new file mode 100644 index 0000000..6c6c23c --- /dev/null +++ b/Task MasterTests/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/Task MasterTests/Task_MasterTests.swift b/Task MasterTests/Task_MasterTests.swift new file mode 100644 index 0000000..73bf547 --- /dev/null +++ b/Task MasterTests/Task_MasterTests.swift @@ -0,0 +1,36 @@ +// +// Task_MasterTests.swift +// Task MasterTests +// +// Created by Alexander Davis on 12/12/2016. +// Copyright © 2016 Alexander Davis Computing and Media. All rights reserved. +// + +import XCTest +@testable import Task_Master + +class Task_MasterTests: XCTestCase { + + override func setUp() { + super.setUp() + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDown() { + // Put teardown code here. This method is called after the invocation of each test method in the class. + super.tearDown() + } + + func testExample() { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + func testPerformanceExample() { + // This is an example of a performance test case. + self.measure { + // Put the code you want to measure the time of here. + } + } + +} diff --git a/TaskMasterParse Security Key.pem b/TaskMasterParse Security Key.pem new file mode 100644 index 0000000..a562cab --- /dev/null +++ b/TaskMasterParse Security Key.pem @@ -0,0 +1,23 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAi0Sn88eusTdujP3ahJ9p+2EaAYp5Knm+NfKZolTQ9u4JaXzR7ZvohGXJ/Rrz +soX0RwxI6lr/wpTtOGSxijvysM0c542Yg0ntGOkeYHpYyU4Je2DGFjhe+gg8neaYx8deX4FovoYS +s9iq/VGrleNCiBND0SCKQixy9kyN/u4SOMj7gT2dzFv9usN5cVzyWBPhl+QjO+8Tfvo0e59LtUAt +xLXZ4SoLurhuFyynTBz9Ra8HyfAK93KpLg0lGASEnrhm1btdIpUXDBE+/ifXx2YuSxpRoBCoj5Nx +75kk90dnwBOfk/VQgxFQv/RVwGzFE5AtHeIc8iSBREim0laGv374PwIDAQABAoIBAD03PXf7cr80 +9WQGBXI8PDKh2POKcX4JK2G9NGjVTVDtCrgShJgj6s2fjGyz1yDGnrxIGxjgTQGzwp4CLMPtW9z5 +G9ZwN/SlnxFPDuorfTFnGuXfgNKtjpnq2vIxNUDDUqk6UddFSZ1CBM76giiNT2ZOyYV3/y3dKd83 +gUboUJwim+s3auIuwl6ptWTVGuByD47DSK5wkUb99V13jASt1KfR2sKMC1xetoFsrRcpIkrJuoAV +DLtLylSxPaPRMAyXRRGmHkHMYxv/RGmiZ8phvejyDiKOnplbyzitW6XKAeqOqKnKicxLrxk5IHtf +YWFni/KAE7JjBbIgabzQocUabjECgYEA3D/1rMdGxTxyRhs4bBP+3/Z3jD9h9ttOYS3DiOVYKjzI +LuUWbkEe54QpDyijnI+Um2C01UIgOzeoDWN1XanNCA2j9TTRUso3T701bmcLGPS1EnCwv0SoJRDR +cCOcrjz/ciRrCK0vmcYZeUzivYvvtVhIvo2d+3CN46z3iIkZGfcCgYEAod+qjDijUs2jsg5y8Yzv +nq/yTfCol5dVld3MLaDsayvN1JtGdPl4XtKdX+MUMsbK1NTxQ9XKGf8SeEAOQp+BmDMRdiqCOAxC +z+b2Ji+LjtAeCWfw3IE9f1MsX1FB2JoHM24kpZC2Rd3VQ97iGV4L5XpmPdqvmLN/FImZ6CYrQfkC +gYBVSoN15Dm4uZ67HWFtIRUrX8ON0SG7udOReGpnQgExYhZXaqmUCq3QE/LehutM/qEaxolgqFnY +9MWkYaaand3jR3z9wPVqrRpcS7Y8SbUXdfQE7xTTDOBccjXYykGri72UUxwL4R003G0S9z47DszG +GikZebf7Hewkhd/ZxNWuowKBgDj8pO34gocEHjzxGUYwd6tGBeeqca/sdxTroJXvsUuJgEz43TUR +Hm9DdmPrbZDyqzWCQe2/tgaw5a+v3VVXEiii0eLn1DAnIN5QURfgZSFB41EsZn86gIvynAxybtvy +XdadUAl5iLHQBuR98ts7YLTJAnWEJ416o6J3TteLmG8BAoGBAMpIFKcdQ7QndhyMxXZDj6SkUNgU +LL8RW59irFsqHxQTh/U2oZpTjtAybWGED0Z6h81US8AvBEDYua6EczxEYsYvMHPZn4xIVBnDP7NU +1i+CZ3WXgBNfLLOmskOrNHjkZcuVuWN1yij+EUOXrXcZpACnOV/5okHeQId6WCwI4AkT +-----END RSA PRIVATE KEY----- \ No newline at end of file