Ifd_Mobile 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/lib/Ifd_Mobile/methods/core.rb +10 -2
  3. data/lib/Ifd_Mobile/version.rb +1 -1
  4. data/project/features/TestData/globalData.yml +2 -0
  5. data/project/features/TestSuite/login.feature +1 -0
  6. data/project/features/support/env.rb +3 -0
  7. metadata +2 -33
  8. data/project/apps/TestApp/Default-568h@2x.png +0 -0
  9. data/project/apps/TestApp/Test App 2/GestureTestViewController.h +0 -18
  10. data/project/apps/TestApp/Test App 2/GestureTestViewController.m +0 -48
  11. data/project/apps/TestApp/Test App 2/GestureTestViewController.xib +0 -47
  12. data/project/apps/TestApp/Test App 2/MyViewControllerViewController.h +0 -42
  13. data/project/apps/TestApp/Test App 2/MyViewControllerViewController.m +0 -193
  14. data/project/apps/TestApp/Test App 2/TA2AppDelegate.h +0 -28
  15. data/project/apps/TestApp/Test App 2/TA2AppDelegate.m +0 -85
  16. data/project/apps/TestApp/Test App 2/TestApp-Info.plist +0 -40
  17. data/project/apps/TestApp/Test App 2/TestApp-Prefix.pch +0 -29
  18. data/project/apps/TestApp/Test App 2/en.lproj/InfoPlist.strings +0 -21
  19. data/project/apps/TestApp/Test App 2/en.lproj/Localizable.strings +0 -0
  20. data/project/apps/TestApp/Test App 2/en.lproj/MyViewControllerViewController.xib +0 -175
  21. data/project/apps/TestApp/Test App 2/main.m +0 -31
  22. data/project/apps/TestApp/TestApp.xcodeproj/project.pbxproj +0 -336
  23. data/project/apps/TestApp/TestApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  24. data/project/apps/TestApp/TestApp.xcodeproj/project.xcworkspace/xcuserdata/anhpham.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  25. data/project/apps/TestApp/TestApp.xcodeproj/xcuserdata/anhpham.xcuserdatad/xcschemes/TestApp.xcscheme +0 -88
  26. data/project/apps/TestApp/TestApp.xcodeproj/xcuserdata/anhpham.xcuserdatad/xcschemes/xcschememanagement.plist +0 -22
  27. data/project/apps/TestApp/build/release-iphonesimulator/TestApp.app/Default-568h@2x.png +0 -0
  28. data/project/apps/TestApp/build/release-iphonesimulator/TestApp.app/GestureTestViewController.nib/objects-8.0+.nib +0 -0
  29. data/project/apps/TestApp/build/release-iphonesimulator/TestApp.app/GestureTestViewController.nib/objects.nib +0 -0
  30. data/project/apps/TestApp/build/release-iphonesimulator/TestApp.app/GestureTestViewController.nib/runtime.nib +0 -0
  31. data/project/apps/TestApp/build/release-iphonesimulator/TestApp.app/Info.plist +0 -0
  32. data/project/apps/TestApp/build/release-iphonesimulator/TestApp.app/PkgInfo +0 -1
  33. data/project/apps/TestApp/build/release-iphonesimulator/TestApp.app/TestApp +0 -0
  34. data/project/apps/TestApp/build/release-iphonesimulator/TestApp.app/en.lproj/InfoPlist.strings +0 -0
  35. data/project/apps/TestApp/build/release-iphonesimulator/TestApp.app/en.lproj/Localizable.strings +0 -0
  36. data/project/apps/TestApp/build/release-iphonesimulator/TestApp.app/en.lproj/MyViewControllerViewController.nib/objects-8.0+.nib +0 -0
  37. data/project/apps/TestApp/build/release-iphonesimulator/TestApp.app/en.lproj/MyViewControllerViewController.nib/objects.nib +0 -0
  38. data/project/apps/TestApp/build/release-iphonesimulator/TestApp.app/en.lproj/MyViewControllerViewController.nib/runtime.nib +0 -0
  39. data/project/apps/selendroid-test-app.apk +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2bc0c93dd5cba25c44ff9ccea1c48cb175000406
