From 30fa32cbdd0e81af9cbd9edddfa852b38e7023cb Mon Sep 17 00:00:00 2001 From: Andreas <55641247+2020Nonprofit@users.noreply.github.com> Date: Thu, 26 Mar 2020 16:58:10 -0400 Subject: [PATCH] Add files via upload --- TrackIT-2020Nonprofit-patch-6/README.md | 12 + TrackIT-2020Nonprofit-patch-6/TrackIT/Podfile | 11 + .../TrackIT/Podfile.lock | 16 + .../TrackIT/TrackIT.xcodeproj/project.pbxproj | 425 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 11417 bytes .../xcschemes/xcschememanagement.plist | 14 + .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 42046 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 6 + .../TrackIT/TrackIT/AppDelegate.swift | 95 ++++ .../AppIcon.appiconset/Contents.json | 98 ++++ .../TrackIT/Assets.xcassets/Contents.json | 6 + .../Rectangle 7.imageset/Contents.json | 21 + .../Rectangle 7.imageset/Rectangle 7.png | Bin 0 -> 354 bytes .../Assets.xcassets/home.imageset/69524 1.png | Bin 0 -> 520 bytes .../home.imageset/Contents.json | 21 + .../question.imageset/Contents.json | 21 + .../PNG image-520FB3231A8C-1 1.png | Bin 0 -> 645 bytes .../settings.imageset/Contents.json | 21 + .../PNG image-00F48C98FD47-1 1.png | Bin 0 -> 831 bytes .../settings2.imageset/Contents.json | 21 + .../PNG image-00F48C98FD47-1 1.png | Bin 0 -> 1173 bytes .../Base.lproj/LaunchScreen.storyboard | 25 ++ .../TrackIT/Base.lproj/Main.storyboard | 113 +++++ .../TrackIT/TrackIT/GoogleService-Info.plist | 36 ++ .../TrackIT/TrackIT/Info.plist | 76 ++++ .../TrackIT/TrackIT/SceneDelegate.swift | 53 +++ .../TrackIT/TrackIT/TrackIT.entitlements | 8 + .../TrackIT/TrackIT/ViewController.swift | 377 ++++++++++++++++ .../TrackIT/TrackIT/settings.swift | 80 ++++ .../TrackIT/TrackIT/syncPulse.swift | 49 ++ .../TrackIT/TrackIT/workout.swift | 42 ++ .../TrackIT/TrackITTests/Info.plist | 22 + .../TrackIT/TrackITTests/TrackITTests.swift | 34 ++ .../TrackIT/TrackITUITests/Info.plist | 22 + .../TrackITUITests/TrackITUITests.swift | 43 ++ .../TrackIT/lf30_editor_SKZ870.json | 1 + 40 files changed, 1802 insertions(+) create mode 100644 TrackIT-2020Nonprofit-patch-6/README.md create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/Podfile create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/Podfile.lock create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcodeproj/project.pbxproj create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcodeproj/project.xcworkspace/xcuserdata/andreas.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcodeproj/xcuserdata/andreas.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcworkspace/contents.xcworkspacedata create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcworkspace/xcuserdata/andreas.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcworkspace/xcuserdata/andreas.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/AppDelegate.swift create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/Contents.json create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/Rectangle 7.imageset/Contents.json create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/Rectangle 7.imageset/Rectangle 7.png create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/home.imageset/69524 1.png create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/home.imageset/Contents.json create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/question.imageset/Contents.json create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/question.imageset/PNG image-520FB3231A8C-1 1.png create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/settings.imageset/Contents.json create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/settings.imageset/PNG image-00F48C98FD47-1 1.png create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/settings2.imageset/Contents.json create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/settings2.imageset/PNG image-00F48C98FD47-1 1.png create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Base.lproj/LaunchScreen.storyboard create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Base.lproj/Main.storyboard create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/GoogleService-Info.plist create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Info.plist create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/SceneDelegate.swift create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/TrackIT.entitlements create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/ViewController.swift create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/settings.swift create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/syncPulse.swift create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/workout.swift create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackITTests/Info.plist create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackITTests/TrackITTests.swift create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackITUITests/Info.plist create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/TrackITUITests/TrackITUITests.swift create mode 100644 TrackIT-2020Nonprofit-patch-6/TrackIT/lf30_editor_SKZ870.json diff --git a/TrackIT-2020Nonprofit-patch-6/README.md b/TrackIT-2020Nonprofit-patch-6/README.md new file mode 100644 index 0000000..2f4bde7 --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/README.md @@ -0,0 +1,12 @@ +# TrackIT +Open source mobile app to help track proximity contacts using powerful bluetooth technology + +### How does it work + +App uses bluetooth functionalities of your phone to scan as many devices in certain area as possible. When app scans the device it stores it into memory. + +App is saving scanned devices with their special id identifier. Identifier can be put as compromised by only officials who are conducting tests then notification arrives for the user who have been in close proximity of the infected identifier , saying that he needs to give all necessary contact information to officials and to stay home. + +If user is signed trough system as "isolated" and comes in proximity of other devices officials will be notified of that health breach. + + diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/Podfile b/TrackIT-2020Nonprofit-patch-6/TrackIT/Podfile new file mode 100644 index 0000000..f801485 --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/Podfile @@ -0,0 +1,11 @@ +# Uncomment the next line to define a global platform for your project +# platform :ios, '9.0' + +target 'TrackIT' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + + # Pods for TrackIT + pod 'lottie-ios' + +end diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/Podfile.lock b/TrackIT-2020Nonprofit-patch-6/TrackIT/Podfile.lock new file mode 100644 index 0000000..d59daa9 --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/Podfile.lock @@ -0,0 +1,16 @@ +PODS: + - lottie-ios (3.1.6) + +DEPENDENCIES: + - lottie-ios + +SPEC REPOS: + trunk: + - lottie-ios + +SPEC CHECKSUMS: + lottie-ios: 85ce835dd8c53e02509f20729fc7d6a4e6645a0a + +PODFILE CHECKSUM: d765be0adb89bfd9928b5b65313cdca763b12f86 + +COCOAPODS: 1.9.1 diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcodeproj/project.pbxproj b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcodeproj/project.pbxproj new file mode 100644 index 0000000..0a95913 --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcodeproj/project.pbxproj @@ -0,0 +1,425 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXBuildFile section */ + C108DB36EF2F552A14453777 /* Pods_TrackIT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 188D54E5AFC5D0B51D7BD933 /* Pods_TrackIT.framework */; }; + E16EA159242D36C200B0BE1F /* settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = E16EA158242D36C100B0BE1F /* settings.swift */; }; + E1E55B58242C118B00FFAA8A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1E55B57242C118B00FFAA8A /* AppDelegate.swift */; }; + E1E55B5A242C118B00FFAA8A /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1E55B59242C118B00FFAA8A /* SceneDelegate.swift */; }; + E1E55B5C242C118B00FFAA8A /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1E55B5B242C118B00FFAA8A /* ViewController.swift */; }; + E1E55B5F242C118B00FFAA8A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E1E55B5D242C118B00FFAA8A /* Main.storyboard */; }; + E1E55B61242C119500FFAA8A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E1E55B60242C119500FFAA8A /* Assets.xcassets */; }; + E1E55B64242C119500FFAA8A /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E1E55B62242C119500FFAA8A /* LaunchScreen.storyboard */; }; + E1E55B88242C121D00FFAA8A /* lf30_editor_SKZ870.json in Resources */ = {isa = PBXBuildFile; fileRef = E1E55B87242C121D00FFAA8A /* lf30_editor_SKZ870.json */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 188D54E5AFC5D0B51D7BD933 /* Pods_TrackIT.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_TrackIT.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 29EFD4B810C83C6D90DC4A25 /* Pods-TrackIT.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TrackIT.release.xcconfig"; path = "Target Support Files/Pods-TrackIT/Pods-TrackIT.release.xcconfig"; sourceTree = ""; }; + 6F8A2AAB681311CE18D16556 /* Pods-TrackIT.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TrackIT.debug.xcconfig"; path = "Target Support Files/Pods-TrackIT/Pods-TrackIT.debug.xcconfig"; sourceTree = ""; }; + E16EA158242D36C100B0BE1F /* settings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = settings.swift; sourceTree = ""; }; + E1E55B54242C118B00FFAA8A /* TrackIT.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TrackIT.app; sourceTree = BUILT_PRODUCTS_DIR; }; + E1E55B57242C118B00FFAA8A /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + E1E55B59242C118B00FFAA8A /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + E1E55B5B242C118B00FFAA8A /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + E1E55B5E242C118B00FFAA8A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + E1E55B60242C119500FFAA8A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + E1E55B63242C119500FFAA8A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + E1E55B65242C119500FFAA8A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E1E55B87242C121D00FFAA8A /* lf30_editor_SKZ870.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = lf30_editor_SKZ870.json; sourceTree = ""; }; + E1E55B8E242C2C5A00FFAA8A /* TrackIT.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = TrackIT.entitlements; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + E1E55B51242C118B00FFAA8A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C108DB36EF2F552A14453777 /* Pods_TrackIT.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 8929458AECDE0E30768C82C3 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 188D54E5AFC5D0B51D7BD933 /* Pods_TrackIT.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 9CD3431AD4CEA07C2192237B /* Pods */ = { + isa = PBXGroup; + children = ( + 6F8A2AAB681311CE18D16556 /* Pods-TrackIT.debug.xcconfig */, + 29EFD4B810C83C6D90DC4A25 /* Pods-TrackIT.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + E1E55B4B242C118A00FFAA8A = { + isa = PBXGroup; + children = ( + E1E55B87242C121D00FFAA8A /* lf30_editor_SKZ870.json */, + E1E55B56242C118B00FFAA8A /* TrackIT */, + E1E55B55242C118B00FFAA8A /* Products */, + 9CD3431AD4CEA07C2192237B /* Pods */, + 8929458AECDE0E30768C82C3 /* Frameworks */, + ); + sourceTree = ""; + }; + E1E55B55242C118B00FFAA8A /* Products */ = { + isa = PBXGroup; + children = ( + E1E55B54242C118B00FFAA8A /* TrackIT.app */, + ); + name = Products; + sourceTree = ""; + }; + E1E55B56242C118B00FFAA8A /* TrackIT */ = { + isa = PBXGroup; + children = ( + E1E55B8E242C2C5A00FFAA8A /* TrackIT.entitlements */, + E1E55B57242C118B00FFAA8A /* AppDelegate.swift */, + E1E55B59242C118B00FFAA8A /* SceneDelegate.swift */, + E1E55B5B242C118B00FFAA8A /* ViewController.swift */, + E16EA158242D36C100B0BE1F /* settings.swift */, + E1E55B5D242C118B00FFAA8A /* Main.storyboard */, + E1E55B60242C119500FFAA8A /* Assets.xcassets */, + E1E55B62242C119500FFAA8A /* LaunchScreen.storyboard */, + E1E55B65242C119500FFAA8A /* Info.plist */, + ); + path = TrackIT; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + E1E55B53242C118B00FFAA8A /* TrackIT */ = { + isa = PBXNativeTarget; + buildConfigurationList = E1E55B7E242C119500FFAA8A /* Build configuration list for PBXNativeTarget "TrackIT" */; + buildPhases = ( + 4835BAF832367208E8904B15 /* [CP] Check Pods Manifest.lock */, + E1E55B50242C118B00FFAA8A /* Sources */, + E1E55B51242C118B00FFAA8A /* Frameworks */, + E1E55B52242C118B00FFAA8A /* Resources */, + C47F024BA20C9E07952B0BE1 /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = TrackIT; + productName = TrackIT; + productReference = E1E55B54242C118B00FFAA8A /* TrackIT.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + E1E55B4C242C118A00FFAA8A /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1130; + LastUpgradeCheck = 1130; + ORGANIZATIONNAME = "Steve Ink"; + TargetAttributes = { + E1E55B53242C118B00FFAA8A = { + CreatedOnToolsVersion = 11.3; + }; + }; + }; + buildConfigurationList = E1E55B4F242C118A00FFAA8A /* Build configuration list for PBXProject "TrackIT" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = E1E55B4B242C118A00FFAA8A; + productRefGroup = E1E55B55242C118B00FFAA8A /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + E1E55B53242C118B00FFAA8A /* TrackIT */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + E1E55B52242C118B00FFAA8A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E1E55B88242C121D00FFAA8A /* lf30_editor_SKZ870.json in Resources */, + E1E55B64242C119500FFAA8A /* LaunchScreen.storyboard in Resources */, + E1E55B61242C119500FFAA8A /* Assets.xcassets in Resources */, + E1E55B5F242C118B00FFAA8A /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 4835BAF832367208E8904B15 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-TrackIT-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + C47F024BA20C9E07952B0BE1 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-TrackIT/Pods-TrackIT-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-TrackIT/Pods-TrackIT-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-TrackIT/Pods-TrackIT-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + E1E55B50242C118B00FFAA8A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E1E55B5C242C118B00FFAA8A /* ViewController.swift in Sources */, + E16EA159242D36C200B0BE1F /* settings.swift in Sources */, + E1E55B58242C118B00FFAA8A /* AppDelegate.swift in Sources */, + E1E55B5A242C118B00FFAA8A /* SceneDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + E1E55B5D242C118B00FFAA8A /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + E1E55B5E242C118B00FFAA8A /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + E1E55B62242C119500FFAA8A /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + E1E55B63242C119500FFAA8A /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + E1E55B7C242C119500FFAA8A /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_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_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + 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 = 13.2; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + E1E55B7D242C119500FFAA8A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_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_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + 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 = 13.2; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + E1E55B7F242C119500FFAA8A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6F8A2AAB681311CE18D16556 /* Pods-TrackIT.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = TrackIT/TrackIT.entitlements; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = MC27HKM86M; + INFOPLIST_FILE = TrackIT/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "-020.TrackIT2"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + E1E55B80242C119500FFAA8A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 29EFD4B810C83C6D90DC4A25 /* Pods-TrackIT.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = TrackIT/TrackIT.entitlements; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = MC27HKM86M; + INFOPLIST_FILE = TrackIT/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "-020.TrackIT2"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + E1E55B4F242C118A00FFAA8A /* Build configuration list for PBXProject "TrackIT" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E1E55B7C242C119500FFAA8A /* Debug */, + E1E55B7D242C119500FFAA8A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E1E55B7E242C119500FFAA8A /* Build configuration list for PBXNativeTarget "TrackIT" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E1E55B7F242C119500FFAA8A /* Debug */, + E1E55B80242C119500FFAA8A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = E1E55B4C242C118A00FFAA8A /* Project object */; +} diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..b0efb8c --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcodeproj/project.xcworkspace/xcuserdata/andreas.xcuserdatad/UserInterfaceState.xcuserstate b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcodeproj/project.xcworkspace/xcuserdata/andreas.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..ff01ecd1c5e295c3b86e72c16f4748ca8bb413f2 GIT binary patch literal 11417 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 + + + + SchemeUserState + + TrackIT.xcscheme_^#shared#^_ + + orderHint + 2 + + + + diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcworkspace/contents.xcworkspacedata b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..7af0153 --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcworkspace/xcuserdata/andreas.xcuserdatad/UserInterfaceState.xcuserstate b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT.xcworkspace/xcuserdata/andreas.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..30d9e2033fcd2108d0cd3251d0e6d341ec0cdf95 GIT binary patch literal 42046 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 + + diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/AppDelegate.swift b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/AppDelegate.swift new file mode 100644 index 0000000..29572a3 --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/AppDelegate.swift @@ -0,0 +1,95 @@ +// +// AppDelegate.swift +// TrackIT +// +// Created by Laima Cernius-Ink on 3/25/20. +// Copyright © 2020 Steve Ink. All rights reserved. +// + + + + +import UIKit +import BackgroundTasks +import CoreBluetooth +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate,CBCentralManagerDelegate { + func centralManagerDidUpdateState(_ central: CBCentralManager) { + + } + + + private var centralManager : CBCentralManager! + func scheduleImagefetcher() { + let request = BGProcessingTaskRequest(identifier: "com.SO.imagefetcher") + request.requiresNetworkConnectivity = false // Need to true if your task need to network process. Defaults to false. + request.requiresExternalPower = false + //If we keep requiredExternalPower = true then it required device is connected to external power. + + request.earliestBeginDate = Date(timeIntervalSinceNow: 1 * 60) // fetch Image Count after 1 minute. + //Note :: EarliestBeginDate should not be set to too far into the future. + do { + try BGTaskScheduler.shared.submit(request) + } catch { + print("Could not schedule image fetch: (error)") + } + } + + func scheduleAppRefresh() { + + } + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + registerBackgroundTaks() +centralManager = CBCentralManager(delegate: self, queue: nil, options: nil) + let center = UNUserNotificationCenter.current() + + center.requestAuthorization(options: [.alert, .sound]) { (granted, error) in + } + return true + } + + //MARK: Register BackGround Tasks + private func registerBackgroundTaks() { + + BGTaskScheduler.shared.register(forTaskWithIdentifier: "com.SO.imagefetcher", using: nil) { task in + //This task is cast with processing request (BGProcessingTask) + + let center = UNUserNotificationCenter.current() + // MARK: UISceneSession Lifecycle + let content = UNMutableNotificationContent() + content.title = "Hey I'm a notification!" + content.body = "Look at me!" + + // Step 3: Create the notification trigger + let date = Date().addingTimeInterval(10) + + let dateComponents = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute, .second], from: date) + + let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false) + + // Step 4: Create the request + + let uuidString = UUID().uuidString + + let request = UNNotificationRequest(identifier: uuidString, content: content, trigger: trigger) + + // Step 5: Register the request + center.add(request) { (error) in + // Check the error parameter and handle any errors + } + } + + + func applicationDidEnterBackground(_ application: UIApplication) { + scheduleAppRefresh() + scheduleImagefetcher() + } + + + + func cancelAllPendingBGTask() { + BGTaskScheduler.shared.cancelAllTaskRequests() + } +} +} diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/AppIcon.appiconset/Contents.json b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d8db8d6 --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "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" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/Contents.json b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/Rectangle 7.imageset/Contents.json b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/Rectangle 7.imageset/Contents.json new file mode 100644 index 0000000..27f4621 --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/Rectangle 7.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "Rectangle 7.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/Rectangle 7.imageset/Rectangle 7.png b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/Rectangle 7.imageset/Rectangle 7.png new file mode 100644 index 0000000000000000000000000000000000000000..557e73df462bc11cad97e1551e485a3b91209a7f GIT binary patch literal 354 zcmeAS@N?(olHy`uVBq!ia0y~yU@Ql+9XZ&5q}G%tzkn2Hfk$L90|U1(2s1Lwnj--e zWGoJHcVbv~PUa<$!;&U>cv7h@-A}f&p-P6S}q=ND76-Ge@1s(=P(;ZiP%&Px5 za(t^b=5Cm>nc>7lYljJU7@MB(38<7eDC}frIVr2)@s7c0(EX=%@_i;rI QFbEhtUHx3vIVCg!0Fr}i=Kufz literal 0 HcmV?d00001 diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/home.imageset/69524 1.png b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/home.imageset/69524 1.png new file mode 100644 index 0000000000000000000000000000000000000000..42bf33b38ef7ae419402fa96f18ed7003fd4fd39 GIT binary patch literal 520 zcmV+j0{8uiP)500009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yPfF) z=sLb}XLsK&Tlm3`z?(PhkC~7SP@_yBf2N2HVwG4R-iUxWM8z@0fEYR$#C4ud%q%Jr zk%an*+BH1IC`4RByk{N-V+4^iqD`FtA;kL@Q6NSTIUt(x9s3yyLXW;=j39C%+z*hx z!dx;&5IMs4M0lhL6_PPZkxk-(=(7IMmyCgKHCLl*i`=`+V zFselOL?jWHkWG+P$d`yTA+?YsqFs$vC`=R5PNbJnB+HljOXx;1k-Q>VCUj|w&+xk% z?S#0{i#^;)92~QTq7z9I+E3K_Dt2O=0NU6Qd2dc@CAGl;9;vVHD!stH? z(qwG5hfM)41@u&|9- zSXx@7uuNfLVPTO%!6Fh3`W6)>&PFF@7yQ7m$?WXB`F_7UZ&rmIdNP^(n@XjA4h91& z91fd?VSEh)0-1Wf-fg$rJxmf^*UexsxJ!X+{&j6!$PUL^crCVV2RYfwbArPy8jWsN zDwPiy7fsW)WCVxAJEc-dgDi}6!EI7SQF_cmhhvULiL*S5kioJnoe%Xylf`1ORbKV` zv4uk6GhenH7xB|fCiC*Bnd09v5j2}kjSK3Co}us`NHC43={f1>e< zsFQp3Y`BjRt+iUMGq?~6g)T(>s;WjI16OLZ9rEYNT{I)1@E!yavuwZM6^TS*P9)03 zT+>i=ctIo*nSsl8;=N^ffX<26-9(v%1Jg9+4P+Fo`4sDa0C(4Fm&;`XlO&(df23<2 zi3A-_=gYJXFQ83sKx{7EiJVL#s@3XyruY(1O~ToBQ}7Db&V<+&zrahf*{m@fF;l+} zKX4ok4=Fw`7K`8E7wL5R8!x7l0lYO-jECdD@7SCZ=?Z=jkH_boPaoWRahKLO3m=$< z*dk3xqR0&9p)UN4>G%6T;H5D4>;)!-lra5xThyP+iZ9`jf$#)$S5pabRClO3xVG+nH1TBOJT3l&iVId@-poQR*D-h+a`HW@>+E(BqfrQ_|H^Gl1O(JvTM~q_e^!Of$k{D zIg)uyiJRzzaD&7_7Q3OkB(S}%x^X{+=5R9{J zTjyq~y9Ohcg2nkvU54z)19WF^jDv)`0XZIi@qUrVVL(-#-Gv~o*&K!sE2_(cZO~{#aFyxHB_)(-kMY4rXqHyR^ zbTT%}S;z|=TYwRc0}O7jpPz~%Snsm-7b7(x}Xp)FA2#F9cy7k%EF$w^BfY1 zvBnQ#G7j&;<_IR>P#?YT=T`JDcPbpJZ#w=HQdSZShntD7k!}uhLoKWP#u%iK1Kcl3 zQq^A`;A2&7;@&U|{I)Pb@5mwKQt()v%>`p+eGz{|-o@{`AGQf^7vG-UiTq83Zy26N zdWX(#e1_CZEIG z7%_V-ez+flTzg+g-m2~*xeCvm$-h1d3JUf+{{Sqv)Khlq#&Q4v002ov JPDHLkV1h5IbKL*{ literal 0 HcmV?d00001 diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/settings2.imageset/Contents.json b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/settings2.imageset/Contents.json new file mode 100644 index 0000000..9632f73 --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/settings2.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "PNG image-00F48C98FD47-1 1.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/settings2.imageset/PNG image-00F48C98FD47-1 1.png b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Assets.xcassets/settings2.imageset/PNG image-00F48C98FD47-1 1.png new file mode 100644 index 0000000000000000000000000000000000000000..06cadaf5cf9e5161ff3b1edc967f4334b2cb94ed GIT binary patch literal 1173 zcmV;G1Zw+!O!Xii@Q!FIdM92!37AaB$Hn4$M1e~x%0x4WfvD>*t zz(D?ju!TYj7g9`NVPWwK3j-+>EG$G`KHr)9-0|&9hMjpXOPDWQ-kWpooO|y1{mfcu zp@p}Dd_F(KqqKNW+B=5L?(Xh@XK8hIc3!o&w|`?Xpv{`Z5I8?SKkMk|czJz&{f8re z-qzNZ41(Z&dz-*Yv*?qLkUwGtJv}{ZApvEdVZp%jyi7=2U0qG}_4VB!7#PUeT>!T| zGUq}R{hgdI*ului$gBwC&{Ysm|Vj2^z?$0wM7Chtgo*(+!h~l_)RIn%?A<1cSO(S za-Y@`faM>!{}&?vJ+fDA@q$F$v^PYOq>z9jCE_t_#UkZ|LrxL?XFWl<+vjpem9*vM zWtEpaysuf}o!T2h%Di^-5GyMyB|aAZ!RiSb8hY+LQ5DqG=Tg282kc<1FT=tw&dK#M@x3{+w)LNB=Clcmv z9zt>Gqxc0$^jhO5_8zI1;<4&zoxak1O)jDlYm2!2 z5ZVsod(Ea#8Od|87fO`L$;rh~9uJk43*t3naezaVrOG^CmULs)SvX#aZns;ZhXTju zzCm~|^>ku$%gO`Bm7CP#gKC++)Xc??%R-O2uQW6a4-bD9?&a_YPVpx*Gc$6d=Z1~I z4Zdr37m#~U^wyZ}rtF}y*z#Vgo6$O_c&;(T-W~Yf9mI{7ib-N~OH1zMw{PzXsCnP2 n_}Z(_(6ffyR|_q)@IS-9?cfQ@TSW#J00000NkvXXu0mjf$_6g^ literal 0 HcmV?d00001 diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Base.lproj/LaunchScreen.storyboard b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..865e932 --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Base.lproj/Main.storyboard b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Base.lproj/Main.storyboard new file mode 100644 index 0000000..bd07e4a --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Base.lproj/Main.storyboard @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/GoogleService-Info.plist b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/GoogleService-Info.plist new file mode 100644 index 0000000..aa68dab --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/GoogleService-Info.plist @@ -0,0 +1,36 @@ + + + + + CLIENT_ID + 1041612323849-02nd6mvrp3q6qji398g6lvqoral4jq82.apps.googleusercontent.com + REVERSED_CLIENT_ID + com.googleusercontent.apps.1041612323849-02nd6mvrp3q6qji398g6lvqoral4jq82 + API_KEY + AIzaSyBLEg-Qw-D0kl7CJO3AESD-C-u3bPDmni8 + GCM_SENDER_ID + 1041612323849 + PLIST_VERSION + 1 + BUNDLE_ID + com.2020.FirebaseTest + PROJECT_ID + sick-9b5ac + STORAGE_BUCKET + sick-9b5ac.appspot.com + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:1041612323849:ios:801113e4de4a1764370cd8 + DATABASE_URL + https://sick-9b5ac.firebaseio.com + + diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Info.plist b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Info.plist new file mode 100644 index 0000000..4f4e43d --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/Info.plist @@ -0,0 +1,76 @@ + + + + + NSBluetoothPeripheralUsageDescription + + NSBluetoothAlwaysUsageDescription + + BGTaskSchedulerPermittedIdentifiers + + com.SO.apprefresh + com.SO.imagefetcher + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + UISceneStoryboardFile + Main + + + + + UIBackgroundModes + + fetch + processing + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/SceneDelegate.swift b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/SceneDelegate.swift new file mode 100644 index 0000000..f1d27e5 --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/SceneDelegate.swift @@ -0,0 +1,53 @@ +// +// SceneDelegate.swift +// TrackIT +// +// Created by Laima Cernius-Ink on 3/25/20. +// Copyright © 2020 Steve Ink. All rights reserved. +// + +import UIKit + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). + guard let _ = (scene as? UIWindowScene) else { return } + } + + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not neccessarily discarded (see `application:didDiscardSceneSessions` instead). + } + + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } + + +} + diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/TrackIT.entitlements b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/TrackIT.entitlements new file mode 100644 index 0000000..903def2 --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/TrackIT.entitlements @@ -0,0 +1,8 @@ + + + + + aps-environment + development + + diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/ViewController.swift b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/ViewController.swift new file mode 100644 index 0000000..7114c4a --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/ViewController.swift @@ -0,0 +1,377 @@ +// +// ViewController.swift +// TrackIT +// +// Created by Laima Cernius-Ink on 3/25/20. +// Copyright © 2020 Steve Ink. All rights reserved. +// + +import UIKit +import Lottie +class ViewController: UIViewController { + + let animationView = AnimationView() + let home = UILabel() + let lbl = UILabel() + let screenSize: CGRect = UIScreen.main.bounds + let view1 = UIView() + let view2 = UIView() + let view3 = UIView() + let view4 = UIView() + let lbl1 = UITextView() + let lbl2 = UITextView() + let lbl3 = UITextView() + let lbl4 = UITextView() + + let description1 = UITextView() + let description2 = UITextView() + let description3 = UITextView() + let description4 = UITextView() + + var panGesture2 = UIPanGestureRecognizer() + func hexStringToUIColor (hex:String) -> UIColor { + var cString:String = hex.trimmingCharacters(in: .whitespacesAndNewlines).uppercased() + + if (cString.hasPrefix("#")) { + cString.remove(at: cString.startIndex) + } + + if ((cString.count) != 6) { + return UIColor.gray + } + + var rgbValue:UInt64 = 0 + Scanner(string: cString).scanHexInt64(&rgbValue) + + return UIColor( + red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0, + green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0, + blue: CGFloat(rgbValue & 0x0000FF) / 255.0, + alpha: CGFloat(1.0) + ) + } + + override var prefersStatusBarHidden: Bool { + return true + } + + override func viewDidLoad() { + super.viewDidLoad() + + let screenWidth = screenSize.width + let screenHeight = screenSize.height + + let color1 = hexStringToUIColor(hex: "#2792FF") + let color2 = hexStringToUIColor(hex: "#7EBFFF") + + + home.text = "Home" + home.textColor = .black + home.frame.size.width = 200 + home.frame.size.height = 75 + home.center.x = 130 + home.center.y = 90 + // home.font = UIFont(name: "Avenir Next", size: 60) + home.font = .boldSystemFont(ofSize: 45) + + + view.addSubview(home) + let animation = Animation.named("lf30_editor_SKZ870", subdirectory: "") + + animationView.animation = animation + animationView.contentMode = .scaleAspectFit + animationView.frame.size.width = 300 + animationView.frame.size.height = 300 + animationView.center.x = view.center.x + animationView.center.y = view.center.y - 100 + + view.addSubview(animationView) + + lbl.text = "Active" + lbl.font = .boldSystemFont(ofSize: 20) + lbl.sizeToFit() + lbl.center.x = view.center.x + lbl.center.y = view.center.y - 100 + + lbl.textColor = .white + + view.addSubview(lbl) + + view1.layer.cornerRadius = 20 + view2.layer.cornerRadius = 20 + view3.layer.cornerRadius = 20 + view4.layer.cornerRadius = 20 + + view1.frame.size.width = screenWidth - 50 + view1.frame.size.height = 200 + view1.center.x = view.center.x + view1.center.y = animationView.center.y + 250 + view1.backgroundColor = color1 + view.addSubview(view1) + + + + + view2.frame.size.width = screenWidth - 50 + view2.frame.size.height = 200 + view2.center.x = view.center.x + view2.center.y = view1.center.y + 250 + view2.backgroundColor = color1 + view.addSubview(view2) + + view3.frame.size.width = screenWidth - 50 + view3.frame.size.height = 200 + view3.center.x = view.center.x + view3.center.y = view2.center.y + 250 + view3.backgroundColor = color1 + view.addSubview(view3) + + + view4.frame.size.width = screenWidth - 50 + view4.frame.size.height = 200 + view4.center.x = view.center.x + view4.center.y = view3.center.y + 250 + view4.backgroundColor = color1 + view.addSubview(view4) + + lbl1.isEditable = false + lbl2.isEditable = false + lbl3.isEditable = false + lbl4.isEditable = false + lbl1.text = "Why do we collect your data?" + lbl1.textColor = .white + lbl1.backgroundColor = .clear + lbl1.font = .boldSystemFont(ofSize: 24) + lbl1.frame.size.width = screenWidth - 70 + lbl1.frame.size.height = 170 + lbl1.center.x = view.center.x - 10 + lbl1.center.y = 90 + + + view1.addSubview(lbl1) + + lbl2.text = "What data do we collect?" + lbl2.textColor = .white + lbl2.backgroundColor = .clear + lbl2.frame.size.width = screenWidth - 70 + lbl2.frame.size.height = 170 + lbl2.center.x = view.center.x - 20 + lbl2.center.y = 90 + + lbl2.font = .boldSystemFont(ofSize: 24) + + + view2.addSubview(lbl2) + + lbl3.text = "Who recieves my data?" + lbl3.textColor = .white + lbl3.backgroundColor = .clear + lbl3.frame.size.width = screenWidth - 70 + lbl3.frame.size.height = 170 + lbl3.center.x = view.center.x - 10 + lbl3.center.y = 90 + + lbl3.font = .boldSystemFont(ofSize: 24) + + + view3.addSubview(lbl3) + + + lbl4.text = "How do you secure my data?" + lbl4.textColor = .white + lbl4.backgroundColor = .clear + lbl4.frame.size.width = screenWidth - 70 + lbl4.frame.size.height = 170 + lbl4.center.x = view.center.x - 10 + lbl4.center.y = 90 + + lbl4.font = .boldSystemFont(ofSize: 24) + + + + view4.addSubview(lbl4) + + + panGesture2 = UIPanGestureRecognizer(target: self, action: #selector(ViewController.draggedView2(_:))) + view.isUserInteractionEnabled = true + view.addGestureRecognizer(panGesture2) + + description1.text = "We strive to enable healthcare officals to save lives all with your help!" + description1.textColor = .white + description1.frame.size.width = 290 + description1.frame.size.height = 125 + description1.center.x = view.center.x - 20 + description1.center.y = 125 + + + description1.font = .systemFont(ofSize: 20) + description1.backgroundColor = .clear + description1.isEditable = false + view1.addSubview(description1) + + + description2.text = "We collect the userid’s of users you have been in contact with and..." + description2.textColor = .white + description2.frame.size.width = 290 + description2.frame.size.height = 125 + + description2.center.x = view.center.x - 20 + description2.center.y = 100 + + description2.font = .systemFont(ofSize: 20) + description2.backgroundColor = .clear + + view2.addSubview(description2) + description2.isEditable = false + description3.text = "Health officals such as WHO and the CDC among other officals recieve your data nonivasivly and securely. " + description3.textColor = .white + description3.frame.size.width = 290 + description3.frame.size.height = 125 + description3.center.x = view.center.x - 20 + description3.center.y = 105 + + + description3.font = .systemFont(ofSize: 20) + description3.backgroundColor = .clear + view3.addSubview(description3) + description3.isEditable = false + description4.text = "We secure our data with..." + description4.textColor = .white + description4.frame.size.width = 290 + description4.frame.size.height = 125 + description4.center.x = view.center.x - 20 + description4.center.y = 125 + + + description4.font = .systemFont(ofSize: 20) + description4.backgroundColor = .clear + description4.isEditable = false + view4.addSubview(description4) + } + + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + animationView.play(fromProgress: 0, + toProgress: 1, + loopMode: LottieLoopMode.loop, + completion: { (finished) in + if finished { + print("Animation Complete") + } else { + print("Animation cancelled") + } + }) + let screenWidth = screenSize.width + let screenHeight = screenSize.height + let timer = Timer.scheduledTimer(withTimeInterval: 0.01, repeats: true) { timer in + if self.home.center.y > 90 { + + + self.home.center.y = 90 + + + + } + + if self.home.center.y < -800 { + + + self.home.center.y = -700 + + + + } + } + + } + @objc func draggedView2(_ sender:UIPanGestureRecognizer){ + let screenWidth = screenSize.width + let screenHeight = screenSize.height + let timer = Timer.scheduledTimer(withTimeInterval: 0.01, repeats: true) { timer in + if self.home.center.y > 105 { + + + self.home.center.y = 105 + + + + } + + if self.home.center.y < -800 { + + + self.home.center.y = -700 + + + + } + } + //if viewDragLong == true { + //self.view.bringSubviewToFront(planet) + let translation = sender.translation(in: self.view) + // one.center = CGPoint(x: one.center.x, y: one.center.y + translation.y ) + sender.setTranslation(CGPoint.zero, in: self.view) + + UIView.animate(withDuration: 0.4, + delay: 0.0, + options: [], + animations: { [weak self] in + self!.home.center = CGPoint(x: self!.home.center.x, y: self!.home.center.y + translation.y * 1.7 ) + + + }, completion: nil) + + UIView.animate(withDuration: 0.4, + delay: 0.05, + options: [], + animations: { [weak self] in + self?.animationView.center.y = self!.home.center.y + 190 + self?.lbl.center.y = self!.home.center.y + 190 + + }, completion: nil) + + UIView.animate(withDuration: 0.3, + delay: 0.1, + options: [], + animations: { [weak self] in + self!.view1.center.y = ((self?.animationView.center.y)!) + 250 + + + }, completion: nil) + + + UIView.animate(withDuration: 0.4, + delay: 0.15, + options: [], + animations: { [weak self] in + self!.view2.center.y = self!.view1.center.y + 250 + + + }, completion: nil) + UIView.animate(withDuration: 0.4, + delay: 0.2, + options: [], + animations: { [weak self] in + self!.view3.center.y = self!.view2.center.y + 250 + + + }, completion: nil) + + UIView.animate(withDuration: 0.3, + delay: 0.25, + options: [], + animations: { [weak self] in + self!.view4.center.y = self!.view3.center.y + 250 + + + }, completion: nil) + + + + + + + // }/ + } +} + diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/settings.swift b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/settings.swift new file mode 100644 index 0000000..d128c07 --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/settings.swift @@ -0,0 +1,80 @@ +// +// settings.swift +// TrackIT +// +// Created by Laima Cernius-Ink on 3/25/20. +// Copyright © 2020 Steve Ink. All rights reserved. +// + +import UIKit + +class settings: UIViewController { + + let home = UILabel() + let lbl = UILabel() + let screenSize: CGRect = UIScreen.main.bounds + let view1 = UIView() + + func hexStringToUIColor (hex:String) -> UIColor { + var cString:String = hex.trimmingCharacters(in: .whitespacesAndNewlines).uppercased() + + if (cString.hasPrefix("#")) { + cString.remove(at: cString.startIndex) + } + + if ((cString.count) != 6) { + return UIColor.gray + } + + var rgbValue:UInt64 = 0 + Scanner(string: cString).scanHexInt64(&rgbValue) + + return UIColor( + red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0, + green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0, + blue: CGFloat(rgbValue & 0x0000FF) / 255.0, + alpha: CGFloat(1.0) + ) + } + + override var prefersStatusBarHidden: Bool { + return true + } + + + override func viewDidLoad() { + super.viewDidLoad() + + let screenWidth = screenSize.width + let screenHeight = screenSize.height + + let color1 = hexStringToUIColor(hex: "#2792FF") + let color2 = hexStringToUIColor(hex: "#7EBFFF") + + + + home.text = "Settings" + home.textColor = .black + home.frame.size.width = 200 + home.frame.size.height = 75 + home.center.x = 130 + home.center.y = 90 + // home.font = UIFont(name: "Avenir Next", size: 60) + home.font = .boldSystemFont(ofSize: 45) + + + view.addSubview(home) + } + + + /* + // 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.destination. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/syncPulse.swift b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/syncPulse.swift new file mode 100644 index 0000000..58dec95 --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/syncPulse.swift @@ -0,0 +1,49 @@ +// +// syncPulse.swift +// TrackIT +// +// Created by Laima Cernius-Ink on 3/25/20. +// Copyright © 2020 Steve Ink. All rights reserved. +// + +import UIKit +import Firebase +class syncPulse: UIViewController { + + var time = 0 + override func viewDidLoad() { + super.viewDidLoad() + let timer = Timer.scheduledTimer(withTimeInterval: 5, repeats: true) { timer in + let db = Firestore.firestore() + self.time += 5 + print(self.time) + if 60 - self.time < 0 { + self.time = 0 + } + db.collection("sync").document("pulse").setData([ + "pulseTime": 60 - self.time, + + ]) { err in + if let err = err { + print("Error writing document: \(err)") + } else { + print("Document successfully written!") + } + } + } + + // Do any additional setup after loading the view. + } + + + /* + // 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.destination. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/workout.swift b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/workout.swift new file mode 100644 index 0000000..870eb68 --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackIT/workout.swift @@ -0,0 +1,42 @@ +// +// workout.swift +// TrackIT +// +// Created by Laima Cernius-Ink on 3/26/20. +// Copyright © 2020 Steve Ink. All rights reserved. +// + +import UIKit +import HealthKit + +class WorkoutStartView: UIViewController { + + let healthStore = HKHealthStore() + + override func viewDidLoad() { + super.viewDidLoad() + title = "SpeedySloth" + navigationController?.navigationBar.prefersLargeTitles = true + + let typesToShare: Set = [ + HKQuantityType.workoutType() + ] + + let typesToRead: Set = [ + HKQuantityType.quantityType(forIdentifier: .heartRate)!, + HKQuantityType.quantityType(forIdentifier: .activeEnergyBurned)!, + HKQuantityType.quantityType(forIdentifier: .distanceWalkingRunning)! + ] + + healthStore.requestAuthorization(toShare: typesToShare, read: typesToRead) { (success, error) in + // Handle error + + } + let timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { timer in + print("hi") + } + } + +} + + diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackITTests/Info.plist b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackITTests/Info.plist new file mode 100644 index 0000000..64d65ca --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackITTests/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackITTests/TrackITTests.swift b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackITTests/TrackITTests.swift new file mode 100644 index 0000000..81055ac --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackITTests/TrackITTests.swift @@ -0,0 +1,34 @@ +// +// TrackITTests.swift +// TrackITTests +// +// Created by Laima Cernius-Ink on 3/25/20. +// Copyright © 2020 Steve Ink. All rights reserved. +// + +import XCTest +@testable import TrackIT + +class TrackITTests: XCTestCase { + + override func 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. + } + + 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/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackITUITests/Info.plist b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackITUITests/Info.plist new file mode 100644 index 0000000..64d65ca --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackITUITests/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackITUITests/TrackITUITests.swift b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackITUITests/TrackITUITests.swift new file mode 100644 index 0000000..2f162c7 --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/TrackITUITests/TrackITUITests.swift @@ -0,0 +1,43 @@ +// +// TrackITUITests.swift +// TrackITUITests +// +// Created by Laima Cernius-Ink on 3/25/20. +// Copyright © 2020 Steve Ink. All rights reserved. +// + +import XCTest + +class TrackITUITests: XCTestCase { + + override func setUp() { + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. + } + + override func tearDown() { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() { + // UI tests must launch the application that they test. + let app = XCUIApplication() + app.launch() + + // Use recording to get started writing UI tests. + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + func testLaunchPerformance() { + if #available(macOS 10.15, iOS 13.0, tvOS 13.0, *) { + // This measures how long it takes to launch your application. + measure(metrics: [XCTOSSignpostMetric.applicationLaunch]) { + XCUIApplication().launch() + } + } + } +} diff --git a/TrackIT-2020Nonprofit-patch-6/TrackIT/lf30_editor_SKZ870.json b/TrackIT-2020Nonprofit-patch-6/TrackIT/lf30_editor_SKZ870.json new file mode 100644 index 0000000..c19a05b --- /dev/null +++ b/TrackIT-2020Nonprofit-patch-6/TrackIT/lf30_editor_SKZ870.json @@ -0,0 +1 @@ +{"v":"5.5.0","fr":29.9700012207031,"ip":0,"op":70.0000028511585,"w":250,"h":250,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":90,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[118.549,117.468,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,2.889]},"t":0,"s":[83.62,83.62,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,-0.549]},"t":27,"s":[105.62,105.62,100]},{"t":52.0000021180034,"s":[83.62,83.62,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[106.672,106.672],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.15294117647058825,0.5725490196078431,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.715,9.008],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":72.0000029326201,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"w1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[100]},{"t":25.0000010182709,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[125.156,124.494,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[83.6,83.6,100]},{"t":25.0000010182709,"s":[234.048,234.048,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[69.508,69.508],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.3254901960784314,0.6549019607843137,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-0.187,0.605],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[139.443,139.443],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":70.0000028511585,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"w2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[100]},{"t":30.0000012219251,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[125.326,124.285,0],"ix":2},"a":{"a":0,"k":[-44.248,-66.371,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[92.661,92.661,100]},{"t":30.0000012219251,"s":[229.892,229.892,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[86.801,86.801],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.3254901960784314,0.6549019607843137,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-44.6,-65.6],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":70.0000028511585,"st":0,"bm":0}],"markers":[]} \ No newline at end of file