summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsiqi <me@siqi.fr>2013-07-11 22:21:06 +0200
committersiqi <me@siqi.fr>2013-07-12 11:31:48 +0200
commitd3c31b6fccd605ced0c7657916c38cda02206b11 (patch)
treeea5f29d63c7634e1462dc4d8c62948538a9aa91f
parenta5f6c185ed1cff681b8002583def8389c5a07400 (diff)
two pointer mode implemented & various bug fixes
Change-Id: Ib927b7a463d29838fd16eb62dc23a05a230c0274
-rw-r--r--ios/iosremote/iosremote.xcodeproj/project.xcworkspace/xcuserdata/siqi.xcuserdatad/UserInterfaceState.xcuserstatebin69357 -> 68048 bytes
-rw-r--r--ios/iosremote/iosremote/Communication/CommunicationManager.m9
-rw-r--r--ios/iosremote/iosremote/en.lproj/iPhone_autolayout.storyboard118
-rw-r--r--ios/iosremote/iosremote/serverList_vc.m4
-rw-r--r--ios/iosremote/iosremote/slideShow_vc.m35
5 files changed, 124 insertions, 42 deletions
diff --git a/ios/iosremote/iosremote.xcodeproj/project.xcworkspace/xcuserdata/siqi.xcuserdatad/UserInterfaceState.xcuserstate b/ios/iosremote/iosremote.xcodeproj/project.xcworkspace/xcuserdata/siqi.xcuserdatad/UserInterfaceState.xcuserstate
index a7650de0a28e..78e830a65245 100644
--- a/ios/iosremote/iosremote.xcodeproj/project.xcworkspace/xcuserdata/siqi.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/ios/iosremote/iosremote.xcodeproj/project.xcworkspace/xcuserdata/siqi.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/ios/iosremote/iosremote/Communication/CommunicationManager.m b/ios/iosremote/iosremote/Communication/CommunicationManager.m
index 1ac878dfb4a1..52a826616955 100644
--- a/ios/iosremote/iosremote/Communication/CommunicationManager.m
+++ b/ios/iosremote/iosremote/Communication/CommunicationManager.m
@@ -49,15 +49,14 @@
- (void) connectionStatusHandler:(NSNotification *)note
{
- if ([self.delegate respondsToSelector:@selector(disableSpinner)])
- [self.delegate disableSpinner];
if([[note name] isEqualToString:@"connection.status.connected"]){
if (self.state!=CONNECTED){
- NSLog(@"Connected");
+ NSLog(@"Connected, waiting for pairing response");
self.transmitter = [[CommandTransmitter alloc] initWithClient:self.client];
- self.state = CONNECTED;
}
} else if ([[note name] isEqualToString:@"connection.status.disconnected"]){
+ if ([self.delegate respondsToSelector:@selector(disableSpinner)])
+ [self.delegate disableSpinner];
if (self.state != DISCONNECTED) {
NSLog(@"Connection Failed");
self.state = DISCONNECTED;
@@ -118,8 +117,8 @@
if (self.state == CONNECTING) {
return;
} else {
- self.state = CONNECTING;
[self.client disconnect];
+ self.state = CONNECTING;
// initialise it with a given server
self.client = [[Client alloc]initWithServer:server managedBy:self interpretedBy:self.interpreter];
self.transmitter = [[CommandTransmitter alloc] initWithClient:self.client];
diff --git a/ios/iosremote/iosremote/en.lproj/iPhone_autolayout.storyboard b/ios/iosremote/iosremote/en.lproj/iPhone_autolayout.storyboard
index 5fbdb2392689..c900f65aeeec 100644
--- a/ios/iosremote/iosremote/en.lproj/iPhone_autolayout.storyboard
+++ b/ios/iosremote/iosremote/en.lproj/iPhone_autolayout.storyboard
@@ -460,31 +460,18 @@
<accessibilityTraits key="traits" none="YES" notEnabled="YES"/>
</accessibility>
</view>
- <scrollView hidden="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" verticalCompressionResistancePriority="1000" scrollEnabled="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sco-8x-zSx">
- <subviews>
- <imageView hidden="YES" userInteractionEnabled="NO" alpha="0.0" contentMode="scaleAspectFit" image="ic_launcher@2x.png" translatesAutoresizingMaskIntoConstraints="NO" id="ExH-sw-Z1i">
- <constraints>
- <constraint firstAttribute="height" constant="251" type="user" id="fag-vU-Fek"/>
- </constraints>
- </imageView>
- <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iCc-m2-vR5" userLabel="pointer">
- <color key="backgroundColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
- <constraints>
- <constraint firstAttribute="width" constant="5" id="Pvc-0L-c6j"/>
- <constraint firstAttribute="height" constant="5" id="pYn-Z0-Lv4"/>
- </constraints>
- </view>
- </subviews>
+ <imageView hidden="YES" alpha="0.0" contentMode="scaleAspectFit" image="ic_launcher@2x.png" translatesAutoresizingMaskIntoConstraints="NO" id="ExH-sw-Z1i">
<constraints>
- <constraint firstItem="iCc-m2-vR5" firstAttribute="centerY" secondItem="ExH-sw-Z1i" secondAttribute="centerY" type="user" id="1ij-Ea-epv"/>
- <constraint firstItem="ExH-sw-Z1i" firstAttribute="centerX" secondItem="sco-8x-zSx" secondAttribute="centerX" type="default" id="HzU-KT-Di4"/>
- <constraint firstItem="ExH-sw-Z1i" firstAttribute="centerY" secondItem="sco-8x-zSx" secondAttribute="centerY" type="default" id="Jp6-hL-zFM"/>
- <constraint firstItem="ExH-sw-Z1i" firstAttribute="leading" secondItem="sco-8x-zSx" secondAttribute="leading" type="default" id="Mlu-wO-svM"/>
- <constraint firstItem="iCc-m2-vR5" firstAttribute="centerX" secondItem="ExH-sw-Z1i" secondAttribute="centerX" type="user" id="W0H-CC-5rY"/>
- <constraint firstItem="ExH-sw-Z1i" firstAttribute="trailing" secondItem="sco-8x-zSx" secondAttribute="trailing" type="default" id="cE4-Q3-f4A"/>
- <constraint firstAttribute="bottom" secondItem="ExH-sw-Z1i" secondAttribute="bottom" constant="149" id="vm4-SB-sLt"/>
+ <constraint firstAttribute="height" constant="253" id="li4-9E-WeL"/>
</constraints>
- </scrollView>
+ </imageView>
+ <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iCc-m2-vR5" userLabel="pointer">
+ <color key="backgroundColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="5" id="Pvc-0L-c6j"/>
+ <constraint firstAttribute="height" constant="5" id="pYn-Z0-Lv4"/>
+ </constraints>
+ </view>
<view contentMode="scaleToFill" restorationIdentifier="" translatesAutoresizingMaskIntoConstraints="NO" id="3od-5c-yzI" userLabel="Bottom">
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vh9-Zy-DPu">
@@ -555,24 +542,25 @@
</subviews>
<color key="backgroundColor" red="0.90196079015731812" green="0.90196079015731812" blue="0.90196079015731812" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
+ <constraint firstItem="ExH-sw-Z1i" firstAttribute="trailing" secondItem="Xty-aF-WDv" secondAttribute="trailing" type="default" id="5D0-O5-xr5"/>
<constraint firstItem="evg-Ah-Kcw" firstAttribute="leading" secondItem="Xty-aF-WDv" secondAttribute="leading" constant="-13" id="5Ku-go-4Y7"/>
<constraint firstItem="3od-5c-yzI" firstAttribute="leading" secondItem="Xty-aF-WDv" secondAttribute="leading" type="default" id="5et-XH-ZVD"/>
- <constraint firstItem="sco-8x-zSx" firstAttribute="centerY" secondItem="Xty-aF-WDv" secondAttribute="centerY" type="default" id="5g1-xQ-Rjo"/>
<constraint firstItem="uSh-Ne-BdH" firstAttribute="top" secondItem="Xty-aF-WDv" secondAttribute="top" type="default" id="5oi-ag-u6c"/>
<constraint firstAttribute="bottom" secondItem="uSh-Ne-BdH" secondAttribute="bottom" constant="-92" id="7f7-gO-D5h"/>
<constraint firstItem="3od-5c-yzI" firstAttribute="bottom" secondItem="Xty-aF-WDv" secondAttribute="bottom" type="default" id="9qT-8J-cJX"/>
- <constraint firstItem="sco-8x-zSx" firstAttribute="top" secondItem="Xty-aF-WDv" secondAttribute="top" constant="-1" id="ABt-Qu-Csc"/>
<constraint firstItem="YvB-Gp-Fvr" firstAttribute="top" secondItem="Xty-aF-WDv" secondAttribute="top" constant="5" type="user" id="DoA-5l-NFS"/>
<constraint firstItem="evg-Ah-Kcw" firstAttribute="top" secondItem="YvB-Gp-Fvr" secondAttribute="bottom" constant="8" symbolic="YES" type="default" id="FDk-Bs-3cI"/>
<constraint firstItem="YvB-Gp-Fvr" firstAttribute="trailing" secondItem="Xty-aF-WDv" secondAttribute="trailing" type="default" id="FXg-Ij-nfl"/>
<constraint firstItem="uSh-Ne-BdH" firstAttribute="trailing" secondItem="Xty-aF-WDv" secondAttribute="trailing" type="default" id="HAC-vD-Hqj"/>
<constraint firstItem="uSh-Ne-BdH" firstAttribute="leading" secondItem="Xty-aF-WDv" secondAttribute="leading" type="default" id="HeG-j9-sqU"/>
<constraint firstItem="YvB-Gp-Fvr" firstAttribute="leading" secondItem="Xty-aF-WDv" secondAttribute="leading" type="default" id="I4g-8o-Kbt"/>
- <constraint firstItem="3od-5c-yzI" firstAttribute="centerX" secondItem="evg-Ah-Kcw" secondAttribute="centerX" type="default" id="OBV-yE-3pQ"/>
- <constraint firstItem="sco-8x-zSx" firstAttribute="trailing" secondItem="Xty-aF-WDv" secondAttribute="trailing" type="default" id="TvG-hv-kxd"/>
+ <constraint firstItem="ExH-sw-Z1i" firstAttribute="centerX" secondItem="evg-Ah-Kcw" secondAttribute="centerX" type="default" id="VNk-MY-fXM"/>
+ <constraint firstItem="ExH-sw-Z1i" firstAttribute="centerY" secondItem="Xty-aF-WDv" secondAttribute="centerY" type="default" id="Vim-gy-wQ5"/>
+ <constraint firstItem="iCc-m2-vR5" firstAttribute="leading" secondItem="Xty-aF-WDv" secondAttribute="leading" constant="157" id="dda-gh-C3S"/>
<constraint firstItem="3od-5c-yzI" firstAttribute="trailing" secondItem="Xty-aF-WDv" secondAttribute="trailing" type="default" id="eJ5-5R-zZM"/>
- <constraint firstItem="sco-8x-zSx" firstAttribute="leading" secondItem="Xty-aF-WDv" secondAttribute="leading" type="default" id="tDh-lz-AgT"/>
+ <constraint firstItem="ExH-sw-Z1i" firstAttribute="leading" secondItem="Xty-aF-WDv" secondAttribute="leading" type="default" id="tz5-fd-LV0"/>
<constraint firstAttribute="bottom" secondItem="evg-Ah-Kcw" secondAttribute="bottom" constant="88" id="uDo-cI-z18"/>
+ <constraint firstItem="iCc-m2-vR5" firstAttribute="centerY" secondItem="ExH-sw-Z1i" secondAttribute="centerY" type="default" id="wfp-Rv-pF0"/>
</constraints>
</view>
<connections>
@@ -586,7 +574,6 @@
<outlet property="slideNumber" destination="3BV-KX-Qla" id="681-YP-k0T"/>
<outlet property="slideView" destination="bZq-z2-OKU" id="yu0-P8-F3v"/>
<outlet property="touchPointerImage" destination="ExH-sw-Z1i" id="I0L-0P-zSk"/>
- <outlet property="touchPointerScrollView" destination="sco-8x-zSx" id="7B3-1T-ZI8"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="Uei-nM-J1S" userLabel="First Responder" sceneMemberID="firstResponder"/>
@@ -821,6 +808,79 @@
<image name="timer_clear_btn.png" width="74" height="74"/>
<image name="timer_start_btn.png" width="74" height="74"/>
</resources>
+ <classes>
+ <class className="EditableTableViewCell" superclassName="UITableViewCell">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/EditableTableViewCell.h"/>
+ </class>
+ <class className="NSLayoutConstraint" superclassName="NSObject">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/NSLayoutConstraint.h"/>
+ </class>
+ <class className="SWRevealViewController" superclassName="UIViewController">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/SWRevealViewController.h"/>
+ </class>
+ <class className="newServerViewController" superclassName="UITableViewController">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/newServerViewController.h"/>
+ <relationships>
+ <relationship kind="action" name="save:"/>
+ </relationships>
+ </class>
+ <class className="pinValidation_vc" superclassName="UIViewController">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/pinValidation_vc.h"/>
+ <relationships>
+ <relationship kind="outlet" name="pinLabel" candidateClass="UILabel"/>
+ <relationship kind="outlet" name="statusLabel" candidateClass="UILabel"/>
+ </relationships>
+ </class>
+ <class className="server_list_vc" superclassName="UITableViewController">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/server_list_vc.h"/>
+ <relationships>
+ <relationship kind="outlet" name="serverTable" candidateClass="UITableView"/>
+ </relationships>
+ </class>
+ <class className="slideShowPreviewTable_vc" superclassName="UITableViewController">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowPreviewTable_vc.h"/>
+ <relationships>
+ <relationship kind="action" name="startPresentationAction:"/>
+ <relationship kind="outlet" name="optionsTable" candidateClass="UITableView"/>
+ </relationships>
+ </class>
+ <class className="slideShowSwipeInList" superclassName="UITableViewController">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShowSwipeInList.h"/>
+ <relationships>
+ <relationship kind="action" name="stopWatchClear:"/>
+ <relationship kind="action" name="stopWatchStart:"/>
+ <relationship kind="outlet" name="slidesTable" candidateClass="UITableView"/>
+ </relationships>
+ </class>
+ <class className="slideShow_vc" superclassName="UIViewController">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/slideShow_vc.h"/>
+ <relationships>
+ <relationship kind="action" name="accPointerAction:"/>
+ <relationship kind="action" name="nextSlideAction:"/>
+ <relationship kind="action" name="pointerAction:"/>
+ <relationship kind="action" name="previousSlideAction:"/>
+ <relationship kind="outlet" name="blockingView" candidateClass="UIView"/>
+ <relationship kind="outlet" name="bottomView" candidateClass="UIView"/>
+ <relationship kind="outlet" name="lecturer_notes" candidateClass="UIWebView"/>
+ <relationship kind="outlet" name="movingPointer" candidateClass="UIView"/>
+ <relationship kind="outlet" name="notesView" candidateClass="UIView"/>
+ <relationship kind="outlet" name="pointerBtn" candidateClass="UIButton"/>
+ <relationship kind="outlet" name="revealButtonItem" candidateClass="UIBarButtonItem"/>
+ <relationship kind="outlet" name="secondarySlideView" candidateClass="UIImageView"/>
+ <relationship kind="outlet" name="slideNumber" candidateClass="UILabel"/>
+ <relationship kind="outlet" name="slideView" candidateClass="UIImageView"/>
+ <relationship kind="outlet" name="touchPointerImage" candidateClass="UIImageView"/>
+ <relationship kind="outlet" name="touchPointerScrollView" candidateClass="UIScrollView"/>
+ </relationships>
+ </class>
+ <class className="touchPointer_vc" superclassName="UIViewController">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/touchPointer_vc.h"/>
+ <relationships>
+ <relationship kind="action" name="dismissModal:"/>
+ <relationship kind="outlet" name="imageView" candidateClass="UIImageView"/>
+ </relationships>
+ </class>
+ </classes>
<simulatedMetricsContainer key="defaultSimulatedMetrics">
<simulatedStatusBarMetrics key="statusBar"/>
<simulatedOrientationMetrics key="orientation"/>
diff --git a/ios/iosremote/iosremote/serverList_vc.m b/ios/iosremote/iosremote/serverList_vc.m
index 9d15bc800612..8493ff5a3571 100644
--- a/ios/iosremote/iosremote/serverList_vc.m
+++ b/ios/iosremote/iosremote/serverList_vc.m
@@ -61,12 +61,16 @@
object:nil
queue:mainQueue
usingBlock:^(NSNotification *note) {
+ self.comManager.state = CONNECTED;
+ [self disableSpinner];
[self performSegueWithIdentifier:@"pinValidation" sender:self ];
}];
self.slideShowPreviewStartObserver = [[NSNotificationCenter defaultCenter] addObserverForName:STATUS_PAIRING_PAIRED
object:nil
queue:mainQueue
usingBlock:^(NSNotification *note) {
+ self.comManager.state = CONNECTED;
+ [self disableSpinner];
[self performSegueWithIdentifier:@"SlideShowPreview" sender:self ];
}];
[super viewDidAppear:animated];
diff --git a/ios/iosremote/iosremote/slideShow_vc.m b/ios/iosremote/iosremote/slideShow_vc.m
index 71d83d80c405..db979a3f27be 100644
--- a/ios/iosremote/iosremote/slideShow_vc.m
+++ b/ios/iosremote/iosremote/slideShow_vc.m
@@ -187,19 +187,34 @@
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
- CGPoint loc = [touch locationInView:self.slideView];
- if (loc.x >= 0 && loc.x <= self.slideView.frame.origin.x+self.slideView.frame.size.width
- && loc.y >= 0 && loc.y <= self.slideView.frame.origin.y + self.slideView.frame.size.height)
- NSLog(@"Touch begins at: %f, %f", loc.x, loc.y);
+ CGPoint loc = [touch locationInView:self.touchPointerImage];
+ if (loc.x >= 0 && loc.x <= self.touchPointerImage.frame.size.width
+ && loc.y >= 0 && loc.y <= self.touchPointerImage.frame.size.height){
+ CGPoint p;
+ p.x = loc.x + self.touchPointerImage.frame.origin.x;
+ p.y = loc.y + self.touchPointerImage.frame.origin.y;
+ self.movingPointer.center = p;
+ [self.movingPointer setHidden:NO];
+ }
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [[event allTouches] anyObject];
- CGPoint loc = [touch locationInView:self.slideView];
- if (loc.x >= 0 && loc.x <= self.slideView.frame.origin.x+self.slideView.frame.size.width
- && loc.y >= 0 && loc.y <= self.slideView.frame.origin.y + self.slideView.frame.size.height)
- NSLog(@"Touch at: %f, %f", loc.x, loc.y);
+ CGPoint loc = [touch locationInView:self.touchPointerImage];
+ if (loc.x >= 0 && loc.x <= self.touchPointerImage.frame.size.width
+ && loc.y >= self.movingPointer.frame.size.height && loc.y <= self.touchPointerImage.frame.size.height - self.movingPointer.frame.size.height)
+ {
+ CGPoint p;
+ p.x = loc.x + self.touchPointerImage.frame.origin.x;
+ p.y = loc.y + self.touchPointerImage.frame.origin.y;
+ self.movingPointer.center = p;
+ }
+}
+
+- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
+{
+ [self.movingPointer setHidden:YES];
}
#pragma mark - System defaults
@@ -253,8 +268,12 @@
BOOL acc = [[NSUserDefaults standardUserDefaults] boolForKey:KEY_POINTER];
if (!acc) {
+ // Hook up acc detection
[self.pointerBtn addTarget:self action:@selector(pointerAction:) forControlEvents:UIControlEventTouchUpOutside];
[self.pointerBtn addTarget:self action:@selector(pointerAction:) forControlEvents:UIControlEventTouchUpInside];
+ } else {
+ // Disable all calibration functions for acc based pointer
+ self.count = INT_MAX;
}
}