4
- data.tar.gz: de898685b4c9ff6b275a6033143d550620c08419
3
+ metadata.gz: f9c76418d2937cd4dc2d5f11b2ffa6f13eeaae50
4
+ data.tar.gz: c2ed895927e0e2352fac430d43899773ed3e8950
5
5
  SHA512:
6
- metadata.gz: 976c2fa5ce4adc3ccd15ba37f5b9127569f66a8fc727580e8d91a53b13a3b834436ec35372e6e15ecf4455cfcab26e99ec0bfb680980a0728d462d4e468d3e1f
7
- data.tar.gz: 1f4c8cc5c4a3d0d6e42a31059f435c2f7fd1e17f75d57b32c7cf9b1e5411137b9d7752898e59dde2eaead83dc4b8be58344688465ca531955223113c5f0adffc
6
+ metadata.gz: b035e739edf3b320481c33eb08a5b3feba98633cf463fb0e4626608fabaeabc72458c0c18f63740b1e2d5413421f982766bb965bfccf417cbe271bbeb10a8e4d
7
+ data.tar.gz: fa1beff164dc4da971fc4f0945ed6751b238e7aaa4aa8ca2d820150477f8869b77fc6d1758c906ee45ac90ce92d87daacc2904f33c01a7902ff9edfcefc7d260
@@ -8,7 +8,6 @@ def put_log str
8
8
  end
9
9
 
10
10
  def find_object string_object
11
- object = YAML.load_file("#{File.expand_path(File.dirname(__FILE__) + '/..')}/step_definitions/repositories/project_object.yml")
12
11
  string_object = string_object.gsub(/"/, "'")
13
12
  # puts string_object
14
13
  locator_matching = /(.*?)(\{.*?\})/.match(string_object)
@@ -20,7 +19,7 @@ def find_object string_object
20
19
  dyn_pros[k.to_s.upcase] = v
21
20
  }
22
21
  end
23
- hash_object = object[string_object]
22
+ hash_object = $OBJECT[string_object]
24
23
  puts hash_object
25
24
  if hash_object == nil
26
25
  put_log ">>> OBJECT NAME MAYBE NOT FOUND!!!"
@@ -231,3 +230,12 @@ end
231
230
  def move_home
232
231
  selenium.key_event 3
233
232
  end
233
+
234
+ def data(name)
235
+ require 'yaml'
236
+ begin
237
+ return $globalData["#{name}"]
238
+ rescue Exception
239
+ return name
240
+ end
241
+ end
@@ -1,5 +1,5 @@
1
1
  module Ifd
2
2
  module Mobile
3
- VERSION = '1.1.0'
3
+ VERSION = '1.2.0'
4
4
  end
5
5
  end
@@ -0,0 +1,2 @@
1
+ username: demo
2
+ password: demo
@@ -1,4 +1,5 @@
1
1
  Feature: Demo
2
2
 
3
3
  Scenario: Demo
4
+ Given I have App running with Appium
4
5
  * I click on Sign In button
@@ -17,6 +17,9 @@ $_CONFIG = Hash.new
17
17
  PROJECT_CONFIG = YAML.load_file("#{$current_dir}/project_config.yml")
18
18
  $_CONFIG['Print Log'] = true
19
19
  $_CONFIG['Wait Time'] = PROJECT_CONFIG["wait_time"]
20
+ $OBJECT = YAML.load_file("#{$base_dir}/features/step_definitions/repositories/project_object.yml")
21
+ $test_data_dir = $base_dir + '/features/TestData/'
22
+ $globalData = YAML.load_file("#{$test_data_dir}/globalData.yml")
20
23
 
21
24
 
22
25
  class AppiumWorld
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Ifd_Mobile
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anh Pham
@@ -84,43 +84,12 @@ files:
84
84
  - bin/generate.rb
85
85
  - bin/helper.rb
86
86
  - bin/Ifd_Mobile
