diff --git a/Time/Time.xcodeproj/project.pbxproj b/Time/Time.xcodeproj/project.pbxproj index c8743f0..093ff0c 100644 --- a/Time/Time.xcodeproj/project.pbxproj +++ b/Time/Time.xcodeproj/project.pbxproj @@ -7,13 +7,28 @@ objects = { /* Begin PBXBuildFile section */ + 0B6CAA6A1B9201B0004865B0 /* DetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B6CAA691B9201B0004865B0 /* DetailViewController.m */; }; + 0B6CAA711B92383B004865B0 /* home-hero-10-1440-900.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 0B6CAA701B92383B004865B0 /* home-hero-10-1440-900.jpg */; }; + 0B6CAA761B92562B004865B0 /* clock-timer-7.png in Resources */ = {isa = PBXBuildFile; fileRef = 0B6CAA751B92562B004865B0 /* clock-timer-7.png */; }; + 0B6CAA781B92566D004865B0 /* clock-stopwatch-7.png in Resources */ = {isa = PBXBuildFile; fileRef = 0B6CAA771B92566D004865B0 /* clock-stopwatch-7.png */; }; + 0B6CAA7A1B925679004865B0 /* clock-alarm-7.png in Resources */ = {isa = PBXBuildFile; fileRef = 0B6CAA791B925679004865B0 /* clock-alarm-7.png */; }; + 0B6CAA7C1B9256F7004865B0 /* earth-america-7.png in Resources */ = {isa = PBXBuildFile; fileRef = 0B6CAA7B1B9256F7004865B0 /* earth-america-7.png */; }; + 0B6CAA7F1B925F6F004865B0 /* PresetTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B6CAA7E1B925F6F004865B0 /* PresetTime.m */; }; + 0BC209411B87E50B00D9FAE9 /* TimerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BC209401B87E50B00D9FAE9 /* TimerViewController.m */; }; + 0BC2CC371B97B11D006DC7ED /* radial-gradient.png in Resources */ = {isa = PBXBuildFile; fileRef = 0BC2CC361B97B11D006DC7ED /* radial-gradient.png */; }; + 0BC2CC391B97B27B006DC7ED /* images-5.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = 0BC2CC381B97B27B006DC7ED /* images-5.jpeg */; }; + 0BC2CC3B1B97B5C5006DC7ED /* gradient_series___orange.png in Resources */ = {isa = PBXBuildFile; fileRef = 0BC2CC3A1B97B5C5006DC7ED /* gradient_series___orange.png */; }; + 0BC2CC3D1B97CB9D006DC7ED /* images-3.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = 0BC2CC3C1B97CB9D006DC7ED /* images-3.jpeg */; }; 8D05375E1B86687C00588318 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D05375D1B86687C00588318 /* main.m */; }; 8D0537611B86687C00588318 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D0537601B86687C00588318 /* AppDelegate.m */; }; - 8D0537641B86687C00588318 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D0537631B86687C00588318 /* ViewController.m */; }; 8D0537671B86687C00588318 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8D0537651B86687C00588318 /* Main.storyboard */; }; - 8D0537691B86687C00588318 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8D0537681B86687C00588318 /* Images.xcassets */; }; 8D05376C1B86687C00588318 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8D05376A1B86687C00588318 /* LaunchScreen.xib */; }; 8D0537781B86687C00588318 /* TimeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D0537771B86687C00588318 /* TimeTests.m */; }; + D419E2FE1B892213004E1BD4 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D419E2FD1B892213004E1BD4 /* AudioToolbox.framework */; }; + D419E3011B89228D004E1BD4 /* Alerts in Resources */ = {isa = PBXBuildFile; fileRef = D419E2FF1B89228D004E1BD4 /* Alerts */; }; + D419E3021B89228D004E1BD4 /* Ringtones in Resources */ = {isa = PBXBuildFile; fileRef = D419E3001B89228D004E1BD4 /* Ringtones */; }; + D45C0E611B9240E000B5BCB7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D45C0E601B9240E000B5BCB7 /* Images.xcassets */; }; + D47FF9281B87EFA10068E9FA /* StopWatchViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D47FF9271B87EFA10068E9FA /* StopWatchViewController.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -27,19 +42,37 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 0B6CAA681B9201B0004865B0 /* DetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetailViewController.h; sourceTree = ""; }; + 0B6CAA691B9201B0004865B0 /* DetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DetailViewController.m; sourceTree = ""; }; + 0B6CAA701B92383B004865B0 /* home-hero-10-1440-900.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "home-hero-10-1440-900.jpg"; sourceTree = ""; }; + 0B6CAA751B92562B004865B0 /* clock-timer-7.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "clock-timer-7.png"; sourceTree = ""; }; + 0B6CAA771B92566D004865B0 /* clock-stopwatch-7.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "clock-stopwatch-7.png"; sourceTree = ""; }; + 0B6CAA791B925679004865B0 /* clock-alarm-7.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "clock-alarm-7.png"; sourceTree = ""; }; + 0B6CAA7B1B9256F7004865B0 /* earth-america-7.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "earth-america-7.png"; sourceTree = ""; }; + 0B6CAA7D1B925F6F004865B0 /* PresetTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PresetTime.h; sourceTree = ""; }; + 0B6CAA7E1B925F6F004865B0 /* PresetTime.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PresetTime.m; sourceTree = ""; }; + 0BC2093F1B87E50B00D9FAE9 /* TimerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TimerViewController.h; sourceTree = ""; }; + 0BC209401B87E50B00D9FAE9 /* TimerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TimerViewController.m; sourceTree = ""; }; + 0BC2CC361B97B11D006DC7ED /* radial-gradient.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "radial-gradient.png"; sourceTree = ""; }; + 0BC2CC381B97B27B006DC7ED /* images-5.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "images-5.jpeg"; sourceTree = ""; }; + 0BC2CC3A1B97B5C5006DC7ED /* gradient_series___orange.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "gradient_series___orange.png"; sourceTree = ""; }; + 0BC2CC3C1B97CB9D006DC7ED /* images-3.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "images-3.jpeg"; sourceTree = ""; }; 8D0537581B86687B00588318 /* Time.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Time.app; sourceTree = BUILT_PRODUCTS_DIR; }; 8D05375C1B86687B00588318 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 8D05375D1B86687C00588318 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 8D05375F1B86687C00588318 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 8D0537601B86687C00588318 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 8D0537621B86687C00588318 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; - 8D0537631B86687C00588318 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; 8D0537661B86687C00588318 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 8D0537681B86687C00588318 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 8D05376B1B86687C00588318 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 8D0537711B86687C00588318 /* TimeTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TimeTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 8D0537761B86687C00588318 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 8D0537771B86687C00588318 /* TimeTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TimeTests.m; sourceTree = ""; }; + D419E2FD1B892213004E1BD4 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + D419E2FF1B89228D004E1BD4 /* Alerts */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Alerts; sourceTree = ""; }; + D419E3001B89228D004E1BD4 /* Ringtones */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Ringtones; sourceTree = ""; }; + D45C0E601B9240E000B5BCB7 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + D47FF9261B87EFA10068E9FA /* StopWatchViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StopWatchViewController.h; sourceTree = ""; }; + D47FF9271B87EFA10068E9FA /* StopWatchViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StopWatchViewController.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -47,6 +80,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D419E2FE1B892213004E1BD4 /* AudioToolbox.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -63,6 +97,7 @@ 8D05374F1B86687B00588318 = { isa = PBXGroup; children = ( + D419E2FD1B892213004E1BD4 /* AudioToolbox.framework */, 8D05375A1B86687B00588318 /* Time */, 8D0537741B86687C00588318 /* TimeTests */, 8D0537591B86687B00588318 /* Products */, @@ -83,10 +118,25 @@ children = ( 8D05375F1B86687C00588318 /* AppDelegate.h */, 8D0537601B86687C00588318 /* AppDelegate.m */, - 8D0537621B86687C00588318 /* ViewController.h */, - 8D0537631B86687C00588318 /* ViewController.m */, + 0B6CAA7D1B925F6F004865B0 /* PresetTime.h */, + 0B6CAA7E1B925F6F004865B0 /* PresetTime.m */, + 0BC2093F1B87E50B00D9FAE9 /* TimerViewController.h */, + 0BC209401B87E50B00D9FAE9 /* TimerViewController.m */, + 0B6CAA681B9201B0004865B0 /* DetailViewController.h */, + 0B6CAA691B9201B0004865B0 /* DetailViewController.m */, + D47FF9261B87EFA10068E9FA /* StopWatchViewController.h */, + D47FF9271B87EFA10068E9FA /* StopWatchViewController.m */, 8D0537651B86687C00588318 /* Main.storyboard */, - 8D0537681B86687C00588318 /* Images.xcassets */, + D45C0E601B9240E000B5BCB7 /* Images.xcassets */, + 0BC2CC3C1B97CB9D006DC7ED /* images-3.jpeg */, + 0BC2CC3A1B97B5C5006DC7ED /* gradient_series___orange.png */, + 0BC2CC381B97B27B006DC7ED /* images-5.jpeg */, + 0BC2CC361B97B11D006DC7ED /* radial-gradient.png */, + 0B6CAA751B92562B004865B0 /* clock-timer-7.png */, + 0B6CAA771B92566D004865B0 /* clock-stopwatch-7.png */, + 0B6CAA791B925679004865B0 /* clock-alarm-7.png */, + 0B6CAA7B1B9256F7004865B0 /* earth-america-7.png */, + 0B6CAA701B92383B004865B0 /* home-hero-10-1440-900.jpg */, 8D05376A1B86687C00588318 /* LaunchScreen.xib */, 8D05375B1B86687B00588318 /* Supporting Files */, ); @@ -96,6 +146,8 @@ 8D05375B1B86687B00588318 /* Supporting Files */ = { isa = PBXGroup; children = ( + D419E2FF1B89228D004E1BD4 /* Alerts */, + D419E3001B89228D004E1BD4 /* Ringtones */, 8D05375C1B86687B00588318 /* Info.plist */, 8D05375D1B86687C00588318 /* main.m */, ); @@ -168,6 +220,7 @@ TargetAttributes = { 8D0537571B86687B00588318 = { CreatedOnToolsVersion = 6.4; + DevelopmentTeam = 3J8TK6N9FY; }; 8D0537701B86687C00588318 = { CreatedOnToolsVersion = 6.4; @@ -199,9 +252,20 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 0B6CAA711B92383B004865B0 /* home-hero-10-1440-900.jpg in Resources */, + 0BC2CC391B97B27B006DC7ED /* images-5.jpeg in Resources */, + 0BC2CC3B1B97B5C5006DC7ED /* gradient_series___orange.png in Resources */, + 0B6CAA7C1B9256F7004865B0 /* earth-america-7.png in Resources */, + 0B6CAA761B92562B004865B0 /* clock-timer-7.png in Resources */, + 0BC2CC3D1B97CB9D006DC7ED /* images-3.jpeg in Resources */, + 0B6CAA781B92566D004865B0 /* clock-stopwatch-7.png in Resources */, 8D0537671B86687C00588318 /* Main.storyboard in Resources */, + 0BC2CC371B97B11D006DC7ED /* radial-gradient.png in Resources */, + D419E3021B89228D004E1BD4 /* Ringtones in Resources */, + D45C0E611B9240E000B5BCB7 /* Images.xcassets in Resources */, + D419E3011B89228D004E1BD4 /* Alerts in Resources */, + 0B6CAA7A1B925679004865B0 /* clock-alarm-7.png in Resources */, 8D05376C1B86687C00588318 /* LaunchScreen.xib in Resources */, - 8D0537691B86687C00588318 /* Images.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -219,9 +283,12 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8D0537641B86687C00588318 /* ViewController.m in Sources */, + D47FF9281B87EFA10068E9FA /* StopWatchViewController.m in Sources */, + 0B6CAA7F1B925F6F004865B0 /* PresetTime.m in Sources */, + 0BC209411B87E50B00D9FAE9 /* TimerViewController.m in Sources */, 8D0537611B86687C00588318 /* AppDelegate.m in Sources */, 8D05375E1B86687C00588318 /* main.m in Sources */, + 0B6CAA6A1B9201B0004865B0 /* DetailViewController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -349,9 +416,12 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; INFOPLIST_FILE = Time/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; }; name = Debug; }; @@ -359,9 +429,12 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; INFOPLIST_FILE = Time/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; }; name = Release; }; @@ -418,6 +491,7 @@ 8D05377D1B86687C00588318 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; 8D05377E1B86687C00588318 /* Build configuration list for PBXNativeTarget "TimeTests" */ = { isa = XCConfigurationList; @@ -426,6 +500,7 @@ 8D0537801B86687C00588318 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; diff --git a/Time/Time/Alerts/aurora.m4r b/Time/Time/Alerts/aurora.m4r new file mode 100644 index 0000000..a9dce51 Binary files /dev/null and b/Time/Time/Alerts/aurora.m4r differ diff --git a/Time/Time/Alerts/bamboo.m4r b/Time/Time/Alerts/bamboo.m4r new file mode 100644 index 0000000..b795043 Binary files /dev/null and b/Time/Time/Alerts/bamboo.m4r differ diff --git a/Time/Time/Alerts/chord.m4r b/Time/Time/Alerts/chord.m4r new file mode 100644 index 0000000..89d9c56 Binary files /dev/null and b/Time/Time/Alerts/chord.m4r differ diff --git a/Time/Time/Alerts/circles.m4r b/Time/Time/Alerts/circles.m4r new file mode 100644 index 0000000..81e54a2 Binary files /dev/null and b/Time/Time/Alerts/circles.m4r differ diff --git a/Time/Time/Alerts/complete.m4r b/Time/Time/Alerts/complete.m4r new file mode 100644 index 0000000..9bba6dd Binary files /dev/null and b/Time/Time/Alerts/complete.m4r differ diff --git a/Time/Time/Alerts/hello.m4r b/Time/Time/Alerts/hello.m4r new file mode 100644 index 0000000..9504e9a Binary files /dev/null and b/Time/Time/Alerts/hello.m4r differ diff --git a/Time/Time/Alerts/input.m4r b/Time/Time/Alerts/input.m4r new file mode 100644 index 0000000..5e86616 Binary files /dev/null and b/Time/Time/Alerts/input.m4r differ diff --git a/Time/Time/Alerts/keys.m4r b/Time/Time/Alerts/keys.m4r new file mode 100644 index 0000000..ebdcb00 Binary files /dev/null and b/Time/Time/Alerts/keys.m4r differ diff --git a/Time/Time/Alerts/note.m4r b/Time/Time/Alerts/note.m4r new file mode 100644 index 0000000..5e39483 Binary files /dev/null and b/Time/Time/Alerts/note.m4r differ diff --git a/Time/Time/Alerts/popcorn.m4r b/Time/Time/Alerts/popcorn.m4r new file mode 100644 index 0000000..2c2ca24 Binary files /dev/null and b/Time/Time/Alerts/popcorn.m4r differ diff --git a/Time/Time/Alerts/pulse.m4r b/Time/Time/Alerts/pulse.m4r new file mode 100644 index 0000000..8b3777e Binary files /dev/null and b/Time/Time/Alerts/pulse.m4r differ diff --git a/Time/Time/Alerts/synth.m4r b/Time/Time/Alerts/synth.m4r new file mode 100644 index 0000000..78cfbe6 Binary files /dev/null and b/Time/Time/Alerts/synth.m4r differ diff --git a/Time/Time/Base.lproj/Main.storyboard b/Time/Time/Base.lproj/Main.storyboard index f56d2f3..f5c6754 100644 --- a/Time/Time/Base.lproj/Main.storyboard +++ b/Time/Time/Base.lproj/Main.storyboard @@ -1,25 +1,698 @@ - + - + - - + + - + - - + + - + - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Time/Time/DetailViewController.h b/Time/Time/DetailViewController.h new file mode 100644 index 0000000..355ee11 --- /dev/null +++ b/Time/Time/DetailViewController.h @@ -0,0 +1,25 @@ +// +// DetailViewController.h +// Time +// +// Created by Artur Lan on 8/29/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import +#import "PresetTime.h" +#import "TimerViewController.h" + +@interface DetailViewController : UIViewController + +@property (weak, nonatomic) IBOutlet UITextField *nameYourTask; +@property (weak, nonatomic) IBOutlet UITextField *yourTime; +@property (nonatomic) PresetTime * model; + +@property (nonatomic) NSMutableDictionary *personalTimer; + +//@property (nonatomic, weak) PresetTableViewController *previousViewController; + +@property (nonatomic, weak) TimerViewController *previousViewController; + +@end diff --git a/Time/Time/DetailViewController.m b/Time/Time/DetailViewController.m new file mode 100644 index 0000000..e92669d --- /dev/null +++ b/Time/Time/DetailViewController.m @@ -0,0 +1,53 @@ +// +// DetailViewController.m +// Time +// +// Created by Artur Lan on 8/29/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import "DetailViewController.h" +#import "PresetTime.h" +#import "TimerViewController.h" + +@interface DetailViewController () + +@end + +@implementation DetailViewController + +- (IBAction)saveButton:(UIButton *)sender { + + PresetTime *time = [[PresetTime alloc] init]; + time.nameOfTask = self.nameYourTask.text; + time.timeOfTask = [self.yourTime.text doubleValue]; + + [self.previousViewController.timers addObject:time]; + + +// [self.navigationController popViewControllerAnimated:YES]; +} + +- (IBAction)Cancel:(UIButton *)sender { + [self dismissViewControllerAnimated:YES completion:nil]; + + +} + + +-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath +{ + [tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryNone; +} + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/Time/Time/Images.xcassets/AppIcon.appiconset/Contents.json b/Time/Time/Images.xcassets/AppIcon.appiconset/Contents.json index 36d2c80..5008911 100644 --- a/Time/Time/Images.xcassets/AppIcon.appiconset/Contents.json +++ b/Time/Time/Images.xcassets/AppIcon.appiconset/Contents.json @@ -1,5 +1,10 @@ { "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "1x" + }, { "idiom" : "iphone", "size" : "29x29", @@ -20,6 +25,16 @@ "size" : "40x40", "scale" : "3x" }, + { + "idiom" : "iphone", + "size" : "57x57", + "scale" : "1x" + }, + { + "idiom" : "iphone", + "size" : "57x57", + "scale" : "2x" + }, { "idiom" : "iphone", "size" : "60x60", @@ -50,6 +65,26 @@ "size" : "40x40", "scale" : "2x" }, + { + "idiom" : "ipad", + "size" : "50x50", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "50x50", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "72x72", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "72x72", + "scale" : "2x" + }, { "idiom" : "ipad", "size" : "76x76", @@ -59,6 +94,65 @@ "idiom" : "ipad", "size" : "76x76", "scale" : "2x" + }, + { + "idiom" : "car", + "size" : "120x120", + "scale" : "1x" + }, + { + "size" : "24x24", + "idiom" : "watch", + "scale" : "2x", + "role" : "notificationCenter", + "subtype" : "38mm" + }, + { + "size" : "27.5x27.5", + "idiom" : "watch", + "scale" : "2x", + "role" : "notificationCenter", + "subtype" : "42mm" + }, + { + "size" : "29x29", + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "watch", + "scale" : "2x", + "role" : "appLauncher", + "subtype" : "38mm" + }, + { + "size" : "44x44", + "idiom" : "watch", + "scale" : "2x", + "role" : "longLook", + "subtype" : "42mm" + }, + { + "size" : "86x86", + "idiom" : "watch", + "scale" : "2x", + "role" : "quickLook", + "subtype" : "38mm" + }, + { + "size" : "98x98", + "idiom" : "watch", + "scale" : "2x", + "role" : "quickLook", + "subtype" : "42mm" } ], "info" : { diff --git a/Time/Time/Images.xcassets/clock-alarm-7.imageset/Contents.json b/Time/Time/Images.xcassets/clock-alarm-7.imageset/Contents.json new file mode 100644 index 0000000..8085444 --- /dev/null +++ b/Time/Time/Images.xcassets/clock-alarm-7.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "clock-alarm-7.png" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Time/Time/Images.xcassets/clock-alarm-7.imageset/clock-alarm-7.png b/Time/Time/Images.xcassets/clock-alarm-7.imageset/clock-alarm-7.png new file mode 100644 index 0000000..86ba1f7 Binary files /dev/null and b/Time/Time/Images.xcassets/clock-alarm-7.imageset/clock-alarm-7.png differ diff --git a/Time/Time/Images.xcassets/clock-stopwatch-7.imageset/Contents.json b/Time/Time/Images.xcassets/clock-stopwatch-7.imageset/Contents.json new file mode 100644 index 0000000..96ca77c --- /dev/null +++ b/Time/Time/Images.xcassets/clock-stopwatch-7.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "clock-stopwatch-7.png" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Time/Time/Images.xcassets/clock-stopwatch-7.imageset/clock-stopwatch-7.png b/Time/Time/Images.xcassets/clock-stopwatch-7.imageset/clock-stopwatch-7.png new file mode 100644 index 0000000..409e119 Binary files /dev/null and b/Time/Time/Images.xcassets/clock-stopwatch-7.imageset/clock-stopwatch-7.png differ diff --git a/Time/Time/Images.xcassets/clock-timer-7.imageset/Contents.json b/Time/Time/Images.xcassets/clock-timer-7.imageset/Contents.json new file mode 100644 index 0000000..5aa8440 --- /dev/null +++ b/Time/Time/Images.xcassets/clock-timer-7.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "clock-timer-7.png" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Time/Time/Images.xcassets/clock-timer-7.imageset/clock-timer-7.png b/Time/Time/Images.xcassets/clock-timer-7.imageset/clock-timer-7.png new file mode 100644 index 0000000..79fde48 Binary files /dev/null and b/Time/Time/Images.xcassets/clock-timer-7.imageset/clock-timer-7.png differ diff --git a/Time/Time/Images.xcassets/earth-america-7.imageset/Contents.json b/Time/Time/Images.xcassets/earth-america-7.imageset/Contents.json new file mode 100644 index 0000000..4b982b1 --- /dev/null +++ b/Time/Time/Images.xcassets/earth-america-7.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "earth-america-7.png" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Time/Time/Images.xcassets/earth-america-7.imageset/earth-america-7.png b/Time/Time/Images.xcassets/earth-america-7.imageset/earth-america-7.png new file mode 100644 index 0000000..2a1765b Binary files /dev/null and b/Time/Time/Images.xcassets/earth-america-7.imageset/earth-america-7.png differ diff --git a/Time/Time/Images.xcassets/home-hero-10-1440-900.imageset/Contents.json b/Time/Time/Images.xcassets/home-hero-10-1440-900.imageset/Contents.json new file mode 100644 index 0000000..74f4185 --- /dev/null +++ b/Time/Time/Images.xcassets/home-hero-10-1440-900.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "home-hero-10-1440-900.jpg" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Time/Time/Images.xcassets/home-hero-10-1440-900.imageset/home-hero-10-1440-900.jpg b/Time/Time/Images.xcassets/home-hero-10-1440-900.imageset/home-hero-10-1440-900.jpg new file mode 100644 index 0000000..f9d4623 Binary files /dev/null and b/Time/Time/Images.xcassets/home-hero-10-1440-900.imageset/home-hero-10-1440-900.jpg differ diff --git a/Time/Time/PresetTime.h b/Time/Time/PresetTime.h new file mode 100644 index 0000000..ad40da3 --- /dev/null +++ b/Time/Time/PresetTime.h @@ -0,0 +1,16 @@ +// +// PresetTime.h +// Time +// +// Created by Artur Lan on 8/29/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import + +@interface PresetTime : NSObject + +@property (nonatomic) NSString * nameOfTask; +@property (nonatomic) NSTimeInterval timeOfTask; + +@end diff --git a/Time/Time/PresetTime.m b/Time/Time/PresetTime.m new file mode 100644 index 0000000..a1d5dc4 --- /dev/null +++ b/Time/Time/PresetTime.m @@ -0,0 +1,13 @@ +// +// PresetTime.m +// Time +// +// Created by Artur Lan on 8/29/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import "PresetTime.h" + +@implementation PresetTime + +@end diff --git a/Time/Time/Ringtones/Apex.m4r b/Time/Time/Ringtones/Apex.m4r new file mode 100644 index 0000000..5c69051 Binary files /dev/null and b/Time/Time/Ringtones/Apex.m4r differ diff --git a/Time/Time/Ringtones/Beacon.m4r b/Time/Time/Ringtones/Beacon.m4r new file mode 100644 index 0000000..d6b317a Binary files /dev/null and b/Time/Time/Ringtones/Beacon.m4r differ diff --git a/Time/Time/Ringtones/Bulletin.m4r b/Time/Time/Ringtones/Bulletin.m4r new file mode 100644 index 0000000..82adf93 Binary files /dev/null and b/Time/Time/Ringtones/Bulletin.m4r differ diff --git a/Time/Time/Ringtones/By The Seaside.m4r b/Time/Time/Ringtones/By The Seaside.m4r new file mode 100644 index 0000000..8651c0f Binary files /dev/null and b/Time/Time/Ringtones/By The Seaside.m4r differ diff --git a/Time/Time/Ringtones/Chimes.m4r b/Time/Time/Ringtones/Chimes.m4r new file mode 100644 index 0000000..432cdad Binary files /dev/null and b/Time/Time/Ringtones/Chimes.m4r differ diff --git a/Time/Time/Ringtones/Circuit.m4r b/Time/Time/Ringtones/Circuit.m4r new file mode 100644 index 0000000..b3937e4 Binary files /dev/null and b/Time/Time/Ringtones/Circuit.m4r differ diff --git a/Time/Time/Ringtones/Constellation.m4r b/Time/Time/Ringtones/Constellation.m4r new file mode 100644 index 0000000..e81b10b Binary files /dev/null and b/Time/Time/Ringtones/Constellation.m4r differ diff --git a/Time/Time/Ringtones/Cosmic.m4r b/Time/Time/Ringtones/Cosmic.m4r new file mode 100644 index 0000000..e1c7062 Binary files /dev/null and b/Time/Time/Ringtones/Cosmic.m4r differ diff --git a/Time/Time/Ringtones/Crystals.m4r b/Time/Time/Ringtones/Crystals.m4r new file mode 100644 index 0000000..e432f46 Binary files /dev/null and b/Time/Time/Ringtones/Crystals.m4r differ diff --git a/Time/Time/Ringtones/Hillside.m4r b/Time/Time/Ringtones/Hillside.m4r new file mode 100644 index 0000000..5cc90fa Binary files /dev/null and b/Time/Time/Ringtones/Hillside.m4r differ diff --git a/Time/Time/Ringtones/Illuminate.m4r b/Time/Time/Ringtones/Illuminate.m4r new file mode 100644 index 0000000..b61b80e Binary files /dev/null and b/Time/Time/Ringtones/Illuminate.m4r differ diff --git a/Time/Time/Ringtones/Night Owl.m4r b/Time/Time/Ringtones/Night Owl.m4r new file mode 100644 index 0000000..95af0b3 Binary files /dev/null and b/Time/Time/Ringtones/Night Owl.m4r differ diff --git a/Time/Time/Ringtones/Opening.m4r b/Time/Time/Ringtones/Opening.m4r new file mode 100644 index 0000000..5430692 Binary files /dev/null and b/Time/Time/Ringtones/Opening.m4r differ diff --git a/Time/Time/Ringtones/Playtime.m4r b/Time/Time/Ringtones/Playtime.m4r new file mode 100644 index 0000000..3de566b Binary files /dev/null and b/Time/Time/Ringtones/Playtime.m4r differ diff --git a/Time/Time/Ringtones/Presto.m4r b/Time/Time/Ringtones/Presto.m4r new file mode 100644 index 0000000..d074a93 Binary files /dev/null and b/Time/Time/Ringtones/Presto.m4r differ diff --git a/Time/Time/Ringtones/Radar.m4r b/Time/Time/Ringtones/Radar.m4r new file mode 100644 index 0000000..6802f1c Binary files /dev/null and b/Time/Time/Ringtones/Radar.m4r differ diff --git a/Time/Time/Ringtones/Radiate.m4r b/Time/Time/Ringtones/Radiate.m4r new file mode 100644 index 0000000..11e7eaf Binary files /dev/null and b/Time/Time/Ringtones/Radiate.m4r differ diff --git a/Time/Time/Ringtones/Ripples.m4r b/Time/Time/Ringtones/Ripples.m4r new file mode 100644 index 0000000..8eaadc1 Binary files /dev/null and b/Time/Time/Ringtones/Ripples.m4r differ diff --git a/Time/Time/Ringtones/Sencha.m4r b/Time/Time/Ringtones/Sencha.m4r new file mode 100644 index 0000000..667fedb Binary files /dev/null and b/Time/Time/Ringtones/Sencha.m4r differ diff --git a/Time/Time/Ringtones/Signal.m4r b/Time/Time/Ringtones/Signal.m4r new file mode 100644 index 0000000..79a51d0 Binary files /dev/null and b/Time/Time/Ringtones/Signal.m4r differ diff --git a/Time/Time/Ringtones/Silk.m4r b/Time/Time/Ringtones/Silk.m4r new file mode 100644 index 0000000..a789a64 Binary files /dev/null and b/Time/Time/Ringtones/Silk.m4r differ diff --git a/Time/Time/Ringtones/Slow Rise.m4r b/Time/Time/Ringtones/Slow Rise.m4r new file mode 100644 index 0000000..3c61b47 Binary files /dev/null and b/Time/Time/Ringtones/Slow Rise.m4r differ diff --git a/Time/Time/Ringtones/Stargaze.m4r b/Time/Time/Ringtones/Stargaze.m4r new file mode 100644 index 0000000..4adc311 Binary files /dev/null and b/Time/Time/Ringtones/Stargaze.m4r differ diff --git a/Time/Time/Ringtones/Summit.m4r b/Time/Time/Ringtones/Summit.m4r new file mode 100644 index 0000000..74c815f Binary files /dev/null and b/Time/Time/Ringtones/Summit.m4r differ diff --git a/Time/Time/Ringtones/Twinkle.m4r b/Time/Time/Ringtones/Twinkle.m4r new file mode 100644 index 0000000..014270e Binary files /dev/null and b/Time/Time/Ringtones/Twinkle.m4r differ diff --git a/Time/Time/Ringtones/Uplift.m4r b/Time/Time/Ringtones/Uplift.m4r new file mode 100644 index 0000000..5fa88b1 Binary files /dev/null and b/Time/Time/Ringtones/Uplift.m4r differ diff --git a/Time/Time/Ringtones/Waves.m4r b/Time/Time/Ringtones/Waves.m4r new file mode 100644 index 0000000..d0e82b0 Binary files /dev/null and b/Time/Time/Ringtones/Waves.m4r differ diff --git a/Time/Time/StopWatchViewController.h b/Time/Time/StopWatchViewController.h new file mode 100644 index 0000000..f462196 --- /dev/null +++ b/Time/Time/StopWatchViewController.h @@ -0,0 +1,13 @@ +// +// StopWatchViewController.h +// Time +// +// Created by Jason Wang on 8/21/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import + + +@interface StopWatchViewController : UIViewController +@end diff --git a/Time/Time/StopWatchViewController.m b/Time/Time/StopWatchViewController.m new file mode 100644 index 0000000..fe7618f --- /dev/null +++ b/Time/Time/StopWatchViewController.m @@ -0,0 +1,209 @@ +// +// StopWatchViewController.m +// Time +// +// Created by Jason Wang on 8/21/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import "StopWatchViewController.h" + + +@interface StopWatchViewController () + +@property (weak, nonatomic) IBOutlet UILabel *timeLabel; +@property (weak, nonatomic) IBOutlet UILabel *lapTimeLabel; +@property (weak, nonatomic) IBOutlet UIButton *startButton; +@property (weak, nonatomic) IBOutlet UIButton *stopButton; +@property (weak, nonatomic) IBOutlet UIButton *lapButton; +@property (weak, nonatomic) IBOutlet UIButton *resetButton; +@property (weak, nonatomic) IBOutlet UITableView *tableView; + +//Time +@property (nonatomic) NSDate *startDate; + +@property (nonatomic) NSTimeInterval startTime; + +@property (nonatomic) NSTimeInterval elapsed; + +@property (nonatomic) NSTimeInterval timeAlreadyRunSecs; + + +//Lap Time +@property (nonatomic) NSDate *lapStartDate; + +@property (nonatomic) NSTimeInterval lapStartTime; + +@property (nonatomic) NSTimeInterval lapElapsed; + +@property (nonatomic) NSTimeInterval lapAlareadyRunSecs; + + + +@property (nonatomic) BOOL running; + +@property (nonatomic) NSMutableArray *lapTimeMutableArray; + +@end + + +@implementation StopWatchViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + [self resetTimeMode]; +} + +#pragma mark StateView +-(void)resetTimeMode{ + self.lapButton.enabled = NO; + [self.lapButton setTitleColor: [UIColor lightGrayColor]forState:UIControlStateNormal]; + [self.lapButton setHidden:NO]; + [self.stopButton setHidden:YES]; + [self.resetButton setHidden:YES]; + self.timeLabel.text = @"00:00.00"; + self.lapTimeLabel.text = @"00:00.00"; + self.timeAlreadyRunSecs = 0.0; + self.lapAlareadyRunSecs = 0.0; + self.running = NO; + self.lapTimeMutableArray = [[NSMutableArray alloc] init]; +} + +-(void)runningTimeMode{ + [self.startButton setHidden:YES]; + [self.stopButton setHidden:NO]; + self.lapButton.enabled = YES; + [self.lapButton setHidden:NO]; + [self.resetButton setHidden:YES]; + self.running = YES; +} + +-(void)pauseTimeMode{ + [self.startButton setHidden:NO]; + [self.stopButton setHidden:YES]; + [self.lapButton setHidden:YES]; + [self.resetButton setHidden:NO]; + self.running = NO; +} + + +#pragma mark IBActions +- (IBAction)startUIButton:(UIButton *)sender { + [self.lapButton setTitleColor: [UIColor blackColor]forState:UIControlStateNormal]; + self.startTime = [NSDate timeIntervalSinceReferenceDate]; + self.startDate = [[NSDate alloc] init]; + self.lapStartTime = [NSDate timeIntervalSinceReferenceDate]; + self.lapStartDate = [[NSDate alloc] init]; + [self runningTimeMode]; + [self updateTime]; +} + +- (IBAction)stopUIButton:(UIButton *)sender { + self.timeAlreadyRunSecs += [[NSDate date]timeIntervalSinceDate:self.startDate]; + self.lapAlareadyRunSecs += [[NSDate date]timeIntervalSinceDate:self.lapStartDate]; + [self pauseTimeMode]; +} + +- (IBAction)lapUIButton:(UIButton *)sender { + [self runningTimeMode]; + [self.lapTimeMutableArray insertObject:self.lapTimeLabel.text atIndex:0]; + self.lapTimeLabel.text = @"00:00.00"; + self.lapStartTime = [NSDate timeIntervalSinceReferenceDate]; + self.lapAlareadyRunSecs = 0.0; + self.lapStartDate = [[NSDate alloc]init]; + [self updateTime]; + [self.tableView reloadData]; +} + + + +- (IBAction)resetUIButton:(UIButton *)sender { + [self resetTimeMode]; + [self.tableView reloadData]; +} + + +#pragma mark TimeMethods + + +-(void)updateTime{ + if (self.running == NO) return; + + [self timeIncrement:self.startTime :self.timeAlreadyRunSecs]; + [self lapTimeIncrement:self.lapStartTime :self.lapAlareadyRunSecs]; + + [self performSelector:@selector(updateTime) withObject:self afterDelay:0.01]; +} + +//TIME +-(void)timeIncrement: (NSTimeInterval)initTime : (NSTimeInterval)alreadyRunSecs { + + NSTimeInterval currentTime = [NSDate timeIntervalSinceReferenceDate]; + + self.elapsed = alreadyRunSecs + currentTime - initTime; + + int mins = (int) (self.elapsed / 60.0); + self.elapsed -= mins * 60; + int secs = (int) (self.elapsed); + self.elapsed -= secs; + int fraction = self.elapsed * 100.0; + + self.timeLabel.text = [self timeString:mins :secs :fraction]; +} + + +//LAP TIME + +-(void)lapTimeIncrement: (NSTimeInterval)initTime : (NSTimeInterval)alreadyRunSecs { + + NSTimeInterval currentTime = [NSDate timeIntervalSinceReferenceDate]; + + self.lapElapsed = alreadyRunSecs + currentTime - initTime; + + int mins = (int) (self.lapElapsed / 60.0); + self.lapElapsed -= mins * 60; + int secs = (int) (self.lapElapsed); + self.lapElapsed -= secs; + int fraction = self.lapElapsed * 100.0; + + self.lapTimeLabel.text = [self timeString:mins :secs :fraction]; +} + +-(NSString *)timeString: (int)mins : (int)second : (int)fraction { + + return [NSString stringWithFormat:@"%02u:%02u.%02u", mins, second, fraction]; +} + + + +#pragma mark TableView + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.lapTimeMutableArray.count; + + +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath]; + NSString *time = self.lapTimeMutableArray[indexPath.row]; + cell.textLabel.text = time; + + cell.textLabel.text = [NSString stringWithFormat:@"Lap %ld", [self.lapTimeMutableArray count] - (long)indexPath.row]; + cell.detailTextLabel.text = time; + + return cell; + +} + +/* + #pragma mark - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. + } + */ + +@end diff --git a/Time/Time/TimerViewController.h b/Time/Time/TimerViewController.h new file mode 100644 index 0000000..f8d8da7 --- /dev/null +++ b/Time/Time/TimerViewController.h @@ -0,0 +1,18 @@ +// +// TimerViewController.h +// Time +// +// Created by Artur Lan on 8/21/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import + +@interface TimerViewController : UIViewController + +@property (nonatomic) NSMutableArray *timers; + +@property(nonatomic,retain) IBOutlet UITableView *tableView; + + +@end diff --git a/Time/Time/TimerViewController.m b/Time/Time/TimerViewController.m new file mode 100644 index 0000000..25f40f5 --- /dev/null +++ b/Time/Time/TimerViewController.m @@ -0,0 +1,186 @@ +// +// TimerViewController.m +// Time +// +// Created by Artur Lan on 8/21/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import "TimerViewController.h" +#import "DetailViewController.h" +#import "PresetTime.h" + + +@interface TimerViewController () + + +@property (weak, nonatomic) IBOutlet UIButton *startButton; +@property (weak, nonatomic) IBOutlet UIDatePicker *pickerView; +@property (nonatomic) NSTimeInterval countDownDuration; +@property (weak, nonatomic) IBOutlet UILabel *timer; +@property (nonatomic) NSTimer *countdownTimer; +@property (weak, nonatomic) IBOutlet UIButton *cancelButton; +@property (weak, nonatomic) IBOutlet UIButton *pauseButton; +@property (weak, nonatomic) IBOutlet UIButton *resumeButton; +@property (nonatomic) NSTimeInterval totalTime; +@property (nonatomic) NSDate *startTime; + +@end + +@implementation TimerViewController + + + +- (void)viewDidLoad { + [super viewDidLoad]; + + self.timers = [[NSMutableArray alloc] init]; + + + [self.startButton setHidden:NO]; + + + [self.cancelButton setHidden:YES]; + [self.resumeButton setHidden:YES]; + + + [self.timer setHidden:YES]; + // Create a new date with the current time + // Split up the date components + + NSInteger seconds = 60; + + [self.pickerView setDatePickerMode:UIDatePickerModeCountDownTimer]; + [self.pickerView setCountDownDuration:seconds]; + +} + + + +- (IBAction)pressButton:(id)sender { + [self.startButton setHidden:YES]; + [self.cancelButton setHidden:NO]; + + if(sender == self.startButton){ + [self.timer setHidden:NO]; + [self.pickerView setHidden:YES]; + + + self.countdownTimer = [NSTimer timerWithTimeInterval:60/60 target:self selector:@selector(countDown:) userInfo:nil repeats:YES]; + [[NSRunLoop currentRunLoop] addTimer:self.countdownTimer forMode:NSRunLoopCommonModes]; + self.countDownDuration = self.pickerView.countDownDuration; + [self updateTimeLabel]; + } +} + + +- (IBAction)cancelButton:(id)sender { + [self.startButton setHidden:NO]; + [self.cancelButton setHidden:YES]; + [self.pickerView setHidden:NO]; + [self.timer setHidden:YES]; + [self.countdownTimer invalidate]; + +} +- (IBAction)pauseButton:(id)sender { + [self.pauseButton setHidden:YES]; + [self.resumeButton setHidden:NO]; + + [self.countdownTimer invalidate]; + +} +- (IBAction)resumeButton:(id)sender { + [self.pauseButton setHidden:NO]; + [self.resumeButton setHidden:YES]; + + self.countdownTimer = [NSTimer timerWithTimeInterval:60/60 target:self selector:@selector(countDown:) userInfo:nil repeats:YES]; + [[NSRunLoop currentRunLoop] addTimer:self.countdownTimer forMode:NSRunLoopCommonModes]; + +} + +- (void)countDown:(NSTimer *) countdownTimer { + self.countDownDuration = self.countDownDuration - 1; + [self updateTimeLabel]; +} + +- (void)updateTimeLabel { + if (self.countDownDuration <= 0) { + [self.countdownTimer invalidate]; + } + int secondsCount = self.countDownDuration; + int minutes = secondsCount / 60; + int seconds = secondsCount - (minutes * 60); + + self.timer.text = [NSString stringWithFormat:@"%02u:%02u", minutes, seconds]; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.timers.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"preset" forIndexPath:indexPath]; + + PresetTime *time; + + time = [self.timers objectAtIndex:indexPath.row]; + + cell.textLabel.text = time.nameOfTask; + cell.detailTextLabel.text = [NSString stringWithFormat:@"%lg", time.timeOfTask]; + + + return cell; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [self.tableView reloadData]; +} + +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + + UINavigationController *navigationController = segue.destinationViewController; + DetailViewController *detailViewController = [navigationController.viewControllers objectAtIndex:0]; + detailViewController.previousViewController = self; + + +} + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + // Return the number of sections. + return 1; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + + PresetTime *time; + + time = [self.timers objectAtIndex:indexPath.row]; + + self.pickerView.countDownDuration = time.timeOfTask * 60; + self.countDownDuration = time.timeOfTask * 60; + + [self.pickerView setHidden:YES]; + [self.timer setHidden:NO]; + [self.startButton setHidden:YES]; + [self.cancelButton setHidden:NO]; + self.countdownTimer = [NSTimer timerWithTimeInterval:60/60 target:self selector:@selector(countDown:) userInfo:nil repeats:YES]; + [[NSRunLoop currentRunLoop] addTimer:self.countdownTimer forMode:NSRunLoopCommonModes]; + + + [self updateTimeLabel]; + + +} + +/* + #pragma mark - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. + } + */ + +@end diff --git a/Time/Time/ViewController.h b/Time/Time/ViewController.h deleted file mode 100644 index 9d0e38f..0000000 --- a/Time/Time/ViewController.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// ViewController.h -// Time -// -// Created by Michael Kavouras on 8/20/15. -// Copyright (c) 2015 Mike Kavouras. All rights reserved. -// - -#import - -@interface ViewController : UIViewController - - -@end - diff --git a/Time/Time/ViewController.m b/Time/Time/ViewController.m deleted file mode 100644 index 194fe5f..0000000 --- a/Time/Time/ViewController.m +++ /dev/null @@ -1,27 +0,0 @@ -// -// ViewController.m -// Time -// -// Created by Michael Kavouras on 8/20/15. -// Copyright (c) 2015 Mike Kavouras. All rights reserved. -// - -#import "ViewController.h" - -@interface ViewController () - -@end - -@implementation ViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - // Do any additional setup after loading the view, typically from a nib. -} - -- (void)didReceiveMemoryWarning { - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. -} - -@end diff --git a/Time/Time/clock-alarm-7.png b/Time/Time/clock-alarm-7.png new file mode 100755 index 0000000..86ba1f7 Binary files /dev/null and b/Time/Time/clock-alarm-7.png differ diff --git a/Time/Time/clock-stopwatch-7.png b/Time/Time/clock-stopwatch-7.png new file mode 100755 index 0000000..409e119 Binary files /dev/null and b/Time/Time/clock-stopwatch-7.png differ diff --git a/Time/Time/clock-timer-7.png b/Time/Time/clock-timer-7.png new file mode 100755 index 0000000..79fde48 Binary files /dev/null and b/Time/Time/clock-timer-7.png differ diff --git a/Time/Time/earth-america-7.png b/Time/Time/earth-america-7.png new file mode 100755 index 0000000..2a1765b Binary files /dev/null and b/Time/Time/earth-america-7.png differ diff --git a/Time/Time/gradient_series___orange.png b/Time/Time/gradient_series___orange.png new file mode 100644 index 0000000..845d830 Binary files /dev/null and b/Time/Time/gradient_series___orange.png differ diff --git a/Time/Time/home-hero-10-1440-900.jpg b/Time/Time/home-hero-10-1440-900.jpg new file mode 100644 index 0000000..f9d4623 Binary files /dev/null and b/Time/Time/home-hero-10-1440-900.jpg differ diff --git a/Time/Time/images-3.jpeg b/Time/Time/images-3.jpeg new file mode 100644 index 0000000..d2b6eb4 Binary files /dev/null and b/Time/Time/images-3.jpeg differ diff --git a/Time/Time/images-5.jpeg b/Time/Time/images-5.jpeg new file mode 100644 index 0000000..89ddc88 Binary files /dev/null and b/Time/Time/images-5.jpeg differ diff --git a/Time/Time/radial-gradient.png b/Time/Time/radial-gradient.png new file mode 100644 index 0000000..9b1f756 Binary files /dev/null and b/Time/Time/radial-gradient.png differ