diff --git a/Time/Time.xcodeproj/project.pbxproj b/Time/Time.xcodeproj/project.pbxproj index c8743f0..f265105 100644 --- a/Time/Time.xcodeproj/project.pbxproj +++ b/Time/Time.xcodeproj/project.pbxproj @@ -7,10 +7,32 @@ objects = { /* Begin PBXBuildFile section */ + 0765D20E1B925E7C003961EE /* Preset.m in Sources */ = {isa = PBXBuildFile; fileRef = 0765D20D1B925E7C003961EE /* Preset.m */; }; + 0765D2101B9265B2003961EE /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0765D20F1B9265B2003961EE /* Main.storyboard */; }; + 842BB5ED1B98EE3100D42FF1 /* 991.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 842BB5E91B98EE3100D42FF1 /* 991.jpg */; }; + 842BB5EE1B98EE3100D42FF1 /* 992.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 842BB5EA1B98EE3100D42FF1 /* 992.jpg */; }; + 842BB5EF1B98EE3100D42FF1 /* 993.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 842BB5EB1B98EE3100D42FF1 /* 993.jpg */; }; + 842BB5F01B98EE3100D42FF1 /* 994.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 842BB5EC1B98EE3100D42FF1 /* 994.jpg */; }; + 8478CE8E1B8E1D6E0045BDD7 /* WorldClockTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8478CE8D1B8E1D6E0045BDD7 /* WorldClockTableViewController.m */; }; + 8478CE951B8F51E00045BDD7 /* WorldClockAddTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8478CE941B8F51E00045BDD7 /* WorldClockAddTableViewController.m */; }; + 8478CEF31B8FEB7C0045BDD7 /* WorldClockInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 8478CEF21B8FEB7C0045BDD7 /* WorldClockInfo.m */; }; + 8478CEF61B9000FD0045BDD7 /* CountdownEventViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8478CEF51B9000FD0045BDD7 /* CountdownEventViewController.m */; }; + 847EEB7D1B93685C00C096E2 /* STKSpinnerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 847EEB7C1B93685C00C096E2 /* STKSpinnerView.m */; }; + 847EEB7F1B93803B00C096E2 /* clock-ticking.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 847EEB7E1B93803B00C096E2 /* clock-ticking.mp3 */; }; + 847EEB811B93942B00C096E2 /* TimerIsOff.wav in Resources */ = {isa = PBXBuildFile; fileRef = 847EEB801B93942B00C096E2 /* TimerIsOff.wav */; }; + 847EEB831B949DCF00C096E2 /* Clock-Ticking(1minute).mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 847EEB821B949DCF00C096E2 /* Clock-Ticking(1minute).mp3 */; }; + 8496CC3C1B86C30900FB2AAA /* StopWatchViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8496CC3B1B86C30900FB2AAA /* StopWatchViewController.m */; }; + 8496CC961B8A56F600FB2AAA /* digital-7 (italic).ttf in Resources */ = {isa = PBXBuildFile; fileRef = 8496CC931B8A56F600FB2AAA /* digital-7 (italic).ttf */; }; + 8496CC971B8A56F600FB2AAA /* digital-7 (mono).ttf in Resources */ = {isa = PBXBuildFile; fileRef = 8496CC941B8A56F600FB2AAA /* digital-7 (mono).ttf */; }; + 8496CC981B8A56F600FB2AAA /* digital-7.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 8496CC951B8A56F600FB2AAA /* digital-7.ttf */; }; + 8496CC9A1B8A5FC200FB2AAA /* digitalFont.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 8496CC991B8A5FC200FB2AAA /* digitalFont.ttf */; }; + 8496CC9C1B8A660000FB2AAA /* clock-ticking-5.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 8496CC9B1B8A660000FB2AAA /* clock-ticking-5.mp3 */; }; + 8496CC9F1B8A768700FB2AAA /* TimerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8496CC9E1B8A768700FB2AAA /* TimerViewController.m */; }; + 8496CCA11B8ABA1F00FB2AAA /* ding.wav in Resources */ = {isa = PBXBuildFile; fileRef = 8496CCA01B8ABA1F00FB2AAA /* ding.wav */; }; + 8499D3D41B94F00300A434C9 /* PressetData.m in Sources */ = {isa = PBXBuildFile; fileRef = 8499D3D31B94F00300A434C9 /* PressetData.m */; }; + 8499D3DA1B9549F100A434C9 /* PresetViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8499D3D91B9549F100A434C9 /* PresetViewController.m */; }; 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 */; }; @@ -27,14 +49,45 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 0765D20C1B925E7C003961EE /* Preset.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Preset.h; sourceTree = ""; }; + 0765D20D1B925E7C003961EE /* Preset.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Preset.m; sourceTree = ""; }; + 0765D20F1B9265B2003961EE /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = ""; }; + 842BB5E91B98EE3100D42FF1 /* 991.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = 991.jpg; sourceTree = ""; }; + 842BB5EA1B98EE3100D42FF1 /* 992.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = 992.jpg; sourceTree = ""; }; + 842BB5EB1B98EE3100D42FF1 /* 993.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = 993.jpg; sourceTree = ""; }; + 842BB5EC1B98EE3100D42FF1 /* 994.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = 994.jpg; sourceTree = ""; }; + 8478CE8C1B8E1D6E0045BDD7 /* WorldClockTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WorldClockTableViewController.h; sourceTree = ""; }; + 8478CE8D1B8E1D6E0045BDD7 /* WorldClockTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WorldClockTableViewController.m; sourceTree = ""; }; + 8478CE931B8F51E00045BDD7 /* WorldClockAddTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WorldClockAddTableViewController.h; sourceTree = ""; }; + 8478CE941B8F51E00045BDD7 /* WorldClockAddTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WorldClockAddTableViewController.m; sourceTree = ""; }; + 8478CEF11B8FEB7C0045BDD7 /* WorldClockInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WorldClockInfo.h; sourceTree = ""; }; + 8478CEF21B8FEB7C0045BDD7 /* WorldClockInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WorldClockInfo.m; sourceTree = ""; }; + 8478CEF41B9000FD0045BDD7 /* CountdownEventViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CountdownEventViewController.h; sourceTree = ""; }; + 8478CEF51B9000FD0045BDD7 /* CountdownEventViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CountdownEventViewController.m; sourceTree = ""; }; + 847EEB7B1B93685C00C096E2 /* STKSpinnerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STKSpinnerView.h; sourceTree = ""; }; + 847EEB7C1B93685C00C096E2 /* STKSpinnerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STKSpinnerView.m; sourceTree = ""; }; + 847EEB7E1B93803B00C096E2 /* clock-ticking.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = "clock-ticking.mp3"; sourceTree = ""; }; + 847EEB801B93942B00C096E2 /* TimerIsOff.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = TimerIsOff.wav; sourceTree = ""; }; + 847EEB821B949DCF00C096E2 /* Clock-Ticking(1minute).mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = "Clock-Ticking(1minute).mp3"; sourceTree = ""; }; + 8496CC3A1B86C30900FB2AAA /* StopWatchViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StopWatchViewController.h; sourceTree = ""; }; + 8496CC3B1B86C30900FB2AAA /* StopWatchViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StopWatchViewController.m; sourceTree = ""; tabWidth = 4; }; + 8496CC931B8A56F600FB2AAA /* digital-7 (italic).ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "digital-7 (italic).ttf"; sourceTree = ""; }; + 8496CC941B8A56F600FB2AAA /* digital-7 (mono).ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "digital-7 (mono).ttf"; sourceTree = ""; }; + 8496CC951B8A56F600FB2AAA /* digital-7.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "digital-7.ttf"; sourceTree = ""; }; + 8496CC991B8A5FC200FB2AAA /* digitalFont.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = digitalFont.ttf; path = ../digitalFont.ttf; sourceTree = ""; }; + 8496CC9B1B8A660000FB2AAA /* clock-ticking-5.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = "clock-ticking-5.mp3"; sourceTree = ""; }; + 8496CC9D1B8A768700FB2AAA /* TimerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TimerViewController.h; sourceTree = ""; }; + 8496CC9E1B8A768700FB2AAA /* TimerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TimerViewController.m; sourceTree = ""; }; + 8496CCA01B8ABA1F00FB2AAA /* ding.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = ding.wav; sourceTree = ""; }; + 8499D3D21B94F00300A434C9 /* PressetData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PressetData.h; sourceTree = ""; }; + 8499D3D31B94F00300A434C9 /* PressetData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PressetData.m; sourceTree = ""; }; + 8499D3D81B9549F100A434C9 /* PresetViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PresetViewController.h; sourceTree = ""; }; + 8499D3D91B9549F100A434C9 /* PresetViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PresetViewController.m; 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; }; @@ -60,12 +113,69 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 845884781BB252B50073CA5D /* CountdownEvent */ = { + isa = PBXGroup; + children = ( + 8478CEF41B9000FD0045BDD7 /* CountdownEventViewController.h */, + 8478CEF51B9000FD0045BDD7 /* CountdownEventViewController.m */, + ); + name = CountdownEvent; + sourceTree = ""; + }; + 845884791BB252CA0073CA5D /* WorldClock */ = { + isa = PBXGroup; + children = ( + 8478CE8C1B8E1D6E0045BDD7 /* WorldClockTableViewController.h */, + 8478CE8D1B8E1D6E0045BDD7 /* WorldClockTableViewController.m */, + 8478CE931B8F51E00045BDD7 /* WorldClockAddTableViewController.h */, + 8478CE941B8F51E00045BDD7 /* WorldClockAddTableViewController.m */, + 8478CEF11B8FEB7C0045BDD7 /* WorldClockInfo.h */, + 8478CEF21B8FEB7C0045BDD7 /* WorldClockInfo.m */, + ); + name = WorldClock; + sourceTree = ""; + }; + 8458847A1BB252DD0073CA5D /* Timer */ = { + isa = PBXGroup; + children = ( + 8496CC9D1B8A768700FB2AAA /* TimerViewController.h */, + 8496CC9E1B8A768700FB2AAA /* TimerViewController.m */, + 0765D20C1B925E7C003961EE /* Preset.h */, + 0765D20D1B925E7C003961EE /* Preset.m */, + 8499D3D21B94F00300A434C9 /* PressetData.h */, + 8499D3D31B94F00300A434C9 /* PressetData.m */, + 8499D3D81B9549F100A434C9 /* PresetViewController.h */, + 8499D3D91B9549F100A434C9 /* PresetViewController.m */, + ); + name = Timer; + sourceTree = ""; + }; + 8458847B1BB253010073CA5D /* Stopwatch */ = { + isa = PBXGroup; + children = ( + 8496CC3A1B86C30900FB2AAA /* StopWatchViewController.h */, + 8496CC3B1B86C30900FB2AAA /* StopWatchViewController.m */, + ); + name = Stopwatch; + sourceTree = ""; + }; + 8496CC811B8A565E00FB2AAA /* ds_digital */ = { + isa = PBXGroup; + children = ( + 8496CC931B8A56F600FB2AAA /* digital-7 (italic).ttf */, + 8496CC941B8A56F600FB2AAA /* digital-7 (mono).ttf */, + 8496CC951B8A56F600FB2AAA /* digital-7.ttf */, + ); + path = ds_digital; + sourceTree = ""; + }; 8D05374F1B86687B00588318 = { isa = PBXGroup; children = ( 8D05375A1B86687B00588318 /* Time */, 8D0537741B86687C00588318 /* TimeTests */, 8D0537591B86687B00588318 /* Products */, + 8496CC811B8A565E00FB2AAA /* ds_digital */, ); sourceTree = ""; }; @@ -81,13 +191,21 @@ 8D05375A1B86687B00588318 /* Time */ = { isa = PBXGroup; children = ( + 8496CC991B8A5FC200FB2AAA /* digitalFont.ttf */, 8D05375F1B86687C00588318 /* AppDelegate.h */, 8D0537601B86687C00588318 /* AppDelegate.m */, - 8D0537621B86687C00588318 /* ViewController.h */, - 8D0537631B86687C00588318 /* ViewController.m */, - 8D0537651B86687C00588318 /* Main.storyboard */, + 0765D20F1B9265B2003961EE /* Main.storyboard */, + 845884781BB252B50073CA5D /* CountdownEvent */, + 845884791BB252CA0073CA5D /* WorldClock */, + 8458847A1BB252DD0073CA5D /* Timer */, + 8458847B1BB253010073CA5D /* Stopwatch */, 8D0537681B86687C00588318 /* Images.xcassets */, 8D05376A1B86687C00588318 /* LaunchScreen.xib */, + 847EEB801B93942B00C096E2 /* TimerIsOff.wav */, + 8496CC9B1B8A660000FB2AAA /* clock-ticking-5.mp3 */, + 847EEB821B949DCF00C096E2 /* Clock-Ticking(1minute).mp3 */, + 847EEB7E1B93803B00C096E2 /* clock-ticking.mp3 */, + 8496CCA01B8ABA1F00FB2AAA /* ding.wav */, 8D05375B1B86687B00588318 /* Supporting Files */, ); path = Time; @@ -96,6 +214,12 @@ 8D05375B1B86687B00588318 /* Supporting Files */ = { isa = PBXGroup; children = ( + 842BB5E91B98EE3100D42FF1 /* 991.jpg */, + 842BB5EA1B98EE3100D42FF1 /* 992.jpg */, + 842BB5EB1B98EE3100D42FF1 /* 993.jpg */, + 842BB5EC1B98EE3100D42FF1 /* 994.jpg */, + 847EEB7B1B93685C00C096E2 /* STKSpinnerView.h */, + 847EEB7C1B93685C00C096E2 /* STKSpinnerView.m */, 8D05375C1B86687B00588318 /* Info.plist */, 8D05375D1B86687C00588318 /* main.m */, ); @@ -199,9 +323,22 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8D0537671B86687C00588318 /* Main.storyboard in Resources */, + 8496CC981B8A56F600FB2AAA /* digital-7.ttf in Resources */, + 8496CC9A1B8A5FC200FB2AAA /* digitalFont.ttf in Resources */, 8D05376C1B86687C00588318 /* LaunchScreen.xib in Resources */, + 842BB5EF1B98EE3100D42FF1 /* 993.jpg in Resources */, 8D0537691B86687C00588318 /* Images.xcassets in Resources */, + 8496CC9C1B8A660000FB2AAA /* clock-ticking-5.mp3 in Resources */, + 847EEB811B93942B00C096E2 /* TimerIsOff.wav in Resources */, + 847EEB831B949DCF00C096E2 /* Clock-Ticking(1minute).mp3 in Resources */, + 8496CCA11B8ABA1F00FB2AAA /* ding.wav in Resources */, + 842BB5ED1B98EE3100D42FF1 /* 991.jpg in Resources */, + 0765D2101B9265B2003961EE /* Main.storyboard in Resources */, + 8496CC961B8A56F600FB2AAA /* digital-7 (italic).ttf in Resources */, + 842BB5F01B98EE3100D42FF1 /* 994.jpg in Resources */, + 8496CC971B8A56F600FB2AAA /* digital-7 (mono).ttf in Resources */, + 842BB5EE1B98EE3100D42FF1 /* 992.jpg in Resources */, + 847EEB7F1B93803B00C096E2 /* clock-ticking.mp3 in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -219,9 +356,18 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8D0537641B86687C00588318 /* ViewController.m in Sources */, + 847EEB7D1B93685C00C096E2 /* STKSpinnerView.m in Sources */, + 0765D20E1B925E7C003961EE /* Preset.m in Sources */, + 8478CE8E1B8E1D6E0045BDD7 /* WorldClockTableViewController.m in Sources */, + 8496CC9F1B8A768700FB2AAA /* TimerViewController.m in Sources */, + 8496CC3C1B86C30900FB2AAA /* StopWatchViewController.m in Sources */, + 8478CEF61B9000FD0045BDD7 /* CountdownEventViewController.m in Sources */, 8D0537611B86687C00588318 /* AppDelegate.m in Sources */, + 8478CEF31B8FEB7C0045BDD7 /* WorldClockInfo.m in Sources */, + 8499D3D41B94F00300A434C9 /* PressetData.m in Sources */, 8D05375E1B86687C00588318 /* main.m in Sources */, + 8478CE951B8F51E00045BDD7 /* WorldClockAddTableViewController.m in Sources */, + 8499D3DA1B9549F100A434C9 /* PresetViewController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -244,14 +390,6 @@ /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - 8D0537651B86687C00588318 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 8D0537661B86687C00588318 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; 8D05376A1B86687C00588318 /* LaunchScreen.xib */ = { isa = PBXVariantGroup; children = ( @@ -350,6 +488,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Time/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; }; @@ -360,6 +499,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Time/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; }; @@ -418,6 +558,7 @@ 8D05377D1B86687C00588318 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; 8D05377E1B86687C00588318 /* Build configuration list for PBXNativeTarget "TimeTests" */ = { isa = XCConfigurationList; @@ -426,6 +567,7 @@ 8D0537801B86687C00588318 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; diff --git a/Time/Time/991.jpg b/Time/Time/991.jpg new file mode 100644 index 0000000..dea0aef Binary files /dev/null and b/Time/Time/991.jpg differ diff --git a/Time/Time/992.jpg b/Time/Time/992.jpg new file mode 100644 index 0000000..8ef58af Binary files /dev/null and b/Time/Time/992.jpg differ diff --git a/Time/Time/993.jpg b/Time/Time/993.jpg new file mode 100644 index 0000000..4bbd07e Binary files /dev/null and b/Time/Time/993.jpg differ diff --git a/Time/Time/994.jpg b/Time/Time/994.jpg new file mode 100644 index 0000000..6256f9c Binary files /dev/null and b/Time/Time/994.jpg differ diff --git a/Time/Time/AppDelegate.h b/Time/Time/AppDelegate.h index c5a324b..2b548b5 100644 --- a/Time/Time/AppDelegate.h +++ b/Time/Time/AppDelegate.h @@ -7,11 +7,12 @@ // #import - +@class CountdownEventViewController; @interface AppDelegate : UIResponder -@property (strong, nonatomic) UIWindow *window; - +//@property (strong, nonatomic) UIWindow *window; +@property (nonatomic, retain) IBOutlet UIWindow *window; +@property (nonatomic, retain) IBOutlet CountdownEventViewController *viewController; @end diff --git a/Time/Time/AppDelegate.m b/Time/Time/AppDelegate.m index d59e7a8..8e0fcbb 100644 --- a/Time/Time/AppDelegate.m +++ b/Time/Time/AppDelegate.m @@ -7,16 +7,21 @@ // #import "AppDelegate.h" +#import "CountdownEventViewController.h" @interface AppDelegate () @end @implementation AppDelegate - +@synthesize window; +@synthesize viewController; - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. + [self.window addSubview:viewController.view]; + [self.window makeKeyAndVisible]; + return YES; } diff --git a/Time/Time/Base.lproj/Main.storyboard b/Time/Time/Base.lproj/Main.storyboard deleted file mode 100644 index f56d2f3..0000000 --- a/Time/Time/Base.lproj/Main.storyboard +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Time/Time/Clock-Ticking(1minute).mp3 b/Time/Time/Clock-Ticking(1minute).mp3 new file mode 100644 index 0000000..301820a Binary files /dev/null and b/Time/Time/Clock-Ticking(1minute).mp3 differ diff --git a/Time/Time/CountdownEventViewController.h b/Time/Time/CountdownEventViewController.h new file mode 100644 index 0000000..ae1859e --- /dev/null +++ b/Time/Time/CountdownEventViewController.h @@ -0,0 +1,14 @@ +// +// CountdownEventViewController.h +// Time +// +// Created by Diana Elezaj on 8/27/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import + +@interface CountdownEventViewController : UIViewController + +@property(nonatomic,retain)IBOutlet UIImageView *sandGlass; +@end \ No newline at end of file diff --git a/Time/Time/CountdownEventViewController.m b/Time/Time/CountdownEventViewController.m new file mode 100644 index 0000000..b3da82d --- /dev/null +++ b/Time/Time/CountdownEventViewController.m @@ -0,0 +1,165 @@ +// +// CountdownEventViewController.m +// Time +// +// Created by Diana Elezaj on 8/27/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import "CountdownEventViewController.h" + +@interface CountdownEventViewController () +@property (nonatomic) NSTimer *countdownTimer; +@property (weak, nonatomic) IBOutlet UIDatePicker *eventPicker; +@property (weak, nonatomic) IBOutlet UILabel *countdownTimerLabel; +@property (weak, nonatomic) IBOutlet UILabel *eventLabel; +@property (weak, nonatomic) IBOutlet UITextField *eventTextField; +- (IBAction)startButton:(id)sender; +- (IBAction)stopButton:(id)sender; +@property (strong, nonatomic) IBOutlet UILabel *DaysHMS; +@property (strong, nonatomic) IBOutlet UIImageView *eventImage; + +@end + +@implementation CountdownEventViewController +- (void)viewDidLoad { + [super viewDidLoad]; + + + NSArray *imgArray = [NSArray arrayWithObjects: + [UIImage imageNamed:@"991"], + [UIImage imageNamed:@"992"], + [UIImage imageNamed:@"993"], + [UIImage imageNamed:@"994"],nil]; + + self.sandGlass.frame = CGRectMake(0, 0, 200, 200); + self.sandGlass.animationImages = imgArray; + self.sandGlass.animationDuration = 2; + self.sandGlass.animationRepeatCount = 0; + + [self.sandGlass startAnimating]; + + [self.view insertSubview:self.sandGlass atIndex:0]; + + + self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"waterRotated"]]; + + self.eventLabel.hidden = YES; + self.countdownTimerLabel.hidden = YES; + self.DaysHMS.hidden = YES; + self.countdownTimerLabel.text = @""; + self.eventLabel.text = @""; + self.eventImage.hidden = YES; + + NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; + NSDate *currentDate = [NSDate date]; + + NSDateComponents *dateLimit = [[NSDateComponents alloc] init]; + + [dateLimit setDay:0]; + [dateLimit setHour:0]; + [dateLimit setMinute:0]; + NSDate *minimumDate = [calendar dateByAddingComponents:dateLimit toDate:currentDate options:0]; + + [self.eventPicker setMinimumDate:minimumDate]; + +} + +- (IBAction)startButton:(id)sender { + + //this will create animation for eventLabel + CATransition *animation = [CATransition animation]; + animation.duration = 1.0; + animation.type = kCATransitionFromTop; + animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + [self.eventLabel.layer addAnimation:animation forKey:@"changeTextTransition"]; + + /***** interface ***/ + self.countdownTimerLabel.hidden = NO; + self.eventTextField.hidden = YES; + + self.countdownTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 + target:self + selector:@selector(updateTime) + userInfo:nil + repeats:YES]; + if ([self.countdownTimerLabel.text isEqualToString:@"This date has already passed"]) { + } + else { + + self.eventImage.hidden = NO; + self.eventLabel.hidden = NO; + } + + + NSString *stringEvent = [self.eventTextField text]; + if (([stringEvent rangeOfString:@"Wedding"].location != NSNotFound) || ([stringEvent rangeOfString:@"wedding"].location != NSNotFound)) { + self.eventImage.image = [UIImage imageNamed:@"wedding"]; + NSLog(@"There is a weddin comming up"); + } else if (([stringEvent rangeOfString:@"Graduation"].location != NSNotFound) || ([stringEvent rangeOfString:@"graduation"].location != NSNotFound)) { + self.eventImage.image = [UIImage imageNamed:@"graduation"]; + } + + else if (([stringEvent rangeOfString:@"Halloween"].location != NSNotFound) || ([stringEvent rangeOfString:@"halloween"].location != NSNotFound)) { + self.eventImage.image = [UIImage imageNamed:@"halloween"]; + } + + else + { + NSLog(@"no weddings!"); + } + + if ([[self.eventTextField text] isEqual: @""]) + self.eventLabel.text = [NSString stringWithFormat: @"Time remaining until your event"]; + else + self.eventLabel.text = [NSString stringWithFormat: @"Time remaining until \"%@\"", [self.eventTextField text]]; + + + + //get current time on your computer/phone + NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar]; + + NSUInteger preservedComponents = (NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay); + self.eventPicker.date = [calendar dateFromComponents:[calendar components:preservedComponents fromDate:self.eventPicker.date]]; + +} + +- (IBAction)stopButton:(id)sender { + [self.countdownTimer invalidate]; //invalidate timer + self.eventTextField.hidden = NO; + self.eventImage.hidden = YES; +} + +-(void)updateTime +{ + NSInteger timeLeft, days, hours, minutes, seconds ; + + timeLeft = ((NSInteger)[self.eventPicker.date timeIntervalSinceNow]); + + days = (timeLeft / 86400) ; + timeLeft-= days * 86400; + NSLog (@"days %02li ",days); + + + hours = (timeLeft / 3600) ; + timeLeft -= hours * 3600; + NSLog (@"hours %02li ",hours); + + minutes = (timeLeft / 60) ; + timeLeft -= minutes * 60; + NSLog (@"minutes %02li ",minutes); + + seconds = timeLeft; + NSLog (@"seconds %02li ",seconds); + + + self.DaysHMS.hidden = NO; + self.countdownTimerLabel.textColor = [UIColor blackColor]; + self.countdownTimerLabel.text = [NSString stringWithFormat:@"%02li %02li %02li %02li", (long)days, (long)hours, (long)minutes, (long)seconds]; + } + +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; +} + +@end diff --git a/Time/Time/DIGITAL.TXT b/Time/Time/DIGITAL.TXT new file mode 100755 index 0000000..484dd47 --- /dev/null +++ b/Time/Time/DIGITAL.TXT @@ -0,0 +1,40 @@ +DS-Font's TrueType Fonts +Font name: DS-Digital (Normal, Bold, Italic, Bold Italic), Version 1.0 +Author: Dusit Supasawat +Web Site: http://ds-font.hypermart.net +Contact me: Dusit Supasawat, 325/38 Suksawat32 Ratburana Bangkok Thailand 10140 +Email address: dusit@mailcity.com + +Thanks for trying! We hope you really enjoy this my typeface. This font is +distributed as shareware. You can use this font for a long time as you want. +After all, when you think this font can be usefulness for you. You can send +me some money, that would be way cool. + +I'm only asking $20 US shareware fee per this typeface for personal use. +And $45 US is the usual amount per this typeface for commercial use. + +Distribution: You are free to distribute this archive so long as this text +file is distributed with the archive, the font file have not been modified, +and it is understood that the font's copyright remains with the original +author (Dusit Supasawat). + +To register send your payment to: + +Dusit Supasawat +325/38 Suksawat32 Ratburana +Bangkok Thailand 10140 + +And fill out something as this order form, and send it in with your payment. + +Font name:_________________________________________ +Your information +Name:______________________________________________ +Address:___________________________________________ +City, State : _____________________________________ +Zip Code:__________________________________________ +Country:___________________________________________ +E-MAIL address:____________________________________ + + +You will receive fonts which you order by Email after registration. These fonts +will be generated for you by specify your name in font information. \ No newline at end of file diff --git a/Time/Time/DS-DIGI.TTF b/Time/Time/DS-DIGI.TTF new file mode 100755 index 0000000..0925877 Binary files /dev/null and b/Time/Time/DS-DIGI.TTF differ diff --git a/Time/Time/DS-DIGIB.TTF b/Time/Time/DS-DIGIB.TTF new file mode 100755 index 0000000..064ad47 Binary files /dev/null and b/Time/Time/DS-DIGIB.TTF differ diff --git a/Time/Time/DS-DIGII.TTF b/Time/Time/DS-DIGII.TTF new file mode 100755 index 0000000..2aae3d8 Binary files /dev/null and b/Time/Time/DS-DIGII.TTF differ diff --git a/Time/Time/DS-DIGIT.TTF b/Time/Time/DS-DIGIT.TTF new file mode 100755 index 0000000..65642f9 Binary files /dev/null and b/Time/Time/DS-DIGIT.TTF differ diff --git a/Time/Time/Images.xcassets/007.imageset/007.png b/Time/Time/Images.xcassets/007.imageset/007.png new file mode 100644 index 0000000..8483325 Binary files /dev/null and b/Time/Time/Images.xcassets/007.imageset/007.png differ diff --git a/Time/Time/Images.xcassets/007.imageset/Contents.json b/Time/Time/Images.xcassets/007.imageset/Contents.json new file mode 100644 index 0000000..0d5da27 --- /dev/null +++ b/Time/Time/Images.xcassets/007.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "007.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/008.imageset/008.png b/Time/Time/Images.xcassets/008.imageset/008.png new file mode 100644 index 0000000..aa22174 Binary files /dev/null and b/Time/Time/Images.xcassets/008.imageset/008.png differ diff --git a/Time/Time/Images.xcassets/008.imageset/Contents.json b/Time/Time/Images.xcassets/008.imageset/Contents.json new file mode 100644 index 0000000..63fae6b --- /dev/null +++ b/Time/Time/Images.xcassets/008.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "008.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/08.imageset/08.png b/Time/Time/Images.xcassets/08.imageset/08.png new file mode 100644 index 0000000..25389bb Binary files /dev/null and b/Time/Time/Images.xcassets/08.imageset/08.png differ diff --git a/Time/Time/Images.xcassets/08.imageset/Contents.json b/Time/Time/Images.xcassets/08.imageset/Contents.json new file mode 100644 index 0000000..fc1bf64 --- /dev/null +++ b/Time/Time/Images.xcassets/08.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "08.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/09.imageset/09.png b/Time/Time/Images.xcassets/09.imageset/09.png new file mode 100644 index 0000000..49155d6 Binary files /dev/null and b/Time/Time/Images.xcassets/09.imageset/09.png differ diff --git a/Time/Time/Images.xcassets/09.imageset/Contents.json b/Time/Time/Images.xcassets/09.imageset/Contents.json new file mode 100644 index 0000000..e5076c6 --- /dev/null +++ b/Time/Time/Images.xcassets/09.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "09.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/111.imageset/111.jpg b/Time/Time/Images.xcassets/111.imageset/111.jpg new file mode 100644 index 0000000..bc40c04 Binary files /dev/null and b/Time/Time/Images.xcassets/111.imageset/111.jpg differ diff --git a/Time/Time/Images.xcassets/111.imageset/Contents.json b/Time/Time/Images.xcassets/111.imageset/Contents.json new file mode 100644 index 0000000..374f7b8 --- /dev/null +++ b/Time/Time/Images.xcassets/111.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "111.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/112.imageset/112.jpg b/Time/Time/Images.xcassets/112.imageset/112.jpg new file mode 100644 index 0000000..70b211d Binary files /dev/null and b/Time/Time/Images.xcassets/112.imageset/112.jpg differ diff --git a/Time/Time/Images.xcassets/112.imageset/Contents.json b/Time/Time/Images.xcassets/112.imageset/Contents.json new file mode 100644 index 0000000..d3cc35b --- /dev/null +++ b/Time/Time/Images.xcassets/112.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "112.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/113.imageset/113.jpg b/Time/Time/Images.xcassets/113.imageset/113.jpg new file mode 100644 index 0000000..727eb86 Binary files /dev/null and b/Time/Time/Images.xcassets/113.imageset/113.jpg differ diff --git a/Time/Time/Images.xcassets/113.imageset/Contents.json b/Time/Time/Images.xcassets/113.imageset/Contents.json new file mode 100644 index 0000000..f33600b --- /dev/null +++ b/Time/Time/Images.xcassets/113.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "113.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/114.imageset/114.jpg b/Time/Time/Images.xcassets/114.imageset/114.jpg new file mode 100644 index 0000000..15cefa0 Binary files /dev/null and b/Time/Time/Images.xcassets/114.imageset/114.jpg differ diff --git a/Time/Time/Images.xcassets/114.imageset/Contents.json b/Time/Time/Images.xcassets/114.imageset/Contents.json new file mode 100644 index 0000000..321adf5 --- /dev/null +++ b/Time/Time/Images.xcassets/114.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "114.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/115.imageset/115.jpg b/Time/Time/Images.xcassets/115.imageset/115.jpg new file mode 100644 index 0000000..d9e1891 Binary files /dev/null and b/Time/Time/Images.xcassets/115.imageset/115.jpg differ diff --git a/Time/Time/Images.xcassets/115.imageset/Contents.json b/Time/Time/Images.xcassets/115.imageset/Contents.json new file mode 100644 index 0000000..8149f01 --- /dev/null +++ b/Time/Time/Images.xcassets/115.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "115.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/116.imageset/116.jpg b/Time/Time/Images.xcassets/116.imageset/116.jpg new file mode 100644 index 0000000..96bd05b Binary files /dev/null and b/Time/Time/Images.xcassets/116.imageset/116.jpg differ diff --git a/Time/Time/Images.xcassets/116.imageset/Contents.json b/Time/Time/Images.xcassets/116.imageset/Contents.json new file mode 100644 index 0000000..ccd6c3d --- /dev/null +++ b/Time/Time/Images.xcassets/116.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "116.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/117.imageset/117.jpg b/Time/Time/Images.xcassets/117.imageset/117.jpg new file mode 100644 index 0000000..406fdc2 Binary files /dev/null and b/Time/Time/Images.xcassets/117.imageset/117.jpg differ diff --git a/Time/Time/Images.xcassets/117.imageset/Contents.json b/Time/Time/Images.xcassets/117.imageset/Contents.json new file mode 100644 index 0000000..3d84acc --- /dev/null +++ b/Time/Time/Images.xcassets/117.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "117.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/1reset.imageset/1reset.png b/Time/Time/Images.xcassets/1reset.imageset/1reset.png new file mode 100644 index 0000000..3ea3486 Binary files /dev/null and b/Time/Time/Images.xcassets/1reset.imageset/1reset.png differ diff --git a/Time/Time/Images.xcassets/1reset.imageset/Contents.json b/Time/Time/Images.xcassets/1reset.imageset/Contents.json new file mode 100644 index 0000000..ff2cb14 --- /dev/null +++ b/Time/Time/Images.xcassets/1reset.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "1reset.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/1start.imageset/1start.png b/Time/Time/Images.xcassets/1start.imageset/1start.png new file mode 100644 index 0000000..f443c78 Binary files /dev/null and b/Time/Time/Images.xcassets/1start.imageset/1start.png differ diff --git a/Time/Time/Images.xcassets/1start.imageset/Contents.json b/Time/Time/Images.xcassets/1start.imageset/Contents.json new file mode 100644 index 0000000..e316bc3 --- /dev/null +++ b/Time/Time/Images.xcassets/1start.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "1start.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/1stop.imageset/1stop.png b/Time/Time/Images.xcassets/1stop.imageset/1stop.png new file mode 100644 index 0000000..c89f84c Binary files /dev/null and b/Time/Time/Images.xcassets/1stop.imageset/1stop.png differ diff --git a/Time/Time/Images.xcassets/1stop.imageset/Contents.json b/Time/Time/Images.xcassets/1stop.imageset/Contents.json new file mode 100644 index 0000000..07aa8e9 --- /dev/null +++ b/Time/Time/Images.xcassets/1stop.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "1stop.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/331.imageset/331.jpg b/Time/Time/Images.xcassets/331.imageset/331.jpg new file mode 100644 index 0000000..086ab54 Binary files /dev/null and b/Time/Time/Images.xcassets/331.imageset/331.jpg differ diff --git a/Time/Time/Images.xcassets/331.imageset/Contents.json b/Time/Time/Images.xcassets/331.imageset/Contents.json new file mode 100644 index 0000000..c38acfc --- /dev/null +++ b/Time/Time/Images.xcassets/331.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "331.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/332.imageset/332.jpg b/Time/Time/Images.xcassets/332.imageset/332.jpg new file mode 100644 index 0000000..1380b6b Binary files /dev/null and b/Time/Time/Images.xcassets/332.imageset/332.jpg differ diff --git a/Time/Time/Images.xcassets/332.imageset/Contents.json b/Time/Time/Images.xcassets/332.imageset/Contents.json new file mode 100644 index 0000000..c01abc4 --- /dev/null +++ b/Time/Time/Images.xcassets/332.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "332.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/333.imageset/333.jpg b/Time/Time/Images.xcassets/333.imageset/333.jpg new file mode 100644 index 0000000..3aef807 Binary files /dev/null and b/Time/Time/Images.xcassets/333.imageset/333.jpg differ diff --git a/Time/Time/Images.xcassets/333.imageset/Contents.json b/Time/Time/Images.xcassets/333.imageset/Contents.json new file mode 100644 index 0000000..f147a03 --- /dev/null +++ b/Time/Time/Images.xcassets/333.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "333.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/334.imageset/334.jpg b/Time/Time/Images.xcassets/334.imageset/334.jpg new file mode 100644 index 0000000..fce45d2 Binary files /dev/null and b/Time/Time/Images.xcassets/334.imageset/334.jpg differ diff --git a/Time/Time/Images.xcassets/334.imageset/Contents.json b/Time/Time/Images.xcassets/334.imageset/Contents.json new file mode 100644 index 0000000..4f63afa --- /dev/null +++ b/Time/Time/Images.xcassets/334.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "334.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/335.imageset/335.jpg b/Time/Time/Images.xcassets/335.imageset/335.jpg new file mode 100644 index 0000000..7a53214 Binary files /dev/null and b/Time/Time/Images.xcassets/335.imageset/335.jpg differ diff --git a/Time/Time/Images.xcassets/335.imageset/Contents.json b/Time/Time/Images.xcassets/335.imageset/Contents.json new file mode 100644 index 0000000..6ea09e4 --- /dev/null +++ b/Time/Time/Images.xcassets/335.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "335.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/881.imageset/881.jpg b/Time/Time/Images.xcassets/881.imageset/881.jpg new file mode 100644 index 0000000..cb5261c Binary files /dev/null and b/Time/Time/Images.xcassets/881.imageset/881.jpg differ diff --git a/Time/Time/Images.xcassets/881.imageset/Contents.json b/Time/Time/Images.xcassets/881.imageset/Contents.json new file mode 100644 index 0000000..49c051e --- /dev/null +++ b/Time/Time/Images.xcassets/881.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "881.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/882.imageset/882.jpg b/Time/Time/Images.xcassets/882.imageset/882.jpg new file mode 100644 index 0000000..15c9f53 Binary files /dev/null and b/Time/Time/Images.xcassets/882.imageset/882.jpg differ diff --git a/Time/Time/Images.xcassets/882.imageset/Contents.json b/Time/Time/Images.xcassets/882.imageset/Contents.json new file mode 100644 index 0000000..0817762 --- /dev/null +++ b/Time/Time/Images.xcassets/882.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "882.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/883.imageset/883.jpg b/Time/Time/Images.xcassets/883.imageset/883.jpg new file mode 100644 index 0000000..19a7a28 Binary files /dev/null and b/Time/Time/Images.xcassets/883.imageset/883.jpg differ diff --git a/Time/Time/Images.xcassets/883.imageset/Contents.json b/Time/Time/Images.xcassets/883.imageset/Contents.json new file mode 100644 index 0000000..481cfa2 --- /dev/null +++ b/Time/Time/Images.xcassets/883.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "883.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/991.imageset/991.jpg b/Time/Time/Images.xcassets/991.imageset/991.jpg new file mode 100644 index 0000000..dea0aef Binary files /dev/null and b/Time/Time/Images.xcassets/991.imageset/991.jpg differ diff --git a/Time/Time/Images.xcassets/991.imageset/Contents.json b/Time/Time/Images.xcassets/991.imageset/Contents.json new file mode 100644 index 0000000..ec9154e --- /dev/null +++ b/Time/Time/Images.xcassets/991.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "991.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/992.imageset/992.jpg b/Time/Time/Images.xcassets/992.imageset/992.jpg new file mode 100644 index 0000000..8ef58af Binary files /dev/null and b/Time/Time/Images.xcassets/992.imageset/992.jpg differ diff --git a/Time/Time/Images.xcassets/992.imageset/Contents.json b/Time/Time/Images.xcassets/992.imageset/Contents.json new file mode 100644 index 0000000..8b521f0 --- /dev/null +++ b/Time/Time/Images.xcassets/992.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "992.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/993.imageset/993.jpg b/Time/Time/Images.xcassets/993.imageset/993.jpg new file mode 100644 index 0000000..4bbd07e Binary files /dev/null and b/Time/Time/Images.xcassets/993.imageset/993.jpg differ diff --git a/Time/Time/Images.xcassets/993.imageset/Contents.json b/Time/Time/Images.xcassets/993.imageset/Contents.json new file mode 100644 index 0000000..de01392 --- /dev/null +++ b/Time/Time/Images.xcassets/993.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "993.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/994.imageset/994.jpg b/Time/Time/Images.xcassets/994.imageset/994.jpg new file mode 100644 index 0000000..6256f9c Binary files /dev/null and b/Time/Time/Images.xcassets/994.imageset/994.jpg differ diff --git a/Time/Time/Images.xcassets/994.imageset/Contents.json b/Time/Time/Images.xcassets/994.imageset/Contents.json new file mode 100644 index 0000000..241fc63 --- /dev/null +++ b/Time/Time/Images.xcassets/994.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "994.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/SoundOff.imageset/Contents.json b/Time/Time/Images.xcassets/SoundOff.imageset/Contents.json new file mode 100644 index 0000000..4f6973d --- /dev/null +++ b/Time/Time/Images.xcassets/SoundOff.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "SoundOff.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/SoundOff.imageset/SoundOff.png b/Time/Time/Images.xcassets/SoundOff.imageset/SoundOff.png new file mode 100644 index 0000000..6633aa6 Binary files /dev/null and b/Time/Time/Images.xcassets/SoundOff.imageset/SoundOff.png differ diff --git a/Time/Time/Images.xcassets/SoundOn.imageset/Contents.json b/Time/Time/Images.xcassets/SoundOn.imageset/Contents.json new file mode 100644 index 0000000..02c5085 --- /dev/null +++ b/Time/Time/Images.xcassets/SoundOn.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "SoundOn.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/SoundOn.imageset/SoundOn.png b/Time/Time/Images.xcassets/SoundOn.imageset/SoundOn.png new file mode 100644 index 0000000..f384d6e Binary files /dev/null and b/Time/Time/Images.xcassets/SoundOn.imageset/SoundOn.png differ diff --git a/Time/Time/Images.xcassets/SoundOn1.imageset/Contents.json b/Time/Time/Images.xcassets/SoundOn1.imageset/Contents.json new file mode 100644 index 0000000..02c5085 --- /dev/null +++ b/Time/Time/Images.xcassets/SoundOn1.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "SoundOn.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/SoundOn1.imageset/SoundOn.png b/Time/Time/Images.xcassets/SoundOn1.imageset/SoundOn.png new file mode 100644 index 0000000..6fdf8f2 Binary files /dev/null and b/Time/Time/Images.xcassets/SoundOn1.imageset/SoundOn.png differ diff --git a/Time/Time/Images.xcassets/StopwatchIcon.imageset/Contents.json b/Time/Time/Images.xcassets/StopwatchIcon.imageset/Contents.json new file mode 100644 index 0000000..8e7587d --- /dev/null +++ b/Time/Time/Images.xcassets/StopwatchIcon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "StopwatchIcon.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/StopwatchIcon.imageset/StopwatchIcon.png b/Time/Time/Images.xcassets/StopwatchIcon.imageset/StopwatchIcon.png new file mode 100644 index 0000000..cb2645f Binary files /dev/null and b/Time/Time/Images.xcassets/StopwatchIcon.imageset/StopwatchIcon.png differ diff --git a/Time/Time/Images.xcassets/TimerIcon.imageset/Contents.json b/Time/Time/Images.xcassets/TimerIcon.imageset/Contents.json new file mode 100644 index 0000000..2368da3 --- /dev/null +++ b/Time/Time/Images.xcassets/TimerIcon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "TimerIcon.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/TimerIcon.imageset/TimerIcon.png b/Time/Time/Images.xcassets/TimerIcon.imageset/TimerIcon.png new file mode 100644 index 0000000..06f4338 Binary files /dev/null and b/Time/Time/Images.xcassets/TimerIcon.imageset/TimerIcon.png differ diff --git a/Time/Time/Images.xcassets/WorldClock.imageset/Contents.json b/Time/Time/Images.xcassets/WorldClock.imageset/Contents.json new file mode 100644 index 0000000..4f3ae6f --- /dev/null +++ b/Time/Time/Images.xcassets/WorldClock.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "WorldClock.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/WorldClock.imageset/WorldClock.png b/Time/Time/Images.xcassets/WorldClock.imageset/WorldClock.png new file mode 100644 index 0000000..5439b46 Binary files /dev/null and b/Time/Time/Images.xcassets/WorldClock.imageset/WorldClock.png differ diff --git a/Time/Time/Images.xcassets/YellowDrop.imageset/Contents.json b/Time/Time/Images.xcassets/YellowDrop.imageset/Contents.json new file mode 100644 index 0000000..9779b3f --- /dev/null +++ b/Time/Time/Images.xcassets/YellowDrop.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "YellowDrop.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/YellowDrop.imageset/YellowDrop.jpg b/Time/Time/Images.xcassets/YellowDrop.imageset/YellowDrop.jpg new file mode 100644 index 0000000..7af637b Binary files /dev/null and b/Time/Time/Images.xcassets/YellowDrop.imageset/YellowDrop.jpg differ diff --git a/Time/Time/Images.xcassets/apple_symbol_stopwatch.imageset/Contents.json b/Time/Time/Images.xcassets/apple_symbol_stopwatch.imageset/Contents.json new file mode 100644 index 0000000..31c7c4f --- /dev/null +++ b/Time/Time/Images.xcassets/apple_symbol_stopwatch.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "apple_symbol_stopwatch.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/apple_symbol_stopwatch.imageset/apple_symbol_stopwatch.jpg b/Time/Time/Images.xcassets/apple_symbol_stopwatch.imageset/apple_symbol_stopwatch.jpg new file mode 100644 index 0000000..acb3312 Binary files /dev/null and b/Time/Time/Images.xcassets/apple_symbol_stopwatch.imageset/apple_symbol_stopwatch.jpg differ diff --git a/Time/Time/Images.xcassets/clockImage.imageset/Contents.json b/Time/Time/Images.xcassets/clockImage.imageset/Contents.json new file mode 100644 index 0000000..0afbf37 --- /dev/null +++ b/Time/Time/Images.xcassets/clockImage.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "clockImage.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/clockImage.imageset/clockImage.jpg b/Time/Time/Images.xcassets/clockImage.imageset/clockImage.jpg new file mode 100644 index 0000000..6b86115 Binary files /dev/null and b/Time/Time/Images.xcassets/clockImage.imageset/clockImage.jpg differ diff --git a/Time/Time/Images.xcassets/countdown.imageset/Contents.json b/Time/Time/Images.xcassets/countdown.imageset/Contents.json new file mode 100644 index 0000000..28166cc --- /dev/null +++ b/Time/Time/Images.xcassets/countdown.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "countdown.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/countdown.imageset/countdown.png b/Time/Time/Images.xcassets/countdown.imageset/countdown.png new file mode 100644 index 0000000..eca652b Binary files /dev/null and b/Time/Time/Images.xcassets/countdown.imageset/countdown.png differ diff --git a/Time/Time/Images.xcassets/drop.imageset/Contents.json b/Time/Time/Images.xcassets/drop.imageset/Contents.json new file mode 100644 index 0000000..38521c8 --- /dev/null +++ b/Time/Time/Images.xcassets/drop.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "drop.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/drop.imageset/drop.jpg b/Time/Time/Images.xcassets/drop.imageset/drop.jpg new file mode 100644 index 0000000..26bb2d7 Binary files /dev/null and b/Time/Time/Images.xcassets/drop.imageset/drop.jpg differ diff --git a/Time/Time/Images.xcassets/eventBackground.imageset/Contents.json b/Time/Time/Images.xcassets/eventBackground.imageset/Contents.json new file mode 100644 index 0000000..88a487b --- /dev/null +++ b/Time/Time/Images.xcassets/eventBackground.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "eventBackground.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/eventBackground.imageset/eventBackground.png b/Time/Time/Images.xcassets/eventBackground.imageset/eventBackground.png new file mode 100644 index 0000000..2d2b646 Binary files /dev/null and b/Time/Time/Images.xcassets/eventBackground.imageset/eventBackground.png differ diff --git a/Time/Time/Images.xcassets/eventBackground2.imageset/Contents.json b/Time/Time/Images.xcassets/eventBackground2.imageset/Contents.json new file mode 100644 index 0000000..7d5beb4 --- /dev/null +++ b/Time/Time/Images.xcassets/eventBackground2.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "eventBackground2.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/eventBackground2.imageset/eventBackground2.png b/Time/Time/Images.xcassets/eventBackground2.imageset/eventBackground2.png new file mode 100644 index 0000000..df9a755 Binary files /dev/null and b/Time/Time/Images.xcassets/eventBackground2.imageset/eventBackground2.png differ diff --git a/Time/Time/Images.xcassets/eventBackground3.imageset/Contents.json b/Time/Time/Images.xcassets/eventBackground3.imageset/Contents.json new file mode 100644 index 0000000..81be64b --- /dev/null +++ b/Time/Time/Images.xcassets/eventBackground3.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "eventBackground3.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/eventBackground3.imageset/eventBackground3.png b/Time/Time/Images.xcassets/eventBackground3.imageset/eventBackground3.png new file mode 100644 index 0000000..5b328ea Binary files /dev/null and b/Time/Time/Images.xcassets/eventBackground3.imageset/eventBackground3.png differ diff --git a/Time/Time/Images.xcassets/eventBackground4.imageset/Contents.json b/Time/Time/Images.xcassets/eventBackground4.imageset/Contents.json new file mode 100644 index 0000000..e090804 --- /dev/null +++ b/Time/Time/Images.xcassets/eventBackground4.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "eventBackground4.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/eventBackground4.imageset/eventBackground4.png b/Time/Time/Images.xcassets/eventBackground4.imageset/eventBackground4.png new file mode 100644 index 0000000..0124acb Binary files /dev/null and b/Time/Time/Images.xcassets/eventBackground4.imageset/eventBackground4.png differ diff --git a/Time/Time/Images.xcassets/eventBackground5.imageset/Contents.json b/Time/Time/Images.xcassets/eventBackground5.imageset/Contents.json new file mode 100644 index 0000000..75ac03f --- /dev/null +++ b/Time/Time/Images.xcassets/eventBackground5.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "eventBackground5.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/eventBackground5.imageset/eventBackground5.png b/Time/Time/Images.xcassets/eventBackground5.imageset/eventBackground5.png new file mode 100644 index 0000000..cfca7e1 Binary files /dev/null and b/Time/Time/Images.xcassets/eventBackground5.imageset/eventBackground5.png differ diff --git a/Time/Time/Images.xcassets/eventBackground6.imageset/Contents.json b/Time/Time/Images.xcassets/eventBackground6.imageset/Contents.json new file mode 100644 index 0000000..01f8b18 --- /dev/null +++ b/Time/Time/Images.xcassets/eventBackground6.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "eventBackground6.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/eventBackground6.imageset/eventBackground6.png b/Time/Time/Images.xcassets/eventBackground6.imageset/eventBackground6.png new file mode 100644 index 0000000..d68a3c9 Binary files /dev/null and b/Time/Time/Images.xcassets/eventBackground6.imageset/eventBackground6.png differ diff --git a/Time/Time/Images.xcassets/eventBackground7.imageset/Contents.json b/Time/Time/Images.xcassets/eventBackground7.imageset/Contents.json new file mode 100644 index 0000000..6ba7f99 --- /dev/null +++ b/Time/Time/Images.xcassets/eventBackground7.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "eventBackground7.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/eventBackground7.imageset/eventBackground7.png b/Time/Time/Images.xcassets/eventBackground7.imageset/eventBackground7.png new file mode 100644 index 0000000..4684af7 Binary files /dev/null and b/Time/Time/Images.xcassets/eventBackground7.imageset/eventBackground7.png differ diff --git a/Time/Time/Images.xcassets/graduation.imageset/Contents.json b/Time/Time/Images.xcassets/graduation.imageset/Contents.json new file mode 100644 index 0000000..7055396 --- /dev/null +++ b/Time/Time/Images.xcassets/graduation.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "graduation.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/graduation.imageset/graduation.jpg b/Time/Time/Images.xcassets/graduation.imageset/graduation.jpg new file mode 100644 index 0000000..30f4370 Binary files /dev/null and b/Time/Time/Images.xcassets/graduation.imageset/graduation.jpg differ diff --git a/Time/Time/Images.xcassets/halloween.imageset/Contents.json b/Time/Time/Images.xcassets/halloween.imageset/Contents.json new file mode 100644 index 0000000..1e41def --- /dev/null +++ b/Time/Time/Images.xcassets/halloween.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "halloween.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/halloween.imageset/halloween.jpg b/Time/Time/Images.xcassets/halloween.imageset/halloween.jpg new file mode 100644 index 0000000..3ed1b3d Binary files /dev/null and b/Time/Time/Images.xcassets/halloween.imageset/halloween.jpg differ diff --git a/Time/Time/Images.xcassets/krig_Aqua_button.imageset/Contents.json b/Time/Time/Images.xcassets/krig_Aqua_button.imageset/Contents.json new file mode 100644 index 0000000..0c93977 --- /dev/null +++ b/Time/Time/Images.xcassets/krig_Aqua_button.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "krig_Aqua_button.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/krig_Aqua_button.imageset/krig_Aqua_button.png b/Time/Time/Images.xcassets/krig_Aqua_button.imageset/krig_Aqua_button.png new file mode 100644 index 0000000..67e116d Binary files /dev/null and b/Time/Time/Images.xcassets/krig_Aqua_button.imageset/krig_Aqua_button.png differ diff --git a/Time/Time/Images.xcassets/page-under-construction.imageset/Contents.json b/Time/Time/Images.xcassets/page-under-construction.imageset/Contents.json new file mode 100644 index 0000000..756c6f4 --- /dev/null +++ b/Time/Time/Images.xcassets/page-under-construction.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "page-under-construction.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/page-under-construction.imageset/page-under-construction.png b/Time/Time/Images.xcassets/page-under-construction.imageset/page-under-construction.png new file mode 100644 index 0000000..04a3c22 Binary files /dev/null and b/Time/Time/Images.xcassets/page-under-construction.imageset/page-under-construction.png differ diff --git a/Time/Time/Images.xcassets/preset.imageset/Contents.json b/Time/Time/Images.xcassets/preset.imageset/Contents.json new file mode 100644 index 0000000..cd3811b --- /dev/null +++ b/Time/Time/Images.xcassets/preset.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "preset.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/preset.imageset/preset.png b/Time/Time/Images.xcassets/preset.imageset/preset.png new file mode 100644 index 0000000..aa74326 Binary files /dev/null and b/Time/Time/Images.xcassets/preset.imageset/preset.png differ diff --git a/Time/Time/Images.xcassets/presetBack.imageset/Contents.json b/Time/Time/Images.xcassets/presetBack.imageset/Contents.json new file mode 100644 index 0000000..0f4f520 --- /dev/null +++ b/Time/Time/Images.xcassets/presetBack.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "presetBack.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/presetBack.imageset/presetBack.jpg b/Time/Time/Images.xcassets/presetBack.imageset/presetBack.jpg new file mode 100644 index 0000000..1d6d66e Binary files /dev/null and b/Time/Time/Images.xcassets/presetBack.imageset/presetBack.jpg differ diff --git a/Time/Time/Images.xcassets/redDrop.imageset/Contents.json b/Time/Time/Images.xcassets/redDrop.imageset/Contents.json new file mode 100644 index 0000000..4817149 --- /dev/null +++ b/Time/Time/Images.xcassets/redDrop.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "redDrop.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/redDrop.imageset/redDrop.jpg b/Time/Time/Images.xcassets/redDrop.imageset/redDrop.jpg new file mode 100644 index 0000000..2523217 Binary files /dev/null and b/Time/Time/Images.xcassets/redDrop.imageset/redDrop.jpg differ diff --git a/Time/Time/Images.xcassets/start.imageset/Contents.json b/Time/Time/Images.xcassets/start.imageset/Contents.json new file mode 100644 index 0000000..59de14c --- /dev/null +++ b/Time/Time/Images.xcassets/start.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "start.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/start.imageset/start.png b/Time/Time/Images.xcassets/start.imageset/start.png new file mode 100644 index 0000000..21671c3 Binary files /dev/null and b/Time/Time/Images.xcassets/start.imageset/start.png differ diff --git a/Time/Time/Images.xcassets/stop.imageset/Contents.json b/Time/Time/Images.xcassets/stop.imageset/Contents.json new file mode 100644 index 0000000..cff6357 --- /dev/null +++ b/Time/Time/Images.xcassets/stop.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "stop.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/stop.imageset/stop.png b/Time/Time/Images.xcassets/stop.imageset/stop.png new file mode 100644 index 0000000..a0139e0 Binary files /dev/null and b/Time/Time/Images.xcassets/stop.imageset/stop.png differ diff --git a/Time/Time/Images.xcassets/water.imageset/Contents.json b/Time/Time/Images.xcassets/water.imageset/Contents.json new file mode 100644 index 0000000..e704c3a --- /dev/null +++ b/Time/Time/Images.xcassets/water.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "water.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/water.imageset/water.png b/Time/Time/Images.xcassets/water.imageset/water.png new file mode 100644 index 0000000..7d24e02 Binary files /dev/null and b/Time/Time/Images.xcassets/water.imageset/water.png differ diff --git a/Time/Time/Images.xcassets/waterRotated.imageset/Contents.json b/Time/Time/Images.xcassets/waterRotated.imageset/Contents.json new file mode 100644 index 0000000..cb9418d --- /dev/null +++ b/Time/Time/Images.xcassets/waterRotated.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "waterRotated.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/waterRotated.imageset/waterRotated.png b/Time/Time/Images.xcassets/waterRotated.imageset/waterRotated.png new file mode 100644 index 0000000..ec4eee4 Binary files /dev/null and b/Time/Time/Images.xcassets/waterRotated.imageset/waterRotated.png differ diff --git a/Time/Time/Images.xcassets/wedding.imageset/Contents.json b/Time/Time/Images.xcassets/wedding.imageset/Contents.json new file mode 100644 index 0000000..aece92d --- /dev/null +++ b/Time/Time/Images.xcassets/wedding.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "wedding.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/wedding.imageset/wedding.jpg b/Time/Time/Images.xcassets/wedding.imageset/wedding.jpg new file mode 100644 index 0000000..723a854 Binary files /dev/null and b/Time/Time/Images.xcassets/wedding.imageset/wedding.jpg differ diff --git a/Time/Time/Images.xcassets/worldclockImage-1.imageset/Contents.json b/Time/Time/Images.xcassets/worldclockImage-1.imageset/Contents.json new file mode 100644 index 0000000..871b8f1 --- /dev/null +++ b/Time/Time/Images.xcassets/worldclockImage-1.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "worldclockImage.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/worldclockImage-1.imageset/worldclockImage.jpg b/Time/Time/Images.xcassets/worldclockImage-1.imageset/worldclockImage.jpg new file mode 100644 index 0000000..215846b Binary files /dev/null and b/Time/Time/Images.xcassets/worldclockImage-1.imageset/worldclockImage.jpg differ diff --git a/Time/Time/Images.xcassets/worldclockImage.imageset/Contents.json b/Time/Time/Images.xcassets/worldclockImage.imageset/Contents.json new file mode 100644 index 0000000..871b8f1 --- /dev/null +++ b/Time/Time/Images.xcassets/worldclockImage.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "worldclockImage.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/worldclockImage.imageset/worldclockImage.jpg b/Time/Time/Images.xcassets/worldclockImage.imageset/worldclockImage.jpg new file mode 100644 index 0000000..215846b Binary files /dev/null and b/Time/Time/Images.xcassets/worldclockImage.imageset/worldclockImage.jpg differ diff --git a/Time/Time/Images.xcassets/worldclockImage22.imageset/Contents.json b/Time/Time/Images.xcassets/worldclockImage22.imageset/Contents.json new file mode 100644 index 0000000..6e1d078 --- /dev/null +++ b/Time/Time/Images.xcassets/worldclockImage22.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "worldclockImage22.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/worldclockImage22.imageset/worldclockImage22.jpg b/Time/Time/Images.xcassets/worldclockImage22.imageset/worldclockImage22.jpg new file mode 100644 index 0000000..499a6c4 Binary files /dev/null and b/Time/Time/Images.xcassets/worldclockImage22.imageset/worldclockImage22.jpg differ diff --git a/Time/Time/Images.xcassets/worldclockImage33.imageset/Contents.json b/Time/Time/Images.xcassets/worldclockImage33.imageset/Contents.json new file mode 100644 index 0000000..e794107 --- /dev/null +++ b/Time/Time/Images.xcassets/worldclockImage33.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "worldclockImage33.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/worldclockImage33.imageset/worldclockImage33.jpg b/Time/Time/Images.xcassets/worldclockImage33.imageset/worldclockImage33.jpg new file mode 100644 index 0000000..5ca9aa6 Binary files /dev/null and b/Time/Time/Images.xcassets/worldclockImage33.imageset/worldclockImage33.jpg differ diff --git a/Time/Time/Images.xcassets/worldclockImage44.imageset/Contents.json b/Time/Time/Images.xcassets/worldclockImage44.imageset/Contents.json new file mode 100644 index 0000000..f2fd552 --- /dev/null +++ b/Time/Time/Images.xcassets/worldclockImage44.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "worldclockImage44.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/worldclockImage44.imageset/worldclockImage44.jpg b/Time/Time/Images.xcassets/worldclockImage44.imageset/worldclockImage44.jpg new file mode 100644 index 0000000..e4edc3c Binary files /dev/null and b/Time/Time/Images.xcassets/worldclockImage44.imageset/worldclockImage44.jpg differ diff --git a/Time/Time/Images.xcassets/worldclockImage55.imageset/Contents.json b/Time/Time/Images.xcassets/worldclockImage55.imageset/Contents.json new file mode 100644 index 0000000..0b593f8 --- /dev/null +++ b/Time/Time/Images.xcassets/worldclockImage55.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "worldclockImage55.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/worldclockImage55.imageset/worldclockImage55.jpg b/Time/Time/Images.xcassets/worldclockImage55.imageset/worldclockImage55.jpg new file mode 100644 index 0000000..e7f89a6 Binary files /dev/null and b/Time/Time/Images.xcassets/worldclockImage55.imageset/worldclockImage55.jpg differ diff --git a/Time/Time/Images.xcassets/worldclockImage66.imageset/Contents.json b/Time/Time/Images.xcassets/worldclockImage66.imageset/Contents.json new file mode 100644 index 0000000..f24fdd9 --- /dev/null +++ b/Time/Time/Images.xcassets/worldclockImage66.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "worldclockImage66.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/worldclockImage66.imageset/worldclockImage66.png b/Time/Time/Images.xcassets/worldclockImage66.imageset/worldclockImage66.png new file mode 100644 index 0000000..77abcca Binary files /dev/null and b/Time/Time/Images.xcassets/worldclockImage66.imageset/worldclockImage66.png differ diff --git a/Time/Time/Images.xcassets/worldclockImage77.imageset/Contents.json b/Time/Time/Images.xcassets/worldclockImage77.imageset/Contents.json new file mode 100644 index 0000000..1992314 --- /dev/null +++ b/Time/Time/Images.xcassets/worldclockImage77.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "worldclockImage77.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/worldclockImage77.imageset/worldclockImage77.png b/Time/Time/Images.xcassets/worldclockImage77.imageset/worldclockImage77.png new file mode 100644 index 0000000..afe5a93 Binary files /dev/null and b/Time/Time/Images.xcassets/worldclockImage77.imageset/worldclockImage77.png differ diff --git a/Time/Time/Images.xcassets/worldclockImage88.imageset/Contents.json b/Time/Time/Images.xcassets/worldclockImage88.imageset/Contents.json new file mode 100644 index 0000000..cf9c72e --- /dev/null +++ b/Time/Time/Images.xcassets/worldclockImage88.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x", + "filename" : "worldclockImage88.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/worldclockImage88.imageset/worldclockImage88.png b/Time/Time/Images.xcassets/worldclockImage88.imageset/worldclockImage88.png new file mode 100644 index 0000000..44cf102 Binary files /dev/null and b/Time/Time/Images.xcassets/worldclockImage88.imageset/worldclockImage88.png differ diff --git a/Time/Time/Info.plist b/Time/Time/Info.plist index 62e151f..46ea0c3 100644 --- a/Time/Time/Info.plist +++ b/Time/Time/Info.plist @@ -2,6 +2,10 @@ + UIAppFonts + + digitalFont.ttf + CFBundleDevelopmentRegion en CFBundleExecutable diff --git a/Time/Time/Main.storyboard b/Time/Time/Main.storyboard new file mode 100644 index 0000000..236319b --- /dev/null +++ b/Time/Time/Main.storyboard @@ -0,0 +1,1165 @@ + + + + + + + + + + + Digital-7 + Digital-7 + Digital-7 + Digital-7 + Digital-7 + Digital-7 + Digital-7 + Digital-7 + Digital-7 + Digital-7 + Digital-7 + Digital-7 + Digital-7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Time/Time/Preset.h b/Time/Time/Preset.h new file mode 100644 index 0000000..d207b95 --- /dev/null +++ b/Time/Time/Preset.h @@ -0,0 +1,17 @@ +// +// Preset.h +// Time +// +// Created by Eric Sanchez on 8/29/15. +// Copyright © 2015 Mike Kavouras. All rights reserved. +// + +#import + +@interface Preset : NSObject +@property (nonatomic) NSString *presetName; +@property (nonatomic) NSString* presetTime; + + + +@end diff --git a/Time/Time/Preset.m b/Time/Time/Preset.m new file mode 100644 index 0000000..056ce31 --- /dev/null +++ b/Time/Time/Preset.m @@ -0,0 +1,14 @@ +// +// Preset.m +// Time +// +// Created by Eric Sanchez on 8/29/15. +// Copyright © 2015 Mike Kavouras. All rights reserved. +// + +#import "Preset.h" + +@implementation Preset + + +@end diff --git a/Time/Time/PresetViewController.h b/Time/Time/PresetViewController.h new file mode 100644 index 0000000..7e9aa46 --- /dev/null +++ b/Time/Time/PresetViewController.h @@ -0,0 +1,20 @@ +// +// PresetViewController.h +// Time +// +// Created by Diana Elezaj on 8/29/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import + +@interface PresetViewController : UIViewController { + + IBOutlet UIProgressView *progressView; +} +@property(nonatomic,retain)IBOutlet UIImageView *sandGlass; + + - (IBAction)stopButtonTapped:(UIButton *)sender; + + +@end diff --git a/Time/Time/PresetViewController.m b/Time/Time/PresetViewController.m new file mode 100644 index 0000000..53070f2 --- /dev/null +++ b/Time/Time/PresetViewController.m @@ -0,0 +1,184 @@ +// +// PresetViewController.m +// Time +// +// Created by Diana Elezaj on 8/29/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import "PresetViewController.h" +#import "Preset.h" +#import "PressetData.h" +#import + +@interface PresetViewController () +@property (strong, nonatomic) IBOutlet UIButton *startButton; +@property (strong, nonatomic) IBOutlet UIButton *resetButton; +@property (strong, nonatomic) IBOutlet UIButton *stopButton; +@property (weak, nonatomic) IBOutlet UILabel *timeLabel; +@property (weak, nonatomic) IBOutlet UIPickerView *timerPickerView; +@property (nonatomic) NSArray *timerPickerArray; +@property (nonatomic) NSTimer *timer; +@property (nonatomic) NSInteger seconds; + +@property (nonatomic, strong) IBOutlet UILabel *progressLabel; +@property (nonatomic, strong) UIProgressView *progressView; +@property (nonatomic, strong) NSTimer *progressTimer; + +@property (nonatomic) int count; + + + +@end + +@implementation PresetViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"presetBack"]]; + [self.navigationItem setTitle:@"Preset"]; + + self.timeLabel.text = @"00:00:00"; + self.timerPickerArray = [PressetData sharedModel].allPresets; + self.timerPickerView.dataSource = self; + self.timerPickerView.delegate = self; + [self.startButton setBackgroundImage:[UIImage imageNamed:@"1start"] forState:UIControlStateNormal]; + [self.resetButton setBackgroundImage:[UIImage imageNamed:@"1reset"] forState:UIControlStateNormal]; + [self.stopButton setBackgroundImage:[UIImage imageNamed:@"1stop"] forState:UIControlStateNormal]; + + self.count = 0; + + self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"waterRotated"]]; +} + +-(void)viewDidAppear:(BOOL)animated{ + + [self.timerPickerView reloadAllComponents]; + [self.timer invalidate]; +} + +- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view { + + UILabel *pickerLabel = (UILabel *)view; + + if (pickerLabel == nil) { + + pickerLabel = [[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, [pickerView rowSizeForComponent:component].width, [pickerView rowSizeForComponent:component].height)]; + [pickerLabel setTextAlignment:NSTextAlignmentCenter]; + [pickerLabel setBackgroundColor:[UIColor clearColor]]; + } + + [pickerLabel setText:[self.timerPickerArray objectAtIndex:row]]; + return pickerLabel; +} + +- (IBAction)stopButtonTapped:(UIButton *)sender { + [self.timer invalidate]; + [self.progressTimer invalidate]; + +} + +- (IBAction)resetButtonTapped:(UIButton *)sender { + [self updatePresetLabel]; + self.progressLabel.text = @"0 %"; + self.count = 0; +} + +- (void)updateUI:(NSTimer *)timer +{ + static int count =0; count++; + + if (count <=self.seconds) + { + self.progressLabel.text = [NSString stringWithFormat:@"%ld %%",count*100/self.seconds]; + self.progressView.progress = (float)count/self.seconds; + } else + { + [self.progressTimer invalidate]; + self.progressTimer = nil; + } +} + +- (IBAction)startButtonTapped:(UIButton *)sender { + + self.progressTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateUI:) userInfo:nil repeats:YES]; + + [self updatePresetLabel]; + [self runTimer]; +} + +-(void)convertTime: (NSString *)time{ + + NSArray *convertedTime = [time componentsSeparatedByString:@":"]; + + NSInteger hours = [convertedTime[0] integerValue]; + NSInteger minutes = [convertedTime[1] integerValue]; + NSInteger seconds = [convertedTime[2] integerValue]; + + NSInteger totalTime = (hours * 3600) + (minutes * 60) + seconds; + self.seconds = totalTime; +} +-(void)setPresetTimer:(Preset *)timer With: (UIPickerView *)pickerView{ + + NSInteger selectedRow = [pickerView selectedRowInComponent:0]; + NSString *selection = [PressetData sharedModel].allPresets[selectedRow]; + NSArray *separatedComponents = [selection componentsSeparatedByString:@" "]; + + timer.presetTime = separatedComponents[1]; + self.timeLabel.text = timer.presetTime; + timer.presetName = separatedComponents[0]; +} + +-(void)runTimer{ + + NSTimer *timer = [NSTimer timerWithTimeInterval:1 target:self selector:@selector(timerFired:) userInfo:nil repeats:YES]; + + [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes]; + self.timer = timer; +} + +-(void)timerFired:(NSTimer *)timer{ + NSInteger hours, hours_rem, minutes, minutes_rem; + self.seconds -= 1; + + hours = self.seconds / 3600; + NSLog(@"hours %ld", hours); + hours_rem = self.seconds % 3600; + NSLog(@"hours_rem %ld", hours_rem); + + minutes = hours_rem/60 ; + minutes_rem = hours_rem % 60; + + self.timeLabel.text = [NSString stringWithFormat:@"%02ld:%02ld:%02ld", hours, minutes, minutes_rem]; + + if (hours <= 0 && minutes <= 0 && minutes_rem <= 0){ + [timer invalidate]; + } +} + +- (void)updatePresetLabel{ + { + + [self setPresetTimer:[PressetData sharedModel].presetModel With:self.timerPickerView]; + + self. timeLabel.text = [PressetData sharedModel].presetModel.presetTime; + + [self convertTime:[PressetData sharedModel].presetModel.presetTime]; + } +} + +- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { + return 1; +} + +- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { + + return self.timerPickerArray.count; +} + +- (NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { + + return self.timerPickerArray[row]; +} + +@end diff --git a/Time/Time/PressetData.h b/Time/Time/PressetData.h new file mode 100644 index 0000000..3d27601 --- /dev/null +++ b/Time/Time/PressetData.h @@ -0,0 +1,19 @@ +// +// PressetData.h +// Time +// +// Created by Diana Elezaj on 8/29/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// +#import +#import "Preset.h" + +@interface PressetData : NSObject + +@property (nonatomic) NSMutableArray *allPresets; +@property (nonatomic) Preset *presetModel; + +-(void)initializeData; ++ (PressetData *)sharedModel; + +@end diff --git a/Time/Time/PressetData.m b/Time/Time/PressetData.m new file mode 100644 index 0000000..a243d1a --- /dev/null +++ b/Time/Time/PressetData.m @@ -0,0 +1,41 @@ +// +// PressetData.m +// Time +// +// Created by Diana Elezaj on 8/29/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import "PressetData.h" + +@implementation PressetData + ++ (PressetData *)sharedModel { + static PressetData *sharedManager = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + sharedManager = [[self alloc] init]; + [sharedManager initializeData]; + }); + return sharedManager; +} + +-(void)initializeData{ + + self.presetModel = [[Preset alloc] init]; + + self.allPresets = @[@"Popcorn 00:03:00", + @"Tea 00:02:30", + @"Roast Turkey 03:00:00", + @"Lunch Time 00:30:00", + @"Reheat pizza 00:01:00", + @"Workout 00:20:00", + @"Sitting Meditation 00:45:00" + ].mutableCopy; +} + + + + + +@end diff --git a/Time/Time/STKSpinnerView.h b/Time/Time/STKSpinnerView.h new file mode 100644 index 0000000..b2f6c93 --- /dev/null +++ b/Time/Time/STKSpinnerView.h @@ -0,0 +1,20 @@ +// +// STKSpinnerView.h +// STKOKKKKKK +// +// Created by Diana Elezaj on 8/30/15. +// Copyright (c) 2015 Diana Elezaj. All rights reserved. +// + +#import + +@interface STKSpinnerView : UIView + +@property (nonatomic) float progress; +@property (nonatomic, strong) UIImage *image; +@property (nonatomic) float wellThickness; +@property (nonatomic, strong) UIColor *color; + +- (void)setProgress:(float)progress animated:(BOOL)animated; + +@end diff --git a/Time/Time/STKSpinnerView.m b/Time/Time/STKSpinnerView.m new file mode 100644 index 0000000..070a032 --- /dev/null +++ b/Time/Time/STKSpinnerView.m @@ -0,0 +1,163 @@ +// +// STKSpinnerView.m +// STKOKKKKKK +// +// Created by Diana Elezaj on 8/30/15. +// Copyright (c) 2015 Diana Elezaj. All rights reserved. +// + +#import "STKSpinnerView.h" +#import +@interface STKSpinnerView () +@property (nonatomic, assign) CALayer *imageLayer; +@property (nonatomic, assign) CALayer *maskLayer; +@property (nonatomic, assign) CAShapeLayer *wellLayer; +@property (nonatomic, assign) CAShapeLayer *spinLayer; +@end +@implementation STKSpinnerView +@dynamic image; + +- (void)_commonInit +{ + CALayer *l = [CALayer layer]; + [[self layer] addSublayer:l]; + [self setImageLayer:l]; + + CALayer *m = [CALayer layer]; + [[self imageLayer] setMask:m]; + [self setMaskLayer:m]; + + CAShapeLayer *w = [CAShapeLayer layer]; + [[self layer] addSublayer:w]; + [w setStrokeColor:[[UIColor colorWithRed:0.10 green:0.41 blue:0.48 alpha:1.0] CGColor]]; + [w setFillColor:[[UIColor clearColor] CGColor]]; + [w setShadowColor:[[UIColor blackColor] CGColor]]; + [w setShadowRadius:2]; + [w setShadowOpacity:1]; + [w setShadowOffset:CGSizeZero]; + [self setWellLayer:w]; + + CAShapeLayer *s = [CAShapeLayer layer]; + [s setStrokeColor:[[UIColor blueColor] CGColor]]; + [s setFillColor:[[UIColor clearColor] CGColor]]; + [[self layer] addSublayer:s]; + [self setSpinLayer:s]; + + [self setBackgroundColor:[UIColor clearColor]]; + + [self setWellThickness:10.0]; + [self setColor:[UIColor colorWithRed:0.89 green:0.96 blue:0.97 alpha:1.0]]; + +// [self setColor:[UIColor colorWithRed:0.2 green:0.5 blue:0.8 alpha:1]]; +// [self setColor:[UIColor blueColor]]; + [self setProgress:0.0]; +} + +- (id)initWithCoder:(NSCoder *)aDecoder +{ + self = [super initWithCoder:aDecoder]; + if(self) { + [self _commonInit]; + } + return self; +} + +- (id)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self _commonInit]; + } + return self; +} + +- (void)setImage:(UIImage *)image +{ + [[self imageLayer] setContents:(id)[image CGImage]]; +} + +- (UIImage *)image +{ + return [UIImage imageWithCGImage:(CGImageRef)[[self imageLayer] contents]]; +} + +- (void)setWellThickness:(float)wellThickness +{ + _wellThickness = wellThickness; + [[self spinLayer] setLineWidth:_wellThickness]; + [[self wellLayer] setLineWidth:_wellThickness]; +} + +- (void)setColor:(UIColor *)color +{ + _color = color; + [[self spinLayer] setStrokeColor:[_color CGColor]]; +} + +- (void)setProgress:(float)progress animated:(BOOL)animated +{ + float currentProgress = _progress; + _progress = progress; + + [CATransaction begin]; + if(animated) { + float delta = fabs(_progress - currentProgress); + [CATransaction setAnimationDuration:MAX(0.2, delta * 1.0)]; + } else { + [CATransaction setDisableActions:YES]; + } + [[self spinLayer] setStrokeEnd:_progress]; + [CATransaction commit]; +} + +- (void)setProgress:(float)progress +{ + [self setProgress:progress animated:NO]; +} + +- (float)radius +{ + CGRect r = CGRectInset([self bounds], [self wellThickness] / 2.0, [self wellThickness] / 2.0); + float w = r.size.width; + float h = r.size.height; + if(w > h) + return h / 2.0; + + return w / 2.0; +} + +- (void)layoutSubviews +{ + [super layoutSubviews]; + + CGRect bounds = [self bounds]; + float wt = [self wellThickness]; + CGRect outer = CGRectInset([self bounds], wt / 2.0, wt / 2.0); + CGRect inner = CGRectInset([self bounds], wt, wt); + + UIBezierPath *innerPath = [UIBezierPath bezierPathWithOvalInRect:inner]; + UIBezierPath *outerPath = [UIBezierPath bezierPathWithArcCenter:CGPointMake(CGRectGetMidX(outer), CGRectGetMidY(outer)) + radius:[self radius] + startAngle:-M_PI_2 endAngle:(2.0 * M_PI - M_PI_2) clockwise:YES]; + [[self wellLayer] setPath:[outerPath CGPath]]; + [[self spinLayer] setPath:[outerPath CGPath]]; + + [[self imageLayer] setFrame:bounds]; + [[self maskLayer] setFrame:bounds]; + [[self spinLayer] setFrame:bounds]; + + UIGraphicsBeginImageContextWithOptions(bounds.size, NO, [[UIScreen mainScreen] scale]); + [innerPath fill]; + [[self maskLayer] setContents:(id)[UIGraphicsGetImageFromCurrentImageContext() CGImage]]; + UIGraphicsEndImageContext(); +} + +/* +// Only override drawRect: if you perform custom drawing. +// An empty implementation adversely affects performance during animation. +- (void)drawRect:(CGRect)rect { + // Drawing code +} +*/ + +@end diff --git a/Time/Time/StopWatchViewController.h b/Time/Time/StopWatchViewController.h new file mode 100644 index 0000000..694d53e --- /dev/null +++ b/Time/Time/StopWatchViewController.h @@ -0,0 +1,13 @@ +// +// StopWatchViewController.h +// Time +// +// Created by Diana Elezaj on 8/20/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..1f58c4a --- /dev/null +++ b/Time/Time/StopWatchViewController.m @@ -0,0 +1,255 @@ +// +// StopWatchViewController.m +// Time +// +// Created by Diana Elezaj on 8/20/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import "StopWatchViewController.h" +#import +#define Digital(s) [UIFont fontWithName:@"digital-7.ttf" size:s] +#import // this allows us to include sounds! + + +@interface StopWatchViewController () +{ + AVAudioPlayer *_clock; + AVAudioPlayer *_LapSound; +} +@property (strong, nonatomic) IBOutlet UITableView *LapTableView; +@property (nonatomic) NSMutableArray *LapArray; + +@property (nonatomic) BOOL firstTimeRunning; + +@property (nonatomic) BOOL running; +@property (nonatomic) BOOL LapTapped; + +@property (nonatomic) NSInteger timeMilliSec; +@property (nonatomic) NSInteger lapMilliSec; + + +@property (strong, nonatomic) NSTimer *StopwatchTimer; +@property (strong, nonatomic) NSTimer *lapTimer; + +@property (strong, nonatomic) IBOutlet UILabel *StopwatchRunningLabel; +@property (strong, nonatomic) IBOutlet UILabel *recentLapRunning; + +@property (strong, nonatomic) IBOutlet UIButton *startStopButton; +@property (strong, nonatomic) IBOutlet UIButton *resetLapButton; + + @property (nonatomic) NSInteger fastestLapIndex; + +@end + +@implementation StopWatchViewController +NSString *initialTime = @"00:00:00"; +NSInteger minutes; +NSInteger seconds; +NSInteger milliseconds; + +- (void)viewDidLoad { + [super viewDidLoad]; + + self.StopwatchRunningLabel.text = initialTime; //set the text to the label + self.recentLapRunning.text = initialTime; //set the text to the label + self.LapArray = [[NSMutableArray alloc]init]; //initialize array + self.running = NO; + self.firstTimeRunning = YES; + self.LapTapped = YES; + self.LapTableView.delegate = self; + self.LapTableView.dataSource = self; + + /****** Interface layout *****/ + [self.startStopButton.titleLabel isEqual: @"Start"]; + self.startStopButton.layer.cornerRadius = 10; + self.startStopButton.clipsToBounds = YES; + self.startStopButton.backgroundColor = [UIColor colorWithRed:0.31 green:0.60 blue:0.19 alpha:1.0]; + + [self.resetLapButton.titleLabel isEqual: @"Reset"]; + self.resetLapButton.layer.cornerRadius = 10; + self.resetLapButton.clipsToBounds = YES; + self.resetLapButton.backgroundColor = [UIColor grayColor]; + self.resetLapButton.enabled = NO; + +#pragma mark - Ringtones + + NSString *path = [NSString stringWithFormat:@"%@/clock-ticking-5.mp3", [[NSBundle mainBundle] resourcePath]]; + NSURL *soundUrl = [NSURL fileURLWithPath:path]; + _clock = [[AVAudioPlayer alloc] initWithContentsOfURL:soundUrl error:nil]; + + NSString *path2 = [NSString stringWithFormat:@"%@/ding.wav", [[NSBundle mainBundle] resourcePath]]; + NSURL *soundUrl2 = [NSURL fileURLWithPath:path2]; + _LapSound = [[AVAudioPlayer alloc] initWithContentsOfURL:soundUrl2 error:nil]; +} + +#pragma mark - Timers + +- (void)callStopwatchTimer +{ + self.timeMilliSec += 1; + + minutes = self.timeMilliSec / 6000; + self.timeMilliSec -= minutes * 6000; + + seconds = self.timeMilliSec/100 ; + + milliseconds = self.timeMilliSec % 100; + + self.StopwatchRunningLabel.text = [NSString stringWithFormat:@"%02ld:%02ld:%02ld", (long)minutes, (long)seconds, (long)milliseconds]; +} + +- (void)callLapTimer +{ + self.lapMilliSec += 1; + + minutes = self.lapMilliSec / 6000; + self.lapMilliSec -= minutes * 6000; + + seconds = self.lapMilliSec/100 ; + + milliseconds = self.lapMilliSec % 100; + + self.recentLapRunning.text = [NSString stringWithFormat:@"%02ld:%02ld:%02ld", (long)minutes, (long)seconds, (long)milliseconds]; +} + + +#pragma mark - Buttons + +- (IBAction)startStopButtonTapped:(UIButton *)sender { + + if(self.firstTimeRunning){ //start tapped for the first time + NSLog(@"first"); + [_clock play]; + self.firstTimeRunning = NO; + self.LapTapped = YES; + self.running = NO; + self.resetLapButton.enabled = YES; + + self.StopwatchTimer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(callStopwatchTimer) userInfo:nil repeats:YES]; + self.lapTimer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(callLapTimer) userInfo:nil repeats:YES]; + + /****** Interface layout *****/ + [self.startStopButton setTitle:@"Stop" forState:UIControlStateNormal]; + self.startStopButton.backgroundColor = [UIColor redColor]; + [self.resetLapButton setTitle:@"Lap" forState:UIControlStateNormal]; + + } + + else if(self.running == NO){ //stop tapped + + [_clock stop]; + self.running = YES; + self.LapTapped = NO; + + [self.StopwatchTimer invalidate]; + [self.lapTimer invalidate]; + + /****** Interface layout *****/ + [self.resetLapButton setTitle:@"Reset" forState:UIControlStateNormal]; + [self.startStopButton setTitle:@"Start" forState:UIControlStateNormal]; + self.startStopButton.backgroundColor = [UIColor colorWithRed:0.31 green:0.60 blue:0.19 alpha:1.0]; + } + + else { //start tapped (not for the first time) + + self.running = NO; + [_clock play]; + self.LapTapped = YES; + self.resetLapButton.enabled = YES; + + self.StopwatchTimer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(callStopwatchTimer) userInfo:nil repeats:YES]; + self.lapTimer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(callLapTimer) userInfo:nil repeats:YES]; + + /****** Interface layout *****/ + [self.startStopButton setTitle:@"Stop" forState:UIControlStateNormal]; + self.startStopButton.backgroundColor = [UIColor redColor]; + [self.resetLapButton setTitle:@"Lap" forState:UIControlStateNormal]; + } +} + + +- (IBAction)resetLapButtonTapped:(UIButton *)sender { + + if(self.LapTapped == NO){ //reset tapped + + self.firstTimeRunning = YES; + self.resetLapButton.enabled = NO; + [self.StopwatchTimer invalidate]; + [self.lapTimer invalidate]; + [self.LapArray removeAllObjects]; + [self.LapTableView reloadData]; + self.timeMilliSec = 0; + self.lapMilliSec = 0; + self.StopwatchTimer = nil; + self.lapTimer = nil; + self.StopwatchRunningLabel.text = initialTime; //change label text + self.recentLapRunning.text = initialTime; //change label text + } + else { // lap tapped + + self.lapMilliSec = 0; + + [_LapSound stop]; + [_LapSound play]; + + [self.LapArray insertObject:self.recentLapRunning.text atIndex:0]; + [self.LapTableView reloadData]; + self.recentLapRunning.text = initialTime; //change label text + + [self evaluateFastestLap]; + } +} + +- (void)evaluateFastestLap { + NSLog(@"still "); + if (self.LapArray.count == 1) { + self.fastestLapIndex = 0; + NSLog(@"still working on it"); + + } +} + + +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; + } + +#pragma mark - Table View + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 1; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.LapArray.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"stopwatchIdentifier" forIndexPath:indexPath]; + + + if (self.LapArray.count == 1) { + cell.textLabel.textColor = [UIColor redColor]; + cell.detailTextLabel.textColor = [UIColor redColor]; + } + + cell.textLabel.text = [NSString stringWithFormat:@"Lap %ld",[self.LapArray count] - indexPath.row]; + + cell.detailTextLabel.text = self.LapArray[indexPath.row]; + + return cell; +} + +#pragma mark Cells color +- (void)tableView: (UITableView*)tableView + willDisplayCell: (UITableViewCell*)cell +forRowAtIndexPath: (NSIndexPath*)indexPath +{ + cell.backgroundColor = indexPath.row % 2 + ? [UIColor colorWithRed:0.87 green:0.93 blue:0.98 alpha:1.0] + : [UIColor whiteColor]; + +} + +@end diff --git a/Time/Time/TimerIsOff.wav b/Time/Time/TimerIsOff.wav new file mode 100755 index 0000000..f854595 Binary files /dev/null and b/Time/Time/TimerIsOff.wav differ diff --git a/Time/Time/TimerViewController.h b/Time/Time/TimerViewController.h new file mode 100644 index 0000000..cbc1f27 --- /dev/null +++ b/Time/Time/TimerViewController.h @@ -0,0 +1,13 @@ +// +// TimerViewController.h +// Time +// +// Created by Diana Elezaj on 8/23/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import + +@interface TimerViewController : UIViewController + +@end diff --git a/Time/Time/TimerViewController.m b/Time/Time/TimerViewController.m new file mode 100644 index 0000000..8123fcd --- /dev/null +++ b/Time/Time/TimerViewController.m @@ -0,0 +1,257 @@ +// +// TimerViewController.m +// Time +// +// Created by Diana Elezaj on 8/23/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import "TimerViewController.h" +#import "STKSpinnerView.h" +#import // this allows us to include sounds! + +@interface TimerViewController () +{ + AVAudioPlayer *_clock; + AVAudioPlayer *_timerIsOver; +} + +@property (strong, nonatomic) IBOutlet UIButton *presetsButton; +@property (weak, nonatomic) IBOutlet STKSpinnerView *spinnerView; +@property (strong, nonatomic) IBOutlet UILabel *timeLabel; +@property (strong, nonatomic) IBOutlet UIButton *startStopButton; +@property (strong, nonatomic) IBOutlet UIButton *pauseResumeButton; +@property (strong, nonatomic) IBOutlet UIDatePicker *picker; +@property (strong, nonatomic) IBOutlet UIButton *muteButton; +@property (strong, nonatomic) IBOutlet UIImageView *muteImageView; +@property (nonatomic) BOOL muteSound; +@property (nonatomic) NSDate *startTime; +@property (nonatomic) NSInteger duration; +@property (nonatomic) NSTimer *StopwatchTimer; +@property (nonatomic) NSTimer *circularTimerProgress; +@property (nonatomic) BOOL isPaused; +@property (nonatomic) NSInteger elapsedTime; + +@property (nonatomic) float progress; + +@end + +@implementation TimerViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"waterRotated"]]; + [self.presetsButton setBackgroundImage:[UIImage imageNamed:@"krig_Aqua_button"] forState:UIControlStateNormal]; + + self.picker.hidden = NO; + self.timeLabel.hidden = YES; + self.picker.countDownDuration = 60; + self.muteSound = NO; + self.isPaused = NO; + + /****** Interface layout *****/ + [self.startStopButton.titleLabel isEqual: @"START"]; + self.startStopButton.layer.cornerRadius = 60; + self.startStopButton.clipsToBounds = YES; + + [self.startStopButton setBackgroundImage:[UIImage imageNamed:@"drop"] forState:UIControlStateNormal]; + + self.progress = 0.0; + + [self.pauseResumeButton.titleLabel isEqual: @"PAUSE"]; + self.pauseResumeButton.layer.cornerRadius = 60; + self.pauseResumeButton.clipsToBounds = YES; + + [self.pauseResumeButton setBackgroundImage:[UIImage imageNamed:@"drop"] forState:UIControlStateNormal]; + self.pauseResumeButton.enabled = NO; + self.spinnerView.hidden = YES; + self.muteImageView.image = [UIImage imageNamed: @"SoundOn"]; + +#pragma mark - Ringtones + + NSString *path = [NSString stringWithFormat:@"%@/Clock-Ticking(1minute).mp3", [[NSBundle mainBundle] resourcePath]]; + NSURL *soundUrl = [NSURL fileURLWithPath:path]; + _clock = [[AVAudioPlayer alloc] initWithContentsOfURL:soundUrl error:nil]; + + + + NSString *path2 = [NSString stringWithFormat:@"%@/TimerIsOff.wav", [[NSBundle mainBundle] resourcePath]]; + NSURL *soundUrl2 = [NSURL fileURLWithPath:path2]; + _timerIsOver = [[AVAudioPlayer alloc] initWithContentsOfURL:soundUrl2 error:nil]; +} + +#pragma mark - Buttons + +- (IBAction)muteButton:(id)sender { + + if (self.muteImageView.image == [UIImage imageNamed: @"SoundOn"]){ + [_clock stop]; + self.muteImageView.image = [UIImage imageNamed: @"SoundOff"]; + + NSLog(@"stop"); + } + else { + NSLog(@"play"); + + [_clock play]; + self.muteImageView.image = [UIImage imageNamed: @"SoundOn"]; + } + +} + +- (IBAction)startStopButton:(id)sender { + + NSString *startStopActualLabel = self.startStopButton.titleLabel.text; + + // start button tapped + if ([startStopActualLabel isEqualToString:@"START"] ) { + [self startTimer:self.picker.countDownDuration]; + + if (self.muteSound == NO) { + [_clock play]; + } + self.progress = 0.0; + } + + else // stop button tapped + { + if (self.muteSound == YES) { + [_clock stop]; + } + self.pauseResumeButton.enabled = YES; + NSLog(@"stop pressed"); + [_clock stop]; + [_timerIsOver stop]; + [self stopTimer]; + } +} + +- (IBAction)pauseResumeButtonTapped:(id)sender { + + if (self.isPaused == NO) { + [self pauseTimer]; + self.isPaused = YES; + [_clock stop]; + + } else{ + [self resumeTimer]; + self.isPaused = NO; + if (self.muteSound == NO) { + [_clock play]; + } + else if (self.muteSound == YES) { + [_clock stop]; + } + } +} + + +#pragma mark - Timers + +- (void)spinit:(NSTimer *)timer +{ + self.progress += (0.1/self.duration); + + if(self.progress >= 1.0) { + self.progress = 1.0; + [timer invalidate]; + } + [[self spinnerView] setProgress:self.progress animated:YES]; +} + + +- (void)timerFired:(NSTimer *)timer { + + NSInteger hours, minutes, seconds ; + NSDate *now = [[NSDate alloc] init]; + self.elapsedTime = [now timeIntervalSinceDate:self.startTime]; + + seconds = (self.duration - self.elapsedTime) % 60; + minutes = ((self.duration - self.elapsedTime) / 60) % 60; + hours = ((self.duration - self.elapsedTime) / 3600) % 24; + + self.timeLabel.text = [NSString stringWithFormat:@"%02li:%02li:%02li", (long)hours, (long)minutes, (long)seconds]; + + if (self.elapsedTime == self.duration) { + [_timerIsOver play]; + [self alertView]; + [timer invalidate]; + } +} + +#pragma mark - Time methods + +-(void)startTimer:(NSInteger) duration { + + // set self.startTime to now + self.duration = duration; + self.startTime = [[NSDate alloc] init]; + + self.StopwatchTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerFired:) userInfo:nil repeats:YES]; + + self.circularTimerProgress = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(spinit:) userInfo:nil repeats:YES]; + + [self.startStopButton setBackgroundImage:[UIImage imageNamed:@"redDrop"] forState:UIControlStateNormal]; + [self.startStopButton setTitle:@"STOP" forState:UIControlStateNormal]; + + self.pauseResumeButton.enabled = YES; + [self.pauseResumeButton setBackgroundImage:[UIImage imageNamed:@"YellowDrop"] forState:UIControlStateNormal]; + + self.timeLabel.hidden = NO; + self.picker.hidden = YES; + self.spinnerView.hidden = NO; +} + +-(void) stopTimer { + + [self.StopwatchTimer invalidate]; + [self.circularTimerProgress invalidate]; + self.circularTimerProgress = nil; + + [self.startStopButton setTitle:@"START" forState:UIControlStateNormal]; + [self.startStopButton setBackgroundImage:[UIImage imageNamed:@"drop"] forState:UIControlStateNormal]; + + self.pauseResumeButton.enabled = NO; + [self.pauseResumeButton setBackgroundImage:[UIImage imageNamed:@"drop"] forState:UIControlStateNormal]; + + self.timeLabel.hidden = YES; + self.picker.hidden = NO; + self.spinnerView.hidden = YES; + +} + +-(void) pauseTimer { + + [self.StopwatchTimer invalidate]; + [self.circularTimerProgress invalidate]; + [self.pauseResumeButton setTitle:@"RESUME" forState:UIControlStateNormal]; + [self.pauseResumeButton setBackgroundImage:[UIImage imageNamed:@"drop"] forState:UIControlStateNormal]; +} + +- (void) resumeTimer; { + + [self startTimer:self.duration - self.elapsedTime]; + [self.pauseResumeButton setTitle:@"PAUSE" forState:UIControlStateNormal]; + [self.pauseResumeButton setBackgroundImage:[UIImage imageNamed:@"YellowDrop"] forState:UIControlStateNormal]; +} + +#pragma mark - Alert View + +-(void) alertView{ + + UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"TIMER!!" message:@"Time is up!" delegate:self cancelButtonTitle:@"Stop" otherButtonTitles: nil]; + [alert show]; +} + +- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { + if (buttonIndex == 0) + { + [ _timerIsOver stop]; + self.timeLabel.hidden = YES; + self.picker.hidden = NO; + self.spinnerView.hidden = YES; + } +} + +@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/WorldClockAddTableViewController.h b/Time/Time/WorldClockAddTableViewController.h new file mode 100644 index 0000000..227662b --- /dev/null +++ b/Time/Time/WorldClockAddTableViewController.h @@ -0,0 +1,14 @@ +// +// WorldClockAddTableViewController.h +// Time +// +// Created by Diana Elezaj on 8/27/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import + +@interface WorldClockAddTableViewController : UITableViewController +@property (nonatomic) NSMutableArray *selectedCitiesArray; + +@end diff --git a/Time/Time/WorldClockAddTableViewController.m b/Time/Time/WorldClockAddTableViewController.m new file mode 100644 index 0000000..5d4370e --- /dev/null +++ b/Time/Time/WorldClockAddTableViewController.m @@ -0,0 +1,228 @@ + + +// +// WorldClockAddTableViewController.m +// Time +// +// Created by Diana Elezaj on 8/27/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import "WorldClockAddTableViewController.h" +#import "WorldClockTableViewController.h" +#import "WorldClockInfo.h" + +@interface WorldClockAddTableViewController () +@property (nonatomic) NSArray *keyArray; +@property (nonatomic) NSArray *unsortedKeyArray; +@property (nonatomic) NSArray *valueArray; +@property (nonatomic) NSString* city ; +@property (nonatomic) NSString* time; +@property (nonatomic) NSMutableDictionary *clock; +@property (strong, nonatomic) NSArray *searchResults; + +@end + +@implementation WorldClockAddTableViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + [self.navigationItem setTitle:@"Add City"]; + + self.clock = [[NSMutableDictionary alloc] init]; + self.searchResults = [[NSArray alloc] init]; + self.keyArray = [[NSArray alloc] init]; + self.unsortedKeyArray = [[NSArray alloc] init]; + + + //get current time + NSDate * now = [NSDate date]; + + NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init]; + [outputFormatter setDateFormat:@"HH:mm"]; + + NSString *NYTimeString = [outputFormatter stringFromDate:now]; + + NSDate *parisTime = [now dateByAddingTimeInterval:21600]; // Add XXX seconds to *now + NSString *ParisTimeString = [outputFormatter stringFromDate:parisTime]; + + NSDate *RomeTime = [now dateByAddingTimeInterval:21600]; + NSString *RomeTimeString = [outputFormatter stringFromDate:RomeTime]; + + NSDate *MexicoCity = [now dateByAddingTimeInterval:-3600]; + NSString *MexicoCityTimeString = [outputFormatter stringFromDate:MexicoCity]; + + NSDate *NewDelhi = [now dateByAddingTimeInterval:34200]; + NSString *NewDelhiTimeString = [outputFormatter stringFromDate:NewDelhi]; + + NSDate *RioDeJaneiro = [now dateByAddingTimeInterval:3600]; + NSString *RioDeJaneiroTimeString = [outputFormatter stringFromDate:RioDeJaneiro]; + + NSDate *Tokyo = [now dateByAddingTimeInterval:46800]; + NSString *TokyoString = [outputFormatter stringFromDate:Tokyo]; + + NSDate *Delhi = [now dateByAddingTimeInterval:27000]; + NSString *DelhiString = [outputFormatter stringFromDate:Delhi]; + + NSDate *Winnipeg = [now dateByAddingTimeInterval:3600]; + NSString *WinnipegString = [outputFormatter stringFromDate:Winnipeg]; + + NSDate *Berlin = [now dateByAddingTimeInterval:46800]; + NSString *BerlinString = [outputFormatter stringFromDate:Berlin]; + + NSDate *Kyoto = [now dateByAddingTimeInterval:46800]; + NSString *KyotoString = [outputFormatter stringFromDate:Kyoto]; + + NSDate *Mogadishu = [now dateByAddingTimeInterval:25200]; + NSString *MogadishuString = [outputFormatter stringFromDate:Mogadishu]; + + NSDate *Copenhagen = [now dateByAddingTimeInterval:21600]; + NSString *CopenhagenString = [outputFormatter stringFromDate:Copenhagen]; + + NSDate *TheMoon = [now dateByAddingTimeInterval:14400]; + NSString *TheMoonString = [outputFormatter stringFromDate:TheMoon]; + + NSDate *Lincoln = [now dateByAddingTimeInterval:-3600]; + NSString *lincolnString = [outputFormatter stringFromDate:Lincoln]; + + NSDate *Hanoi = [now dateByAddingTimeInterval:39600]; + NSString *HanoiString = [outputFormatter stringFromDate:Hanoi]; + + NSDate *Halifax = [now dateByAddingTimeInterval:3600]; + NSString *HalifaxString = [outputFormatter stringFromDate:Halifax]; + + NSDate *AbuDhabi = [now dateByAddingTimeInterval:28800]; + NSString *AbuDhabiString = [outputFormatter stringFromDate:AbuDhabi]; + + NSDate *Montreal = [now dateByAddingTimeInterval:46800]; + NSString *MontrealString = [outputFormatter stringFromDate:Montreal]; + + NSDate *Vancouver = [now dateByAddingTimeInterval:-10800]; + NSString *VancouverString = [outputFormatter stringFromDate:Vancouver]; + + NSDate *Stockholm = [now dateByAddingTimeInterval:21600]; + NSString *StockholmString = [outputFormatter stringFromDate:Stockholm]; + + NSDate *London = [now dateByAddingTimeInterval:18000]; + NSString *LondonString = [outputFormatter stringFromDate:London]; + + + [self.clock setObject:NewDelhiTimeString forKey:@"New Delhi, India"]; + [self.clock setObject:MexicoCityTimeString forKey:@"Mexico City"]; + [self.clock setObject:NYTimeString forKey:@"New York, NY"]; + [self.clock setObject:RomeTimeString forKey:@"Rome, Italy"]; + [self.clock setObject:ParisTimeString forKey:@"Paris, France"]; + [self.clock setObject:RioDeJaneiroTimeString forKey:@"Rio de Janeiro, Brazil"]; + [self.clock setObject:NYTimeString forKey:@"Philadelphia"]; + [self.clock setObject:TokyoString forKey:@"Tokyo, Japan"]; + [self.clock setObject:DelhiString forKey:@"Delhi, India"]; + [self.clock setObject:WinnipegString forKey:@"Winnipeg, Canada"]; + [self.clock setObject:BerlinString forKey:@"Berlin, Germany"]; + [self.clock setObject:KyotoString forKey:@"Kyoto, Japan"]; + [self.clock setObject:MogadishuString forKey:@"Mogadishu,Somalia"]; + [self.clock setObject:CopenhagenString forKey:@"Copenhagen, Denmark"]; + [self.clock setObject:TheMoonString forKey:@"The Moon"]; + [self.clock setObject:lincolnString forKey:@"Lincoln, Nebraska"]; + [self.clock setObject:HanoiString forKey:@"Hanoi, Vietnam"]; + [self.clock setObject:HalifaxString forKey:@"Halifax, Nova Scotia"]; + [self.clock setObject:AbuDhabiString forKey:@"Abu Dhabi, U.A.E"]; + [self.clock setObject:MontrealString forKey:@"Montreal, Québec"]; + [self.clock setObject:VancouverString forKey:@"Vancouver, Canada"]; + [self.clock setObject:StockholmString forKey:@"Stockholm, Sweden"]; + [self.clock setObject:LondonString forKey:@"London, England"]; + + self.unsortedKeyArray = [self.clock allKeys]; + self.keyArray = [self.unsortedKeyArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; + self.valueArray = [self.clock allValues]; + } + +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; +} + +#pragma mark - Table view data source + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 1; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + if (tableView == self.searchDisplayController.searchResultsTableView) { + return [self.searchResults count]; + } + else + return [self.keyArray count]; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + + static NSString *cellID = @"WorldClockAddIdentifier"; + + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID ]; + if (cell == nil) { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID]; + } + + if (tableView == self.searchDisplayController.searchResultsTableView) { + cell.textLabel.text = [self.searchResults objectAtIndex:indexPath.row]; + } + else { + [cell.textLabel setText:[self.keyArray objectAtIndex:indexPath.row]]; + + } + + UIView *backView = [[UIView alloc] initWithFrame:CGRectZero]; + backView.backgroundColor = [UIColor clearColor]; + cell.backgroundView = backView; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + + WorldClockInfo *city = [[WorldClockInfo alloc] init]; + + if (tableView == self.searchDisplayController.searchResultsTableView) { + city.cityName = self.searchResults[indexPath.row]; + city.cityTime = self.clock[city.cityName]; + } else { + city.cityName = self.keyArray[indexPath.row]; + city.cityTime = self.valueArray[indexPath.row]; + + } + + [self.selectedCitiesArray addObject: city]; + [[self navigationController] popViewControllerAnimated:YES]; + [self.tableView reloadData]; + +} + +#pragma Search Methods + +-(void) filterContentForSearchText: (NSString *)searchText scope:(NSString *)scope{ + NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF beginswith[c] %@",searchText]; + + self.searchResults = [self.keyArray filteredArrayUsingPredicate:predicate]; +} + +-(BOOL) searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString { + + [self filterContentForSearchText:searchString scope:[[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:[self.searchDisplayController.searchBar selectedScopeButtonIndex]]]; + + return YES; +} + + +#pragma mark Cells color + +- (void)tableView: (UITableView*)tableView + willDisplayCell: (UITableViewCell*)cell +forRowAtIndexPath: (NSIndexPath*)indexPath +{ + cell.backgroundColor = indexPath.row % 2 + ? [UIColor colorWithRed:0.91 green:0.95 blue:0.98 alpha:1.0] + : [UIColor colorWithRed:0.76 green:0.87 blue:0.98 alpha:1.0]; + +} + +@end diff --git a/Time/Time/WorldClockInfo.h b/Time/Time/WorldClockInfo.h new file mode 100644 index 0000000..5c7b605 --- /dev/null +++ b/Time/Time/WorldClockInfo.h @@ -0,0 +1,14 @@ +// +// WorldClockInfo.h +// Time +// +// Created by Diana Elezaj on 8/27/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import + +@interface WorldClockInfo : NSObject +@property (nonatomic) NSString * cityName; +@property (nonatomic) NSString * cityTime; + @end diff --git a/Time/Time/WorldClockInfo.m b/Time/Time/WorldClockInfo.m new file mode 100644 index 0000000..fe79135 --- /dev/null +++ b/Time/Time/WorldClockInfo.m @@ -0,0 +1,13 @@ +// +// WorldClockInfo.m +// Time +// +// Created by Diana Elezaj on 8/27/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import "WorldClockInfo.h" + +@implementation WorldClockInfo + +@end diff --git a/Time/Time/WorldClockTableViewController.h b/Time/Time/WorldClockTableViewController.h new file mode 100644 index 0000000..490baca --- /dev/null +++ b/Time/Time/WorldClockTableViewController.h @@ -0,0 +1,13 @@ +// +// WorldClockTableViewController.h +// Time +// +// Created by Diana Elezaj on 8/26/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import + +@interface WorldClockTableViewController : UITableViewController + +@end diff --git a/Time/Time/WorldClockTableViewController.m b/Time/Time/WorldClockTableViewController.m new file mode 100644 index 0000000..818d10b --- /dev/null +++ b/Time/Time/WorldClockTableViewController.m @@ -0,0 +1,104 @@ +// +// WorldClockTableViewController.m +// Time +// +// Created by Diana Elezaj on 8/26/15. +// Copyright (c) 2015 Mike Kavouras. All rights reserved. +// + +#import "WorldClockTableViewController.h" +#import "WorldClockAddTableViewController.h" +#import "WorldClockInfo.h" + +@interface WorldClockTableViewController () +@property (nonatomic) NSMutableArray *selectedCitiesArray; + +@end + +@implementation WorldClockTableViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + [self.navigationItem setTitle:@"World Clock"]; + + self.selectedCitiesArray = [[NSMutableArray alloc] init]; + + //it changes the color only on second click + [[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor redColor]}]; + + self.navigationItem.leftBarButtonItem = self.editButtonItem; + + self.navigationController.view.backgroundColor = + [UIColor colorWithPatternImage:[UIImage imageNamed:@"waterRotated"]]; + self.tableView.backgroundColor = [UIColor clearColor]; + + } +-(void) viewWillAppear:(BOOL)animated { + [self.tableView reloadData]; +} + +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; +} + +#pragma mark - Table view data source + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 1; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.selectedCitiesArray.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"worldClockIdentifier" forIndexPath:indexPath]; + + WorldClockInfo *city = self.selectedCitiesArray[indexPath.row]; + cell.textLabel.text = city.cityName; + + cell.detailTextLabel.text = city.cityTime; + + return cell; +} + + +//delegate method that allows for editing when the edit button is clicked + +- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { + + if (editingStyle == UITableViewCellEditingStyleDelete) { + + // Delete the row from the data source + [self.selectedCitiesArray removeObjectAtIndex:indexPath.row]; + + [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES]; + + //entry removed from data source now reload + [self.tableView reloadData]; + } +} + +#pragma mark Cells color +- (void)tableView: (UITableView*)tableView + willDisplayCell: (UITableViewCell*)cell +forRowAtIndexPath: (NSIndexPath*)indexPath +{ + cell.backgroundColor = indexPath.row % 2 + ? [UIColor colorWithRed:0.91 green:0.95 blue:0.98 alpha:1.0] + : [UIColor colorWithRed:0.76 green:0.87 blue:0.98 alpha:1.0]; + +} + +#pragma mark - Navigation + + +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + + WorldClockAddTableViewController *vc = segue.destinationViewController; + vc.selectedCitiesArray = self.selectedCitiesArray; + } + + + +@end diff --git a/Time/Time/clock-ticking-5.mp3 b/Time/Time/clock-ticking-5.mp3 new file mode 100644 index 0000000..f100dca Binary files /dev/null and b/Time/Time/clock-ticking-5.mp3 differ diff --git a/Time/Time/clock-ticking.mp3 b/Time/Time/clock-ticking.mp3 new file mode 100644 index 0000000..f100dca Binary files /dev/null and b/Time/Time/clock-ticking.mp3 differ diff --git a/Time/Time/digital-7 (italic).ttf b/Time/Time/digital-7 (italic).ttf new file mode 100755 index 0000000..c120ab4 Binary files /dev/null and b/Time/Time/digital-7 (italic).ttf differ diff --git a/Time/Time/digital-7 (mono).ttf b/Time/Time/digital-7 (mono).ttf new file mode 100755 index 0000000..e94f8e3 Binary files /dev/null and b/Time/Time/digital-7 (mono).ttf differ diff --git a/Time/Time/digital-7.ttf b/Time/Time/digital-7.ttf new file mode 100755 index 0000000..e51060b Binary files /dev/null and b/Time/Time/digital-7.ttf differ diff --git a/Time/Time/ding.wav b/Time/Time/ding.wav new file mode 100644 index 0000000..bf749f3 Binary files /dev/null and b/Time/Time/ding.wav differ diff --git a/Time/digitalFont.ttf b/Time/digitalFont.ttf new file mode 100755 index 0000000..e51060b Binary files /dev/null and b/Time/digitalFont.ttf differ diff --git a/Time/ds_digital/digital-7 (italic).ttf b/Time/ds_digital/digital-7 (italic).ttf new file mode 100755 index 0000000..c120ab4 Binary files /dev/null and b/Time/ds_digital/digital-7 (italic).ttf differ diff --git a/Time/ds_digital/digital-7 (mono).ttf b/Time/ds_digital/digital-7 (mono).ttf new file mode 100755 index 0000000..e94f8e3 Binary files /dev/null and b/Time/ds_digital/digital-7 (mono).ttf differ diff --git a/Time/ds_digital/digital-7.ttf b/Time/ds_digital/digital-7.ttf new file mode 100755 index 0000000..e51060b Binary files /dev/null and b/Time/ds_digital/digital-7.ttf differ