87
- - project/apps/selendroid-test-app.apk
88
- - project/apps/TestApp/build/release-iphonesimulator/TestApp.app/Default-568h@2x.png
89
- - project/apps/TestApp/build/release-iphonesimulator/TestApp.app/en.lproj/InfoPlist.strings
90
- - project/apps/TestApp/build/release-iphonesimulator/TestApp.app/en.lproj/Localizable.strings
91
- - project/apps/TestApp/build/release-iphonesimulator/TestApp.app/en.lproj/MyViewControllerViewController.nib/objects-8.0+.nib
92
- - project/apps/TestApp/build/release-iphonesimulator/TestApp.app/en.lproj/MyViewControllerViewController.nib/objects.nib
93
- - project/apps/TestApp/build/release-iphonesimulator/TestApp.app/en.lproj/MyViewControllerViewController.nib/runtime.nib
94
- - project/apps/TestApp/build/release-iphonesimulator/TestApp.app/GestureTestViewController.nib/objects-8.0+.nib
95
- - project/apps/TestApp/build/release-iphonesimulator/TestApp.app/GestureTestViewController.nib/objects.nib
96
- - project/apps/TestApp/build/release-iphonesimulator/TestApp.app/GestureTestViewController.nib/runtime.nib
97
- - project/apps/TestApp/build/release-iphonesimulator/TestApp.app/Info.plist
98
- - project/apps/TestApp/build/release-iphonesimulator/TestApp.app/PkgInfo
99
- - project/apps/TestApp/build/release-iphonesimulator/TestApp.app/TestApp
100
- - project/apps/TestApp/Default-568h@2x.png
101
- - project/apps/TestApp/Test App 2/en.lproj/InfoPlist.strings
102
- - project/apps/TestApp/Test App 2/en.lproj/Localizable.strings
103
- - project/apps/TestApp/Test App 2/en.lproj/MyViewControllerViewController.xib
104
- - project/apps/TestApp/Test App 2/GestureTestViewController.h
105
- - project/apps/TestApp/Test App 2/GestureTestViewController.m
106
- - project/apps/TestApp/Test App 2/GestureTestViewController.xib
107
- - project/apps/TestApp/Test App 2/main.m
108
- - project/apps/TestApp/Test App 2/MyViewControllerViewController.h
109
- - project/apps/TestApp/Test App 2/MyViewControllerViewController.m
110
- - project/apps/TestApp/Test App 2/TA2AppDelegate.h
111
- - project/apps/TestApp/Test App 2/TA2AppDelegate.m
112
- - project/apps/TestApp/Test App 2/TestApp-Info.plist
113
- - project/apps/TestApp/Test App 2/TestApp-Prefix.pch
114
- - project/apps/TestApp/TestApp.xcodeproj/project.pbxproj
115
- - project/apps/TestApp/TestApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
116
- - project/apps/TestApp/TestApp.xcodeproj/project.xcworkspace/xcuserdata/anhpham.xcuserdatad/UserInterfaceState.xcuserstate
117
- - project/apps/TestApp/TestApp.xcodeproj/xcuserdata/anhpham.xcuserdatad/xcschemes/TestApp.xcscheme
118
- - project/apps/TestApp/TestApp.xcodeproj/xcuserdata/anhpham.xcuserdatad/xcschemes/xcschememanagement.plist
119
87
  - project/features/step_definitions/lib_steps/step_demo.rb
120
88
  - project/features/step_definitions/repositories/project_object.yml
121
89
  - project/features/support/env.rb
122
90
  - project/features/support/hooks.rb
123
91
  - project/features/support/project_config.yml
92
+ - project/features/TestData/globalData.yml
124
93
  - project/features/TestSuite/login.feature
125
94
  - project/Gemfile
126
95
  - project/Gemfile.lock
