diff --git a/Time/Time.xcodeproj/project.pbxproj b/Time/Time.xcodeproj/project.pbxproj deleted file mode 100644 index c8743f0..0000000 --- a/Time/Time.xcodeproj/project.pbxproj +++ /dev/null @@ -1,433 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 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 */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 8D0537721B86687C00588318 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 8D0537501B86687B00588318 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8D0537571B86687B00588318; - remoteInfo = Time; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 8D0537581B86687B00588318 /* Time.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Time.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 8D05375C1B86687B00588318 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8D05375D1B86687C00588318 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 8D05375F1B86687C00588318 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 8D0537601B86687C00588318 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 8D0537621B86687C00588318 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; - 8D0537631B86687C00588318 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; - 8D0537661B86687C00588318 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 8D0537681B86687C00588318 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; - 8D05376B1B86687C00588318 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; - 8D0537711B86687C00588318 /* TimeTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TimeTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 8D0537761B86687C00588318 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8D0537771B86687C00588318 /* TimeTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TimeTests.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D0537551B86687B00588318 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 8D05376E1B86687C00588318 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 8D05374F1B86687B00588318 = { - isa = PBXGroup; - children = ( - 8D05375A1B86687B00588318 /* Time */, - 8D0537741B86687C00588318 /* TimeTests */, - 8D0537591B86687B00588318 /* Products */, - ); - sourceTree = ""; - }; - 8D0537591B86687B00588318 /* Products */ = { - isa = PBXGroup; - children = ( - 8D0537581B86687B00588318 /* Time.app */, - 8D0537711B86687C00588318 /* TimeTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 8D05375A1B86687B00588318 /* Time */ = { - isa = PBXGroup; - children = ( - 8D05375F1B86687C00588318 /* AppDelegate.h */, - 8D0537601B86687C00588318 /* AppDelegate.m */, - 8D0537621B86687C00588318 /* ViewController.h */, - 8D0537631B86687C00588318 /* ViewController.m */, - 8D0537651B86687C00588318 /* Main.storyboard */, - 8D0537681B86687C00588318 /* Images.xcassets */, - 8D05376A1B86687C00588318 /* LaunchScreen.xib */, - 8D05375B1B86687B00588318 /* Supporting Files */, - ); - path = Time; - sourceTree = ""; - }; - 8D05375B1B86687B00588318 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 8D05375C1B86687B00588318 /* Info.plist */, - 8D05375D1B86687C00588318 /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 8D0537741B86687C00588318 /* TimeTests */ = { - isa = PBXGroup; - children = ( - 8D0537771B86687C00588318 /* TimeTests.m */, - 8D0537751B86687C00588318 /* Supporting Files */, - ); - path = TimeTests; - sourceTree = ""; - }; - 8D0537751B86687C00588318 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 8D0537761B86687C00588318 /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D0537571B86687B00588318 /* Time */ = { - isa = PBXNativeTarget; - buildConfigurationList = 8D05377B1B86687C00588318 /* Build configuration list for PBXNativeTarget "Time" */; - buildPhases = ( - 8D0537541B86687B00588318 /* Sources */, - 8D0537551B86687B00588318 /* Frameworks */, - 8D0537561B86687B00588318 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Time; - productName = Time; - productReference = 8D0537581B86687B00588318 /* Time.app */; - productType = "com.apple.product-type.application"; - }; - 8D0537701B86687C00588318 /* TimeTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 8D05377E1B86687C00588318 /* Build configuration list for PBXNativeTarget "TimeTests" */; - buildPhases = ( - 8D05376D1B86687C00588318 /* Sources */, - 8D05376E1B86687C00588318 /* Frameworks */, - 8D05376F1B86687C00588318 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 8D0537731B86687C00588318 /* PBXTargetDependency */, - ); - name = TimeTests; - productName = TimeTests; - productReference = 8D0537711B86687C00588318 /* TimeTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 8D0537501B86687B00588318 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0640; - ORGANIZATIONNAME = "Mike Kavouras"; - TargetAttributes = { - 8D0537571B86687B00588318 = { - CreatedOnToolsVersion = 6.4; - }; - 8D0537701B86687C00588318 = { - CreatedOnToolsVersion = 6.4; - TestTargetID = 8D0537571B86687B00588318; - }; - }; - }; - buildConfigurationList = 8D0537531B86687B00588318 /* Build configuration list for PBXProject "Time" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 8D05374F1B86687B00588318; - productRefGroup = 8D0537591B86687B00588318 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8D0537571B86687B00588318 /* Time */, - 8D0537701B86687C00588318 /* TimeTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D0537561B86687B00588318 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D0537671B86687C00588318 /* Main.storyboard in Resources */, - 8D05376C1B86687C00588318 /* LaunchScreen.xib in Resources */, - 8D0537691B86687C00588318 /* Images.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 8D05376F1B86687C00588318 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D0537541B86687B00588318 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D0537641B86687C00588318 /* ViewController.m in Sources */, - 8D0537611B86687C00588318 /* AppDelegate.m in Sources */, - 8D05375E1B86687C00588318 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 8D05376D1B86687C00588318 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D0537781B86687C00588318 /* TimeTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 8D0537731B86687C00588318 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 8D0537571B86687B00588318 /* Time */; - targetProxy = 8D0537721B86687C00588318 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 8D0537651B86687C00588318 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 8D0537661B86687C00588318 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 8D05376A1B86687C00588318 /* LaunchScreen.xib */ = { - isa = PBXVariantGroup; - children = ( - 8D05376B1B86687C00588318 /* Base */, - ); - name = LaunchScreen.xib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 8D0537791B86687C00588318 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 8D05377A1B86687C00588318 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 8D05377C1B86687C00588318 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - INFOPLIST_FILE = Time/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 8D05377D1B86687C00588318 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - INFOPLIST_FILE = Time/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; - 8D05377F1B86687C00588318 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = TimeTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Time.app/Time"; - }; - name = Debug; - }; - 8D0537801B86687C00588318 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - INFOPLIST_FILE = TimeTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Time.app/Time"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 8D0537531B86687B00588318 /* Build configuration list for PBXProject "Time" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8D0537791B86687C00588318 /* Debug */, - 8D05377A1B86687C00588318 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 8D05377B1B86687C00588318 /* Build configuration list for PBXNativeTarget "Time" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8D05377C1B86687C00588318 /* Debug */, - 8D05377D1B86687C00588318 /* Release */, - ); - defaultConfigurationIsVisible = 0; - }; - 8D05377E1B86687C00588318 /* Build configuration list for PBXNativeTarget "TimeTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8D05377F1B86687C00588318 /* Debug */, - 8D0537801B86687C00588318 /* Release */, - ); - defaultConfigurationIsVisible = 0; - }; -/* End XCConfigurationList section */ - }; - rootObject = 8D0537501B86687B00588318 /* Project object */; -} diff --git a/Time/Time/AppDelegate.h b/Time/Time/AppDelegate.h deleted file mode 100644 index c5a324b..0000000 --- a/Time/Time/AppDelegate.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// AppDelegate.h -// Time -// -// Created by Michael Kavouras on 8/20/15. -// Copyright (c) 2015 Mike Kavouras. All rights reserved. -// - -#import - -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - - -@end - diff --git a/Time/Time/AppDelegate.m b/Time/Time/AppDelegate.m deleted file mode 100644 index d59e7a8..0000000 --- a/Time/Time/AppDelegate.m +++ /dev/null @@ -1,45 +0,0 @@ -// -// AppDelegate.m -// Time -// -// Created by Michael Kavouras on 8/20/15. -// Copyright (c) 2015 Mike Kavouras. All rights reserved. -// - -#import "AppDelegate.h" - -@interface AppDelegate () - -@end - -@implementation AppDelegate - - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - // Override point for customization after application launch. - return YES; -} - -- (void)applicationWillResignActive:(UIApplication *)application { - // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. - // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. -} - -- (void)applicationDidEnterBackground:(UIApplication *)application { - // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. - // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. -} - -- (void)applicationWillEnterForeground:(UIApplication *)application { - // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. -} - -- (void)applicationDidBecomeActive:(UIApplication *)application { - // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. -} - -- (void)applicationWillTerminate:(UIApplication *)application { - // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. -} - -@end diff --git a/Time/Time/Base.lproj/LaunchScreen.xib b/Time/Time/Base.lproj/LaunchScreen.xib deleted file mode 100644 index f9a54ff..0000000 --- a/Time/Time/Base.lproj/LaunchScreen.xib +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/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/main.m b/Time/Time/main.m deleted file mode 100644 index 9583fe1..0000000 --- a/Time/Time/main.m +++ /dev/null @@ -1,16 +0,0 @@ -// -// main.m -// Time -// -// Created by Michael Kavouras on 8/20/15. -// Copyright (c) 2015 Mike Kavouras. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/Time/TimeTests/TimeTests.m b/Time/TimeTests/TimeTests.m deleted file mode 100644 index 944060f..0000000 --- a/Time/TimeTests/TimeTests.m +++ /dev/null @@ -1,40 +0,0 @@ -// -// TimeTests.m -// TimeTests -// -// Created by Michael Kavouras on 8/20/15. -// Copyright (c) 2015 Mike Kavouras. All rights reserved. -// - -#import -#import - -@interface TimeTests : XCTestCase - -@end - -@implementation TimeTests - -- (void)setUp { - [super setUp]; - // Put setup code here. This method is called before the invocation of each test method in the class. -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. - [super tearDown]; -} - -- (void)testExample { - // This is an example of a functional test case. - XCTAssert(YES, @"Pass"); -} - -- (void)testPerformanceExample { - // This is an example of a performance test case. - [self measureBlock:^{ - // Put the code you want to measure the time of here. - }]; -} - -@end diff --git a/Timer Demo/AddTimerViewController.swift b/Timer Demo/AddTimerViewController.swift new file mode 100644 index 0000000..556820b --- /dev/null +++ b/Timer Demo/AddTimerViewController.swift @@ -0,0 +1,37 @@ +// +// AddTimerViewController.swift +// Timer Demo +// +// Created by Jovanny Espinal on 8/29/15. +// Copyright © 2015 dereknetto. All rights reserved. +// + +import UIKit + +protocol AddTimerViewControllerDelegate { + func addTimerViewController(viewController: AddTimerViewController, didCreateNewTimer timer:Timer) +} + +class AddTimerViewController: UIViewController { + + @IBOutlet weak var timerNameField: UITextField! + @IBOutlet weak var timerPicker: UIDatePicker! + + var delegate: AddTimerViewControllerDelegate? + + override func viewDidLoad() { + super.viewDidLoad() + + timerPicker.countDownDuration = 60 + + + // Do any additional setup after loading the view. + } + + @IBAction func saveTimerButtonTapped(sender: AnyObject) { + let newTimer = Timer(name: timerNameField.text!, startTime: timerPicker.countDownDuration) + delegate?.addTimerViewController(self, didCreateNewTimer: newTimer) + self.navigationController?.popViewControllerAnimated(true) + } + +} diff --git a/Timer Demo/Timer Demo.xcodeproj/project.pbxproj b/Timer Demo/Timer Demo.xcodeproj/project.pbxproj new file mode 100644 index 0000000..154a054 --- /dev/null +++ b/Timer Demo/Timer Demo.xcodeproj/project.pbxproj @@ -0,0 +1,570 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 5016E10C1B89209300C5EFFD /* TableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5016E10B1B89209300C5EFFD /* TableViewCell.swift */; }; + 504DC2291B8FE3E30071A35E /* StopwatchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504DC2281B8FE3E30071A35E /* StopwatchViewController.swift */; }; + 504DC22B1B91FD8A0071A35E /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 504DC22A1B91FD8A0071A35E /* AVFoundation.framework */; }; + 504DC2311B922AB60071A35E /* LoudAlarmClockBuzzer.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 504DC2301B922AB60071A35E /* LoudAlarmClockBuzzer.mp3 */; }; + 504DC2331B922CF30071A35E /* AddTimerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504DC2321B922CF30071A35E /* AddTimerViewController.swift */; }; + 691BEA121B935EBF000CF91E /* CountdownTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 691BEA111B935EBF000CF91E /* CountdownTableViewCell.swift */; }; + 693E17541B93AF2800CCC1EE /* Countdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 693E17531B93AF2800CCC1EE /* Countdown.swift */; }; + 693E17561B93F43900CCC1EE /* NSDate+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 693E17551B93F43900CCC1EE /* NSDate+Extension.swift */; }; + 693E17581B93F5B500CCC1EE /* NSDateTimeAgo.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 693E17571B93F5B500CCC1EE /* NSDateTimeAgo.bundle */; }; + 6981737C1B88EFF0000D38F2 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6981737B1B88EFF0000D38F2 /* AppDelegate.swift */; }; + 6981737E1B88EFF0000D38F2 /* TimerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6981737D1B88EFF0000D38F2 /* TimerViewController.swift */; }; + 698173811B88EFF0000D38F2 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6981737F1B88EFF0000D38F2 /* Main.storyboard */; }; + 698173831B88EFF0000D38F2 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 698173821B88EFF0000D38F2 /* Assets.xcassets */; }; + 698173861B88EFF0000D38F2 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 698173841B88EFF0000D38F2 /* LaunchScreen.storyboard */; }; + 698173911B88EFF0000D38F2 /* Timer_DemoTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 698173901B88EFF0000D38F2 /* Timer_DemoTests.swift */; }; + 6981739C1B88EFF0000D38F2 /* Timer_DemoUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6981739B1B88EFF0000D38F2 /* Timer_DemoUITests.swift */; }; + 698173AA1B88F28C000D38F2 /* Timer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 698173A91B88F28C000D38F2 /* Timer.swift */; }; + 69B738381B92B07B00390657 /* CountdownViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69B738361B92B07B00390657 /* CountdownViewController.swift */; }; + 69B738391B92B07B00390657 /* AddCountdownViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69B738371B92B07B00390657 /* AddCountdownViewController.swift */; }; + 69F51D721B92AA4D004F3874 /* TimeUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69F51D711B92AA4D004F3874 /* TimeUtilities.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 6981738D1B88EFF0000D38F2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 698173701B88EFF0000D38F2 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 698173771B88EFF0000D38F2; + remoteInfo = "Timer Demo"; + }; + 698173981B88EFF0000D38F2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 698173701B88EFF0000D38F2 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 698173771B88EFF0000D38F2; + remoteInfo = "Timer Demo"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 5016E10B1B89209300C5EFFD /* TableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableViewCell.swift; sourceTree = ""; }; + 504DC2281B8FE3E30071A35E /* StopwatchViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StopwatchViewController.swift; sourceTree = ""; }; + 504DC22A1B91FD8A0071A35E /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + 504DC2301B922AB60071A35E /* LoudAlarmClockBuzzer.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = LoudAlarmClockBuzzer.mp3; sourceTree = ""; }; + 504DC2321B922CF30071A35E /* AddTimerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AddTimerViewController.swift; path = ../AddTimerViewController.swift; sourceTree = ""; }; + 691BEA111B935EBF000CF91E /* CountdownTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CountdownTableViewCell.swift; sourceTree = ""; }; + 693E17531B93AF2800CCC1EE /* Countdown.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Countdown.swift; sourceTree = ""; }; + 693E17551B93F43900CCC1EE /* NSDate+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSDate+Extension.swift"; sourceTree = ""; }; + 693E17571B93F5B500CCC1EE /* NSDateTimeAgo.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = NSDateTimeAgo.bundle; sourceTree = ""; }; + 698173781B88EFF0000D38F2 /* Timer Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Timer Demo.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6981737B1B88EFF0000D38F2 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 6981737D1B88EFF0000D38F2 /* TimerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimerViewController.swift; sourceTree = ""; }; + 698173801B88EFF0000D38F2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 698173821B88EFF0000D38F2 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 698173851B88EFF0000D38F2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 698173871B88EFF0000D38F2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 6981738C1B88EFF0000D38F2 /* Timer DemoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Timer DemoTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 698173901B88EFF0000D38F2 /* Timer_DemoTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Timer_DemoTests.swift; sourceTree = ""; }; + 698173921B88EFF0000D38F2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 698173971B88EFF0000D38F2 /* Timer DemoUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Timer DemoUITests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6981739B1B88EFF0000D38F2 /* Timer_DemoUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Timer_DemoUITests.swift; sourceTree = ""; }; + 6981739D1B88EFF0000D38F2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 698173A91B88F28C000D38F2 /* Timer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Timer.swift; sourceTree = ""; }; + 69B738361B92B07B00390657 /* CountdownViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CountdownViewController.swift; sourceTree = ""; }; + 69B738371B92B07B00390657 /* AddCountdownViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddCountdownViewController.swift; sourceTree = ""; }; + 69F51D711B92AA4D004F3874 /* TimeUtilities.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimeUtilities.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 698173751B88EFF0000D38F2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 504DC22B1B91FD8A0071A35E /* AVFoundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 698173891B88EFF0000D38F2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 698173941B88EFF0000D38F2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 6981736F1B88EFF0000D38F2 = { + isa = PBXGroup; + children = ( + 504DC22A1B91FD8A0071A35E /* AVFoundation.framework */, + 6981737A1B88EFF0000D38F2 /* Timer Demo */, + 6981738F1B88EFF0000D38F2 /* Timer DemoTests */, + 6981739A1B88EFF0000D38F2 /* Timer DemoUITests */, + 698173791B88EFF0000D38F2 /* Products */, + ); + sourceTree = ""; + }; + 698173791B88EFF0000D38F2 /* Products */ = { + isa = PBXGroup; + children = ( + 698173781B88EFF0000D38F2 /* Timer Demo.app */, + 6981738C1B88EFF0000D38F2 /* Timer DemoTests.xctest */, + 698173971B88EFF0000D38F2 /* Timer DemoUITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 6981737A1B88EFF0000D38F2 /* Timer Demo */ = { + isa = PBXGroup; + children = ( + 693E17571B93F5B500CCC1EE /* NSDateTimeAgo.bundle */, + 6981737B1B88EFF0000D38F2 /* AppDelegate.swift */, + 693E17551B93F43900CCC1EE /* NSDate+Extension.swift */, + 69F51D711B92AA4D004F3874 /* TimeUtilities.swift */, + 698173A91B88F28C000D38F2 /* Timer.swift */, + 5016E10B1B89209300C5EFFD /* TableViewCell.swift */, + 6981737D1B88EFF0000D38F2 /* TimerViewController.swift */, + 504DC2321B922CF30071A35E /* AddTimerViewController.swift */, + 504DC2281B8FE3E30071A35E /* StopwatchViewController.swift */, + 693E17531B93AF2800CCC1EE /* Countdown.swift */, + 691BEA111B935EBF000CF91E /* CountdownTableViewCell.swift */, + 69B738361B92B07B00390657 /* CountdownViewController.swift */, + 69B738371B92B07B00390657 /* AddCountdownViewController.swift */, + 504DC2301B922AB60071A35E /* LoudAlarmClockBuzzer.mp3 */, + 6981737F1B88EFF0000D38F2 /* Main.storyboard */, + 698173821B88EFF0000D38F2 /* Assets.xcassets */, + 698173841B88EFF0000D38F2 /* LaunchScreen.storyboard */, + 698173871B88EFF0000D38F2 /* Info.plist */, + ); + path = "Timer Demo"; + sourceTree = ""; + }; + 6981738F1B88EFF0000D38F2 /* Timer DemoTests */ = { + isa = PBXGroup; + children = ( + 698173901B88EFF0000D38F2 /* Timer_DemoTests.swift */, + 698173921B88EFF0000D38F2 /* Info.plist */, + ); + path = "Timer DemoTests"; + sourceTree = ""; + }; + 6981739A1B88EFF0000D38F2 /* Timer DemoUITests */ = { + isa = PBXGroup; + children = ( + 6981739B1B88EFF0000D38F2 /* Timer_DemoUITests.swift */, + 6981739D1B88EFF0000D38F2 /* Info.plist */, + ); + path = "Timer DemoUITests"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 698173771B88EFF0000D38F2 /* Timer Demo */ = { + isa = PBXNativeTarget; + buildConfigurationList = 698173A01B88EFF0000D38F2 /* Build configuration list for PBXNativeTarget "Timer Demo" */; + buildPhases = ( + 698173741B88EFF0000D38F2 /* Sources */, + 698173751B88EFF0000D38F2 /* Frameworks */, + 698173761B88EFF0000D38F2 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Timer Demo"; + productName = "Timer Demo"; + productReference = 698173781B88EFF0000D38F2 /* Timer Demo.app */; + productType = "com.apple.product-type.application"; + }; + 6981738B1B88EFF0000D38F2 /* Timer DemoTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 698173A31B88EFF0000D38F2 /* Build configuration list for PBXNativeTarget "Timer DemoTests" */; + buildPhases = ( + 698173881B88EFF0000D38F2 /* Sources */, + 698173891B88EFF0000D38F2 /* Frameworks */, + 6981738A1B88EFF0000D38F2 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 6981738E1B88EFF0000D38F2 /* PBXTargetDependency */, + ); + name = "Timer DemoTests"; + productName = "Timer DemoTests"; + productReference = 6981738C1B88EFF0000D38F2 /* Timer DemoTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 698173961B88EFF0000D38F2 /* Timer DemoUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 698173A61B88EFF0000D38F2 /* Build configuration list for PBXNativeTarget "Timer DemoUITests" */; + buildPhases = ( + 698173931B88EFF0000D38F2 /* Sources */, + 698173941B88EFF0000D38F2 /* Frameworks */, + 698173951B88EFF0000D38F2 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 698173991B88EFF0000D38F2 /* PBXTargetDependency */, + ); + name = "Timer DemoUITests"; + productName = "Timer DemoUITests"; + productReference = 698173971B88EFF0000D38F2 /* Timer DemoUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 698173701B88EFF0000D38F2 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0700; + ORGANIZATIONNAME = dereknetto; + TargetAttributes = { + 698173771B88EFF0000D38F2 = { + CreatedOnToolsVersion = 7.0; + DevelopmentTeam = D89RJC2KAA; + }; + 6981738B1B88EFF0000D38F2 = { + CreatedOnToolsVersion = 7.0; + TestTargetID = 698173771B88EFF0000D38F2; + }; + 698173961B88EFF0000D38F2 = { + CreatedOnToolsVersion = 7.0; + TestTargetID = 698173771B88EFF0000D38F2; + }; + }; + }; + buildConfigurationList = 698173731B88EFF0000D38F2 /* Build configuration list for PBXProject "Timer Demo" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 6981736F1B88EFF0000D38F2; + productRefGroup = 698173791B88EFF0000D38F2 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 698173771B88EFF0000D38F2 /* Timer Demo */, + 6981738B1B88EFF0000D38F2 /* Timer DemoTests */, + 698173961B88EFF0000D38F2 /* Timer DemoUITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 698173761B88EFF0000D38F2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 698173861B88EFF0000D38F2 /* LaunchScreen.storyboard in Resources */, + 693E17581B93F5B500CCC1EE /* NSDateTimeAgo.bundle in Resources */, + 504DC2311B922AB60071A35E /* LoudAlarmClockBuzzer.mp3 in Resources */, + 698173831B88EFF0000D38F2 /* Assets.xcassets in Resources */, + 698173811B88EFF0000D38F2 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6981738A1B88EFF0000D38F2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 698173951B88EFF0000D38F2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 698173741B88EFF0000D38F2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 693E17561B93F43900CCC1EE /* NSDate+Extension.swift in Sources */, + 69B738381B92B07B00390657 /* CountdownViewController.swift in Sources */, + 691BEA121B935EBF000CF91E /* CountdownTableViewCell.swift in Sources */, + 69F51D721B92AA4D004F3874 /* TimeUtilities.swift in Sources */, + 698173AA1B88F28C000D38F2 /* Timer.swift in Sources */, + 5016E10C1B89209300C5EFFD /* TableViewCell.swift in Sources */, + 504DC2291B8FE3E30071A35E /* StopwatchViewController.swift in Sources */, + 69B738391B92B07B00390657 /* AddCountdownViewController.swift in Sources */, + 693E17541B93AF2800CCC1EE /* Countdown.swift in Sources */, + 6981737E1B88EFF0000D38F2 /* TimerViewController.swift in Sources */, + 6981737C1B88EFF0000D38F2 /* AppDelegate.swift in Sources */, + 504DC2331B922CF30071A35E /* AddTimerViewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 698173881B88EFF0000D38F2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 698173911B88EFF0000D38F2 /* Timer_DemoTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 698173931B88EFF0000D38F2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6981739C1B88EFF0000D38F2 /* Timer_DemoUITests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 6981738E1B88EFF0000D38F2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 698173771B88EFF0000D38F2 /* Timer Demo */; + targetProxy = 6981738D1B88EFF0000D38F2 /* PBXContainerItemProxy */; + }; + 698173991B88EFF0000D38F2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 698173771B88EFF0000D38F2 /* Timer Demo */; + targetProxy = 698173981B88EFF0000D38F2 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 6981737F1B88EFF0000D38F2 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 698173801B88EFF0000D38F2 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 698173841B88EFF0000D38F2 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 698173851B88EFF0000D38F2 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 6981739E1B88EFF0000D38F2 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 6981739F1B88EFF0000D38F2 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 698173A11B88EFF0000D38F2 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + INFOPLIST_FILE = "Timer Demo/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.4; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "nyc.c4q.Derek316x.Timer-Demo"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + }; + name = Debug; + }; + 698173A21B88EFF0000D38F2 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + INFOPLIST_FILE = "Timer Demo/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.4; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "nyc.c4q.Derek316x.Timer-Demo"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + }; + name = Release; + }; + 698173A41B88EFF0000D38F2 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + INFOPLIST_FILE = "Timer DemoTests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "nyc.c4q.Derek316x.Timer-DemoTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Timer Demo.app/Timer Demo"; + }; + name = Debug; + }; + 698173A51B88EFF0000D38F2 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + INFOPLIST_FILE = "Timer DemoTests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "nyc.c4q.Derek316x.Timer-DemoTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Timer Demo.app/Timer Demo"; + }; + name = Release; + }; + 698173A71B88EFF0000D38F2 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = "Timer DemoUITests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "nyc.c4q.Derek316x.Timer-DemoUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_TARGET_NAME = "Timer Demo"; + USES_XCTRUNNER = YES; + }; + name = Debug; + }; + 698173A81B88EFF0000D38F2 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = "Timer DemoUITests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "nyc.c4q.Derek316x.Timer-DemoUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_TARGET_NAME = "Timer Demo"; + USES_XCTRUNNER = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 698173731B88EFF0000D38F2 /* Build configuration list for PBXProject "Timer Demo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6981739E1B88EFF0000D38F2 /* Debug */, + 6981739F1B88EFF0000D38F2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 698173A01B88EFF0000D38F2 /* Build configuration list for PBXNativeTarget "Timer Demo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 698173A11B88EFF0000D38F2 /* Debug */, + 698173A21B88EFF0000D38F2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 698173A31B88EFF0000D38F2 /* Build configuration list for PBXNativeTarget "Timer DemoTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 698173A41B88EFF0000D38F2 /* Debug */, + 698173A51B88EFF0000D38F2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 698173A61B88EFF0000D38F2 /* Build configuration list for PBXNativeTarget "Timer DemoUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 698173A71B88EFF0000D38F2 /* Debug */, + 698173A81B88EFF0000D38F2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 698173701B88EFF0000D38F2 /* Project object */; +} diff --git a/Time/Time.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Timer Demo/Timer Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 70% rename from Time/Time.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to Timer Demo/Timer Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata index 85e10aa..aa4b452 100644 --- a/Time/Time.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/Timer Demo/Timer Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -2,6 +2,6 @@ + location = "self:Timer Demo.xcodeproj"> diff --git a/Timer Demo/Timer Demo/AddCountdownViewController.swift b/Timer Demo/Timer Demo/AddCountdownViewController.swift new file mode 100644 index 0000000..c96728f --- /dev/null +++ b/Timer Demo/Timer Demo/AddCountdownViewController.swift @@ -0,0 +1,65 @@ +// +// AddCountdownViewController.swift +// Countdown +// +// Created by Z on 8/29/15. +// Copyright © 2015 dereknetto. All rights reserved. +// + +import UIKit + +protocol AddCountdownViewControllerDelegate { + func addCountdownViewController(viewController: AddCountdownViewController, didCreateNewCountdown countdown:Countdown) +} + +class AddCountdownViewController: UIViewController, UITextFieldDelegate { + + var delegate: AddCountdownViewControllerDelegate? + + @IBOutlet weak var datePicker: UIDatePicker! + @IBOutlet weak var targetDateLabel: UILabel! + @IBOutlet weak var targetTimeLabel: UILabel! + @IBOutlet weak var timerNameTextField: UITextField! + @IBOutlet weak var setCountdownButton: UIButton! + + override func viewDidLoad() { + super.viewDidLoad() + + + datePicker.backgroundColor = UIColor.groupTableViewBackgroundColor() + timerNameTextField.delegate = self + + updateDateAndTimeLabel() + } + + func updateDateAndTimeLabel(){ + let dateAndTime = dateAndTimeStringsfromDate(datePicker.date) + targetDateLabel.text = (dateAndTime as NSArray).objectAtIndex(0) as? String + targetTimeLabel.text = (dateAndTime as NSArray).objectAtIndex(1)as? String + } + + @IBAction func datePickerValueChanged(sender: UIDatePicker) { + datePicker.minimumDate = NSDate() + updateDateAndTimeLabel() + } + + @IBAction func setCountdownButtonTapped(sender: UIButton) { + if (datePicker.date.timeIntervalSinceNow > 0) && (timerNameTextField.text != nil){ + let newTargetDate = datePicker.date + let newName = timerNameTextField.text + let newCountdown = Countdown(name: newName!, targetDate: newTargetDate) + + print(newTargetDate) + + delegate?.addCountdownViewController(self, didCreateNewCountdown: newCountdown) + self.navigationController?.popViewControllerAnimated(true) + + } + } + + //MARK: Textfield methods + func textFieldShouldReturn(textField: UITextField) -> Bool { + view.endEditing(true) + return false + } +} diff --git a/Timer Demo/Timer Demo/AppDelegate.swift b/Timer Demo/Timer Demo/AppDelegate.swift new file mode 100644 index 0000000..8c7b0a7 --- /dev/null +++ b/Timer Demo/Timer Demo/AppDelegate.swift @@ -0,0 +1,46 @@ +// +// AppDelegate.swift +// Timer Demo +// +// Created by Z on 8/22/15. +// Copyright © 2015 dereknetto. All rights reserved. +// + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + + func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { + // Override point for customization after application launch. + return true + } + + func applicationWillResignActive(application: UIApplication) { + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. + } + + func applicationDidEnterBackground(application: UIApplication) { + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. + } + + func applicationWillEnterForeground(application: UIApplication) { + // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. + } + + func applicationDidBecomeActive(application: UIApplication) { + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. + } + + func applicationWillTerminate(application: UIApplication) { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. + } + + +} + diff --git a/Timer Demo/Timer Demo/Assets.xcassets/AlarmClock.imageset/AlarmClock.png b/Timer Demo/Timer Demo/Assets.xcassets/AlarmClock.imageset/AlarmClock.png new file mode 100644 index 0000000..f7bfad0 Binary files /dev/null and b/Timer Demo/Timer Demo/Assets.xcassets/AlarmClock.imageset/AlarmClock.png differ diff --git a/Timer Demo/Timer Demo/Assets.xcassets/AlarmClock.imageset/Contents.json b/Timer Demo/Timer Demo/Assets.xcassets/AlarmClock.imageset/Contents.json new file mode 100644 index 0000000..5dec301 --- /dev/null +++ b/Timer Demo/Timer Demo/Assets.xcassets/AlarmClock.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "AlarmClock.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Timer Demo/Timer Demo/Assets.xcassets/AlarmClockFilled.imageset/AlarmClockFilled.png b/Timer Demo/Timer Demo/Assets.xcassets/AlarmClockFilled.imageset/AlarmClockFilled.png new file mode 100644 index 0000000..9997cb0 Binary files /dev/null and b/Timer Demo/Timer Demo/Assets.xcassets/AlarmClockFilled.imageset/AlarmClockFilled.png differ diff --git a/Timer Demo/Timer Demo/Assets.xcassets/AlarmClockFilled.imageset/Contents.json b/Timer Demo/Timer Demo/Assets.xcassets/AlarmClockFilled.imageset/Contents.json new file mode 100644 index 0000000..2d3b271 --- /dev/null +++ b/Timer Demo/Timer Demo/Assets.xcassets/AlarmClockFilled.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "AlarmClockFilled.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Time/Time/Images.xcassets/AppIcon.appiconset/Contents.json b/Timer Demo/Timer Demo/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from Time/Time/Images.xcassets/AppIcon.appiconset/Contents.json rename to Timer Demo/Timer Demo/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/Timer Demo/Timer Demo/Assets.xcassets/Calendar.imageset/Calendar.png b/Timer Demo/Timer Demo/Assets.xcassets/Calendar.imageset/Calendar.png new file mode 100644 index 0000000..a90d6cb Binary files /dev/null and b/Timer Demo/Timer Demo/Assets.xcassets/Calendar.imageset/Calendar.png differ diff --git a/Timer Demo/Timer Demo/Assets.xcassets/Calendar.imageset/Contents.json b/Timer Demo/Timer Demo/Assets.xcassets/Calendar.imageset/Contents.json new file mode 100644 index 0000000..3863648 --- /dev/null +++ b/Timer Demo/Timer Demo/Assets.xcassets/Calendar.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "Calendar.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Timer Demo/Timer Demo/Assets.xcassets/CalendarFilled.imageset/CalendarFilled.png b/Timer Demo/Timer Demo/Assets.xcassets/CalendarFilled.imageset/CalendarFilled.png new file mode 100644 index 0000000..9ba3d73 Binary files /dev/null and b/Timer Demo/Timer Demo/Assets.xcassets/CalendarFilled.imageset/CalendarFilled.png differ diff --git a/Timer Demo/Timer Demo/Assets.xcassets/CalendarFilled.imageset/Contents.json b/Timer Demo/Timer Demo/Assets.xcassets/CalendarFilled.imageset/Contents.json new file mode 100644 index 0000000..5d64f68 --- /dev/null +++ b/Timer Demo/Timer Demo/Assets.xcassets/CalendarFilled.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "CalendarFilled.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Timer Demo/Timer Demo/Assets.xcassets/Cancel-50.imageset/Cancel-50-2.png b/Timer Demo/Timer Demo/Assets.xcassets/Cancel-50.imageset/Cancel-50-2.png new file mode 100644 index 0000000..86c7fa1 Binary files /dev/null and b/Timer Demo/Timer Demo/Assets.xcassets/Cancel-50.imageset/Cancel-50-2.png differ diff --git a/Timer Demo/Timer Demo/Assets.xcassets/Cancel-50.imageset/Contents.json b/Timer Demo/Timer Demo/Assets.xcassets/Cancel-50.imageset/Contents.json new file mode 100644 index 0000000..f678f97 --- /dev/null +++ b/Timer Demo/Timer Demo/Assets.xcassets/Cancel-50.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "Cancel-50-2.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Timer Demo/Timer Demo/Assets.xcassets/Circled1.imageset/Circled1.png b/Timer Demo/Timer Demo/Assets.xcassets/Circled1.imageset/Circled1.png new file mode 100644 index 0000000..02a79ed Binary files /dev/null and b/Timer Demo/Timer Demo/Assets.xcassets/Circled1.imageset/Circled1.png differ diff --git a/Timer Demo/Timer Demo/Assets.xcassets/Circled1.imageset/Contents.json b/Timer Demo/Timer Demo/Assets.xcassets/Circled1.imageset/Contents.json new file mode 100644 index 0000000..d586f94 --- /dev/null +++ b/Timer Demo/Timer Demo/Assets.xcassets/Circled1.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "Circled1.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Timer Demo/Timer Demo/Assets.xcassets/Circled3.imageset/Circled3.png b/Timer Demo/Timer Demo/Assets.xcassets/Circled3.imageset/Circled3.png new file mode 100644 index 0000000..ca0461c Binary files /dev/null and b/Timer Demo/Timer Demo/Assets.xcassets/Circled3.imageset/Circled3.png differ diff --git a/Timer Demo/Timer Demo/Assets.xcassets/Circled3.imageset/Contents.json b/Timer Demo/Timer Demo/Assets.xcassets/Circled3.imageset/Contents.json new file mode 100644 index 0000000..eb3e506 --- /dev/null +++ b/Timer Demo/Timer Demo/Assets.xcassets/Circled3.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "Circled3.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Timer Demo/Timer Demo/Assets.xcassets/Circled5.imageset/Circled5.png b/Timer Demo/Timer Demo/Assets.xcassets/Circled5.imageset/Circled5.png new file mode 100644 index 0000000..9033bbd Binary files /dev/null and b/Timer Demo/Timer Demo/Assets.xcassets/Circled5.imageset/Circled5.png differ diff --git a/Timer Demo/Timer Demo/Assets.xcassets/Circled5.imageset/Contents.json b/Timer Demo/Timer Demo/Assets.xcassets/Circled5.imageset/Contents.json new file mode 100644 index 0000000..3efd127 --- /dev/null +++ b/Timer Demo/Timer Demo/Assets.xcassets/Circled5.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "Circled5.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Timer Demo/Timer Demo/Assets.xcassets/Clock.imageset/Clock.png b/Timer Demo/Timer Demo/Assets.xcassets/Clock.imageset/Clock.png new file mode 100644 index 0000000..b77e99b Binary files /dev/null and b/Timer Demo/Timer Demo/Assets.xcassets/Clock.imageset/Clock.png differ diff --git a/Timer Demo/Timer Demo/Assets.xcassets/Clock.imageset/Contents.json b/Timer Demo/Timer Demo/Assets.xcassets/Clock.imageset/Contents.json new file mode 100644 index 0000000..6c1abd2 --- /dev/null +++ b/Timer Demo/Timer Demo/Assets.xcassets/Clock.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "Clock.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Timer Demo/Timer Demo/Assets.xcassets/ClockFilled.imageset/ClockFilled.png b/Timer Demo/Timer Demo/Assets.xcassets/ClockFilled.imageset/ClockFilled.png new file mode 100644 index 0000000..655976c Binary files /dev/null and b/Timer Demo/Timer Demo/Assets.xcassets/ClockFilled.imageset/ClockFilled.png differ diff --git a/Timer Demo/Timer Demo/Assets.xcassets/ClockFilled.imageset/Contents.json b/Timer Demo/Timer Demo/Assets.xcassets/ClockFilled.imageset/Contents.json new file mode 100644 index 0000000..f34b2a7 --- /dev/null +++ b/Timer Demo/Timer Demo/Assets.xcassets/ClockFilled.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "ClockFilled.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Timer Demo/Timer Demo/Assets.xcassets/Contents.json b/Timer Demo/Timer Demo/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/Timer Demo/Timer Demo/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Timer Demo/Timer Demo/Assets.xcassets/Start-50.imageset/Contents.json b/Timer Demo/Timer Demo/Assets.xcassets/Start-50.imageset/Contents.json new file mode 100644 index 0000000..ec6bb4f --- /dev/null +++ b/Timer Demo/Timer Demo/Assets.xcassets/Start-50.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "Start-50-2.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Timer Demo/Timer Demo/Assets.xcassets/Start-50.imageset/Start-50-2.png b/Timer Demo/Timer Demo/Assets.xcassets/Start-50.imageset/Start-50-2.png new file mode 100644 index 0000000..d493183 Binary files /dev/null and b/Timer Demo/Timer Demo/Assets.xcassets/Start-50.imageset/Start-50-2.png differ diff --git a/Timer Demo/Timer Demo/Assets.xcassets/lap.imageset/Contents.json b/Timer Demo/Timer Demo/Assets.xcassets/lap.imageset/Contents.json new file mode 100644 index 0000000..cda9aee --- /dev/null +++ b/Timer Demo/Timer Demo/Assets.xcassets/lap.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "lap.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Timer Demo/Timer Demo/Assets.xcassets/lap.imageset/lap.png b/Timer Demo/Timer Demo/Assets.xcassets/lap.imageset/lap.png new file mode 100644 index 0000000..7263253 Binary files /dev/null and b/Timer Demo/Timer Demo/Assets.xcassets/lap.imageset/lap.png differ diff --git a/Timer Demo/Timer Demo/Assets.xcassets/reset.imageset/Contents.json b/Timer Demo/Timer Demo/Assets.xcassets/reset.imageset/Contents.json new file mode 100644 index 0000000..6f4703b --- /dev/null +++ b/Timer Demo/Timer Demo/Assets.xcassets/reset.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "reset.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Timer Demo/Timer Demo/Assets.xcassets/reset.imageset/reset.png b/Timer Demo/Timer Demo/Assets.xcassets/reset.imageset/reset.png new file mode 100644 index 0000000..2ab89cc Binary files /dev/null and b/Timer Demo/Timer Demo/Assets.xcassets/reset.imageset/reset.png differ diff --git a/Timer Demo/Timer Demo/Assets.xcassets/start.imageset/Contents.json b/Timer Demo/Timer Demo/Assets.xcassets/start.imageset/Contents.json new file mode 100644 index 0000000..167beee --- /dev/null +++ b/Timer Demo/Timer Demo/Assets.xcassets/start.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "start.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Timer Demo/Timer Demo/Assets.xcassets/start.imageset/start.png b/Timer Demo/Timer Demo/Assets.xcassets/start.imageset/start.png new file mode 100644 index 0000000..7b84d9d Binary files /dev/null and b/Timer Demo/Timer Demo/Assets.xcassets/start.imageset/start.png differ diff --git a/Timer Demo/Timer Demo/Assets.xcassets/stop.imageset/Contents.json b/Timer Demo/Timer Demo/Assets.xcassets/stop.imageset/Contents.json new file mode 100644 index 0000000..67472ec --- /dev/null +++ b/Timer Demo/Timer Demo/Assets.xcassets/stop.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "stop.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Timer Demo/Timer Demo/Assets.xcassets/stop.imageset/stop.png b/Timer Demo/Timer Demo/Assets.xcassets/stop.imageset/stop.png new file mode 100644 index 0000000..01f6ac4 Binary files /dev/null and b/Timer Demo/Timer Demo/Assets.xcassets/stop.imageset/stop.png differ diff --git a/Timer Demo/Timer Demo/Base.lproj/LaunchScreen.storyboard b/Timer Demo/Timer Demo/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..4218604 --- /dev/null +++ b/Timer Demo/Timer Demo/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Timer Demo/Timer Demo/Base.lproj/Main.storyboard b/Timer Demo/Timer Demo/Base.lproj/Main.storyboard new file mode 100644 index 0000000..13eaffb --- /dev/null +++ b/Timer Demo/Timer Demo/Base.lproj/Main.storyboard @@ -0,0 +1,1190 @@ + + + + + + + + + + + HelveticaNeue + HelveticaNeue + HelveticaNeue + HelveticaNeue + HelveticaNeue + HelveticaNeue + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Timer Demo/Timer Demo/Countdown.swift b/Timer Demo/Timer Demo/Countdown.swift new file mode 100644 index 0000000..cca5fcf --- /dev/null +++ b/Timer Demo/Timer Demo/Countdown.swift @@ -0,0 +1,21 @@ +// +// Countdown.swift +// Timer Demo +// +// Created by Z on 8/30/15. +// Copyright © 2015 dereknetto. All rights reserved. +// + +import UIKit + +class Countdown: NSObject { + + var name: String + var targetDate: NSDate + + init(name: String, targetDate:NSDate){ + self.name = name + self.targetDate = targetDate + } + +} diff --git a/Timer Demo/Timer Demo/CountdownTableViewCell.swift b/Timer Demo/Timer Demo/CountdownTableViewCell.swift new file mode 100644 index 0000000..ce7d334 --- /dev/null +++ b/Timer Demo/Timer Demo/CountdownTableViewCell.swift @@ -0,0 +1,62 @@ +// +// CountdownTableViewCell.swift +// Timer Demo +// +// Created by Z on 8/30/15. +// Copyright © 2015 dereknetto. All rights reserved. +// + +import UIKit + +class CountdownTableViewCell: UITableViewCell { + + @IBOutlet weak var countdownLabel: UILabel! + @IBOutlet weak var countdownNameLabel: UILabel! + + @IBOutlet weak var secondsLabel: UILabel! + @IBOutlet weak var minutesLabel: UILabel! + @IBOutlet weak var hoursLabel: UILabel! + @IBOutlet weak var daysLabel: UILabel! + @IBOutlet weak var monthsLabel: UILabel! + @IBOutlet weak var yearsLabel: UILabel! + @IBOutlet weak var unitLabelBoxView: UIView! + + var unitLabels = [] + var countdown: Countdown? + + var isBeingEdited = false + + override func awakeFromNib() { + super.awakeFromNib() + + countdownLabel.adjustsFontSizeToFitWidth = true; + unitLabels = [yearsLabel, monthsLabel, daysLabel, hoursLabel, minutesLabel, secondsLabel] + updateLabelVisibilities() + } + + override func setSelected(selected: Bool, animated: Bool) { + super.setSelected(selected, animated: animated) + // Configure the view for the selected state + } + + func updateLabelVisibilities() { + + guard let countdown = self.countdown else {return} + + let largestTimeUnit = timeToTargetDate(countdown.targetDate).largestTimeUnit() + + for (idx,label) in unitLabels.enumerate(){ + let mapIdx = idx + 1 //since no ms label + if (mapIdx > largestTimeUnit.rawValue){ //raw value for years is 0 + (label as! UILabel).hidden = false + } + else{ + (label as! UILabel).hidden = true + } + } + } + + func hideAllLabelView(){ + unitLabelBoxView.hidden = true + } +} diff --git a/Timer Demo/Timer Demo/CountdownViewController.swift b/Timer Demo/Timer Demo/CountdownViewController.swift new file mode 100644 index 0000000..477ff52 --- /dev/null +++ b/Timer Demo/Timer Demo/CountdownViewController.swift @@ -0,0 +1,111 @@ +// +// CountdownViewController.swift +// Countdown +// +// Created by Z on 8/29/15. +// Copyright © 2015 dereknetto. All rights reserved. +// + +import UIKit + +class CountdownViewController: UIViewController, + UITableViewDataSource, + UITableViewDelegate, + AddCountdownViewControllerDelegate { + + @IBOutlet weak var navigationBar: UINavigationItem! + @IBOutlet weak var tableView: UITableView! + + var displayLink : CADisplayLink! + var countdowns : [Countdown] = [] + + @IBOutlet weak var dateForCountdownLabel: UILabel! + @IBOutlet weak var timeForCountdownLabel: UILabel! + + + override func viewDidLoad() { + super.viewDidLoad() + displayLink = CADisplayLink(target: self, selector: Selector("update")) + displayLink.addToRunLoop(NSRunLoop.mainRunLoop(), forMode: NSRunLoopCommonModes) + tableView.delegate = self + tableView.dataSource = self + + + + + + } + + func update(){ + tableView.reloadData() + } + + //MARK: TableView methods + func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return countdowns.count + } + + func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + + let cell = tableView.dequeueReusableCellWithIdentifier("CountdownCell", forIndexPath: indexPath) as! CountdownTableViewCell + + cell.countdown = countdowns[indexPath.row] + cell.countdownNameLabel.text = cell.countdown!.name + + if timeToTargetDate(cell.countdown!.targetDate) > 0 { + cell.countdownLabel.text = timeToTargetDate(cell.countdown!.targetDate).stringFromTimeInterval(false) + cell.updateLabelVisibilities() + } else{ + cell.countdownLabel.text = cell.countdown!.targetDate.timeAgo + cell.hideAllLabelView() + } + + //swipe left gesture + cell.tag = indexPath.row + let sgr = UISwipeGestureRecognizer(target: self, action: "cellSwiped") + sgr.direction = UISwipeGestureRecognizerDirection.Left + cell.addGestureRecognizer(sgr) + + return cell + } + + func cellSwiped(){ + guard let indexPathForSelectedRow = tableView.indexPathForSelectedRow else{return} + + let cell = tableView.dequeueReusableCellWithIdentifier("CountdownCell", forIndexPath: indexPathForSelectedRow) as! CountdownTableViewCell + + cell.isBeingEdited = true + print("cell swiped left") + } + + + func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { + let countdown = countdowns[indexPath.row] as Countdown + let dateAndTime = dateAndTimeStringsfromDate(countdown.targetDate) + + dateForCountdownLabel.text = (dateAndTime as NSArray).objectAtIndex(0) as? String + timeForCountdownLabel.text = (dateAndTime as NSArray).objectAtIndex(1)as? String + } + + //need to fix delete method + func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { + + tableView.beginUpdates() + countdowns.removeAtIndex(indexPath.row) + tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Bottom) + tableView.endUpdates() + } + + + //MARK: AddCountdownViewControllerDelegate method + func addCountdownViewController(viewController: AddCountdownViewController, didCreateNewCountdown countdown: Countdown) { + countdowns.append(countdown) + } + + //MARK: Segue methods + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { + if let viewController = segue.destinationViewController as? AddCountdownViewController { + viewController.delegate = self + } + } +} diff --git a/Time/Time/Info.plist b/Timer Demo/Timer Demo/Info.plist similarity index 95% rename from Time/Time/Info.plist rename to Timer Demo/Timer Demo/Info.plist index 62e151f..40c6215 100644 --- a/Time/Time/Info.plist +++ b/Timer Demo/Timer Demo/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - com.mikekavouras.$(PRODUCT_NAME:rfc1034identifier) + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/Timer Demo/Timer Demo/LoudAlarmClockBuzzer.mp3 b/Timer Demo/Timer Demo/LoudAlarmClockBuzzer.mp3 new file mode 100644 index 0000000..6dc9514 Binary files /dev/null and b/Timer Demo/Timer Demo/LoudAlarmClockBuzzer.mp3 differ diff --git a/Timer Demo/Timer Demo/NSDate+Extension.swift b/Timer Demo/Timer Demo/NSDate+Extension.swift new file mode 100644 index 0000000..a3cb390 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDate+Extension.swift @@ -0,0 +1,162 @@ +// +// NSDate+Extension.swift +// Tasty +// +// Created by Vitaliy Kuzmenko on 17/10/14. +// http://github.com/vitkuzmenko +// Copyright (c) 2014 Vitaliy Kuz'menko. All rights reserved. +// + +import Foundation + +let kMinute = 60 +let kDay = kMinute * 24 +let kWeek = kDay * 7 +let kMonth = kDay * 31 +let kYear = kDay * 365 + +func NSDateTimeAgoLocalizedStrings(key: String) -> String { + + let resourcePath : NSString = NSBundle.mainBundle().resourcePath! + let path = resourcePath.stringByAppendingPathComponent("NSDateTimeAgo.bundle") + let bundle = NSBundle(path: path) + + return NSLocalizedString(key, tableName: "NSDateTimeAgo", bundle: bundle!, comment: "") +} + +extension NSDate { + + // shows 1 or two letter abbreviation for units. + // does not include 'ago' text ... just {value}{unit-abbreviation} + // does not include interim summary options such as 'Just now' + var timeAgoSimple: String { + + let now = NSDate() + let deltaSeconds = Int(fabs(timeIntervalSinceDate(now))) + let deltaMinutes = deltaSeconds / 60 + + var value: Int! + + if deltaSeconds < kMinute { + // Seconds + return stringFromFormat("%%d%@s", withValue: deltaSeconds) + } else if deltaMinutes < kMinute { + // Minutes + return stringFromFormat("%%d%@m", withValue: deltaMinutes) + } else if deltaMinutes < kDay { + // Hours + value = Int(floor(Float(deltaMinutes / kMinute))) + return stringFromFormat("%%d%@h", withValue: value) + } else if deltaMinutes < kWeek { + // Days + value = Int(floor(Float(deltaMinutes / kDay))) + return stringFromFormat("%%d%@d", withValue: value) + } else if deltaMinutes < kMonth { + // Weeks + value = Int(floor(Float(deltaMinutes / kWeek))) + return stringFromFormat("%%d%@w", withValue: value) + } else if deltaMinutes < kYear { + // Month + value = Int(floor(Float(deltaMinutes / kMonth))) + return stringFromFormat("%%d%@mo", withValue: value) + } + + // Years + value = Int(floor(Float(deltaMinutes / kYear))) + return stringFromFormat("%%d%@yr", withValue: value) + } + + var timeAgo: String { + + let now = NSDate() + let deltaSeconds = Int(fabs(timeIntervalSinceDate(now))) + let deltaMinutes = deltaSeconds / 60 + + var value: Int! + + if deltaSeconds < 5 { + // Just Now + return NSDateTimeAgoLocalizedStrings("Just now") + } else if deltaSeconds < kMinute { + // Seconds Ago + return stringFromFormat("%%d %@seconds ago", withValue: deltaSeconds) + } else if deltaSeconds < 120 { + // A Minute Ago + return NSDateTimeAgoLocalizedStrings("A minute ago") + } else if deltaMinutes < kMinute { + // Minutes Ago + return stringFromFormat("%%d %@minutes ago", withValue: deltaMinutes) + } else if deltaMinutes < 120 { + // An Hour Ago + return NSDateTimeAgoLocalizedStrings("An hour ago") + } else if deltaMinutes < kDay { + // Hours Ago + value = Int(floor(Float(deltaMinutes / kMinute))) + return stringFromFormat("%%d %@hours ago", withValue: value) + } else if deltaMinutes < (kDay * 2) { + // Yesterday + return NSDateTimeAgoLocalizedStrings("Yesterday") + } else if deltaMinutes < kWeek { + // Days Ago + value = Int(floor(Float(deltaMinutes / kDay))) + return stringFromFormat("%%d %@days ago", withValue: value) + } else if deltaMinutes < (kWeek * 2) { + // Last Week + return NSDateTimeAgoLocalizedStrings("Last week") + } else if deltaMinutes < kMonth { + // Weeks Ago + value = Int(floor(Float(deltaMinutes / kWeek))) + return stringFromFormat("%%d %@weeks ago", withValue: value) + } else if deltaMinutes < (kDay * 61) { + // Last month + return NSDateTimeAgoLocalizedStrings("Last month") + } else if deltaMinutes < kYear { + // Month Ago + value = Int(floor(Float(deltaMinutes / kMonth))) + return stringFromFormat("%%d %@months ago", withValue: value) + } else if deltaMinutes < (kDay * (kYear * 2)) { + // Last Year + return NSDateTimeAgoLocalizedStrings("Last Year") + } + + // Years Ago + value = Int(floor(Float(deltaMinutes / kYear))) + return stringFromFormat("%%d %@years ago", withValue: value) + + } + + func stringFromFormat(format: String, withValue value: Int) -> String { + + let localeFormat = String(format: format, getLocaleFormatUnderscoresWithValue(Double(value))) + + return String(format: NSDateTimeAgoLocalizedStrings(localeFormat), value) + } + + func getLocaleFormatUnderscoresWithValue(value: Double) -> String { + + guard let localeCode = NSLocale.preferredLanguages().first + else{ + return "en" + } + if localeCode == "ru" { + let XY = Int(floor(value)) % 100 + let Y = Int(floor(value)) % 10 + + if Y == 0 || Y > 4 || (XY > 10 && XY < 15) { + return "" + } + + if Y > 1 && Y < 5 && (XY < 10 || XY > 20) { + return "_" + } + + if Y == 1 && XY != 11 { + return "__" + } + } + + return "" + } + +} + diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/ar.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/ar.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..4c6a3dc Binary files /dev/null and b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/ar.lproj/NSDateTimeAgo.strings differ diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/bg.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/bg.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..b40d6b7 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/bg.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "преди %d дена"; + +/* No comment provided by engineer. */ +"%d hours ago" = "преди %d часа"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "преди %d минути"; + +/* No comment provided by engineer. */ +"%d months ago" = "преди %d месеца"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "преди %d секунди"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "преди %d седмици"; + +/* No comment provided by engineer. */ +"%d years ago" = "преди %d години"; + +/* No comment provided by engineer. */ +"A minute ago" = "преди минута"; + +/* No comment provided by engineer. */ +"An hour ago" = "преди час"; + +/* No comment provided by engineer. */ +"Just now" = "току що"; + +/* No comment provided by engineer. */ +"Last month" = "през последния месец"; + +/* No comment provided by engineer. */ +"Last week" = "през последната седмица"; + +/* No comment provided by engineer. */ +"Last year" = "през последната година"; + +/* No comment provided by engineer. */ +"Yesterday" = "вчера"; + +/* No comment provided by engineer. */ +"1 year ago" = "преди 1 година"; + +/* No comment provided by engineer. */ +"1 month ago" = "преди 1 месец"; + +/* No comment provided by engineer. */ +"1 week ago" = "преди 1 седмица"; + +/* No comment provided by engineer. */ +"1 day ago" = "преди 1 ден"; + +/* No comment provided by engineer. */ +"This morning" = "тази сутрин"; + +/* No comment provided by engineer. */ +"This afternoon" = "тази вечер"; + +/* No comment provided by engineer. */ +"Today" = "днес"; + +/* No comment provided by engineer. */ +"This week" = "тази седмица"; + +/* No comment provided by engineer. */ +"This month" = "този месец"; + +/* No comment provided by engineer. */ +"This year" = "тази година"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/cs.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/cs.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..5a1ed47 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/cs.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "Před %d dny"; + +/* No comment provided by engineer. */ +"%d hours ago" = "Před %d hodinami"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "Před %d minutami"; + +/* No comment provided by engineer. */ +"%d months ago" = "Před %d měsíci"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "Před %d sekundami"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "Před %d týdny"; + +/* No comment provided by engineer. */ +"%d years ago" = "Před %d lety"; + +/* No comment provided by engineer. */ +"A minute ago" = "Před minutou"; + +/* No comment provided by engineer. */ +"An hour ago" = "Před hodinou"; + +/* No comment provided by engineer. */ +"Just now" = "Právě teď"; + +/* No comment provided by engineer. */ +"Last month" = "Minulý měsíc"; + +/* No comment provided by engineer. */ +"Last week" = "Minulý týden"; + +/* No comment provided by engineer. */ +"Last year" = "Minulý rok"; + +/* No comment provided by engineer. */ +"Yesterday" = "Včera"; + +/* No comment provided by engineer. */ +"1 year ago" = "Před rokem"; + +/* No comment provided by engineer. */ +"1 month ago" = "Před měsícem"; + +/* No comment provided by engineer. */ +"1 week ago" = "Před týdnem"; + +/* No comment provided by engineer. */ +"1 day ago" = "Předevčírem"; + +/* No comment provided by engineer. */ +"This morning" = "Dnes dopoledne"; + +/* No comment provided by engineer. */ +"This afternoon" = "Dnes odpoledne"; + +/* No comment provided by engineer. */ +"Today" = "Dnes"; + +/* No comment provided by engineer. */ +"This week" = "Tento týden"; + +/* No comment provided by engineer. */ +"This month" = "Tento měsíc"; + +/* No comment provided by engineer. */ +"This year" = "Letos"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/da.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/da.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..d75138e --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/da.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ + "%d days ago" = "%d dage siden"; + + /* No comment provided by engineer. */ + "%d hours ago" = "%d timer siden"; + + /* No comment provided by engineer. */ + "%d minutes ago" = "%d minutter siden"; + + /* No comment provided by engineer. */ + "%d months ago" = "%d måneder siden"; + + /* No comment provided by engineer. */ + "%d seconds ago" = "%d sekunder siden"; + + /* No comment provided by engineer. */ + "%d weeks ago" = "%d uger siden"; + + /* No comment provided by engineer. */ + "%d years ago" = "%d år siden"; + + /* No comment provided by engineer. */ + "A minute ago" = "Et minut siden"; + + /* No comment provided by engineer. */ + "An hour ago" = "En time siden"; + +/* No comment provided by engineer. */ +"Just now" = "Lige nu"; + +/* No comment provided by engineer. */ +"Last month" = "Sidste måned"; + +/* No comment provided by engineer. */ +"Last week" = "Sidste uge"; + +/* No comment provided by engineer. */ +"Last year" = "Sidste år"; + +/* No comment provided by engineer. */ +"Yesterday" = "I går"; + +/* No comment provided by engineer. */ +"1 year ago" = "1 år siden"; + +/* No comment provided by engineer. */ +"1 month ago" = "1 måned siden"; + +/* No comment provided by engineer. */ +"1 week ago" = "1 uge siden"; + +/* No comment provided by engineer. */ +"1 day ago" = "1 dag siden"; + +/* No comment provided by engineer. */ +"This morning" = "Her til morgen"; + +/* No comment provided by engineer. */ +"This afternoon" = "Her til eftermiddag"; + +/* No comment provided by engineer. */ +"Today" = "I dag"; + +/* No comment provided by engineer. */ +"This week" = "Denne uge"; + +/* No comment provided by engineer. */ +"This month" = "Denne måned"; + +/* No comment provided by engineer. */ +"This year" = "Dette år"; \ No newline at end of file diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/de.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/de.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..d2ece3a --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/de.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ + "%d days ago" = "Vor %d Tagen"; + + /* No comment provided by engineer. */ + "%d hours ago" = "Vor %d Stunden"; + + /* No comment provided by engineer. */ + "%d minutes ago" = "Vor %d Minuten"; + + /* No comment provided by engineer. */ + "%d months ago" = "Vor %d Monaten"; + + /* No comment provided by engineer. */ + "%d seconds ago" = "Vor %d Sekunden"; + + /* No comment provided by engineer. */ + "%d weeks ago" = "Vor %d Wochen"; + + /* No comment provided by engineer. */ + "%d years ago" = "Vor %d Jahren"; + + /* No comment provided by engineer. */ + "A minute ago" = "Vor einer Minute"; + + /* No comment provided by engineer. */ + "An hour ago" = "Vor einer Stunde"; + +/* No comment provided by engineer. */ +"Just now" = "Gerade eben"; + +/* No comment provided by engineer. */ +"Last month" = "Letzten Monat"; + +/* No comment provided by engineer. */ +"Last week" = "Letzte Woche"; + +/* No comment provided by engineer. */ +"Last year" = "Letztes Jahr"; + +/* No comment provided by engineer. */ +"Yesterday" = "Gestern"; + +/* No comment provided by engineer. */ +"1 year ago" = "Vor 1 Jahr"; + +/* No comment provided by engineer. */ +"1 month ago" = "Vor 1 Monat"; + +/* No comment provided by engineer. */ +"1 week ago" = "Vor 1 Woche"; + +/* No comment provided by engineer. */ +"1 day ago" = "Vor 1 Tag"; + +/* No comment provided by engineer. */ +"This morning" = "Heute Morgen"; + +/* No comment provided by engineer. */ +"This afternoon" = "Heute Nachmittag"; + +/* No comment provided by engineer. */ +"Today" = "Heute"; + +/* No comment provided by engineer. */ +"This week" = "Diese Woche"; + +/* No comment provided by engineer. */ +"This month" = "Diesen Monat"; + +/* No comment provided by engineer. */ +"This year" = "Dieses Jahr"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/en.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/en.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..18e24e7 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/en.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "%d days ago"; + +/* No comment provided by engineer. */ +"%d hours ago" = "%d hours ago"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "%d minutes ago"; + +/* No comment provided by engineer. */ +"%d months ago" = "%d months ago"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "%d seconds ago"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "%d weeks ago"; + +/* No comment provided by engineer. */ +"%d years ago" = "%d years ago"; + +/* No comment provided by engineer. */ +"A minute ago" = "A minute ago"; + +/* No comment provided by engineer. */ +"An hour ago" = "An hour ago"; + +/* No comment provided by engineer. */ +"Just now" = "Just now"; + +/* No comment provided by engineer. */ +"Last month" = "Last month"; + +/* No comment provided by engineer. */ +"Last week" = "Last week"; + +/* No comment provided by engineer. */ +"Last year" = "Last year"; + +/* No comment provided by engineer. */ +"Yesterday" = "Yesterday"; + +/* No comment provided by engineer. */ +"1 year ago" = "1 year ago"; + +/* No comment provided by engineer. */ +"1 month ago" = "1 month ago"; + +/* No comment provided by engineer. */ +"1 week ago" = "1 week ago"; + +/* No comment provided by engineer. */ +"1 day ago" = "1 day ago"; + +/* No comment provided by engineer. */ +"This morning" = "This morning"; + +/* No comment provided by engineer. */ +"This afternoon" = "This afternoon"; + +/* No comment provided by engineer. */ +"Today" = "Today"; + +/* No comment provided by engineer. */ +"This week" = "This week"; + +/* No comment provided by engineer. */ +"This month" = "This month"; + +/* No comment provided by engineer. */ +"This year" = "This year"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/es.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/es.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..6c0b885 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/es.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "Hace %d días"; + +/* No comment provided by engineer. */ +"%d hours ago" = "Hace %d horas"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "Hace %d minutos"; + +/* No comment provided by engineer. */ +"%d months ago" = "Hace %d meses"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "Hace %d segundos"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "Hace %d semanas"; + +/* No comment provided by engineer. */ +"%d years ago" = "Hace %d años"; + +/* No comment provided by engineer. */ +"A minute ago" = "Hace un minuto"; + +/* No comment provided by engineer. */ +"An hour ago" = "Hace una hora"; + +/* No comment provided by engineer. */ +"Just now" = "Ahora mismo"; + +/* No comment provided by engineer. */ +"Last month" = "El mes pasado"; + +/* No comment provided by engineer. */ +"Last week" = "La semana pasada"; + +/* No comment provided by engineer. */ +"Last year" = "El año pasado"; + +/* No comment provided by engineer. */ +"Yesterday" = "Ayer"; + +/* No comment provided by engineer. */ +"1 year ago" = "Hace un año"; + +/* No comment provided by engineer. */ +"1 month ago" = "Hace un mes"; + +/* No comment provided by engineer. */ +"1 week ago" = "Hace una semana"; + +/* No comment provided by engineer. */ +"1 day ago" = "Hace un día"; + +/* No comment provided by engineer. */ +"This morning" = "Esta mañana"; + +/* No comment provided by engineer. */ +"This afternoon" = "Esta tarde"; + +/* No comment provided by engineer. */ +"Today" = "Hoy"; + +/* No comment provided by engineer. */ +"This week" = "Esta semana"; + +/* No comment provided by engineer. */ +"This month" = "Este mes"; + +/* No comment provided by engineer. */ +"This year" = "Este año"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/fi.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/fi.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..91072c3 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/fi.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "%d päivää sitten"; + +/* No comment provided by engineer. */ +"%d hours ago" = "%d tuntia sitten"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "%d minuuttia sitten"; + +/* No comment provided by engineer. */ +"%d months ago" = "%d kuukautta sitten"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "%d sekuntia sitten"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "%d viikkoa sitten"; + +/* No comment provided by engineer. */ +"%d years ago" = "%d vuotta sitten"; + +/* No comment provided by engineer. */ +"A minute ago" = "Minuutti sitten"; + +/* No comment provided by engineer. */ +"An hour ago" = "Tunti sitten"; + +/* No comment provided by engineer. */ +"Just now" = "Juuri äsken"; + +/* No comment provided by engineer. */ +"Last month" = "Viime kuussa"; + +/* No comment provided by engineer. */ +"Last week" = "Viime viikolla"; + +/* No comment provided by engineer. */ +"Last year" = "Viime vuonna"; + +/* No comment provided by engineer. */ +"Yesterday" = "Eilen"; + +/* No comment provided by engineer. */ +"1 year ago" = "Vuosi sitten"; + +/* No comment provided by engineer. */ +"1 month ago" = "Kuukausi sitten"; + +/* No comment provided by engineer. */ +"1 week ago" = "Viikko sitten"; + +/* No comment provided by engineer. */ +"1 day ago" = "Vuorokausi sitten"; + +/* No comment provided by engineer. */ +"This morning" = "Tänä aamuna"; + +/* No comment provided by engineer. */ +"This afternoon" = "Tänä iltapäivänä"; + +/* No comment provided by engineer. */ +"Today" = "Tänään"; + +/* No comment provided by engineer. */ +"This week" = "Tällä viikolla"; + +/* No comment provided by engineer. */ +"This month" = "Tässä kuussa"; + +/* No comment provided by engineer. */ +"This year" = "Tänä vuonna"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/fr.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/fr.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..c25d2b1 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/fr.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "Il y a %d jours"; + +/* No comment provided by engineer. */ +"%d hours ago" = "Il y a %d heures"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "Il y a %d minutes"; + +/* No comment provided by engineer. */ +"%d months ago" = "Il y a %d mois"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "Il y a %d secondes"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "Il y a %d semaines"; + +/* No comment provided by engineer. */ +"%d years ago" = "Il y a %d ans"; + +/* No comment provided by engineer. */ +"A minute ago" = "Il y a une minute"; + +/* No comment provided by engineer. */ +"An hour ago" = "Il y a une heure"; + +/* No comment provided by engineer. */ +"Just now" = "A l'instant"; + +/* No comment provided by engineer. */ +"Last month" = "Le mois dernier"; + +/* No comment provided by engineer. */ +"Last week" = "La semaine dernière"; + +/* No comment provided by engineer. */ +"Last year" = "L'année dernière"; + +/* No comment provided by engineer. */ +"Yesterday" = "Hier"; + +/* No comment provided by engineer. */ +"1 year ago" = "Il y a 1 an"; + +/* No comment provided by engineer. */ +"1 month ago" = "Il y a 1 mois"; + +/* No comment provided by engineer. */ +"1 week ago" = "Il y a 1 semaine"; + +/* No comment provided by engineer. */ +"1 day ago" = "Il y a 1 jour"; + +/* No comment provided by engineer. */ +"This morning" = "Ce matin"; + +/* No comment provided by engineer. */ +"This afternoon" = "Cet après-midi"; + +/* No comment provided by engineer. */ +"Today" = "Aujourd'hui"; + +/* No comment provided by engineer. */ +"This week" = "Cette semaine"; + +/* No comment provided by engineer. */ +"This month" = "Ce mois-ci"; + +/* No comment provided by engineer. */ +"This year" = "Cette année"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/gre.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/gre.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..994e9f7 Binary files /dev/null and b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/gre.lproj/NSDateTimeAgo.strings differ diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/he.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/he.lproj/NSDateTimeAgo.strings new file mode 100755 index 0000000..65e536c --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/he.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "לפני %d ימים"; + +/* No comment provided by engineer. */ +"%d hours ago" = "לפני %d שעות"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "לפני %d דקות"; + +/* No comment provided by engineer. */ +"%d months ago" = "לפני %d חודשים"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "לפני %d שניות"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "לפני %d שבועות"; + +/* No comment provided by engineer. */ +"%d years ago" = "לפני %d שנים"; + +/* No comment provided by engineer. */ +"A minute ago" = "לפני דקה"; + +/* No comment provided by engineer. */ +"An hour ago" = "לפני שעה"; + +/* No comment provided by engineer. */ +"Just now" = "ממש עכשיו"; + +/* No comment provided by engineer. */ +"Last month" = "בחודש שעבר"; + +/* No comment provided by engineer. */ +"Last week" = "בשבוע שעבר"; + +/* No comment provided by engineer. */ +"Last year" = "בשנה שעברה"; + +/* No comment provided by engineer. */ +"Yesterday" = "אתמול"; + +/* No comment provided by engineer. */ +"1 year ago" = "לפני שנה"; + +/* No comment provided by engineer. */ +"1 month ago" = "לפני חודש"; + +/* No comment provided by engineer. */ +"1 week ago" = "לפני שבוע"; + +/* No comment provided by engineer. */ +"1 day ago" = "לפני יום"; + +/* No comment provided by engineer. */ +"This morning" = "הבוקר"; + +/* No comment provided by engineer. */ +"This afternoon" = "בצהריים"; + +/* No comment provided by engineer. */ +"Today" = "היום"; + +/* No comment provided by engineer. */ +"This week" = "השבוע"; + +/* No comment provided by engineer. */ +"This month" = "החודש"; + +/* No comment provided by engineer. */ +"This year" = "השנה"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/hu.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/hu.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..98a5ad6 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/hu.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "%d napja"; + +/* No comment provided by engineer. */ +"%d hours ago" = "%d órája"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "%d perce"; + +/* No comment provided by engineer. */ +"%d months ago" = "%d hónapja"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "%d másodperce"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "%d hete"; + +/* No comment provided by engineer. */ +"%d years ago" = "%d éve"; + +/* No comment provided by engineer. */ +"A minute ago" = "Egy perccel ezelőtt"; + +/* No comment provided by engineer. */ +"An hour ago" = "Egy órával ezelőtt"; + +/* No comment provided by engineer. */ +"Just now" = "Az imént"; + +/* No comment provided by engineer. */ +"Last month" = "Az előző hónapban"; + +/* No comment provided by engineer. */ +"Last week" = "Az előző héten"; + +/* No comment provided by engineer. */ +"Last year" = "Tavaly"; + +/* No comment provided by engineer. */ +"Yesterday" = "Tegnap"; + +/* No comment provided by engineer. */ +"1 year ago" = "Tavaly"; + +/* No comment provided by engineer. */ +"1 month ago" = "Egy hónapja"; + +/* No comment provided by engineer. */ +"1 week ago" = "Egy hete"; + +/* No comment provided by engineer. */ +"1 day ago" = "Tegnap"; + +/* No comment provided by engineer. */ +"This morning" = "Ma reggel"; + +/* No comment provided by engineer. */ +"This afternoon" = "Ma délután"; + +/* No comment provided by engineer. */ +"Today" = "Ma"; + +/* No comment provided by engineer. */ +"This week" = "Ezen a héten"; + +/* No comment provided by engineer. */ +"This month" = "Ebben a hónapban"; + +/* No comment provided by engineer. */ +"This year" = "Idén"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/is.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/is.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..242f0f4 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/is.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "%d dögum síðan"; + +/* No comment provided by engineer. */ +"%d hours ago" = "%d klst. síðan"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "%d mínútum síðan"; + +/* No comment provided by engineer. */ +"%d months ago" = "%d mánuðum síðan"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "%d sekúndum síðan"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "%d vikum síðan"; + +/* No comment provided by engineer. */ +"%d years ago" = "%d árum síðan"; + +/* No comment provided by engineer. */ +"A minute ago" = "Einni mínútu síðan"; + +/* No comment provided by engineer. */ +"An hour ago" = "Einni klst. síðan"; + +/* No comment provided by engineer. */ +"Just now" = "Rétt í þessu"; + +/* No comment provided by engineer. */ +"Last month" = "Í síðasta mánuði"; + +/* No comment provided by engineer. */ +"Last week" = "Í síðustu viku"; + +/* No comment provided by engineer. */ +"Last year" = "Á síðasta ári"; + +/* No comment provided by engineer. */ +"Yesterday" = "Í gær"; + +/* No comment provided by engineer. */ +"1 year ago" = "1 ári síðan"; + +/* No comment provided by engineer. */ +"1 month ago" = "1 mánuði síðan"; + +/* No comment provided by engineer. */ +"1 week ago" = "1 viku síðan"; + +/* No comment provided by engineer. */ +"1 day ago" = "1 degi síðan"; + +/* No comment provided by engineer. */ +"This morning" = "Í morgun"; + +/* No comment provided by engineer. */ +"This afternoon" = "Síðdegis"; + +/* No comment provided by engineer. */ +"Today" = "Í dag"; + +/* No comment provided by engineer. */ +"This week" = "Í þessari viku"; + +/* No comment provided by engineer. */ +"This month" = "Í þessum mánuði"; + +/* No comment provided by engineer. */ +"This year" = "Á þessu ári"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/it.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/it.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..c33d90b --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/it.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "%d giorni fa"; + +/* No comment provided by engineer. */ +"%d hours ago" = "%d ore fa"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "%d minuti fa"; + +/* No comment provided by engineer. */ +"%d months ago" = "%d mesi fa"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "%d secondi fa"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "%d settimane fa"; + +/* No comment provided by engineer. */ +"%d years ago" = "%d anni fa"; + +/* No comment provided by engineer. */ +"A minute ago" = "Un minuto fa"; + +/* No comment provided by engineer. */ +"An hour ago" = "Un'ora fa"; + +/* No comment provided by engineer. */ +"Just now" = "Ora"; + +/* No comment provided by engineer. */ +"Last month" = "Il mese scorso"; + +/* No comment provided by engineer. */ +"Last week" = "La settimana scorsa"; + +/* No comment provided by engineer. */ +"Last year" = "L'anno scorso"; + +/* No comment provided by engineer. */ +"Yesterday" = "Ieri"; + +/* No comment provided by engineer. */ +"1 year ago" = "Un anno fa"; + +/* No comment provided by engineer. */ +"1 month ago" = "Un mese fa"; + +/* No comment provided by engineer. */ +"1 week ago" = "Una settimana fa"; + +/* No comment provided by engineer. */ +"1 day ago" = "Un giorno fa"; + +/* No comment provided by engineer. */ +"This morning" = "Questa mattina"; + +/* No comment provided by engineer. */ +"This afternoon" = "Questo pomeriggio"; + +/* No comment provided by engineer. */ +"Today" = "Oggi"; + +/* No comment provided by engineer. */ +"This week" = "Questa settimana"; + +/* No comment provided by engineer. */ +"This month" = "Questo mese"; + +/* No comment provided by engineer. */ +"This year" = "Quest'anno"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/ja.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/ja.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..4622907 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/ja.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "%d日前"; + +/* No comment provided by engineer. */ +"%d hours ago" = "%d時間前"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "%d分前"; + +/* No comment provided by engineer. */ +"%d months ago" = "%dヶ月前"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "%d秒前"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "%d週間前"; + +/* No comment provided by engineer. */ +"%d years ago" = "%d年前"; + +/* No comment provided by engineer. */ +"A minute ago" = "1分前"; + +/* No comment provided by engineer. */ +"An hour ago" = "1時間前"; + +/* No comment provided by engineer. */ +"Just now" = "たった今"; + +/* No comment provided by engineer. */ +"Last month" = "先月"; + +/* No comment provided by engineer. */ +"Last week" = "先週"; + +/* No comment provided by engineer. */ +"Last year" = "去年"; + +/* No comment provided by engineer. */ +"Yesterday" = "昨日"; + +/* No comment provided by engineer. */ +"1 year ago" = "1年前"; + +/* No comment provided by engineer. */ +"1 month ago" = "1ヶ月前"; + +/* No comment provided by engineer. */ +"1 week ago" = "1週間前"; + +/* No comment provided by engineer. */ +"1 day ago" = "1日前"; + +/* No comment provided by engineer. */ +"This morning" = "午前"; + +/* No comment provided by engineer. */ +"This afternoon" = "午後"; + +/* No comment provided by engineer. */ +"Today" = "今日"; + +/* No comment provided by engineer. */ +"This week" = "今週"; + +/* No comment provided by engineer. */ +"This month" = "今月"; + +/* No comment provided by engineer. */ +"This year" = "今年"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/ko.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/ko.lproj/NSDateTimeAgo.strings new file mode 100755 index 0000000..b91d9d8 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/ko.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "%d일전"; + +/* No comment provided by engineer. */ +"%d hours ago" = "%d시간전"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "%d분전"; + +/* No comment provided by engineer. */ +"%d months ago" = "%d개월전"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "%d초전"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "%d주전"; + +/* No comment provided by engineer. */ +"%d years ago" = "%d년전"; + +/* No comment provided by engineer. */ +"A minute ago" = "1분전"; + +/* No comment provided by engineer. */ +"An hour ago" = "1시간전"; + +/* No comment provided by engineer. */ +"Just now" = "방금전"; + +/* No comment provided by engineer. */ +"Last month" = "지난달"; + +/* No comment provided by engineer. */ +"Last week" = "지난주"; + +/* No comment provided by engineer. */ +"Last year" = "지난해"; + +/* No comment provided by engineer. */ +"Yesterday" = "어제"; + +/* No comment provided by engineer. */ +"1 year ago" = "1년전"; + +/* No comment provided by engineer. */ +"1 month ago" = "1개월전"; + +/* No comment provided by engineer. */ +"1 week ago" = "1주전"; + +/* No comment provided by engineer. */ +"1 day ago" = "1일전"; + +/* No comment provided by engineer. */ +"This morning" = "오늘 아침"; + +/* No comment provided by engineer. */ +"This afternoon" = "오늘 오후"; + +/* No comment provided by engineer. */ +"Today" = "오늘"; + +/* No comment provided by engineer. */ +"This week" = "이번주"; + +/* No comment provided by engineer. */ +"This month" = "이번달"; + +/* No comment provided by engineer. */ +"This year" = "올해"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/lv.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/lv.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..57c3eb6 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/lv.lproj/NSDateTimeAgo.strings @@ -0,0 +1,24 @@ +"1 year ago" = "Pirms gada"; +"1 month ago" = "Pirms mēneša"; +"1 week ago" = "Pirms nedēļas"; +"1 day ago" = "Pirms dienas"; +"A minute ago" = "Pirms minūtes"; +"An hour ago" = "Pirms stundas"; +"Last month" = "Pagājušajā mēnesī"; +"Last week" = "Pagājušajā nedēļā"; +"Last year" = "Pagājušajā gadā"; +"Just now" = "Tikko"; +"Today" = "Šodien"; +"Yesterday" = "Vakar"; +"This morning" = "Šorīt"; +"This afternoon" = "Pēcpusdienā"; +"This week" = "Šonedēļ"; +"This month" = "Šomēnes"; +"This year" = "Šogad"; +"%d seconds ago" = "Pirms %d sekundēm"; +"%d minutes ago" = "Pirms %d minūtēm"; +"%d hours ago" = "Pirms %d stundām"; +"%d days ago" = "Pirms %d dienām"; +"%d weeks ago" = "Pirms %d nedēļām"; +"%d months ago" = "Pirms %d mēnešiem"; +"%d years ago" = "Pirms %d gadiem"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/ms.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/ms.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..4effa1b --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/ms.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "%d hari yang lalu"; + +/* No comment provided by engineer. */ +"%d hours ago" = "%d jam yang lalu"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "%d minit yang lalu"; + +/* No comment provided by engineer. */ +"%d months ago" = "%d bulan yang lalu"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "%d saat yang lalu"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "%d minggu yang lalu"; + +/* No comment provided by engineer. */ +"%d years ago" = "%d tahun yang lalu"; + +/* No comment provided by engineer. */ +"A minute ago" = "Seminit yang lalu"; + +/* No comment provided by engineer. */ +"An hour ago" = "Sejam yang lalu"; + +/* No comment provided by engineer. */ +"Just now" = "Sebentar tadi"; + +/* No comment provided by engineer. */ +"Last month" = "Sebulan yang lalu"; + +/* No comment provided by engineer. */ +"Last week" = "Seminggu yang lalu"; + +/* No comment provided by engineer. */ +"Last year" = "Setahun yang lalu"; + +/* No comment provided by engineer. */ +"Yesterday" = "Semalam"; + +/* No comment provided by engineer. */ +"1 year ago" = "Setahun yang lalu"; + +/* No comment provided by engineer. */ +"1 month ago" = "Sebulan yang lali"; + +/* No comment provided by engineer. */ +"1 week ago" = "Seminggu yang lalu"; + +/* No comment provided by engineer. */ +"1 day ago" = "Semalam"; + +/* No comment provided by engineer. */ +"This morning" = "Pagi ini"; + +/* No comment provided by engineer. */ +"This afternoon" = "Tengahari ini"; + +/* No comment provided by engineer. */ +"Today" = "Hari ini"; + +/* No comment provided by engineer. */ +"This week" = "Minggu ini"; + +/* No comment provided by engineer. */ +"This month" = "Bulan ini"; + +/* No comment provided by engineer. */ +"This year" = "Tahun ini"; \ No newline at end of file diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/nb.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/nb.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..5975a49 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/nb.lproj/NSDateTimeAgo.strings @@ -0,0 +1,125 @@ +/* + RULES: + Assume value for (seconds, hours, minutes, days, weeks, months or years) is XXXY, Y is last digit, XY is last two digits; + */ + +/* Y ==0 OR Y > 4 OR XY == 11; */ +"%d days ago" = "%d dager siden"; + +/* If Y != 1 AND Y < 5; */ +"%d _days ago" = "%d dager siden"; + +/* If Y == 1; */ +"%d __days ago" = "%d dag siden"; + + +/* Y ==0 OR Y > 4 OR XY == 11; */ +"%d hours ago" = "%d timer siden"; + +/* If Y != 1 AND Y < 5; */ +"%d _hours ago" = "%d timer siden"; + +/* If Y == 1; */ +"%d __hours ago" = "%d time siden"; + + +/* Y ==0 OR Y > 4 OR XY == 11; */ +"%d minutes ago" = "%d minutter siden"; + +/* If Y != 1 AND Y < 5; */ +"%d _minutes ago" = "%d minutter siden"; + +/* If Y == 1; */ +"%d __minutes ago" = "%d minutt siden"; + + +/* Y ==0 OR Y > 4 OR XY == 11; */ +"%d months ago" = "%d måneder siden"; + +/* If Y != 1 AND Y < 5; */ +"%d _months ago" = "%d måneder siden"; + +/* If Y == 1; */ +"%d __months ago" = "%d måned siden"; + + +/* Y ==0 OR Y > 4 OR XY == 11; */ +"%d seconds ago" = "%d sekunder siden"; + +/* If Y != 1 AND Y < 5; */ +"%d _seconds ago" = "%d sekunder siden"; + +/* If Y == 1; */ +"%d __seconds ago" = "%d sekund siden"; + + +/* Y ==0 OR Y > 4 OR XY == 11; */ +"%d weeks ago" = "%d uker siden"; + +/* If Y != 1 AND Y < 5; */ +"%d _weeks ago" = "%d uker siden"; + +/* If Y == 1; */ +"%d __weeks ago" = "%d uke siden"; + + +/* Y ==0 OR Y > 4 OR XY == 11; */ +"%d years ago" = "%d år siden"; + +/* If Y != 1 AND Y < 5; */ +"%d _years ago" = "%d år siden"; + +/* If Y == 1; */ +"%d __years ago" = "%d år siden"; + + +/* No comment provided by engineer. */ +"A minute ago" = "Et minutt siden"; + +/* No comment provided by engineer. */ +"An hour ago" = "En time siden"; + +/* No comment provided by engineer. */ +"Just now" = "Nå"; + +/* No comment provided by engineer. */ +"Last month" = "For en måned siden"; + +/* No comment provided by engineer. */ +"Last week" = "For en uke siden"; + +/* No comment provided by engineer. */ +"Last year" = "For et år siden"; + +/* No comment provided by engineer. */ +"Yesterday" = "I går"; + +/* No comment provided by engineer. */ +"1 year ago" = "1 år siden"; + +/* No comment provided by engineer. */ +"1 month ago" = "1 måned siden"; + +/* No comment provided by engineer. */ +"1 week ago" = "1 uke siden"; + +/* No comment provided by engineer. */ +"1 day ago" = "1 dag siden"; + +/* No comment provided by engineer. */ +"This morning" = "Denne morgenen"; + +/* No comment provided by engineer. */ +"This afternoon" = "I ettermiddag"; + +/* No comment provided by engineer. */ +"Today" = "I dag"; + +/* No comment provided by engineer. */ +"This week" = "Denne uken"; + +/* No comment provided by engineer. */ +"This month" = "Denne måneden"; + +/* No comment provided by engineer. */ +"This year" = "Dette året"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/nl.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/nl.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..7e03c6c --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/nl.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "%d dagen geleden"; + +/* No comment provided by engineer. */ +"%d hours ago" = "%d uur geleden"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "%d minuten geleden"; + +/* No comment provided by engineer. */ +"%d months ago" = "%d maanden geleden"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "%d seconden geleden"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "%d weken geleden"; + +/* No comment provided by engineer. */ +"%d years ago" = "%d jaar geleden"; + +/* No comment provided by engineer. */ +"A minute ago" = "Een minuut geleden"; + +/* No comment provided by engineer. */ +"An hour ago" = "Een uur geleden"; + +/* No comment provided by engineer. */ +"Just now" = "Zojuist"; + +/* No comment provided by engineer. */ +"Last month" = "Vorige maand"; + +/* No comment provided by engineer. */ +"Last week" = "Vorige week"; + +/* No comment provided by engineer. */ +"Last year" = "Vorig jaar"; + +/* No comment provided by engineer. */ +"Yesterday" = "Gisteren"; + +/* No comment provided by engineer. */ +"1 year ago" = "1 jaar geleden"; + +/* No comment provided by engineer. */ +"1 month ago" = "1 maand geleden"; + +/* No comment provided by engineer. */ +"1 week ago" = "1 week geleden"; + +/* No comment provided by engineer. */ +"1 day ago" = "1 dag geleden"; + +/* No comment provided by engineer. */ +"This morning" = "Vanmorgen"; + +/* No comment provided by engineer. */ +"This afternoon" = "Vanmiddag"; + +/* No comment provided by engineer. */ +"Today" = "Vandaag"; + +/* No comment provided by engineer. */ +"This week" = "Deze week"; + +/* No comment provided by engineer. */ +"This month" = "Deze maand"; + +/* No comment provided by engineer. */ +"This year" = "Dit jaar"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/pl.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/pl.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..7ff84ed --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/pl.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "%d dni temu"; + +/* No comment provided by engineer. */ +"%d hours ago" = "%d godzin(y) temu"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "%d minut(y) temu"; + +/* No comment provided by engineer. */ +"%d months ago" = "%d miesice/-y temu"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "%d sekund(y) temu"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "%d tygodni(e) temu"; + +/* No comment provided by engineer. */ +"%d years ago" = "%d lat(a) temu"; + +/* No comment provided by engineer. */ +"A minute ago" = "Minut temu"; + +/* No comment provided by engineer. */ +"An hour ago" = "Godzin temu"; + +/* No comment provided by engineer. */ +"Just now" = "W tej chwili"; + +/* No comment provided by engineer. */ +"Last month" = "W zeszBym miesicu"; + +/* No comment provided by engineer. */ +"Last week" = "W zeszBym tygodniu"; + +/* No comment provided by engineer. */ +"Last year" = "W zeszBym roku"; + +/* No comment provided by engineer. */ +"Yesterday" = "Wczoraj"; + +/* No comment provided by engineer. */ +"1 year ago" = "1 rok temu"; + +/* No comment provided by engineer. */ +"1 month ago" = "1 miesic temu"; + +/* No comment provided by engineer. */ +"1 week ago" = "1 tydzieD temu"; + +/* No comment provided by engineer. */ +"1 day ago" = "1 dzieD temu"; + +/* No comment provided by engineer. */ +"This morning" = "Dzi[ rano"; + +/* No comment provided by engineer. */ +"This afternoon" = "Dzi[ po poBudniu"; + +/* No comment provided by engineer. */ +"Today" = "Dzisiaj"; + +/* No comment provided by engineer. */ +"This week" = "W tym tygodniu"; + +/* No comment provided by engineer. */ +"This month" = "W tym miesicu"; + +/* No comment provided by engineer. */ +"This year" = "W tym roku"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/pt-PT.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/pt-PT.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..06247a1 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/pt-PT.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "%d dias atrás"; + +/* No comment provided by engineer. */ +"%d hours ago" = "%d horas atrás"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "%d minutos atrás"; + +/* No comment provided by engineer. */ +"%d months ago" = "%d meses atrás"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "%d segundos atrás"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "%d semanas atrás"; + +/* No comment provided by engineer. */ +"%d years ago" = "%d anos atrás"; + +/* No comment provided by engineer. */ +"A minute ago" = "Um minute atrás"; + +/* No comment provided by engineer. */ +"An hour ago" = "Uma hora atrás"; + +/* No comment provided by engineer. */ +"Just now" = "Agora mesmo"; + +/* No comment provided by engineer. */ +"Last month" = "Mês passado"; + +/* No comment provided by engineer. */ +"Last week" = "Semana passada"; + +/* No comment provided by engineer. */ +"Last year" = "Ano passado"; + +/* No comment provided by engineer. */ +"Yesterday" = "Ontem"; + +/* No comment provided by engineer. */ +"1 year ago" = "1 ano passado"; + +/* No comment provided by engineer. */ +"1 month ago" = "1 mês atrás"; + +/* No comment provided by engineer. */ +"1 week ago" = "1 semana atrás"; + +/* No comment provided by engineer. */ +"1 day ago" = "1 dia atrás"; + +/* No comment provided by engineer. */ +"This morning" = "Esta manhã"; + +/* No comment provided by engineer. */ +"This afternoon" = "Esta tarde"; + +/* No comment provided by engineer. */ +"Today" = "Hoje"; + +/* No comment provided by engineer. */ +"This week" = "Esta semana"; + +/* No comment provided by engineer. */ +"This month" = "Este mês"; + +/* No comment provided by engineer. */ +"This year" = "Este ano"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/pt.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/pt.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..6143dd8 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/pt.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "%d dias atrás"; + +/* No comment provided by engineer. */ +"%d hours ago" = "%d horas atrás"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "%d minutos atrás"; + +/* No comment provided by engineer. */ +"%d months ago" = "%d meses atrás"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "%d segundos atrás"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "%d semanas atrás"; + +/* No comment provided by engineer. */ +"%d years ago" = "%d anos atrás"; + +/* No comment provided by engineer. */ +"A minute ago" = "Há um minuto"; + +/* No comment provided by engineer. */ +"An hour ago" = "Há uma hora"; + +/* No comment provided by engineer. */ +"Just now" = "Agora"; + +/* No comment provided by engineer. */ +"Last month" = "Mês passado"; + +/* No comment provided by engineer. */ +"Last week" = "Semana passada"; + +/* No comment provided by engineer. */ +"Last year" = "Ano passado"; + +/* No comment provided by engineer. */ +"Yesterday" = "Ontem"; + +/* No comment provided by engineer. */ +"1 year ago" = "1 ano atrás"; + +/* No comment provided by engineer. */ +"1 month ago" = "1 mês atrás"; + +/* No comment provided by engineer. */ +"1 week ago" = "1 semana atrás"; + +/* No comment provided by engineer. */ +"1 day ago" = "1 dia atrás"; + +/* No comment provided by engineer. */ +"This morning" = "Esta manhã"; + +/* No comment provided by engineer. */ +"This afternoon" = "Esta tarde"; + +/* No comment provided by engineer. */ +"Today" = "Hoje"; + +/* No comment provided by engineer. */ +"This week" = "Esta semana"; + +/* No comment provided by engineer. */ +"This month" = "Este mês"; + +/* No comment provided by engineer. */ +"This year" = "Este ano"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/ro.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/ro.lproj/NSDateTimeAgo.strings new file mode 100755 index 0000000..24849d5 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/ro.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "În urmă cu %d zile"; + +/* No comment provided by engineer. */ +"%d hours ago" = "În urmă cu %d ore"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "În urmă cu %d minute"; + +/* No comment provided by engineer. */ +"%d months ago" = "În urmă cu %d luni"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "În urmă cu %d secunde"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "În urmă cu %d săptămâni"; + +/* No comment provided by engineer. */ +"%d years ago" = "În urmă cu %d ani"; + +/* No comment provided by engineer. */ +"A minute ago" = "În urmă cu 1 minut"; + +/* No comment provided by engineer. */ +"An hour ago" = "În urmă cu 1 oră"; + +/* No comment provided by engineer. */ +"Just now" = "Acum câteva momente"; + +/* No comment provided by engineer. */ +"Last month" = "Luna trecută"; + +/* No comment provided by engineer. */ +"Last week" = "Săptămâna trecută"; + +/* No comment provided by engineer. */ +"Last year" = "Anul trecut"; + +/* No comment provided by engineer. */ +"Yesterday" = "Ieri"; + +/* No comment provided by engineer. */ +"1 year ago" = "În urmă cu 1 an"; + +/* No comment provided by engineer. */ +"1 month ago" = "În urmă cu 1 lună"; + +/* No comment provided by engineer. */ +"1 week ago" = "În urmă cu 1 săptămână"; + +/* No comment provided by engineer. */ +"1 day ago" = "În urmă cu 1 zi"; + +/* No comment provided by engineer. */ +"This morning" = "Azi dimineață"; + +/* No comment provided by engineer. */ +"This afternoon" = "În această seară"; + +/* No comment provided by engineer. */ +"Today" = "Astăzi"; + +/* No comment provided by engineer. */ +"This week" = "Săptămâna aceasta"; + +/* No comment provided by engineer. */ +"This month" = "Luna aceasta"; + +/* No comment provided by engineer. */ +"This year" = "Anul acesta"; \ No newline at end of file diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/ru.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/ru.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..dc279ec --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/ru.lproj/NSDateTimeAgo.strings @@ -0,0 +1,125 @@ +/* + RULES: + Assume value for (seconds, hours, minutes, days, weeks, months or years) is XXXY, Y is last digit, XY is last two digits; + */ + +/* Y == 0 OR Y > 4 OR (XY > 10 AND XY < 15); */ +"%d days ago" = "%d дней назад"; + +/* Y > 1 AND Y < 5 AND (XY < 10 OR XY > 20); */ +"%d _days ago" = "%d дня назад"; + +/* Y == 1 AND XY != 11; */ +"%d __days ago" = "%d день назад"; + + +/* Y == 0 OR Y > 4 OR (XY > 10 AND XY < 15); */ +"%d hours ago" = "%d часов назад"; + +/* Y > 1 AND Y < 5 AND (XY < 10 OR XY > 20); */ +"%d _hours ago" = "%d часа назад"; + +/* Y == 1 AND XY != 11; */ +"%d __hours ago" = "%d час назад"; + + +/* Y == 0 OR Y > 4 OR (XY > 10 AND XY < 15); */ +"%d minutes ago" = "%d минут назад"; + +/* Y > 1 AND Y < 5 AND (XY < 10 OR XY > 20); */ +"%d _minutes ago" = "%d минуты назад"; + +/* Y == 1 AND XY != 11; */ +"%d __minutes ago" = "%d минуту назад"; + + +/* Y == 0 OR Y > 4 OR (XY > 10 AND XY < 15); */ +"%d months ago" = "%d месяцев назад"; + +/* Y > 1 AND Y < 5 AND (XY < 10 OR XY > 20); */ +"%d _months ago" = "%d месяца назад"; + +/* Y == 1 AND XY != 11; */ +"%d __months ago" = "%d месяц назад"; + + +/* Y == 0 OR Y > 4 OR (XY > 10 AND XY < 15); */ +"%d seconds ago" = "%d секунд назад"; + +/* Y > 1 AND Y < 5 AND (XY < 10 OR XY > 20); */ +"%d _seconds ago" = "%d секунды назад"; + +/* Y == 1 AND XY != 11; */ +"%d __seconds ago" = "%d секунду назад"; + + +/* Y == 0 OR Y > 4 OR (XY > 10 AND XY < 15); */ +"%d weeks ago" = "%d недель назад"; + +/* Y > 1 AND Y < 5 AND (XY < 10 OR XY > 20); */ +"%d _weeks ago" = "%d недели назад"; + +/* Y == 1 AND XY != 11; */ +"%d __weeks ago" = "%d неделю назад"; + + +/* Y == 0 OR Y > 4 OR (XY > 10 AND XY < 15); */ +"%d years ago" = "%d лет назад"; + +/* Y > 1 AND Y < 5 AND (XY < 10 OR XY > 20); */ +"%d _years ago" = "%d года назад"; + +/* Y == 1 AND XY != 11; */ +"%d __years ago" = "%d год назад"; + + +/* No comment provided by engineer. */ +"A minute ago" = "Минуту назад"; + +/* No comment provided by engineer. */ +"An hour ago" = "Час назад"; + +/* No comment provided by engineer. */ +"Just now" = "Только что"; + +/* No comment provided by engineer. */ +"Last month" = "Месяц назад"; + +/* No comment provided by engineer. */ +"Last week" = "Неделю назад"; + +/* No comment provided by engineer. */ +"Last year" = "Год назад"; + +/* No comment provided by engineer. */ +"Yesterday" = "Вчера"; + +/* No comment provided by engineer. */ +"1 year ago" = "1 год назад"; + +/* No comment provided by engineer. */ +"1 month ago" = "1 месяц назад"; + +/* No comment provided by engineer. */ +"1 week ago" = "1 неделю назад"; + +/* No comment provided by engineer. */ +"1 day ago" = "1 день назад"; + +/* No comment provided by engineer. */ +"This morning" = "Этим утром"; + +/* No comment provided by engineer. */ +"This afternoon" = "Этим днём"; + +/* No comment provided by engineer. */ +"Today" = "Сегодня"; + +/* No comment provided by engineer. */ +"This week" = "На этой неделе"; + +/* No comment provided by engineer. */ +"This month" = "В этом месяце"; + +/* No comment provided by engineer. */ +"This year" = "В этом году"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/sk.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/sk.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..e098fc2 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/sk.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "Pred %d dňami"; + +/* No comment provided by engineer. */ +"%d hours ago" = "Pred %d hodinami"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "Pred %d minútami"; + +/* No comment provided by engineer. */ +"%d months ago" = "Pred %d mesiaci"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "Pred %d sekundami"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "Pred %d týždňami"; + +/* No comment provided by engineer. */ +"%d years ago" = "Pred %d rokmi"; + +/* No comment provided by engineer. */ +"A minute ago" = "Pred minútou"; + +/* No comment provided by engineer. */ +"An hour ago" = "Pred hodinou"; + +/* No comment provided by engineer. */ +"Just now" = "Práve teraz"; + +/* No comment provided by engineer. */ +"Last month" = "Minulý mesiac"; + +/* No comment provided by engineer. */ +"Last week" = "Minulý týždeň"; + +/* No comment provided by engineer. */ +"Last year" = "Minulý rok"; + +/* No comment provided by engineer. */ +"Yesterday" = "Včera"; + +/* No comment provided by engineer. */ +"1 year ago" = "Pred rokom"; + +/* No comment provided by engineer. */ +"1 month ago" = "Pred mesiacom"; + +/* No comment provided by engineer. */ +"1 week ago" = "Pred týždňom"; + +/* No comment provided by engineer. */ +"1 day ago" = "Predvčerom"; + +/* No comment provided by engineer. */ +"This morning" = "Dnes dopoludnia"; + +/* No comment provided by engineer. */ +"This afternoon" = "Dnes popoludní"; + +/* No comment provided by engineer. */ +"Today" = "Dnes"; + +/* No comment provided by engineer. */ +"This week" = "Tento týždeň"; + +/* No comment provided by engineer. */ +"This month" = "Tento mesiac"; + +/* No comment provided by engineer. */ +"This year" = "Tento rok"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/sq.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/sq.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..8cc7170 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/sq.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "%d ditë më parë"; + +/* No comment provided by engineer. */ +"%d hours ago" = "%d orë më parë"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "%d minuta më parë"; + +/* No comment provided by engineer. */ +"%d months ago" = "%d muaj më parë"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "%d sekonda më parë"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "%d javë më parë"; + +/* No comment provided by engineer. */ +"%d years ago" = "%d vite më parë"; + +/* No comment provided by engineer. */ +"A minute ago" = "Një minutë më parë"; + +/* No comment provided by engineer. */ +"An hour ago" = "Një orë më parë"; + +/* No comment provided by engineer. */ +"Just now" = "Tani"; + +/* No comment provided by engineer. */ +"Last month" = "Muajin e kaluar"; + +/* No comment provided by engineer. */ +"Last week" = "Javën e kaluar"; + +/* No comment provided by engineer. */ +"Last year" = "Vitin e kaluar"; + +/* No comment provided by engineer. */ +"Yesterday" = "Dje"; + +/* No comment provided by engineer. */ +"1 year ago" = "1 vit më parë"; + +/* No comment provided by engineer. */ +"1 month ago" = "1 muaj më parë"; + +/* No comment provided by engineer. */ +"1 week ago" = "1 javë më parë"; + +/* No comment provided by engineer. */ +"1 day ago" = "1 ditë më parë"; + +/* No comment provided by engineer. */ +"This morning" = "Këtë mëngjes"; + +/* No comment provided by engineer. */ +"This afternoon" = "Këtë pasdite"; + +/* No comment provided by engineer. */ +"Today" = "Sot"; + +/* No comment provided by engineer. */ +"This week" = "Këtë javë"; + +/* No comment provided by engineer. */ +"This month" = "Këtë muaj"; + +/* No comment provided by engineer. */ +"This year" = "Këtë vit"; \ No newline at end of file diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/sv.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/sv.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..873a795 Binary files /dev/null and b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/sv.lproj/NSDateTimeAgo.strings differ diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/th.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/th.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..751129a Binary files /dev/null and b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/th.lproj/NSDateTimeAgo.strings differ diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/tr.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/tr.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..30db15b --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/tr.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "%d gün önce"; + +/* No comment provided by engineer. */ +"%d hours ago" = "%d saat önce"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "%d dakika önce"; + +/* No comment provided by engineer. */ +"%d months ago" = "%d ay önce"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "%d saniye önce"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "%d hafta önce"; + +/* No comment provided by engineer. */ +"%d years ago" = "%d yıl önce"; + +/* No comment provided by engineer. */ +"A minute ago" = "Bir dakika önce"; + +/* No comment provided by engineer. */ +"An hour ago" = "Bir saat önce"; + +/* No comment provided by engineer. */ +"Just now" = "Şimdi"; + +/* No comment provided by engineer. */ +"Last month" = "Geçen ay"; + +/* No comment provided by engineer. */ +"Last week" = "Geçen hafta"; + +/* No comment provided by engineer. */ +"Last year" = "Geçen yıl"; + +/* No comment provided by engineer. */ +"Yesterday" = "Dün"; + +/* No comment provided by engineer. */ +"1 year ago" = "1 yıl önce"; + +/* No comment provided by engineer. */ +"1 month ago" = "1 ay önce"; + +/* No comment provided by engineer. */ +"1 week ago" = "1 hafta önce"; + +/* No comment provided by engineer. */ +"1 day ago" = "1 gün önce"; + +/* No comment provided by engineer. */ +"This morning" = "Bu sabah"; + +/* No comment provided by engineer. */ +"This afternoon" = "Öğleden sonra"; + +/* No comment provided by engineer. */ +"Today" = "Bugün"; + +/* No comment provided by engineer. */ +"This week" = "Bu hafta"; + +/* No comment provided by engineer. */ +"This month" = "Bu ay"; + +/* No comment provided by engineer. */ +"This year" = "Bu yıl"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/uk.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/uk.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..f09d7c1 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/uk.lproj/NSDateTimeAgo.strings @@ -0,0 +1,125 @@ +/* + RULES: + Assume value for (seconds, hours, minutes, days, weeks, months or years) is XXXY, Y is last digit, XY is last two digits; + */ + +/* Y == 0 OR Y > 4 OR (XY > 10 AND XY < 15); */ +"%d days ago" = "%d днів тому"; + +/* Y > 1 AND Y < 5 AND (XY < 10 OR XY > 20); */ +"%d _days ago" = "%d дня тому"; + +/* Y == 1 AND XY != 11; */ +"%d __days ago" = "%d день тому"; + + +/* Y == 0 OR Y > 4 OR (XY > 10 AND XY < 15); */ +"%d hours ago" = "%d годин тому"; + +/* Y > 1 AND Y < 5 AND (XY < 10 OR XY > 20); */ +"%d _hours ago" = "%d години тому"; + +/* Y == 1 AND XY != 11; */ +"%d __hours ago" = "%d годину тому"; + + +/* Y == 0 OR Y > 4 OR (XY > 10 AND XY < 15); */ +"%d minutes ago" = "%d хвилин тому"; + +/* Y > 1 AND Y < 5 AND (XY < 10 OR XY > 20); */ +"%d _minutes ago" = "%d хвилини тому"; + +/* Y == 1 AND XY != 11; */ +"%d __minutes ago" = "%d хвилину тому"; + + +/* Y == 0 OR Y > 4 OR (XY > 10 AND XY < 15); */ +"%d months ago" = "%d місяців тому"; + +/* Y > 1 AND Y < 5 AND (XY < 10 OR XY > 20); */ +"%d _months ago" = "%d місяця тому"; + +/* Y == 1 AND XY != 11; */ +"%d __months ago" = "%d місяць тому"; + + +/* Y == 0 OR Y > 4 OR (XY > 10 AND XY < 15); */ +"%d seconds ago" = "%d секунд тому"; + +/* Y > 1 AND Y < 5 AND (XY < 10 OR XY > 20); */ +"%d _seconds ago" = "%d секунди тому"; + +/* Y == 1 AND XY != 11; */ +"%d __seconds ago" = "%d секунду тому"; + + +/* Y == 0 OR Y > 4 OR (XY > 10 AND XY < 15); */ +"%d weeks ago" = "%d тижднів тому"; + +/* Y > 1 AND Y < 5 AND (XY < 10 OR XY > 20); */ +"%d _weeks ago" = "%d тиждні тому"; + +/* Y == 1 AND XY != 11; */ +"%d __weeks ago" = "%d тиждень тому"; + + +/* Y == 0 OR Y > 4 OR (XY > 10 AND XY < 15); */ +"%d years ago" = "%d років тому"; + +/* Y > 1 AND Y < 5 AND (XY < 10 OR XY > 20); */ +"%d _years ago" = "%d роки тому"; + +/* Y == 1 AND XY != 11; */ +"%d __years ago" = "%d рік тому"; + + +/* No comment provided by engineer. */ +"A minute ago" = "Хвилину тому"; + +/* No comment provided by engineer. */ +"An hour ago" = "Годину тому"; + +/* No comment provided by engineer. */ +"Just now" = "Щойно"; + +/* No comment provided by engineer. */ +"Last month" = "Місяць тому"; + +/* No comment provided by engineer. */ +"Last week" = "Тиждень тому"; + +/* No comment provided by engineer. */ +"Last year" = "Рік тому"; + +/* No comment provided by engineer. */ +"Yesterday" = "Вчора"; + +/* No comment provided by engineer. */ +"1 year ago" = "1 рік тому"; + +/* No comment provided by engineer. */ +"1 month ago" = "1 місяць тому"; + +/* No comment provided by engineer. */ +"1 week ago" = "1 тиждень тому"; + +/* No comment provided by engineer. */ +"1 day ago" = "1 день тому"; + +/* No comment provided by engineer. */ +"This morning" = "Цього ранку"; + +/* No comment provided by engineer. */ +"This afternoon" = "Сьогодні вдень"; + +/* No comment provided by engineer. */ +"Today" = "Сьогодні"; + +/* No comment provided by engineer. */ +"This week" = "Цього тиждня"; + +/* No comment provided by engineer. */ +"This month" = "Цього місяця"; + +/* No comment provided by engineer. */ +"This year" = "Цього року"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/vi.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/vi.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..9131cc9 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/vi.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "%d ngày trước"; + +/* No comment provided by engineer. */ +"%d hours ago" = "%d giờ trước"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "%d phút trước"; + +/* No comment provided by engineer. */ +"%d months ago" = "%d tháng trước"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "%d giây trước"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "%d tuần trước"; + +/* No comment provided by engineer. */ +"%d years ago" = "%d năm trước"; + +/* No comment provided by engineer. */ +"A minute ago" = "Một phút trước"; + +/* No comment provided by engineer. */ +"An hour ago" = "Một giờ trước"; + +/* No comment provided by engineer. */ +"Just now" = "Vừa mới đây"; + +/* No comment provided by engineer. */ +"Last month" = "Tháng trước"; + +/* No comment provided by engineer. */ +"Last week" = "Tuần trước"; + +/* No comment provided by engineer. */ +"Last year" = "Năm vừa rồi"; + +/* No comment provided by engineer. */ +"Yesterday" = "Hôm qua"; + +/* No comment provided by engineer. */ +"1 year ago" = "1 năm trước"; + +/* No comment provided by engineer. */ +"1 month ago" = "1 tháng trước"; + +/* No comment provided by engineer. */ +"1 week ago" = "1 tuần trước"; + +/* No comment provided by engineer. */ +"1 day ago" = "1 ngày trước"; + +/* No comment provided by engineer. */ +"This morning" = "Sáng nay"; + +/* No comment provided by engineer. */ +"This afternoon" = "Trưa nay"; + +/* No comment provided by engineer. */ +"Today" = "Hôm nay"; + +/* No comment provided by engineer. */ +"This week" = "Tuần này"; + +/* No comment provided by engineer. */ +"This month" = "Tháng này"; + +/* No comment provided by engineer. */ +"This year" = "Năm nay"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/zh-Hans.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/zh-Hans.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..f589905 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/zh-Hans.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "%d天前"; + +/* No comment provided by engineer. */ +"%d hours ago" = "%d小时前"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "%d分钟前"; + +/* No comment provided by engineer. */ +"%d months ago" = "%d个月前"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "%d秒钟前"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "%d星期前"; + +/* No comment provided by engineer. */ +"%d years ago" = "%d年前"; + +/* No comment provided by engineer. */ +"A minute ago" = "1分钟前"; + +/* No comment provided by engineer. */ +"An hour ago" = "1小时前"; + +/* No comment provided by engineer. */ +"Just now" = "刚刚"; + +/* No comment provided by engineer. */ +"Last month" = "上个月"; + +/* No comment provided by engineer. */ +"Last week" = "上星期"; + +/* No comment provided by engineer. */ +"Last year" = "去年"; + +/* No comment provided by engineer. */ +"Yesterday" = "昨天"; + +/* You can add a space between the number and the characters. */ +"1 year ago" = "1年前"; + +/* You can add a space between the number and the characters. */ +"1 month ago" = "1个月前"; + +/* You can add a space between the number and the characters. */ +"1 week ago" = "1星期前"; + +/* You can add a space between the number and the characters. */ +"1 day ago" = "1天前"; + +/* No comment provided by engineer. */ +"This morning" = "今天上午"; + +/* No comment provided by engineer. */ +"This afternoon" = "今天下午"; + +/* No comment provided by engineer. */ +"Today" = "今天"; + +/* No comment provided by engineer. */ +"This week" = "本周"; + +/* No comment provided by engineer. */ +"This month" = "本月"; + +/* No comment provided by engineer. */ +"This year" = "今年"; diff --git a/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/zh-Hant.lproj/NSDateTimeAgo.strings b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/zh-Hant.lproj/NSDateTimeAgo.strings new file mode 100644 index 0000000..2226e39 --- /dev/null +++ b/Timer Demo/Timer Demo/NSDateTimeAgo.bundle/zh-Hant.lproj/NSDateTimeAgo.strings @@ -0,0 +1,71 @@ +/* No comment provided by engineer. */ +"%d days ago" = "%d天前"; + +/* No comment provided by engineer. */ +"%d hours ago" = "%d小時前"; + +/* No comment provided by engineer. */ +"%d minutes ago" = "%d分鐘前"; + +/* No comment provided by engineer. */ +"%d months ago" = "%d個月前"; + +/* No comment provided by engineer. */ +"%d seconds ago" = "%d秒鐘前"; + +/* No comment provided by engineer. */ +"%d weeks ago" = "%d星期前"; + +/* No comment provided by engineer. */ +"%d years ago" = "%d年前"; + +/* No comment provided by engineer. */ +"A minute ago" = "1分鐘前"; + +/* No comment provided by engineer. */ +"An hour ago" = "1小時前"; + +/* No comment provided by engineer. */ +"Just now" = "剛剛"; + +/* No comment provided by engineer. */ +"Last month" = "上個月"; + +/* No comment provided by engineer. */ +"Last week" = "上星期"; + +/* No comment provided by engineer. */ +"Last year" = "去年"; + +/* No comment provided by engineer. */ +"Yesterday" = "昨天"; + +/* No comment provided by engineer. */ +"1 year ago" = "1年前"; + +/* No comment provided by engineer. */ +"1 month ago" = "1個月前"; + +/* No comment provided by engineer. */ +"1 week ago" = "1星期前"; + +/* No comment provided by engineer. */ +"1 day ago" = "1天前"; + +/* No comment provided by engineer. */ +"This morning" = "今天上午"; + +/* No comment provided by engineer. */ +"This afternoon" = "今天下午"; + +/* No comment provided by engineer. */ +"Today" = "今天"; + +/* No comment provided by engineer. */ +"This week" = "本周"; + +/* No comment provided by engineer. */ +"This month" = "本月"; + +/* No comment provided by engineer. */ +"This year" = "今年"; diff --git a/Timer Demo/Timer Demo/StopwatchViewController.swift b/Timer Demo/Timer Demo/StopwatchViewController.swift new file mode 100644 index 0000000..b6d7594 --- /dev/null +++ b/Timer Demo/Timer Demo/StopwatchViewController.swift @@ -0,0 +1,181 @@ +// +// StopwatchViewController.swift +// Timer Demo +// +// Created by Jovanny Espinal on 8/27/15. +// Copyright © 2015 dereknetto. All rights reserved. +// + +import UIKit + +class StopwatchViewController: UIViewController { + + //MARK: Properties + + var timer: CADisplayLink! + var lapTimer: CADisplayLink! + + var startTime : CFAbsoluteTime = 0 + var elapsedTime : CFAbsoluteTime = 0 + var stopwatchString: String = "" + + var lapStartTime : CFAbsoluteTime = 0 + var lapElapsedTime : CFAbsoluteTime = 0 + var lapString: String = "" + + var laps: [String] = [] + var isStopped: Bool = true + var canAddLaps: Bool = false + + var totalTime : CFAbsoluteTime = 0 + + @IBOutlet weak var stopwatchLabel: UILabel! + + @IBOutlet weak var lapLabel: UILabel! + + + @IBOutlet weak var lapsTableView: UITableView! + + @IBOutlet weak var startStopButton: UIButton! + @IBOutlet weak var lapsResetButton: UIButton! + + //MARK: Lifecycle methods + + override func viewDidLoad() { + super.viewDidLoad() + + //the stopwatchLabel is set to 00:00.00 + stopwatchLabel.text = "00:00.00" + lapLabel.text = "00:00.00" + } + + //MARK: Actions + + @IBAction func startStop(sender: AnyObject) { + + if isStopped == true { //start stopwatch + + //record start time + startTime = CFAbsoluteTimeGetCurrent() + lapStartTime = CFAbsoluteTimeGetCurrent() + + //isStopped is false when the stopwatch is started + isStopped = false + + //Allow for laps to be added to the tableView (refer to the lapsReset method) + canAddLaps = true + + //updateStopwatch method + timer = CADisplayLink(target: self, selector: "updateStopwatch") + lapTimer = CADisplayLink(target: self, selector: "updateLap") + + //Add to run loop + timer.addToRunLoop(NSRunLoop.mainRunLoop(), forMode: NSRunLoopCommonModes) + lapTimer.addToRunLoop(NSRunLoop.mainRunLoop(), forMode: NSRunLoopCommonModes) + + //Update buttons + startStopButton.setImage(UIImage(named: "stop.png"), forState: UIControlState.Normal) + lapsResetButton.setImage(UIImage(named: "lap.png"), forState: UIControlState.Normal) + } + + else { //stop stopwatch + + //isStopped is true when the stopwatch is stopped + isStopped = true + + //prevent laps from being added to tableView (refer to the lapsReset method) + canAddLaps = false + + //invalidate the timers when the stopwatch is stopped + timer.invalidate() + lapTimer.invalidate() + + print("total time: \(totalTime)") + //update buttons + startStopButton.setImage(UIImage(named: "start.png"), forState: .Normal) + lapsResetButton.setImage(UIImage(named: "reset.png"), forState: .Normal) + } + + } + + @IBAction func lapsReset(sender: AnyObject) { + + if canAddLaps == true { //add lap + + lapStartTime = CFAbsoluteTimeGetCurrent() + //add the time since the last lap to the laps array (refer to the updateStopWatch method) + laps.insert(lapString, atIndex: 0) + + //Reset the lap counter and lap string + lapElapsedTime = 0 + lapString = "00:00.00" + + //Refreshes the table view that contains the lap tim + lapsTableView.reloadData() + } + + else { //reset + + //remove all elements in the laps array + laps.removeAll(keepCapacity: false) + + //Refreshes the table view that contains the lap times + lapsTableView.reloadData() + + //change reset button to lap button + lapsResetButton.setImage(UIImage(named: "lap.png"), forState: .Normal) + + stopwatchString = "00:00.00" + lapString = "00:00.00" + lapElapsedTime = 0 + totalTime = 0 + + //reset labels + stopwatchLabel.text = stopwatchString + lapLabel.text = lapString + } + } + + //MARK: Update methods + func updateStopwatch() { + totalTime += timer.duration + stopwatchString = stopwatchStringFromTimeInterval(totalTime) + stopwatchLabel.text = stopwatchString + + } + + func updateLap(){ + lapElapsedTime += lapTimer.duration + lapString = stopwatchStringFromTimeInterval(lapElapsedTime) + lapLabel.text = lapString + } + + func stopwatchStringFromTimeInterval(interval: CFTimeInterval) -> String { + let intInterval = Int(interval) + let minutes = (intInterval / 60) % 60 + let seconds = intInterval % 60 + let milliseconds = Int(floor(((interval - floor(interval)) * 100))) + + let minutesString = minutes > 9 ? "\(minutes)" : "0\(minutes)" + let secondsString = seconds > 9 ? "\(seconds)" : "0\(seconds)" + let millisecondsString = milliseconds > 9 ? "\(milliseconds)" : "0\(milliseconds)" + + let timeString = minutesString + ":" + secondsString + "." + millisecondsString + + return timeString + } + + // MARK: TableView methods + + func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + let cell = UITableViewCell(style: UITableViewCellStyle.Value1, reuseIdentifier: "Cell") + cell.backgroundColor = self.view.backgroundColor + cell.textLabel!.text = "Lap \(laps.count - indexPath.row)" + cell.detailTextLabel?.text = laps[indexPath.row] + return cell + } + + func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return laps.count + } +} diff --git a/Timer Demo/Timer Demo/TableViewCell.swift b/Timer Demo/Timer Demo/TableViewCell.swift new file mode 100644 index 0000000..ff1fa5b --- /dev/null +++ b/Timer Demo/Timer Demo/TableViewCell.swift @@ -0,0 +1,30 @@ +// +// TableViewCell.swift +// Timer Demo +// +// Created by Jovanny Espinal on 8/22/15. +// Copyright © 2015 dereknetto. All rights reserved. +// + +import UIKit + +class TableViewCell: UITableViewCell { + + @IBOutlet weak var timerName: UILabel! + @IBOutlet weak var timerLabel: UILabel! + @IBOutlet weak var startPauseButton: UIButton! + @IBOutlet weak var progressBar: UIProgressView! + + var timer : Timer! + var maxWidth : CGFloat = 0.0 + + override func awakeFromNib() { + super.awakeFromNib() + } + + override func setSelected(selected: Bool, animated: Bool) { + super.setSelected(selected, animated: animated) + // Configure the view for the selected state + } + +} diff --git a/Timer Demo/Timer Demo/TimeUtilities.swift b/Timer Demo/Timer Demo/TimeUtilities.swift new file mode 100644 index 0000000..c6daf95 --- /dev/null +++ b/Timer Demo/Timer Demo/TimeUtilities.swift @@ -0,0 +1,109 @@ +// +// TimeUtilities.swift +// Countdown +// +// Created by Z on 8/29/15. +// Copyright © 2015 dereknetto. All rights reserved. +// + +import UIKit + +func timeToTargetDate(targetDate: NSDate) -> NSTimeInterval{ + let currentDate = NSDate() + let timeToTargetDate = targetDate.timeIntervalSinceDate(currentDate) + return timeToTargetDate +} + +func dateAndTimeStringsfromDate(date:NSDate) -> ([String]){ + let formatter = NSDateFormatter() + formatter.dateStyle = .LongStyle + formatter.timeStyle = .ShortStyle + let fullString = formatter.stringFromDate(date) + return (fullString.componentsSeparatedByString(" at ")) +} + +enum unit: Int { + case Year, Month, Day, Hour, Minute, Second, Millisecond, Poop +} + +extension NSTimeInterval{ + + func timeUnits() -> [Int]{ + let intInterval = Int(self) + let years = (intInterval / 31556900) + let months = (intInterval / 2629740) % 12 + let days = Int(floor((self / (3600 * 24)) % 30.4368)) + let hours = (intInterval / 3600) % 24 + let minutes = (intInterval / 60) % 60 + let seconds = intInterval % 60 + let milliseconds = Int(floor(((self - floor(self)) * 100))) + + return [years, months, days, hours, minutes, seconds, milliseconds] + } + + func stringFromTimeInterval(withMilliseconds:Bool) -> String{ + let timeUnits = self.timeUnits() + + var foundFirstNonzero = false + var timeString = "" + + // remove leading 0s + for (idx, unit) in timeUnits.enumerate() { + if unit == 0 && !foundFirstNonzero { + continue + } + foundFirstNonzero = true + let unitString = unit > 9 ? "\(unit)" : "0\(unit)" + + if (withMilliseconds == true){ + if idx == timeUnits.count - 1 { + timeString = timeString + unitString + } + else if (idx == timeUnits.count - 2){ + timeString = timeString + unitString + "." + }else{ + timeString = timeString + unitString + ":" + } + }else{ + if idx == timeUnits.count - 1 { + //do nothing + } + else if (idx == timeUnits.count - 2){ + timeString = timeString + unitString + }else{ + timeString = timeString + unitString + ":" + } + } + } + + return timeString + } + + func largestTimeUnit() -> unit{ + var unitID = 0 + for (idx, unit) in self.timeUnits().enumerate() { + if unit > 0{ + unitID = idx + break + } + } + switch unitID{ + case 0: + return .Year + case 1: + return .Month + case 2: + return .Day + case 3: + return .Hour + case 4: + return .Minute + case 5: + return .Second + case 6: + return .Millisecond + default: + return .Poop + } + } +} diff --git a/Timer Demo/Timer Demo/Timer.swift b/Timer Demo/Timer Demo/Timer.swift new file mode 100644 index 0000000..0407dd8 --- /dev/null +++ b/Timer Demo/Timer Demo/Timer.swift @@ -0,0 +1,24 @@ +// +// Timer.swift +// Timer Demo +// +// Created by Z on 8/22/15. +// Copyright © 2015 dereknetto. All rights reserved. +// + +import UIKit + +class Timer: NSObject { + + var timerName : String + var startTime: CFTimeInterval! + var remainingTime: CFTimeInterval! + var isPaused = true + + init(name: String, startTime:CFTimeInterval){ + self.startTime = startTime + self.remainingTime = startTime + self.timerName = name + } + +} diff --git a/Timer Demo/Timer Demo/TimerViewController.swift b/Timer Demo/Timer Demo/TimerViewController.swift new file mode 100644 index 0000000..dfe999b --- /dev/null +++ b/Timer Demo/Timer Demo/TimerViewController.swift @@ -0,0 +1,174 @@ +// +// ViewController.swift +// Timer Demo +// +// Created by Z on 8/22/15. +// Copyright © 2015 dereknetto. All rights reserved. +// + +import UIKit +import QuartzCore +import AVFoundation + +class ViewController: UIViewController, + UITableViewDataSource, + UITableViewDelegate, + AddTimerViewControllerDelegate { + + @IBOutlet weak var tableView: UITableView! + @IBOutlet weak var oneMinuteButton: UIButton! + @IBOutlet weak var threeMinuteButton: UIButton! + @IBOutlet weak var fiveMinuteButton: UIButton! + @IBOutlet weak var quickTimerLabel: UILabel! + @IBOutlet weak var quickTimerTextField: UITextField! + + var displayLink : CADisplayLink! + var audioPlayer = AVAudioPlayer() + var timers: [Timer] = []; + + //default timers + let popcornTimer = Timer(name: "Popcorn", startTime: 180.000) + let setRestTimer = Timer(name: "In Between Sets Rest", startTime: 90.000) + let workBreakTimer = Timer(name: "Break", startTime: 60.000*30.000) + + override func viewDidLoad() { + super.viewDidLoad() + + let alertSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("LoudAlarmClockBuzzer", ofType: "mp3")!) + do { + try audioPlayer = AVAudioPlayer(contentsOfURL: alertSound) + } catch { + print("Error") + } + + audioPlayer.numberOfLoops = -1 + audioPlayer.prepareToPlay() + + displayLink = CADisplayLink(target: self, selector: Selector("update")) + displayLink.addToRunLoop(NSRunLoop.mainRunLoop(), forMode: NSRunLoopCommonModes) + + timers.append(popcornTimer) + timers.append(setRestTimer) + timers.append(workBreakTimer) + } + + + func updateTimer(timer:Timer){ + timer.remainingTime = timer.remainingTime - displayLink.duration + print("Remaining time: \(timer.remainingTime)") + } + + func update(){ + for timer in timers{ + + if timer.isPaused == false{ + updateTimer(timer) + if (timer.remainingTime < 0.0){ + audioPlayer.play() + displayAlert() + + timer.isPaused = true + } + } + tableView.reloadData() + } + } + + + override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { + if let viewController = segue.destinationViewController as? AddTimerViewController { + viewController.delegate = self + } + } + + func displayAlert(){ + let alertController = UIAlertController(title: "Time's up!", message: nil, preferredStyle: .Alert) + + let OKAction = UIAlertAction(title: "OK", style: .Default) { (action:UIAlertAction!) in + self.audioPlayer.stop() + } + + alertController.addAction(OKAction) + + self.presentViewController(alertController, animated: true, completion:nil) + } + + func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + + let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! TableViewCell + + let timer = timers[indexPath.row] + + cell.timer = timer + + cell.timerName.text = cell.timer.timerName + cell.timerLabel.text = cell.timer.remainingTime.stringFromTimeInterval(false) + + + if timer.isPaused { + cell.startPauseButton.setImage(UIImage(named: "Start-50.png"), forState: .Normal) + cell.timer.remainingTime = cell.timer.startTime + } + else { + cell.startPauseButton.setImage(UIImage(named: "Cancel-50.png"), forState: .Normal) + } + + cell.startPauseButton.tag = indexPath.row + + cell.startPauseButton.addTarget(self, action: "startPause:", forControlEvents: UIControlEvents.TouchUpInside) + + cell.progressBar.progress = Float((cell.timer.remainingTime/cell.timer.startTime)) + + return cell + } + + + func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + + return timers.count + } + + @IBAction func startPause(startPauseButton: UIButton){ + + for path in tableView.indexPathsForVisibleRows! { + let cell = tableView.cellForRowAtIndexPath(path) as! TableViewCell + + if startPauseButton.tag == path.row { + cell.timer.isPaused = !cell.timer.isPaused + } + } + } + + + @IBAction func oneMinuteTimer(sender: UIButton) { + + let quickTimer = Timer(name: quickTimerTextField.text!, startTime: 60.000) + timers.append(quickTimer) + tableView.reloadData() + + + } + + @IBAction func threeMinuteTimer(sender: UIButton) { + let quickTimer = Timer(name: quickTimerTextField.text!, startTime: 180.000) + timers.append(quickTimer) + tableView.reloadData() + + } + + @IBAction func fiveMinuteTimer(sender: UIButton) { + let quickTimer = Timer(name: quickTimerTextField.text!, startTime: 300.000) + timers.append(quickTimer) + tableView.reloadData() + } + + + // MARK: add timer view controller delegate + + func addTimerViewController(viewController: AddTimerViewController, didCreateNewTimer timer: Timer) { + timers.append(timer) + tableView.reloadData() + } + + +} \ No newline at end of file diff --git a/Time/TimeTests/Info.plist b/Timer Demo/Timer DemoTests/Info.plist similarity index 90% rename from Time/TimeTests/Info.plist rename to Timer Demo/Timer DemoTests/Info.plist index 54624a4..ba72822 100644 --- a/Time/TimeTests/Info.plist +++ b/Timer Demo/Timer DemoTests/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - com.mikekavouras.$(PRODUCT_NAME:rfc1034identifier) + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/Timer Demo/Timer DemoTests/Timer_DemoTests.swift b/Timer Demo/Timer DemoTests/Timer_DemoTests.swift new file mode 100644 index 0000000..f1a0c6d --- /dev/null +++ b/Timer Demo/Timer DemoTests/Timer_DemoTests.swift @@ -0,0 +1,35 @@ +// +// Timer_DemoTests.swift +// Timer DemoTests +// +// Created by Z on 8/22/15. +// Copyright © 2015 dereknetto. All rights reserved. +// + +import XCTest + +class Timer_DemoTests: XCTestCase { + + override func setUp() { + super.setUp() + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDown() { + // Put teardown code here. This method is called after the invocation of each test method in the class. + super.tearDown() + } + + func testExample() { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + func testPerformanceExample() { + // This is an example of a performance test case. + self.measureBlock() { + // Put the code you want to measure the time of here. + } + } + +} diff --git a/Timer Demo/Timer DemoUITests/Info.plist b/Timer Demo/Timer DemoUITests/Info.plist new file mode 100644 index 0000000..ba72822 --- /dev/null +++ b/Timer Demo/Timer DemoUITests/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/Timer Demo/Timer DemoUITests/Timer_DemoUITests.swift b/Timer Demo/Timer DemoUITests/Timer_DemoUITests.swift new file mode 100644 index 0000000..de29cb4 --- /dev/null +++ b/Timer Demo/Timer DemoUITests/Timer_DemoUITests.swift @@ -0,0 +1,35 @@ +// +// Timer_DemoUITests.swift +// Timer DemoUITests +// +// Created by Z on 8/22/15. +// Copyright © 2015 dereknetto. All rights reserved. +// + +import Foundation +import XCTest + +class Timer_DemoUITests: XCTestCase { + + override func setUp() { + super.setUp() + + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. + XCUIApplication().launch() + } + + override func tearDown() { + // Put teardown code here. This method is called after the invocation of each test method in the class. + super.tearDown() + } + + func testExample() { + // Use recording to get started writing UI tests. + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + +}