Commit 742ac0261a086c6bbe14128cedccdd085f073250
1 parent
36cd46f5
--no commit message
Showing
18 changed files
with
407 additions
and
159 deletions
DUREX Vendor Control/CommunicationProtocol.m
... | ... | @@ -14,7 +14,8 @@ |
14 | 14 | |
15 | 15 | @implementation CommunicationProtocol |
16 | 16 | |
17 | -+ (id)sharedProtocol { | |
17 | ++ (id)sharedProtocol | |
18 | +{ | |
18 | 19 | static CommunicationProtocol *shared = nil; |
19 | 20 | static dispatch_once_t onceToken; |
20 | 21 | dispatch_once(&onceToken, ^{ |
... | ... | @@ -41,7 +42,6 @@ |
41 | 42 | { |
42 | 43 | NSLog(@"[CommunicationProtocol.m]: %@",error); |
43 | 44 | }]; |
44 | - [NSThread sleepForTimeInterval:10]; | |
45 | 45 | } |
46 | 46 | |
47 | 47 | -(void) readMessageAvailableDevice |
... | ... | @@ -62,7 +62,6 @@ |
62 | 62 | { |
63 | 63 | NSLog(@"[CommunicationProtocol.m]: %@",error); |
64 | 64 | }]; |
65 | - [NSThread sleepForTimeInterval:10]; | |
66 | 65 | } |
67 | 66 | |
68 | 67 | -(Boolean) waitForMessageAvailableMobile: (Boolean) status |
... | ... | @@ -173,8 +172,7 @@ |
173 | 172 | } |
174 | 173 | [[EMConnectionManager sharedManager] writeValue:@"0" toResource:@"messageAvailableDevice" onSuccess:^ |
175 | 174 | { |
176 | - NSLog(@"[CommunicationProtocol.m]: messageAvailableDevice set to FALSE"); | |
177 | - NSLog(@"[CommunicationProtocol.m]: Message received: %@",message); | |
175 | + NSLog(@"[CommunicationProtocol.m]: messageAvailableDevice set to FALSE"); | |
178 | 176 | } |
179 | 177 | onFail:^(NSError *error) |
180 | 178 | { |
... | ... | @@ -189,23 +187,30 @@ |
189 | 187 | { |
190 | 188 | unsigned long remainingBytes = [message length]; |
191 | 189 | uint8_t numBytes, current_index = 0; |
192 | - __block Boolean status = TRUE; | |
190 | + __block Boolean status = FALSE; | |
191 | + __block Boolean blockCompleted = FALSE; | |
193 | 192 | [[EMConnectionManager sharedManager] writeValue:@"0" toResource:@"messageAvailableMobile" onSuccess:^ |
194 | 193 | { |
195 | 194 | status = TRUE; |
196 | 195 | NSLog(@"[CommunicationProtocol.m]: messageAvailableMobile set to FALSE"); |
196 | + blockCompleted = TRUE; | |
197 | 197 | } |
198 | 198 | onFail:^(NSError *error) |
199 | 199 | { |
200 | 200 | NSLog(@"[CommunicationProtocol.m]: %@",error); |
201 | 201 | status = FALSE; |
202 | - } | |
203 | - ]; | |
202 | + blockCompleted = TRUE; | |
203 | + }]; | |
204 | + while(blockCompleted != TRUE) | |
205 | + { | |
206 | + [NSThread sleepForTimeInterval:1]; | |
207 | + } | |
208 | + NSLog(@"[CommunicationProtocol.m]: messageAvailableMobile write block completed"); | |
209 | + blockCompleted = FALSE; | |
204 | 210 | [[EMConnectionManager sharedManager] writeValue:[NSNumber numberWithUnsignedChar:(unsigned char)([message length]/MAX_STRING_LENGTH)+1] toResource:@"numPackets" onSuccess:^ |
205 | 211 | { |
206 | 212 | status = TRUE; |
207 | 213 | NSLog(@"[CommunicationProtocol.m]: numPackets set to %d",([message length]/MAX_STRING_LENGTH) + 1); |
208 | - NSLog(@"[CommunicationProtocol.m]: new status is: %d",status); | |
209 | 214 | } |
210 | 215 | onFail:^(NSError *error) |
211 | 216 | { |
... | ... | @@ -269,7 +274,7 @@ |
269 | 274 | { |
270 | 275 | status = TRUE; |
271 | 276 | NSLog(@"[CommunicationProtocol.m]: messageAvailableMobile set to TRUE"); |
272 | - NSLog(@"[CommunicationProtocol.m]: Message written"); | |
277 | + NSLog(@"[CommunicationProtocol.m]: Packet written"); | |
273 | 278 | } |
274 | 279 | onFail:^(NSError *error) |
275 | 280 | { |
... | ... | @@ -282,7 +287,10 @@ |
282 | 287 | } |
283 | 288 | } |
284 | 289 | } |
285 | - NSLog(@"[CommunicationProtocol.m]: Device has processed the message"); | |
290 | + if(![self waitForMessageAvailableMobile:FALSE]) | |
291 | + { | |
292 | + NSLog(@"[CommunicationProtocol.m]: Device has processed the message"); | |
293 | + } | |
286 | 294 | return status; |
287 | 295 | } |
288 | 296 | |
... | ... | @@ -301,7 +309,7 @@ |
301 | 309 | } |
302 | 310 | } |
303 | 311 | NSLog(@"[CommunicationProtocol.m]: Error while establishing connection"); |
304 | - return TRUE; | |
312 | + return TRUE; //HACK! | |
305 | 313 | } |
306 | 314 | |
307 | 315 | -(Boolean) updateTime: (NSDateComponents*) date | ... | ... |
DUREX Vendor Control/DUREX Vendor Control.xcodeproj/project.pbxproj
... | ... | @@ -19,6 +19,9 @@ |
19 | 19 | 34AAB885189804FF0019860D /* EMDevicePickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34AAB87A189804FF0019860D /* EMDevicePickerViewController.m */; }; |
20 | 20 | 34AAB889189804FF0019860D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 34AAB880189804FF0019860D /* main.m */; }; |
21 | 21 | 34AAB88D189805300019860D /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 34AAB88C189805300019860D /* Images.xcassets */; }; |
22 | + F933F80419B6819400521B90 /* DatePickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F933F80219B6819400521B90 /* DatePickerViewController.m */; }; | |
23 | + F933F80519B6819400521B90 /* DatePickerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F933F80319B6819400521B90 /* DatePickerViewController.xib */; }; | |
24 | + F933F80719B681E000521B90 /* DatePickerViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = F933F80619B681E000521B90 /* DatePickerViewController_iPad.xib */; }; | |
22 | 25 | F961D804199A5F1000E9282C /* MainStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F961D806199A5F1000E9282C /* MainStoryboard.storyboard */; }; |
23 | 26 | F961D80C199A5F2D00E9282C /* back_arrow.png in Resources */ = {isa = PBXBuildFile; fileRef = F961D80E199A5F2D00E9282C /* back_arrow.png */; }; |
24 | 27 | F961D816199A5FA000E9282C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = F961D814199A5FA000E9282C /* Localizable.strings */; }; |
... | ... | @@ -72,6 +75,10 @@ |
72 | 75 | 34AAB87F189804FF0019860D /* DUREX Vendor Control-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "DUREX Vendor Control-Prefix.pch"; path = "FirstAppExample/DUREX Vendor Control-Prefix.pch"; sourceTree = SOURCE_ROOT; }; |
73 | 76 | 34AAB880189804FF0019860D /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = FirstAppExample/main.m; sourceTree = SOURCE_ROOT; }; |
74 | 77 | 34AAB88C189805300019860D /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = FirstAppExample/Images.xcassets; sourceTree = SOURCE_ROOT; }; |
78 | + F933F80119B6819400521B90 /* DatePickerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DatePickerViewController.h; sourceTree = SOURCE_ROOT; }; | |
79 | + F933F80219B6819400521B90 /* DatePickerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DatePickerViewController.m; sourceTree = SOURCE_ROOT; }; | |
80 | + F933F80319B6819400521B90 /* DatePickerViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DatePickerViewController.xib; sourceTree = SOURCE_ROOT; }; | |
81 | + F933F80619B681E000521B90 /* DatePickerViewController_iPad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DatePickerViewController_iPad.xib; sourceTree = SOURCE_ROOT; }; | |
75 | 82 | F961D807199A5F1800E9282C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MainStoryboard.storyboard; sourceTree = "<group>"; }; |
76 | 83 | F961D809199A5F2200E9282C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/MainStoryboard.strings; sourceTree = "<group>"; }; |
77 | 84 | F961D80B199A5F2300E9282C /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/MainStoryboard.strings; sourceTree = "<group>"; }; |
... | ... | @@ -167,6 +174,10 @@ |
167 | 174 | F98356DA192EAFD400EA6821 /* CommunicationProtocol.m */, |
168 | 175 | F9A8EF7A192FE201009E7532 /* Stack.h */, |
169 | 176 | F9A8EF7B192FE201009E7532 /* Stack.m */, |
177 | + F933F80119B6819400521B90 /* DatePickerViewController.h */, | |
178 | + F933F80219B6819400521B90 /* DatePickerViewController.m */, | |
179 | + F933F80319B6819400521B90 /* DatePickerViewController.xib */, | |
180 | + F933F80619B681E000521B90 /* DatePickerViewController_iPad.xib */, | |
170 | 181 | 34AAB88C189805300019860D /* Images.xcassets */, |
171 | 182 | 347186B91807290E00FA0FB2 /* Schemas */, |
172 | 183 | 347186A718070F7F00FA0FB2 /* Device Picker */, |
... | ... | @@ -316,7 +327,9 @@ |
316 | 327 | isa = PBXResourcesBuildPhase; |
317 | 328 | buildActionMask = 2147483647; |
318 | 329 | files = ( |
330 | + F933F80519B6819400521B90 /* DatePickerViewController.xib in Resources */, | |
319 | 331 | F98356D8192E906600EA6821 /* bluetooth.png in Resources */, |
332 | + F933F80719B681E000521B90 /* DatePickerViewController_iPad.xib in Resources */, | |
320 | 333 | F961D819199A711300E9282C /* EMConnectingView.xib in Resources */, |
321 | 334 | F9C77F50192CDE30002DBE8A /* system.json in Resources */, |
322 | 335 | F961D80C199A5F2D00E9282C /* back_arrow.png in Resources */, |
... | ... | @@ -340,6 +353,7 @@ |
340 | 353 | isa = PBXSourcesBuildPhase; |
341 | 354 | buildActionMask = 2147483647; |
342 | 355 | files = ( |
356 | + F933F80419B6819400521B90 /* DatePickerViewController.m in Sources */, | |
343 | 357 | F98356D6192E835F00EA6821 /* InitialViewController.m in Sources */, |
344 | 358 | F9A8EF7C192FE201009E7532 /* Stack.m in Sources */, |
345 | 359 | 34AAB885189804FF0019860D /* EMDevicePickerViewController.m in Sources */, | ... | ... |
DUREX Vendor Control/DUREX Vendor Control.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/UserInterfaceState.xcuserstate
No preview for this file type
DUREX Vendor Control/DUREX Vendor Control.xcodeproj/xcuserdata/imanol.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
... | ... | @@ -10,11 +10,11 @@ |
10 | 10 | ignoreCount = "0" |
11 | 11 | continueAfterRunningActions = "No" |
12 | 12 | filePath = "CommunicationProtocol.m" |
13 | - timestampString = "431362674.335425" | |
13 | + timestampString = "431391382.511911" | |
14 | 14 | startingColumnNumber = "9223372036854775807" |
15 | 15 | endingColumnNumber = "9223372036854775807" |
16 | - startingLineNumber = "110" | |
17 | - endingLineNumber = "110" | |
16 | + startingLineNumber = "109" | |
17 | + endingLineNumber = "109" | |
18 | 18 | landmarkName = "-readMessage" |
19 | 19 | landmarkType = "5"> |
20 | 20 | </BreakpointContent> |
... | ... | @@ -42,11 +42,11 @@ |
42 | 42 | ignoreCount = "0" |
43 | 43 | continueAfterRunningActions = "No" |
44 | 44 | filePath = "CommunicationProtocol.m" |
45 | - timestampString = "431362674.335425" | |
45 | + timestampString = "431391382.511911" | |
46 | 46 | startingColumnNumber = "9223372036854775807" |
47 | 47 | endingColumnNumber = "9223372036854775807" |
48 | - startingLineNumber = "101" | |
49 | - endingLineNumber = "101" | |
48 | + startingLineNumber = "100" | |
49 | + endingLineNumber = "100" | |
50 | 50 | landmarkName = "-waitForMessageAvailableDevice:" |
51 | 51 | landmarkType = "5"> |
52 | 52 | </BreakpointContent> |
... | ... | @@ -58,30 +58,14 @@ |
58 | 58 | ignoreCount = "0" |
59 | 59 | continueAfterRunningActions = "No" |
60 | 60 | filePath = "CommunicationProtocol.m" |
61 | - timestampString = "431362674.335425" | |
61 | + timestampString = "431391382.511911" | |
62 | 62 | startingColumnNumber = "9223372036854775807" |
63 | 63 | endingColumnNumber = "9223372036854775807" |
64 | - startingLineNumber = "105" | |
65 | - endingLineNumber = "105" | |
64 | + startingLineNumber = "104" | |
65 | + endingLineNumber = "104" | |
66 | 66 | landmarkName = "-waitForMessageAvailableDevice:" |
67 | 67 | landmarkType = "5"> |
68 | 68 | </BreakpointContent> |
69 | 69 | </BreakpointProxy> |
70 | - <BreakpointProxy | |
71 | - BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint"> | |
72 | - <BreakpointContent | |
73 | - shouldBeEnabled = "Yes" | |
74 | - ignoreCount = "0" | |
75 | - continueAfterRunningActions = "No" | |
76 | - filePath = "CommunicationProtocol.m" | |
77 | - timestampString = "431363609.871016" | |
78 | - startingColumnNumber = "9223372036854775807" | |
79 | - endingColumnNumber = "9223372036854775807" | |
80 | - startingLineNumber = "193" | |
81 | - endingLineNumber = "193" | |
82 | - landmarkName = "-writeMessage:" | |
83 | - landmarkType = "5"> | |
84 | - </BreakpointContent> | |
85 | - </BreakpointProxy> | |
86 | 70 | </Breakpoints> |
87 | 71 | </Bucket> | ... | ... |
DUREX Vendor Control/DatePickerViewController.h
0 โ 100644
1 | +// | |
2 | +// DatePickerViewController.h | |
3 | +// DUREX Vendor Control | |
4 | +// | |
5 | +// Created by Imanol Barba on 03/09/14. | |
6 | +// Copyright (c) 2014 Emmoco. All rights reserved. | |
7 | +// | |
8 | + | |
9 | +@class DatePickerViewController; | |
10 | + | |
11 | +#import <UIKit/UIKit.h> | |
12 | +#import <QuartzCore/QuartzCore.h> | |
13 | +#import "DUREXAppDelegate.h" | |
14 | + | |
15 | +@protocol DatePickerViewControllerDelegate <NSObject> | |
16 | +- (void)addItemViewController:(DatePickerViewController*)controller didFinishEnteringItem:(NSDate *)date; | |
17 | + | |
18 | +@end | |
19 | + | |
20 | +@interface DatePickerViewController : UIViewController | |
21 | + | |
22 | +@property (strong, nonatomic) IBOutlet UIView *datePickerView; | |
23 | +@property (strong, nonatomic) IBOutlet UIDatePicker *datePicker; | |
24 | +@property (nonatomic, strong) id <DatePickerViewControllerDelegate> delegate; | |
25 | + | |
26 | +- (void)showInView:(UIView *)aView animated:(BOOL)animated; | |
27 | +- (IBAction)closePopup:(id)sender; | |
28 | + | |
29 | +@end | ... | ... |
DUREX Vendor Control/DatePickerViewController.m
0 โ 100644
1 | +// | |
2 | +// DatePickerViewController.m | |
3 | +// DUREX Vendor Control | |
4 | +// | |
5 | +// Created by Imanol Barba on 03/09/14. | |
6 | +// Copyright (c) 2014 Emmoco. All rights reserved. | |
7 | +// | |
8 | + | |
9 | +#import "DatePickerViewController.h" | |
10 | + | |
11 | +@interface DatePickerViewController () | |
12 | + | |
13 | +@end | |
14 | + | |
15 | +@implementation DatePickerViewController | |
16 | + | |
17 | +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil | |
18 | +{ | |
19 | + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; | |
20 | + if (self) { | |
21 | + // Custom initialization | |
22 | + } | |
23 | + return self; | |
24 | +} | |
25 | + | |
26 | +- (void)viewDidLoad | |
27 | +{ | |
28 | + self.view.backgroundColor=[[UIColor blackColor] colorWithAlphaComponent:.7]; | |
29 | + self.datePickerView.layer.cornerRadius = 5; | |
30 | + self.datePickerView.layer.shadowOpacity = 0.8; | |
31 | + self.datePickerView.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); | |
32 | + [super viewDidLoad]; | |
33 | + // Do any additional setup after loading the view from its nib. | |
34 | +} | |
35 | + | |
36 | +- (void)didReceiveMemoryWarning | |
37 | +{ | |
38 | + [super didReceiveMemoryWarning]; | |
39 | + // Dispose of any resources that can be recreated. | |
40 | +} | |
41 | + | |
42 | +- (void)showAnimate | |
43 | +{ | |
44 | + self.view.transform = CGAffineTransformMakeScale(1.3, 1.3); | |
45 | + self.view.alpha = 0; | |
46 | + [UIView animateWithDuration:.25 animations:^{ | |
47 | + self.view.alpha = 1; | |
48 | + self.view.transform = CGAffineTransformMakeScale(1, 1); | |
49 | + }]; | |
50 | +} | |
51 | + | |
52 | +- (void)removeAnimate | |
53 | +{ | |
54 | + [UIView animateWithDuration:.25 animations:^{ | |
55 | + self.view.transform = CGAffineTransformMakeScale(1.3, 1.3); | |
56 | + self.view.alpha = 0.0; | |
57 | + } completion:^(BOOL finished) { | |
58 | + if (finished) { | |
59 | + [self.view removeFromSuperview]; | |
60 | + } | |
61 | + }]; | |
62 | +} | |
63 | + | |
64 | +- (IBAction)closePopup:(id)sender | |
65 | +{ | |
66 | + [self.delegate addItemViewController:self didFinishEnteringItem:[[self datePicker] date]]; | |
67 | + [self removeAnimate]; | |
68 | +} | |
69 | + | |
70 | +- (void)showInView:(UIView *)aView animated:(BOOL)animated | |
71 | +{ | |
72 | + [aView addSubview:self.view]; | |
73 | + if (animated) { | |
74 | + [self showAnimate]; | |
75 | + } | |
76 | +} | |
77 | + | |
78 | +@end | ... | ... |
DUREX Vendor Control/DatePickerViewController.xib
0 โ 100644
1 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
2 | +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5056" systemVersion="13E28" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES"> | |
3 | + <dependencies> | |
4 | + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/> | |
5 | + </dependencies> | |
6 | + <objects> | |
7 | + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="DatePickerViewController"> | |
8 | + <connections> | |
9 | + <outlet property="datePicker" destination="6Ex-R5-AYV" id="50R-pL-vEb"/> | |
10 | + <outlet property="datePickerView" destination="o92-Jq-3Xo" id="IOi-YU-3Wz"/> | |
11 | + <outlet property="view" destination="7fx-e7-JEt" id="dL9-Ac-hWL"/> | |
12 | + </connections> | |
13 | + </placeholder> | |
14 | + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> | |
15 | + <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="7fx-e7-JEt"> | |
16 | + <rect key="frame" x="0.0" y="0.0" width="320" height="568"/> | |
17 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | |
18 | + <subviews> | |
19 | + <view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="o92-Jq-3Xo"> | |
20 | + <rect key="frame" x="6" y="105" width="308" height="282"/> | |
21 | + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | |
22 | + <subviews> | |
23 | + <datePicker contentMode="scaleToFill" ambiguous="YES" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" datePickerMode="dateAndTime" minuteInterval="1" translatesAutoresizingMaskIntoConstraints="NO" id="6Ex-R5-AYV"> | |
24 | + <rect key="frame" x="-6" y="62" width="320" height="162"/> | |
25 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> | |
26 | + <date key="date" timeIntervalSinceReferenceDate="431369786.91497999"> | |
27 | + <!--2014-09-02 16:56:26 +0000--> | |
28 | + </date> | |
29 | + <timeZone key="timeZone" name="America/Los_Angeles"> | |
30 | + <mutableData key="data"> | |
31 | +VFppZgAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAC5AAAABAAAABCepkign7sVkKCGKqChmveQ | |
32 | +y4kaoNIj9HDSYSYQ1v50INiArZDa/tGg28CQENzes6DdqayQ3r6VoN+JjpDgnneg4WlwkOJ+WaDjSVKQ | |
33 | +5F47oOUpNJDmR1gg5xJREOgnOiDo8jMQ6gccIOrSFRDr5v4g7LH3EO3G4CDukdkQ76/8oPBxuxDxj96g | |
34 | +8n/BkPNvwKD0X6OQ9U+ioPY/hZD3L4Sg+CiiEPkPZqD6CIQQ+viDIPvoZhD82GUg/chIEP64RyD/qCoQ | |
35 | +AJgpIAGIDBACeAsgA3EokARhJ6AFUQqQBkEJoAcw7JAHjUOgCRDOkAmtvyAK8LCQC+CvoAzZzRANwJGg | |
36 | +DrmvEA+priAQmZEQEYmQIBJ5cxATaXIgFFlVEBVJVCAWOTcQFyk2IBgiU5AZCRggGgI1kBryNKAb4heQ | |
37 | +HNIWoB3B+ZAesfigH6HbkCB2KyAhgb2QIlYNICNq2hAkNe8gJUq8ECYV0SAnKp4QJ/7toCkKgBAp3s+g | |
38 | +KupiECu+saAs036QLZ6ToC6zYJAvfnWgMJNCkDFnkiAycySQM0d0IDRTBpA1J1YgNjLokDcHOCA4HAUQ | |
39 | +OOcaIDn75xA6xvwgO9vJEDywGKA9u6sQPo/6oD+bjRBAb9ygQYSpkEJPvqBDZIuQRC+goEVEbZBF89Mg | |
40 | +Ry2KEEfTtSBJDWwQSbOXIErtThBLnLOgTNZqkE18laBOtkyQT1x3oFCWLpBRPFmgUnYQkFMcO6BUVfKQ | |
41 | +VPwdoFY11JBW5TogWB7xEFjFHCBZ/tMQWqT+IFvetRBchOAgXb6XEF5kwiBfnnkQYE3eoGGHlZBiLcCg | |
42 | +Y2d3kGQNoqBlR1mQZe2EoGcnO5BnzWagaQcdkGmtSKBq5v+Qa5ZlIGzQHBBtdkcgbq/+EG9WKSBwj+AQ | |
43 | +cTYLIHJvwhBzFe0gdE+kEHT/CaB2OMCQdt7roHgYopB4vs2gefiEkHqer6B72GaQfH6RoH24SJB+XnOg | |
44 | +f5gqkAABAAECAwEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA | |
45 | +AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA | |
46 | +AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA | |
47 | +AQABAAEAAQAB//+dkAEA//+PgAAE//+dkAEI//+dkAEMUERUAFBTVABQV1QAUFBUAAAAAAEAAAABA | |
48 | +</mutableData> | |
49 | + </timeZone> | |
50 | + </datePicker> | |
51 | + <button opaque="NO" contentMode="scaleToFill" ambiguous="YES" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8vW-ig-tUA"> | |
52 | + <rect key="frame" x="131" y="232" width="46" height="30"/> | |
53 | + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | |
54 | + <state key="normal" title="Done"> | |
55 | + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> | |
56 | + </state> | |
57 | + </button> | |
58 | + </subviews> | |
59 | + <color key="backgroundColor" white="1" alpha="0.95000000000000007" colorSpace="calibratedWhite"/> | |
60 | + <constraints> | |
61 | + <constraint firstItem="8vW-ig-tUA" firstAttribute="top" secondItem="6Ex-R5-AYV" secondAttribute="bottom" constant="8" id="M7C-4g-jy1"/> | |
62 | + <constraint firstItem="6Ex-R5-AYV" firstAttribute="centerX" secondItem="8vW-ig-tUA" secondAttribute="centerX" id="QvW-cT-g8h"/> | |
63 | + </constraints> | |
64 | + </view> | |
65 | + </subviews> | |
66 | + <color key="backgroundColor" red="0.95549071730000001" green="1" blue="0.92158219299999999" alpha="0.0" colorSpace="calibratedRGB"/> | |
67 | + <simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/> | |
68 | + <simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/> | |
69 | + </view> | |
70 | + </objects> | |
71 | +</document> | ... | ... |
DUREX Vendor Control/DatePickerViewController_iPad.xib
0 โ 100644
1 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
2 | +<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="5056" systemVersion="13E28" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES"> | |
3 | + <dependencies> | |
4 | + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/> | |
5 | + </dependencies> | |
6 | + <objects> | |
7 | + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="DatePickerViewController"> | |
8 | + <connections> | |
9 | + <outlet property="datePicker" destination="3XX-v6-qTY" id="qfi-lb-ugf"/> | |
10 | + <outlet property="datePickerView" destination="YoS-Cq-kfN" id="hBr-Ni-E9T"/> | |
11 | + <outlet property="view" destination="NTl-ub-Wso" id="3xk-Ph-uV2"/> | |
12 | + </connections> | |
13 | + </placeholder> | |
14 | + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> | |
15 | + <view contentMode="scaleToFill" id="NTl-ub-Wso"> | |
16 | + <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/> | |
17 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | |
18 | + <subviews> | |
19 | + <view contentMode="scaleToFill" ambiguous="YES" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="YoS-Cq-kfN"> | |
20 | + <rect key="frame" x="192" y="256" width="384" height="321"/> | |
21 | + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | |
22 | + <subviews> | |
23 | + <datePicker contentMode="scaleToFill" ambiguous="YES" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" datePickerMode="dateAndTime" minuteInterval="1" translatesAutoresizingMaskIntoConstraints="NO" id="3XX-v6-qTY"> | |
24 | + <rect key="frame" x="-192" y="47" width="768" height="216"/> | |
25 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> | |
26 | + <date key="date" timeIntervalSinceReferenceDate="431372189.40412599"> | |
27 | + <!--2014-09-02 17:36:29 +0000--> | |
28 | + </date> | |
29 | + <timeZone key="timeZone" name="America/Los_Angeles"> | |
30 | + <mutableData key="data"> | |
31 | +VFppZgAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAC5AAAABAAAABCepkign7sVkKCGKqChmveQ | |
32 | +y4kaoNIj9HDSYSYQ1v50INiArZDa/tGg28CQENzes6DdqayQ3r6VoN+JjpDgnneg4WlwkOJ+WaDjSVKQ | |
33 | +5F47oOUpNJDmR1gg5xJREOgnOiDo8jMQ6gccIOrSFRDr5v4g7LH3EO3G4CDukdkQ76/8oPBxuxDxj96g | |
34 | +8n/BkPNvwKD0X6OQ9U+ioPY/hZD3L4Sg+CiiEPkPZqD6CIQQ+viDIPvoZhD82GUg/chIEP64RyD/qCoQ | |
35 | +AJgpIAGIDBACeAsgA3EokARhJ6AFUQqQBkEJoAcw7JAHjUOgCRDOkAmtvyAK8LCQC+CvoAzZzRANwJGg | |
36 | +DrmvEA+priAQmZEQEYmQIBJ5cxATaXIgFFlVEBVJVCAWOTcQFyk2IBgiU5AZCRggGgI1kBryNKAb4heQ | |
37 | +HNIWoB3B+ZAesfigH6HbkCB2KyAhgb2QIlYNICNq2hAkNe8gJUq8ECYV0SAnKp4QJ/7toCkKgBAp3s+g | |
38 | +KupiECu+saAs036QLZ6ToC6zYJAvfnWgMJNCkDFnkiAycySQM0d0IDRTBpA1J1YgNjLokDcHOCA4HAUQ | |
39 | +OOcaIDn75xA6xvwgO9vJEDywGKA9u6sQPo/6oD+bjRBAb9ygQYSpkEJPvqBDZIuQRC+goEVEbZBF89Mg | |
40 | +Ry2KEEfTtSBJDWwQSbOXIErtThBLnLOgTNZqkE18laBOtkyQT1x3oFCWLpBRPFmgUnYQkFMcO6BUVfKQ | |
41 | +VPwdoFY11JBW5TogWB7xEFjFHCBZ/tMQWqT+IFvetRBchOAgXb6XEF5kwiBfnnkQYE3eoGGHlZBiLcCg | |
42 | +Y2d3kGQNoqBlR1mQZe2EoGcnO5BnzWagaQcdkGmtSKBq5v+Qa5ZlIGzQHBBtdkcgbq/+EG9WKSBwj+AQ | |
43 | +cTYLIHJvwhBzFe0gdE+kEHT/CaB2OMCQdt7roHgYopB4vs2gefiEkHqer6B72GaQfH6RoH24SJB+XnOg | |
44 | +f5gqkAABAAECAwEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA | |
45 | +AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA | |
46 | +AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA | |
47 | +AQABAAEAAQAB//+dkAEA//+PgAAE//+dkAEI//+dkAEMUERUAFBTVABQV1QAUFBUAAAAAAEAAAABA | |
48 | +</mutableData> | |
49 | + </timeZone> | |
50 | + </datePicker> | |
51 | + <button opaque="NO" contentMode="scaleToFill" ambiguous="YES" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="RGE-Ye-qon"> | |
52 | + <rect key="frame" x="169" y="271" width="46" height="30"/> | |
53 | + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | |
54 | + <state key="normal" title="Done"> | |
55 | + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> | |
56 | + </state> | |
57 | + </button> | |
58 | + </subviews> | |
59 | + <color key="backgroundColor" white="1" alpha="0.94999999999999996" colorSpace="custom" customColorSpace="calibratedWhite"/> | |
60 | + <constraints> | |
61 | + <constraint firstItem="RGE-Ye-qon" firstAttribute="top" secondItem="3XX-v6-qTY" secondAttribute="bottom" constant="8" id="6iZ-h3-wEL"/> | |
62 | + <constraint firstItem="3XX-v6-qTY" firstAttribute="centerX" secondItem="RGE-Ye-qon" secondAttribute="centerX" id="8nT-zM-hgt"/> | |
63 | + </constraints> | |
64 | + </view> | |
65 | + </subviews> | |
66 | + <color key="backgroundColor" white="1" alpha="0.0" colorSpace="custom" customColorSpace="calibratedWhite"/> | |
67 | + <constraints> | |
68 | + <constraint firstAttribute="centerY" secondItem="YoS-Cq-kfN" secondAttribute="centerY" constant="95.5" id="IRy-Yg-Vj5"/> | |
69 | + <constraint firstAttribute="centerX" secondItem="YoS-Cq-kfN" secondAttribute="centerX" id="d3A-NR-o0K"/> | |
70 | + </constraints> | |
71 | + <simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/> | |
72 | + </view> | |
73 | + </objects> | |
74 | +</document> | ... | ... |
DUREX Vendor Control/FirstAppExample/Base.lproj/MainStoryboard.storyboard
1 | 1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
2 | -<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="5056" systemVersion="12F45" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="kWw-Rk-wD6"> | |
2 | +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="5056" systemVersion="13E28" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="kWw-Rk-wD6"> | |
3 | 3 | <dependencies> |
4 | 4 | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/> |
5 | 5 | </dependencies> |
... | ... | @@ -201,9 +201,13 @@ |
201 | 201 | <rect key="frame" x="0.0" y="0.0" width="320" height="568"/> |
202 | 202 | <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> |
203 | 203 | <subviews> |
204 | - <button opaque="NO" contentMode="scaleAspectFit" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bXZ-vt-REt"> | |
204 | + <button opaque="NO" contentMode="scaleAspectFit" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bXZ-vt-REt"> | |
205 | 205 | <rect key="frame" x="96" y="220" width="128" height="128"/> |
206 | 206 | <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> |
207 | + <constraints> | |
208 | + <constraint firstAttribute="height" constant="128" id="2bH-ZR-Aih"/> | |
209 | + <constraint firstAttribute="width" constant="128" id="q5G-rK-bjg"/> | |
210 | + </constraints> | |
207 | 211 | <state key="normal" image="bluetooth.png"> |
208 | 212 | <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> |
209 | 213 | </state> | ... | ... |
DUREX Vendor Control/MenuTableViewController.h
... | ... | @@ -10,6 +10,7 @@ |
10 | 10 | #import "EMFramework.h" |
11 | 11 | #import "CommunicationProtocol.h" |
12 | 12 | #import "Stack.h" |
13 | +#import "DatePickerViewController.h" | |
13 | 14 | |
14 | 15 | #define num(x) [NSNumber numberWithUnsignedInt:x] |
15 | 16 | |
... | ... | @@ -39,12 +40,11 @@ enum { |
39 | 40 | REPORT, |
40 | 41 | } navigationLevel; |
41 | 42 | |
42 | -@interface MenuTableViewController : UITableViewController | |
43 | +@interface MenuTableViewController : UITableViewController <DatePickerViewControllerDelegate> | |
43 | 44 | |
44 | 45 | @property (strong,nonatomic) Stack *parentLayout; |
45 | -@property (strong,nonatomic) IBOutlet UIView *popUpView; | |
46 | +@property (strong,nonatomic) DatePickerViewController *popupViewController; | |
46 | 47 | |
47 | 48 | - (void) navBack; |
48 | -- (void)showInView:(UIView *)aView animated:(BOOL)animated; | |
49 | 49 | |
50 | 50 | @end | ... | ... |
DUREX Vendor Control/MenuTableViewController.m
... | ... | @@ -216,14 +216,6 @@ |
216 | 216 | [self initializeMenuEntries]; |
217 | 217 | self.currentNavLevel = 255; |
218 | 218 | [self changeNavLevel:MENU:FALSE]; |
219 | - self.popUpView.layer.cornerRadius = 5; | |
220 | - self.popUpView.layer.shadowOpacity = 0.8; | |
221 | - self.popUpView.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); | |
222 | - /* | |
223 | - DUREXAppDelegate *appDelegate = (DUREXAppDelegate *)[[UIApplication sharedApplication] delegate]; | |
224 | - CustomNavigationController *navController = [appDelegate navController]; | |
225 | - navController.auxController = self; | |
226 | - */ | |
227 | 219 | |
228 | 220 | // Uncomment the following line to preserve selection between presentations. |
229 | 221 | // self.clearsSelectionOnViewWillAppear = NO; |
... | ... | @@ -234,8 +226,7 @@ |
234 | 226 | |
235 | 227 | -(void)didReceiveNotification:(NSNotification*) notification |
236 | 228 | { |
237 | - id notificationValue = [[notification userInfo] objectForKey:kEMIndicatorResourceValueKey]; | |
238 | - NSString *resourceName = [[notification userInfo] objectForKey:kEMIndicatorNameKey]; | |
229 | + | |
239 | 230 | } |
240 | 231 | |
241 | 232 | -(void)dealloc |
... | ... | @@ -282,16 +273,27 @@ |
282 | 273 | NSLog(@"[MenuTableViewController.m]: Changing to navLevel: SALES"); |
283 | 274 | [self changeNavLevel:SALES:TRUE]; |
284 | 275 | } |
285 | - else if([cellName isEqualToString:NSLocalizedString(@"Sales log", nil)] && [self currentNavLevel] == MAINTENANCE) | |
286 | - { | |
287 | - NSLog(@"[MenuTableViewController.m]: Changing to navLevel: SALES"); | |
288 | - [self changeNavLevel:SALES:TRUE]; | |
289 | - } | |
290 | 276 | else if([cellName isEqualToString:NSLocalizedString(@"Basic Configuration", nil)] && [self currentNavLevel] == MENU) |
291 | 277 | { |
292 | 278 | NSLog(@"[MenuTableViewController.m]: Changing to navLevel: BASIC_CONFIGURATION"); |
293 | 279 | [self changeNavLevel:BASIC_CONFIGURATION:TRUE]; |
294 | 280 | } |
281 | + //Update Date & Time command | |
282 | + else if([cellName isEqualToString:NSLocalizedString(@"Update Date & Time", nil)] && [self currentNavLevel] == BASIC_CONFIGURATION) | |
283 | + { | |
284 | + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) | |
285 | + { | |
286 | + self.popupViewController = [[DatePickerViewController alloc] initWithNibName:@"DatePickerViewController_iPad" bundle:nil]; | |
287 | + self.popupViewController.delegate = self; | |
288 | + [self.popupViewController showInView:self.navigationController.view animated:YES]; | |
289 | + } | |
290 | + else | |
291 | + { | |
292 | + self.popupViewController = [[DatePickerViewController alloc] initWithNibName:@"DatePickerViewController" bundle:nil]; | |
293 | + self.popupViewController.delegate = self; | |
294 | + [self.popupViewController showInView:self.navigationController.view animated:YES]; | |
295 | + } | |
296 | + } | |
295 | 297 | } |
296 | 298 | |
297 | 299 | #pragma mark - Table view data source |
... | ... | @@ -353,49 +355,18 @@ |
353 | 355 | } |
354 | 356 | else if([self currentNavLevel] == SALES) |
355 | 357 | { |
356 | - | |
358 | + //Customize SALES cells if needed | |
357 | 359 | } |
358 | 360 | return cell; |
359 | 361 | } |
360 | 362 | |
361 | -- (void)showAnimate | |
363 | +- (void)addItemViewController:(DatePickerViewController *)controller didFinishEnteringItem:(NSDate *)date | |
362 | 364 | { |
363 | - self.view.transform = CGAffineTransformMakeScale(1.3, 1.3); | |
364 | - self.view.alpha = 0; | |
365 | - [UIView animateWithDuration:.25 animations:^ | |
366 | - { | |
367 | - self.view.alpha = 1; | |
368 | - self.view.transform = CGAffineTransformMakeScale(1, 1); | |
369 | - }]; | |
370 | -} | |
371 | - | |
372 | -- (void)removeAnimate | |
373 | -{ | |
374 | - [UIView animateWithDuration:.25 animations:^ | |
375 | - { | |
376 | - self.view.transform = CGAffineTransformMakeScale(1.3, 1.3); | |
377 | - self.view.alpha = 0.0; | |
378 | - } completion:^(BOOL finished) | |
379 | - { | |
380 | - if (finished) | |
381 | - { | |
382 | - [self.view removeFromSuperview]; | |
383 | - } | |
384 | - }]; | |
385 | -} | |
386 | - | |
387 | -- (IBAction)closePopup:(id)sender | |
388 | -{ | |
389 | - [self removeAnimate]; | |
390 | -} | |
391 | - | |
392 | -- (void)showInView:(UIView *)aView animated:(BOOL)animated | |
393 | -{ | |
394 | - [aView addSubview:self.view]; | |
395 | - if (animated) | |
396 | - { | |
397 | - [self showAnimate]; | |
398 | - } | |
365 | + NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; | |
366 | + NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; | |
367 | + NSDateComponents *components = [calendar components:units fromDate:date]; | |
368 | + NSLog(@"[MenuTableViewController.m]: %@", components); | |
369 | + [_protocol updateTime: components]; | |
399 | 370 | } |
400 | 371 | |
401 | 372 | ... | ... |
DUREX tests/Base.lproj/DatePickerViewController.xib
1 | 1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
2 | -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5056" systemVersion="12F45" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES"> | |
2 | +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5056" systemVersion="13E28" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES"> | |
3 | 3 | <dependencies> |
4 | 4 | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/> |
5 | 5 | </dependencies> |
6 | 6 | <objects> |
7 | - <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="PopupViewController"> | |
7 | + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="DatePickerViewController"> | |
8 | 8 | <connections> |
9 | 9 | <outlet property="datePicker" destination="Kq0-yG-icP" id="0Sh-9C-xLc"/> |
10 | - <outlet property="datePickerView" destination="i5M-Pr-FkT" id="dES-lr-Zb0"/> | |
10 | + <outlet property="datePickerView" destination="Wcy-ZP-X0O" id="ymS-rw-gQV"/> | |
11 | 11 | <outlet property="view" destination="i5M-Pr-FkT" id="Pih-UT-VNB"/> |
12 | 12 | </connections> |
13 | 13 | </placeholder> |
... | ... | @@ -16,24 +16,18 @@ |
16 | 16 | <rect key="frame" x="0.0" y="0.0" width="320" height="568"/> |
17 | 17 | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
18 | 18 | <subviews> |
19 | - <button opaque="NO" contentMode="scaleToFill" ambiguous="YES" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="7QC-Xa-liQ"> | |
20 | - <rect key="frame" x="137" y="336" width="46" height="30"/> | |
19 | + <view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Wcy-ZP-X0O"> | |
20 | + <rect key="frame" x="6" y="105" width="308" height="282"/> | |
21 | 21 | <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> |
22 | - <state key="normal" title="Done"> | |
23 | - <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> | |
24 | - </state> | |
25 | - <connections> | |
26 | - <action selector="closePopup:" destination="-1" eventType="touchUpInside" id="oX3-hN-sqE"/> | |
27 | - </connections> | |
28 | - </button> | |
29 | - <datePicker contentMode="scaleToFill" ambiguous="YES" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" datePickerMode="dateAndTime" minuteInterval="1" translatesAutoresizingMaskIntoConstraints="NO" id="Kq0-yG-icP"> | |
30 | - <rect key="frame" x="0.0" y="138" width="320" height="162"/> | |
31 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> | |
32 | - <date key="date" timeIntervalSinceReferenceDate="431369786.91497999"> | |
33 | - <!--2014-09-02 16:56:26 +0000--> | |
34 | - </date> | |
35 | - <timeZone key="timeZone" name="America/Los_Angeles"> | |
36 | - <mutableData key="data"> | |
22 | + <subviews> | |
23 | + <datePicker contentMode="scaleToFill" ambiguous="YES" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" datePickerMode="dateAndTime" minuteInterval="1" translatesAutoresizingMaskIntoConstraints="NO" id="Kq0-yG-icP"> | |
24 | + <rect key="frame" x="-6" y="62" width="320" height="162"/> | |
25 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> | |
26 | + <date key="date" timeIntervalSinceReferenceDate="431369786.91497999"> | |
27 | + <!--2014-09-02 16:56:26 +0000--> | |
28 | + </date> | |
29 | + <timeZone key="timeZone" name="America/Los_Angeles"> | |
30 | + <data key="data"> | |
37 | 31 | VFppZgAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAC5AAAABAAAABCepkign7sVkKCGKqChmveQ |
38 | 32 | y4kaoNIj9HDSYSYQ1v50INiArZDa/tGg28CQENzes6DdqayQ3r6VoN+JjpDgnneg4WlwkOJ+WaDjSVKQ |
39 | 33 | 5F47oOUpNJDmR1gg5xJREOgnOiDo8jMQ6gccIOrSFRDr5v4g7LH3EO3G4CDukdkQ76/8oPBxuxDxj96g |
... | ... | @@ -51,16 +45,28 @@ f5gqkAABAAECAwEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA |
51 | 45 | AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA |
52 | 46 | AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA |
53 | 47 | AQABAAEAAQAB//+dkAEA//+PgAAE//+dkAEI//+dkAEMUERUAFBTVABQV1QAUFBUAAAAAAEAAAABA |
54 | -</mutableData> | |
55 | - </timeZone> | |
56 | - </datePicker> | |
48 | +</data> | |
49 | + </timeZone> | |
50 | + </datePicker> | |
51 | + <button opaque="NO" contentMode="scaleToFill" ambiguous="YES" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="7QC-Xa-liQ"> | |
52 | + <rect key="frame" x="131" y="232" width="46" height="30"/> | |
53 | + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | |
54 | + <state key="normal" title="Done"> | |
55 | + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> | |
56 | + </state> | |
57 | + <connections> | |
58 | + <action selector="closePopup:" destination="-1" eventType="touchUpInside" id="oX3-hN-sqE"/> | |
59 | + </connections> | |
60 | + </button> | |
61 | + </subviews> | |
62 | + <color key="backgroundColor" white="1" alpha="0.95000000000000007" colorSpace="calibratedWhite"/> | |
63 | + <constraints> | |
64 | + <constraint firstItem="7QC-Xa-liQ" firstAttribute="top" secondItem="Kq0-yG-icP" secondAttribute="bottom" constant="8" id="a8P-cg-FP1"/> | |
65 | + <constraint firstItem="Kq0-yG-icP" firstAttribute="centerX" secondItem="7QC-Xa-liQ" secondAttribute="centerX" id="jMO-k4-MyY"/> | |
66 | + </constraints> | |
67 | + </view> | |
57 | 68 | </subviews> |
58 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> | |
59 | - <constraints> | |
60 | - <constraint firstAttribute="centerX" secondItem="Kq0-yG-icP" secondAttribute="centerX" id="0GY-9z-buv"/> | |
61 | - <constraint firstItem="7QC-Xa-liQ" firstAttribute="centerX" secondItem="Kq0-yG-icP" secondAttribute="centerX" id="kfK-JU-v9W"/> | |
62 | - <constraint firstItem="7QC-Xa-liQ" firstAttribute="top" secondItem="Kq0-yG-icP" secondAttribute="bottom" constant="36" id="wkh-LB-fLl"/> | |
63 | - </constraints> | |
69 | + <color key="backgroundColor" red="0.95549071732042212" green="1" blue="0.92158219296691768" alpha="0.0" colorSpace="calibratedRGB"/> | |
64 | 70 | <simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/> |
65 | 71 | <simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/> |
66 | 72 | </view> | ... | ... |
DUREX tests/Base.lproj/DatePickerViewController_iPad.xib
1 | 1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
2 | -<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="5056" systemVersion="12F45" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES"> | |
2 | +<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="5056" systemVersion="13E28" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES"> | |
3 | 3 | <dependencies> |
4 | 4 | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/> |
5 | 5 | </dependencies> |
6 | 6 | <objects> |
7 | - <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="PopupViewController"> | |
7 | + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="DatePickerViewController"> | |
8 | 8 | <connections> |
9 | 9 | <outlet property="datePicker" destination="Ye8-NM-1gf" id="BK3-lm-uDP"/> |
10 | - <outlet property="datePickerView" destination="iN0-l3-epB" id="syx-4N-lWz"/> | |
10 | + <outlet property="datePickerView" destination="Qea-QB-MAC" id="yqY-R8-t1T"/> | |
11 | 11 | <outlet property="view" destination="iN0-l3-epB" id="ily-fa-aEh"/> |
12 | 12 | </connections> |
13 | 13 | </placeholder> |
... | ... | @@ -16,14 +16,18 @@ |
16 | 16 | <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/> |
17 | 17 | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
18 | 18 | <subviews> |
19 | - <datePicker contentMode="scaleToFill" ambiguous="YES" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" datePickerMode="dateAndTime" minuteInterval="1" translatesAutoresizingMaskIntoConstraints="NO" id="Ye8-NM-1gf"> | |
20 | - <rect key="frame" x="0.0" y="269" width="768" height="216"/> | |
21 | - <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> | |
22 | - <date key="date" timeIntervalSinceReferenceDate="431372189.40412599"> | |
23 | - <!--2014-09-02 17:36:29 +0000--> | |
24 | - </date> | |
25 | - <timeZone key="timeZone" name="America/Los_Angeles"> | |
26 | - <mutableData key="data"> | |
19 | + <view contentMode="scaleToFill" ambiguous="YES" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Qea-QB-MAC"> | |
20 | + <rect key="frame" x="192" y="256" width="384" height="321"/> | |
21 | + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | |
22 | + <subviews> | |
23 | + <datePicker contentMode="scaleToFill" ambiguous="YES" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" datePickerMode="dateAndTime" minuteInterval="1" translatesAutoresizingMaskIntoConstraints="NO" id="Ye8-NM-1gf"> | |
24 | + <rect key="frame" x="-192" y="47" width="768" height="216"/> | |
25 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> | |
26 | + <date key="date" timeIntervalSinceReferenceDate="431372189.40412599"> | |
27 | + <!--2014-09-02 17:36:29 +0000--> | |
28 | + </date> | |
29 | + <timeZone key="timeZone" name="America/Los_Angeles"> | |
30 | + <data key="data"> | |
27 | 31 | VFppZgAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAC5AAAABAAAABCepkign7sVkKCGKqChmveQ |
28 | 32 | y4kaoNIj9HDSYSYQ1v50INiArZDa/tGg28CQENzes6DdqayQ3r6VoN+JjpDgnneg4WlwkOJ+WaDjSVKQ |
29 | 33 | 5F47oOUpNJDmR1gg5xJREOgnOiDo8jMQ6gccIOrSFRDr5v4g7LH3EO3G4CDukdkQ76/8oPBxuxDxj96g |
... | ... | @@ -41,25 +45,31 @@ f5gqkAABAAECAwEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA |
41 | 45 | AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA |
42 | 46 | AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA |
43 | 47 | AQABAAEAAQAB//+dkAEA//+PgAAE//+dkAEI//+dkAEMUERUAFBTVABQV1QAUFBUAAAAAAEAAAABA |
44 | -</mutableData> | |
45 | - </timeZone> | |
46 | - </datePicker> | |
47 | - <button opaque="NO" contentMode="scaleToFill" ambiguous="YES" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="b32-QI-eSJ"> | |
48 | - <rect key="frame" x="361" y="511" width="46" height="30"/> | |
49 | - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | |
50 | - <state key="normal" title="Done"> | |
51 | - <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> | |
52 | - </state> | |
53 | - <connections> | |
54 | - <action selector="closePopup:" destination="-1" eventType="touchUpInside" id="zqQ-J8-LT0"/> | |
55 | - </connections> | |
56 | - </button> | |
48 | +</data> | |
49 | + </timeZone> | |
50 | + </datePicker> | |
51 | + <button opaque="NO" contentMode="scaleToFill" ambiguous="YES" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="b32-QI-eSJ"> | |
52 | + <rect key="frame" x="169" y="271" width="46" height="30"/> | |
53 | + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | |
54 | + <state key="normal" title="Done"> | |
55 | + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> | |
56 | + </state> | |
57 | + <connections> | |
58 | + <action selector="closePopup:" destination="-1" eventType="touchUpInside" id="zqQ-J8-LT0"/> | |
59 | + </connections> | |
60 | + </button> | |
61 | + </subviews> | |
62 | + <color key="backgroundColor" white="1" alpha="0.95000000000000007" colorSpace="custom" customColorSpace="calibratedWhite"/> | |
63 | + <constraints> | |
64 | + <constraint firstItem="b32-QI-eSJ" firstAttribute="top" secondItem="Ye8-NM-1gf" secondAttribute="bottom" constant="8" id="kLC-bc-bhQ"/> | |
65 | + <constraint firstItem="Ye8-NM-1gf" firstAttribute="centerX" secondItem="b32-QI-eSJ" secondAttribute="centerX" id="uy2-qe-Oz3"/> | |
66 | + </constraints> | |
67 | + </view> | |
57 | 68 | </subviews> |
58 | - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> | |
69 | + <color key="backgroundColor" white="1" alpha="0.0" colorSpace="custom" customColorSpace="calibratedWhite"/> | |
59 | 70 | <constraints> |
60 | - <constraint firstItem="b32-QI-eSJ" firstAttribute="centerX" secondItem="Ye8-NM-1gf" secondAttribute="centerX" id="9Og-RH-pFc"/> | |
61 | - <constraint firstAttribute="centerX" secondItem="Ye8-NM-1gf" secondAttribute="centerX" id="GZr-bO-HrS"/> | |
62 | - <constraint firstItem="b32-QI-eSJ" firstAttribute="top" secondItem="Ye8-NM-1gf" secondAttribute="bottom" constant="34" id="X3X-ac-hcm"/> | |
71 | + <constraint firstAttribute="centerX" secondItem="Qea-QB-MAC" secondAttribute="centerX" id="60a-hQ-woe"/> | |
72 | + <constraint firstAttribute="centerY" secondItem="Qea-QB-MAC" secondAttribute="centerY" constant="95.5" id="eNe-B1-DMX"/> | |
63 | 73 | </constraints> |
64 | 74 | <simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/> |
65 | 75 | </view> | ... | ... |
DUREX tests/Base.lproj/MainStoryboard.storyboard
1 | 1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
2 | -<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="5056" systemVersion="12F45" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="kWw-Rk-wD6"> | |
2 | +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="5056" systemVersion="13E28" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="kWw-Rk-wD6"> | |
3 | 3 | <dependencies> |
4 | 4 | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/> |
5 | 5 | </dependencies> | ... | ... |
DUREX tests/DUREX test.xcodeproj/project.pbxproj
... | ... | @@ -31,7 +31,6 @@ |
31 | 31 | F98ACEDC19B6294E00D90AEE /* DatePickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F98ACEDA19B6294E00D90AEE /* DatePickerViewController.m */; }; |
32 | 32 | F9AB5A6F19B63931006785E4 /* DatePickerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F9AB5A7119B63931006785E4 /* DatePickerViewController.xib */; }; |
33 | 33 | F9AB5A7219B63938006785E4 /* DatePickerViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = F9AB5A7419B63938006785E4 /* DatePickerViewController_iPad.xib */; }; |
34 | - F9C77F50192CDE30002DBE8A /* durex.json in Resources */ = {isa = PBXBuildFile; fileRef = F9C77F4F192CDE30002DBE8A /* durex.json */; }; | |
35 | 34 | /* End PBXBuildFile section */ |
36 | 35 | |
37 | 36 | /* Begin PBXContainerItemProxy section */ |
... | ... | @@ -88,7 +87,6 @@ |
88 | 87 | F9AB5A7819B6393D006785E4 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DatePickerViewController.strings; sourceTree = "<group>"; }; |
89 | 88 | F9AB5A7A19B6393F006785E4 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DatePickerViewController_iPad.strings; sourceTree = "<group>"; }; |
90 | 89 | F9AB5A7C19B63940006785E4 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DatePickerViewController_iPad.strings; sourceTree = "<group>"; }; |
91 | - F9C77F4F192CDE30002DBE8A /* durex.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = durex.json; sourceTree = SOURCE_ROOT; }; | |
92 | 90 | /* End PBXFileReference section */ |
93 | 91 | |
94 | 92 | /* Begin PBXFrameworksBuildPhase section */ |
... | ... | @@ -208,7 +206,6 @@ |
208 | 206 | 347186B91807290E00FA0FB2 /* Schemas */ = { |
209 | 207 | isa = PBXGroup; |
210 | 208 | children = ( |
211 | - F9C77F4F192CDE30002DBE8A /* durex.json */, | |
212 | 209 | ); |
213 | 210 | name = Schemas; |
214 | 211 | sourceTree = "<group>"; |
... | ... | @@ -292,7 +289,6 @@ |
292 | 289 | buildActionMask = 2147483647; |
293 | 290 | files = ( |
294 | 291 | F98356D8192E906600EA6821 /* bluetooth.png in Resources */, |
295 | - F9C77F50192CDE30002DBE8A /* durex.json in Resources */, | |
296 | 292 | F9AB5A6F19B63931006785E4 /* DatePickerViewController.xib in Resources */, |
297 | 293 | 34AAB88D189805300019860D /* Images.xcassets in Resources */, |
298 | 294 | F92B0B6C19993D3F00CAEF3E /* Localizable.strings in Resources */, | ... | ... |
DUREX tests/DUREX test.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/UserInterfaceState.xcuserstate
No preview for this file type
DUREX tests/DatePickerViewController.m
... | ... | @@ -25,7 +25,6 @@ |
25 | 25 | |
26 | 26 | - (void)viewDidLoad |
27 | 27 | { |
28 | - self.view.backgroundColor=[[UIColor blackColor] colorWithAlphaComponent:.6]; | |
29 | 28 | self.datePickerView.layer.cornerRadius = 5; |
30 | 29 | self.datePickerView.layer.shadowOpacity = 0.8; |
31 | 30 | self.datePickerView.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); | ... | ... |
DUREX tests/MenuTableViewController.m
... | ... | @@ -270,12 +270,15 @@ |
270 | 270 | { |
271 | 271 | if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) |
272 | 272 | { |
273 | + //self.popupViewController = [[DatePickerViewController alloc] initWithNibName:@"DatePickerViewController_iPad" bundle:nil]; | |
273 | 274 | self.popupViewController = [[DatePickerViewController alloc] initWithNibName:@"DatePickerViewController_iPad" bundle:nil]; |
275 | + self.popupViewController.delegate = self; | |
274 | 276 | [self.popupViewController showInView:self.navigationController.view animated:YES]; |
275 | 277 | } |
276 | 278 | else |
277 | 279 | { |
278 | 280 | self.popupViewController = [[DatePickerViewController alloc] initWithNibName:@"DatePickerViewController" bundle:nil]; |
281 | + self.popupViewController.delegate = self; | |
279 | 282 | [self.popupViewController showInView:self.navigationController.view animated:YES]; |
280 | 283 | } |
281 | 284 | } |
... | ... | @@ -351,7 +354,8 @@ |
351 | 354 | NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; |
352 | 355 | NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; |
353 | 356 | NSDateComponents *components = [calendar components:units fromDate:date]; |
354 | - [_protocol updateTime: components]; | |
357 | + NSLog(@"[MenuTableViewController.m]: %@", components); | |
358 | + //[_protocol updateTime: components]; | |
355 | 359 | } |
356 | 360 | |
357 | 361 | ... | ... |