@@ -1,18 +0,0 @@
1
- //
2
- // GestureTestViewController.h
3
- // TestApp
4
- //
5
- // Created by ThinkSys- Amit on 12/07/13.
6
- //
7
- //
8
-
9
- #import <UIKit/UIKit.h>
10
- #import <MapKit/MapKit.h>
11
-
12
- @interface GestureTestViewController : UIViewController<UIGestureRecognizerDelegate>
13
- @property (retain, nonatomic) IBOutlet MKMapView *mapView;
14
-
15
-
16
- - (IBAction)handleRotation:(UIRotationGestureRecognizer*)sender;
17
-
18
- @end
@@ -1,48 +0,0 @@
1
- //
2
- // GestureTestViewController.m
3
- // TestApp
4
- //
5
- // Created by ThinkSys- Amit on 12/07/13.
6
- //
7
- //
8
-
9
- #import "GestureTestViewController.h"
10
-
11
- @interface GestureTestViewController ()
12
-
13
- @end
14
-
15
- @implementation GestureTestViewController
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
- [super viewDidLoad];
29
- // Do any additional setup after loading the view from its nib.
30
- }
31
-
32
- - (void)didReceiveMemoryWarning
33
- {
34
- [super didReceiveMemoryWarning];
35
- // Dispose of any resources that can be recreated.
36
- }
37
-
38
- - (IBAction)handleRotation:(UIRotationGestureRecognizer*)sender
39
- {
40
- NSLog(@"Rotation Starts");
41
- sender.view.transform = CGAffineTransformRotate(sender.view.transform, sender.rotation);
42
- sender.rotation = 0;
43
- }
44
- - (void)dealloc {
45
- [_mapView release];
46
- [super dealloc];
47
- }
48
- @end
@@ -1,47 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="12F45" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
3
- <dependencies>
4
- <deployment defaultVersion="1552" identifier="iOS"/>
5
- <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
6
- </dependencies>
7
- <objects>
8
- <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="GestureTestViewController">
9
- <connections>
10
- <outlet property="mapView" destination="4" id="24"/>
11
- <outlet property="view" destination="1" id="3"/>
12
- </connections>
13
- </placeholder>
14
- <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
15
- <view contentMode="scaleToFill" id="1">
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
- <mapView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" mapType="standard" showsUserLocation="YES" translatesAutoresizingMaskIntoConstraints="NO" id="4">
20
- <rect key="frame" x="35" y="83" width="250" height="250"/>
21
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
22
- <gestureRecognizers/>
23
- <constraints>
24
- <constraint firstAttribute="width" constant="250" id="18"/>
25
- <constraint firstAttribute="height" constant="250" id="20"/>
26
- </constraints>
27
- <connections>
28
- <outletCollection property="gestureRecognizers" destination="14" appends="YES" id="15"/>
29
- </connections>
30
- </mapView>
31
- </subviews>
32
- <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
33
- <constraints>
34
- <constraint firstItem="4" firstAttribute="top" secondItem="1" secondAttribute="top" constant="83" id="22"/>
35
- <constraint firstItem="4" firstAttribute="centerX" secondItem="1" secondAttribute="centerX" id="23"/>
36
- </constraints>
37
- <simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
38
- <simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/>
39
- </view>
40
- <rotationGestureRecognizer id="14">
41
- <connections>
42
- <action selector="handleRotation:" destination="-1" id="16"/>
43
- <outlet property="delegate" destination="-1" id="25"/>
44
- </connections>
45
- </rotationGestureRecognizer>
46
- </objects>
47
- </document>
@@ -1,42 +0,0 @@
1
- /**
2
- * Copyright 2012 Appium Committers
3
- *
4
- * Licensed to the Apache Software Foundation (ASF) under one
5
- * or more contributor license agreements. See the NOTICE file
6
- * distributed with this work for additional information
7
- * regarding copyright ownership. The ASF licenses this file
8
- * to you under the Apache License, Version 2.0 (the
9
- * "License"); you may not use this file except in compliance
10
- * with the License. You may obtain a copy of the License at
11
- *
12
- * http://www.apache.org/licenses/LICENSE-2.0
13
- *
14
- * Unless required by applicable law or agreed to in writing,
15
- * software distributed under the License is distributed on an
16
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17
- * KIND, either express or implied. See the License for the
18
- * specific language governing permissions and limitations
19
- * under the License.
20
- */
21
-
22
- #import <UIKit/UIKit.h>
23
- #import <CoreLocation/CoreLocation.h>
24
- #import "GestureTestViewController.h"
25
-
26
- @interface MyViewControllerViewController : UIViewController <UITextFieldDelegate,CLLocationManagerDelegate>
27
- @property (retain, nonatomic) IBOutlet UITextField *firstArg;
28
- @property (retain, nonatomic) IBOutlet UITextField *secondArg;
29
- @property (retain, nonatomic) IBOutlet UILabel *answerLabel;
30
- @property (retain, nonatomic) IBOutlet UISwitch *locationStatus;
31
- @property (retain, nonatomic) IBOutlet UIButton *computeSumButton;
32
- @property (nonatomic, retain) CLLocationManager *locationMgr;
33
-
34
- - (IBAction)testGesture:(id)sender;
35
- - (IBAction)computeAction:(id)sender;
36
- - (IBAction)showAlert:(id)sender;
37
- - (IBAction)crashApp:(id)sender;
38
- - (BOOL)textFieldShouldReturn:(UITextField *)textField;
39
- - (void)logLocationAuthFromTimer:(NSTimer *)timer;
40
- - (void)logLocationAuth;
41
-
42
- @end
@@ -1,193 +0,0 @@
1
- /**
2
- * Copyright 2012 Appium Committers
3
- *
4
- * Licensed to the Apache Software Foundation (ASF) under one
5
- * or more contributor license agreements. See the NOTICE file
6
- * distributed with this work for additional information
7
- * regarding copyright ownership. The ASF licenses this file
8
- * to you under the Apache License, Version 2.0 (the
9
- * "License"); you may not use this file except in compliance
10
- * with the License. You may obtain a copy of the License at
11
- *
12
- * http://www.apache.org/licenses/LICENSE-2.0
13
- *
14
- * Unless required by applicable law or agreed to in writing,
15
- * software distributed under the License is distributed on an
16
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17
- * KIND, either express or implied. See the License for the
18
- * specific language governing permissions and limitations
19
- * under the License.
20
- */
21
-
22
- #import "MyViewControllerViewController.h"
23
- #import <AddressBook/AddressBook.h>
24
- #import <CoreLocation/CoreLocation.h>
25
-
26
- @interface MyViewControllerViewController ()
27
-
28
- @end
29
-
30
- @implementation MyViewControllerViewController
31
- @synthesize computeSumButton;
32
- @synthesize answerLabel;
33
- @synthesize firstArg;
34
- @synthesize secondArg;
35
- @synthesize locationMgr;
36
- @synthesize locationStatus;
37
-
38
- - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
39
- {
40
- self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
41
- if (self) {
42
- // Custom initialization
43
- self.locationMgr = [[CLLocationManager alloc] init];
44
- self.locationMgr.desiredAccuracy = kCLLocationAccuracyBest;
45
- self.locationMgr.delegate = self;
46
- [self logLocationAuth];
47
- }
48
-
49
- return self;
50
- }
51
-
52
- - (void)viewDidLoad
53
- {
54
- [super viewDidLoad];
55
- // Do any additional setup after loading the view from its nib.
56
- firstArg.returnKeyType = UIReturnKeyDone;
57
- secondArg.returnKeyType = UIReturnKeyDone;
58
- firstArg.delegate = self;
59
- secondArg.delegate = self;
60
- [NSTimer scheduledTimerWithTimeInterval:0.2
61
- target:self
62
- selector:@selector(logLocationAuthFromTimer:)
63
- userInfo:nil
64
- repeats:NO];
65
-
66
- [firstArg setAccessibilityIdentifier:@"IntegerA"];
67
- [secondArg setAccessibilityIdentifier:@"IntegerB"];
68
- [computeSumButton setAccessibilityIdentifier:@"ComputeSumButton"];
69
- [answerLabel setAccessibilityIdentifier:@"Answer"];
70
- [locationStatus setAccessibilityIdentifier:@"locationStatus"];
71
-
72
- UISwipeGestureRecognizer * swipe =[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeUp:)];
73
- swipe.direction = UISwipeGestureRecognizerDirectionUp;
74
- [self.view addGestureRecognizer:swipe];
75
- [swipe release];
76
-
77
- computeSumButton.titleLabel.text = NSLocalizedString(@"main.button.computeSum", @"Compute Sum button");
78
- }
79
-
80
- -(void)swipeUp:(UISwipeGestureRecognizer*)gestureRecognizer
81
- {
82
- [secondArg resignFirstResponder];
83
- }
84
-
85
-
86
- - (void)logLocationAuthFromTimer:(NSTimer *)timer
87
- {
88
- [self logLocationAuth];
89
- }
90
-
91
- - (void)logLocationAuth
92
- {
93
- CLAuthorizationStatus status = [CLLocationManager authorizationStatus];
94
- if (status != kCLAuthorizationStatusRestricted && status != kCLAuthorizationStatusDenied) {
95
- locationStatus.on = YES;
96
- } else {
97
- locationStatus.on = NO;
98
- }
99
- }
100
-
101
- - (void)viewDidUnload
102
- {
103
- [self setFirstArg:nil];
104
- [self setSecondArg:nil];
105
- [self setAnswerLabel:nil];
106
- [self setLocationStatus:nil];
107
- [super viewDidUnload];
108
- // Release any retained subviews of the main view.
109
- // e.g. self.myOutlet = nil;
110
- }
111
-
112
- - (BOOL)textFieldShouldReturn:(UITextField *)textField {
113
- [textField resignFirstResponder];
114
- return YES;
115
- }
116
-
117
- - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
118
- {
119
- return (interfaceOrientation == UIInterfaceOrientationPortrait);
120
- }
121
-
122
- - (void)dealloc {
123
- [self.locationMgr release];
124
- self.locationMgr = nil;
125
- [firstArg release];
126
- [secondArg release];
127
- [answerLabel release];
128
- [computeSumButton release];
129
- [super dealloc];
130
- }
131
- - (IBAction)testGesture:(id)sender
132
- {
133
- GestureTestViewController *test = [[GestureTestViewController alloc] initWithNibName:@"GestureTestViewController" bundle:nil];
134
- [self presentViewController:test animated:YES completion:NULL];
135
- }
136
-
137
- - (IBAction)computeAction:(id)sender {
138
- int a = [[firstArg text] intValue];
139
- int b = [[secondArg text] intValue];
140
- int sum = a + b;
141
- NSString *newLabelValue = [NSString stringWithFormat:@"%d",sum];
142
- [answerLabel setText:newLabelValue];
143
- [answerLabel setAccessibilityLabel:newLabelValue];
144
- }
145
-
146
- - (IBAction)showAlert:(id)sender {
147
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Cool title"
148
- message:@"this alert is so cool."
149
- delegate:nil
150
- cancelButtonTitle:@"Cancel"
151
- otherButtonTitles:@"OK", nil];
152
- [alert show];
153
- [alert release];
154
- }
155
-
156
- - (IBAction)crashApp:(id)sender {
157
- abort();
158
- }
159
-
160
- - (void)requestContactsPermission {
161
- ABAddressBookRef book = [MyViewControllerViewController addressBookForPermissionRequest];
162
- [self popContactsPermissionDialogWithAddressBook:book];
163
- }
164
-
165
- - (void)popContactsPermissionDialogWithAddressBook:(ABAddressBookRef)book {
166
- ABAddressBookRequestAccessWithCompletion(book, ^(bool granted, CFErrorRef error) {
167
- });
168
- CFRelease (book);
169
- }
170
-
171
- + (ABAddressBookRef)addressBookForPermissionRequest {
172
- CFErrorRef error = NULL;
173
- return ABAddressBookCreateWithOptions(NULL, &error);
174
- }
175
-
176
- - (IBAction)accessContactsAlert:(id)sender {
177
- if ([MyViewControllerViewController addressBookAuthorizationStatus] == kABAuthorizationStatusNotDetermined) {
178
- [self requestContactsPermission];
179
- }
180
- }
181
-
182
- - (IBAction)accessLocationAlert:(id)sender {
183
- CLLocationManager *locationManager = [[CLLocationManager alloc] init];
184
-
185
- [locationManager startUpdatingLocation];
186
- [locationManager stopUpdatingLocation];
187
- }
188
-
189
- + (ABAuthorizationStatus)addressBookAuthorizationStatus {
190
- return ABAddressBookGetAuthorizationStatus();
191
- }
192
-
193
- @end