diff options
Diffstat (limited to 'iBean')
| -rw-r--r-- | iBean/iBean.xcodeproj/project.pbxproj | 4 | ||||
| -rw-r--r-- | iBean/iBean.xcodeproj/project.xcworkspace/xcuserdata/eddiex.xcuserdatad/UserInterfaceState.xcuserstate | bin | 49744 -> 51543 bytes | |||
| -rw-r--r-- | iBean/iBean/.DS_Store | bin | 6148 -> 6148 bytes | |||
| -rw-r--r-- | iBean/iBean/BeanCollectionExtractionViewController.h | 4 | ||||
| -rw-r--r-- | iBean/iBean/BeanCollectionExtractionViewController.m | 57 | ||||
| -rw-r--r-- | iBean/iBean/Graphics/ibean-extraction-dropdown-background.png | bin | 0 -> 81326 bytes | |||
| -rw-r--r-- | iBean/iBean/Graphics/ibean-extraction-dropdown-background.pxm | bin | 0 -> 201374 bytes | |||
| -rw-r--r-- | iBean/iBean/iPhoneStoryboard.storyboard | 92 | 
8 files changed, 124 insertions, 33 deletions
diff --git a/iBean/iBean.xcodeproj/project.pbxproj b/iBean/iBean.xcodeproj/project.pbxproj index 3cabdce..f2f8088 100644 --- a/iBean/iBean.xcodeproj/project.pbxproj +++ b/iBean/iBean.xcodeproj/project.pbxproj @@ -37,6 +37,7 @@  		024CB03716C2EF10009CBC15 /* UITableView+Extra.m in Sources */ = {isa = PBXBuildFile; fileRef = 024CB03616C2EF10009CBC15 /* UITableView+Extra.m */; };  		024CB03916C2EFD5009CBC15 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 024CB03816C2EFD5009CBC15 /* QuartzCore.framework */; };  		024CC6B016D0F33200F84F3D /* Threshold.m in Sources */ = {isa = PBXBuildFile; fileRef = 024CC6AF16D0F33200F84F3D /* Threshold.m */; }; +		024CC6EB16D6B36000F84F3D /* ibean-extraction-dropdown-background.png in Resources */ = {isa = PBXBuildFile; fileRef = 024CC6EA16D6B36000F84F3D /* ibean-extraction-dropdown-background.png */; };  		024F676D16A4A61D004A1201 /* InstantExtractionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 024F676C16A4A61D004A1201 /* InstantExtractionViewController.m */; };  		0276253916B58D6000EE2F4E /* SettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0276253816B58D6000EE2F4E /* SettingsViewController.m */; };  		0276253C16B59E4C00EE2F4E /* Configuration.m in Sources */ = {isa = PBXBuildFile; fileRef = 0276253B16B59E4C00EE2F4E /* Configuration.m */; }; @@ -98,6 +99,7 @@  		024CB03816C2EFD5009CBC15 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };  		024CC6AE16D0F33200F84F3D /* Threshold.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Threshold.h; sourceTree = "<group>"; };  		024CC6AF16D0F33200F84F3D /* Threshold.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Threshold.m; sourceTree = "<group>"; }; +		024CC6EA16D6B36000F84F3D /* ibean-extraction-dropdown-background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ibean-extraction-dropdown-background.png"; path = "Graphics/ibean-extraction-dropdown-background.png"; sourceTree = "<group>"; };  		024F676B16A4A61D004A1201 /* InstantExtractionViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InstantExtractionViewController.h; sourceTree = "<group>"; };  		024F676C16A4A61D004A1201 /* InstantExtractionViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InstantExtractionViewController.m; sourceTree = "<group>"; };  		0276253716B58D6000EE2F4E /* SettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SettingsViewController.h; sourceTree = "<group>"; }; @@ -319,6 +321,7 @@  		024CB02216C0543B009CBC15 /* Graphics */ = {  			isa = PBXGroup;  			children = ( +				024CC6EA16D6B36000F84F3D /* ibean-extraction-dropdown-background.png */,  				023AAB3D16C98B2A00B6886C /* ibean-beancell-bean.png */,  			);  			name = Graphics; @@ -409,6 +412,7 @@  				020C55B01691014E00D8224C /* Default-568h@2x.png in Resources */,  				020C55BD169101FB00D8224C /* iPhoneStoryboard.storyboard in Resources */,  				023AAB3E16C98B2A00B6886C /* ibean-beancell-bean.png in Resources */, +				024CC6EB16D6B36000F84F3D /* ibean-extraction-dropdown-background.png in Resources */,  			);  			runOnlyForDeploymentPostprocessing = 0;  		}; diff --git a/iBean/iBean.xcodeproj/project.xcworkspace/xcuserdata/eddiex.xcuserdatad/UserInterfaceState.xcuserstate b/iBean/iBean.xcodeproj/project.xcworkspace/xcuserdata/eddiex.xcuserdatad/UserInterfaceState.xcuserstate Binary files differindex f76b034..ca9b272 100644 --- a/iBean/iBean.xcodeproj/project.xcworkspace/xcuserdata/eddiex.xcuserdatad/UserInterfaceState.xcuserstate +++ b/iBean/iBean.xcodeproj/project.xcworkspace/xcuserdata/eddiex.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/iBean/iBean/.DS_Store b/iBean/iBean/.DS_Store Binary files differindex 00a4276..e72bc32 100644 --- a/iBean/iBean/.DS_Store +++ b/iBean/iBean/.DS_Store diff --git a/iBean/iBean/BeanCollectionExtractionViewController.h b/iBean/iBean/BeanCollectionExtractionViewController.h index 88c8e92..79388f0 100644 --- a/iBean/iBean/BeanCollectionExtractionViewController.h +++ b/iBean/iBean/BeanCollectionExtractionViewController.h @@ -27,8 +27,10 @@  @property (weak, nonatomic) IBOutlet UITextView *beanCollectionNoteTextView;  @property (weak, nonatomic) IBOutlet UILabel *extractionProgressLabel;  @property (weak, nonatomic) IBOutlet UIButton *extractionButton; +@property (weak, nonatomic) IBOutlet UIView *extractionTimerView; +@property (weak, nonatomic) IBOutlet UIBarButtonItem *toggleExtractionTimerButton;  /* UI Actions */  - (IBAction) startExtraction:(id)sender; - +- (IBAction) showExtractionTimer:(id)sender;  @end diff --git a/iBean/iBean/BeanCollectionExtractionViewController.m b/iBean/iBean/BeanCollectionExtractionViewController.m index 7eeb574..21c27ba 100644 --- a/iBean/iBean/BeanCollectionExtractionViewController.m +++ b/iBean/iBean/BeanCollectionExtractionViewController.m @@ -13,6 +13,7 @@  #import "AppDelegate+Storage.h"  #import "UITableView+Extra.h"  #import "UIColor+Extra.h" +#import <QuartzCore/QuartzCore.h>  @interface BeanCollectionExtractionViewController () @@ -33,6 +34,10 @@  {      [super viewDidLoad];  	// Do any additional setup after loading the view. +   +  //Bring the extraction timer view on top +  [self.view bringSubviewToFront:self.extractionTimerView]; +      //[self.beanCollectionNoteTextView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed: @"textview-bg.png"]]];  } @@ -65,7 +70,10 @@    if (self.beanCollection != nil)    {      self.navigationItem.title = self.beanCollection.name; -    self.extractionProgressLabel.text = [self.beanCollection.extractionTime stringValue]; +    self.extractionProgressLabel.text = [NSString stringWithFormat:@"%1.1f", [self.beanCollection.extractionTime doubleValue]]; +     +    //Make sure that extraction button always is non-toggled when entering the view. +    self.toggleExtractionTimerButton.style = UIBarButtonItemStylePlain;      if (![self.beanCollection.note isEqualToString:@""])      { @@ -124,8 +132,8 @@    NSLog(@"BeanCollectionExtractionViewController - timerInterrupted");    //Return UI to "Start extraction" state. -  [self.extractionButton setTitle:@"Start extraction" forState:UIControlStateNormal]; -  self.extractionProgressLabel.text = [self.beanCollection.extractionTime stringValue]; +  [self.extractionButton setTitle:@"Start" forState:UIControlStateNormal]; +  self.extractionProgressLabel.text = [NSString stringWithFormat:@"%1.1f", [self.beanCollection.extractionTime doubleValue]];    self.extractionInProgress = NO;  } @@ -140,7 +148,7 @@    if ([(AppDelegate*) [[UIApplication sharedApplication] delegate] getTimer] == nil || self.extractionInProgress == NO)    {      self.extractionProgress = [self.beanCollection.extractionTime doubleValue]; -    [self.extractionButton setTitle:@"Stop extraction" forState:UIControlStateNormal]; +    [self.extractionButton setTitle:@"Stop" forState:UIControlStateNormal];      self.extractionInProgress = YES;      [(AppDelegate*) [[UIApplication sharedApplication] delegate] createTimer:self :@selector(updateExtractionProgress) :nil :YES]; @@ -151,6 +159,47 @@    }  } +- (void) showExtractionTimer:(id)sender +{ +  [UIView animateWithDuration:0.2f delay: 0.0f options: UIViewAnimationOptionCurveEaseInOut +                   animations:^{ +                     if (self.extractionTimerView.frame.origin.y < 0) +                     { +                       self.toggleExtractionTimerButton.style = UIBarButtonItemStyleDone; +                       //Slide in +                       self.extractionTimerView.frame = CGRectMake( +                                                                   self.extractionTimerView.frame.origin.x, +                                                                   0.0, +                                                                   self.extractionTimerView.frame.size.width, +                                                                   self.extractionTimerView.frame.size.height); +                        +                       //Drop shadow +                       [self.extractionTimerView.layer setShadowColor:[UIColor blackColor].CGColor]; +                       [self.extractionTimerView.layer setShadowOpacity:0.8]; +                       [self.extractionTimerView.layer setShadowRadius:3.0]; +                       [self.extractionTimerView.layer setShadowOffset:CGSizeMake(2.0, 2.0)]; +                     } +                     else +                     { +                       self.toggleExtractionTimerButton.style = UIBarButtonItemStylePlain; +                       //Slide out +                       self.extractionTimerView.frame = CGRectMake( +                                                                   self.extractionTimerView.frame.origin.x, +                                                                   self.extractionTimerView.frame.size.height * -1, +                                                                   self.extractionTimerView.frame.size.width, +                                                                   self.extractionTimerView.frame.size.height); +                       //Remove shadow +                       //[self.extractionTimerView.layer setShadowOpacity:0.0]; +                       [self.extractionTimerView.layer setShadowRadius:0.0]; +                       [self.extractionTimerView.layer setShadowOffset:CGSizeMake(0.0, 0.0)]; +                     } +                   } +                   completion:^(BOOL finished){ +                     NSLog(@"Anim done!"); +                   } +   ]; +} +  /*****************************************************   Delegates   *****************************************************/ diff --git a/iBean/iBean/Graphics/ibean-extraction-dropdown-background.png b/iBean/iBean/Graphics/ibean-extraction-dropdown-background.png Binary files differnew file mode 100644 index 0000000..07b0dd6 --- /dev/null +++ b/iBean/iBean/Graphics/ibean-extraction-dropdown-background.png diff --git a/iBean/iBean/Graphics/ibean-extraction-dropdown-background.pxm b/iBean/iBean/Graphics/ibean-extraction-dropdown-background.pxm Binary files differnew file mode 100644 index 0000000..a84fc61 --- /dev/null +++ b/iBean/iBean/Graphics/ibean-extraction-dropdown-background.pxm diff --git a/iBean/iBean/iPhoneStoryboard.storyboard b/iBean/iBean/iPhoneStoryboard.storyboard index c23e3fc..5856bcd 100644 --- a/iBean/iBean/iPhoneStoryboard.storyboard +++ b/iBean/iBean/iPhoneStoryboard.storyboard @@ -1101,13 +1101,54 @@                          <rect key="frame" x="0.0" y="64" width="320" height="455"/>                          <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>                          <subviews> +                            <view alpha="0.90000000000000002" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rra-M1-0R9"> +                                <subviews> +                                    <imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="ibean-extraction-dropdown-background.png" translatesAutoresizingMaskIntoConstraints="NO" id="8F1-ZM-Rbe"/> +                                    <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="XX.x" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="05C-Wm-dzE"> +                                        <constraints> +                                            <constraint firstAttribute="height" constant="62" id="dYg-S0-WR7"/> +                                        </constraints> +                                        <fontDescription key="fontDescription" type="system" pointSize="64"/> +                                        <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> +                                        <nil key="highlightedColor"/> +                                        <color key="shadowColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> +                                        <size key="shadowOffset" width="0.0" height="1"/> +                                    </label> +                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Eiq-kN-FyK"> +                                        <constraints> +                                            <constraint firstAttribute="width" constant="94" id="jo6-rt-MJm"/> +                                        </constraints> +                                        <fontDescription key="fontDescription" type="boldSystem" pointSize="19"/> +                                        <state key="normal" title="Start"> +                                            <color key="titleColor" cocoaTouchSystemColor="darkTextColor"/> +                                            <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> +                                        </state> +                                        <state key="highlighted"> +                                            <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> +                                        </state> +                                        <connections> +                                            <action selector="startExtraction:" destination="aA5-tc-vwr" eventType="touchUpInside" id="8e4-x0-uqi"/> +                                        </connections> +                                    </button> +                                </subviews> +                                <color key="backgroundColor" cocoaTouchSystemColor="viewFlipsideBackgroundColor"/> +                                <constraints> +                                    <constraint firstItem="8F1-ZM-Rbe" firstAttribute="leading" secondItem="rra-M1-0R9" secondAttribute="leading" type="default" id="Baw-6p-yOh"/> +                                    <constraint firstItem="05C-Wm-dzE" firstAttribute="top" secondItem="rra-M1-0R9" secondAttribute="top" constant="57" id="P9H-mW-vwH"/> +                                    <constraint firstItem="05C-Wm-dzE" firstAttribute="leading" secondItem="rra-M1-0R9" secondAttribute="leading" constant="20" symbolic="YES" type="default" id="VFw-dV-has"/> +                                    <constraint firstAttribute="trailing" secondItem="Eiq-kN-FyK" secondAttribute="trailing" constant="20" symbolic="YES" type="default" id="cpJ-7f-QAc"/> +                                    <constraint firstItem="Eiq-kN-FyK" firstAttribute="top" secondItem="rra-M1-0R9" secondAttribute="top" constant="66" id="mbt-jO-WmY"/> +                                    <constraint firstItem="Eiq-kN-FyK" firstAttribute="leading" secondItem="05C-Wm-dzE" secondAttribute="trailing" constant="8" symbolic="YES" type="default" id="oXH-Ha-Ash"/> +                                    <constraint firstItem="8F1-ZM-Rbe" firstAttribute="bottom" secondItem="rra-M1-0R9" secondAttribute="bottom" type="default" id="qML-qu-7Zp"/> +                                    <constraint firstItem="8F1-ZM-Rbe" firstAttribute="top" secondItem="rra-M1-0R9" secondAttribute="top" type="default" id="rgc-Ky-uZP"/> +                                </constraints> +                            </view>                              <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="lWi-pD-I1j" customClass="BeanCollectionExtractionScrollView">                                  <subviews>                                      <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" dataMode="prototypes" style="plain" separatorStyle="none" allowsSelection="NO" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="nNM-14-LcQ">                                          <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>                                          <constraints>                                              <constraint firstAttribute="height" constant="89" id="ulf-w1-iKE"/> -                                            <constraint firstAttribute="width" constant="320" id="vRm-5F-Wp0"/>                                          </constraints>                                          <prototypes>                                              <tableViewCell contentMode="scaleToFill" selectionStyle="blue" indentationWidth="10" reuseIdentifier="BeanCell" rowHeight="60" id="GFY-k6-GqL" customClass="BeanCell"> @@ -1186,51 +1227,42 @@                                  </subviews>                                  <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>                                  <constraints> +                                    <constraint firstAttribute="bottom" secondItem="WyC-9J-FOJ" secondAttribute="bottom" constant="80" id="AnZ-Ou-PC5"/>                                      <constraint firstItem="nNM-14-LcQ" firstAttribute="leading" secondItem="lWi-pD-I1j" secondAttribute="leading" constant="20" symbolic="YES" type="default" id="Fjx-gD-Ph5"/>                                      <constraint firstItem="nNM-14-LcQ" firstAttribute="top" secondItem="lWi-pD-I1j" secondAttribute="top" constant="20" symbolic="YES" type="default" id="FtY-Zh-q0q"/>                                      <constraint firstItem="WyC-9J-FOJ" firstAttribute="leading" secondItem="lWi-pD-I1j" secondAttribute="leading" constant="20" symbolic="YES" type="default" id="Lb4-0U-ujx"/> -                                    <constraint firstItem="WyC-9J-FOJ" firstAttribute="centerX" secondItem="lWi-pD-I1j" secondAttribute="centerX" type="default" id="M8q-m1-I5x"/> -                                    <constraint firstAttribute="bottom" secondItem="WyC-9J-FOJ" secondAttribute="bottom" constant="20" symbolic="YES" type="default" id="ZJd-94-CmJ"/>                                      <constraint firstAttribute="trailing" secondItem="WyC-9J-FOJ" secondAttribute="trailing" constant="20" symbolic="YES" type="default" id="bjg-lY-kza"/>                                      <constraint firstItem="WyC-9J-FOJ" firstAttribute="top" secondItem="nNM-14-LcQ" secondAttribute="bottom" constant="8" symbolic="YES" type="default" id="fPM-8S-dGh"/>                                      <constraint firstAttribute="trailing" secondItem="nNM-14-LcQ" secondAttribute="trailing" constant="20" symbolic="YES" type="default" id="ffc-G9-gKf"/> +                                    <constraint firstItem="nNM-14-LcQ" firstAttribute="centerX" secondItem="lWi-pD-I1j" secondAttribute="centerX" type="default" id="tjo-rC-SdR"/>                                  </constraints>                              </scrollView> -                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="YJ7-1f-6ZW"> -                                <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/> -                                <state key="normal" title="Start extraction"> -                                    <color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/> -                                    <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> -                                </state> -                                <connections> -                                    <action selector="startExtraction:" destination="aA5-tc-vwr" eventType="touchUpInside" id="VkN-OE-9wh"/> -                                </connections> -                            </button> -                            <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Extraction counter" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="OLN-e5-oOe"> -                                <fontDescription key="fontDescription" type="system" pointSize="17"/> -                                <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> -                                <nil key="highlightedColor"/> -                            </label>                          </subviews> -                        <color key="backgroundColor" red="0.34650985049999999" green="0.21581921879999999" blue="0.1054245046" alpha="1" colorSpace="calibratedRGB"/>                          <constraints> +                            <constraint firstItem="rra-M1-0R9" firstAttribute="top" secondItem="Wfz-bK-fv9" secondAttribute="top" constant="-250" id="0Pe-jV-Y9A"/>                              <constraint firstItem="lWi-pD-I1j" firstAttribute="top" secondItem="Wfz-bK-fv9" secondAttribute="top" constant="-20" id="23s-Qj-OI3"/> -                            <constraint firstAttribute="bottom" secondItem="OLN-e5-oOe" secondAttribute="bottom" constant="20" symbolic="YES" type="default" id="5Qr-Sh-PDH"/> -                            <constraint firstItem="lWi-pD-I1j" firstAttribute="centerX" secondItem="Wfz-bK-fv9" secondAttribute="centerX" type="default" id="TpB-6n-I3J"/> -                            <constraint firstAttribute="trailing" secondItem="YJ7-1f-6ZW" secondAttribute="trailing" constant="20" symbolic="YES" type="default" id="gAH-4W-K42"/> -                            <constraint firstItem="OLN-e5-oOe" firstAttribute="leading" secondItem="Wfz-bK-fv9" secondAttribute="leading" constant="20" symbolic="YES" type="default" id="lYU-wl-w14"/> -                            <constraint firstItem="YJ7-1f-6ZW" firstAttribute="top" secondItem="lWi-pD-I1j" secondAttribute="bottom" constant="8" symbolic="YES" type="default" id="oQd-Hn-Q7R"/> -                            <constraint firstItem="YJ7-1f-6ZW" firstAttribute="centerY" secondItem="OLN-e5-oOe" secondAttribute="centerY" type="default" id="rZZ-sg-nWO"/> +                            <constraint firstItem="rra-M1-0R9" firstAttribute="centerX" secondItem="lWi-pD-I1j" secondAttribute="centerX" type="default" id="Q1f-lO-YVD"/> +                            <constraint firstItem="rra-M1-0R9" firstAttribute="leading" secondItem="Wfz-bK-fv9" secondAttribute="leading" type="default" id="Xsh-N7-SFo"/> +                            <constraint firstItem="lWi-pD-I1j" firstAttribute="bottom" secondItem="Wfz-bK-fv9" secondAttribute="bottom" type="default" id="dSB-0x-tTb"/> +                            <constraint firstAttribute="bottom" secondItem="rra-M1-0R9" secondAttribute="bottom" constant="455" id="hdq-jm-LZE"/> +                            <constraint firstItem="lWi-pD-I1j" firstAttribute="leading" secondItem="Wfz-bK-fv9" secondAttribute="leading" constant="-20" id="mLb-KI-AQj"/> +                            <constraint firstItem="rra-M1-0R9" firstAttribute="trailing" secondItem="Wfz-bK-fv9" secondAttribute="trailing" type="default" id="rkI-EU-Vo1"/>                          </constraints>                      </view>                      <navigationItem key="navigationItem" id="nKM-NZ-clm"> -                        <barButtonItem key="rightBarButtonItem" title="Extract!" id="ikw-nF-0l3"/> +                        <barButtonItem key="rightBarButtonItem" title="Extract!" id="ikw-nF-0l3"> +                            <connections> +                                <action selector="showExtractionTimer:" destination="aA5-tc-vwr" id="HI3-s8-R1U"/> +                            </connections> +                        </barButtonItem>                      </navigationItem>                      <connections>                          <outlet property="beanCollectionNoteTextView" destination="WyC-9J-FOJ" id="ajj-RC-E9O"/>                          <outlet property="beanTableView" destination="nNM-14-LcQ" id="fOr-10-Kts"/> -                        <outlet property="extractionButton" destination="YJ7-1f-6ZW" id="tvs-fK-NQd"/> -                        <outlet property="extractionProgressLabel" destination="OLN-e5-oOe" id="X73-Gr-2yj"/> +                        <outlet property="extractionButton" destination="Eiq-kN-FyK" id="Jzg-9B-7Ve"/> +                        <outlet property="extractionProgressLabel" destination="05C-Wm-dzE" id="fPd-ul-hiL"/> +                        <outlet property="extractionTimerView" destination="rra-M1-0R9" id="Qae-E5-pcu"/> +                        <outlet property="toggleExtractionTimerButton" destination="ikw-nF-0l3" id="ZPG-GJ-AVM"/>                      </connections>                  </viewController>                  <placeholder placeholderIdentifier="IBFirstResponder" id="ZA6-Ra-Cp0" userLabel="First Responder" sceneMemberID="firstResponder"/> @@ -1260,6 +1292,7 @@      </scenes>      <resources>          <image name="ibean-beancell-bean.png" width="200" height="198"/> +        <image name="ibean-extraction-dropdown-background.png" width="320" height="240"/>      </resources>      <classes>          <class className="AddBeanViewController" superclassName="UIViewController"> @@ -1302,11 +1335,14 @@          <class className="BeanCollectionExtractionViewController" superclassName="UIViewController">              <source key="sourceIdentifier" type="project" relativePath="./Classes/BeanCollectionExtractionViewController.h"/>              <relationships> +                <relationship kind="action" name="showExtractionTimer:"/>                  <relationship kind="action" name="startExtraction:"/>                  <relationship kind="outlet" name="beanCollectionNoteTextView" candidateClass="UITextView"/>                  <relationship kind="outlet" name="beanTableView" candidateClass="UITableView"/>                  <relationship kind="outlet" name="extractionButton" candidateClass="UIButton"/>                  <relationship kind="outlet" name="extractionProgressLabel" candidateClass="UILabel"/> +                <relationship kind="outlet" name="extractionTimerView" candidateClass="UIView"/> +                <relationship kind="outlet" name="toggleExtractionTimerButton" candidateClass="UIBarButtonItem"/>              </relationships>          </class>          <class className="BeanCollectionInfoViewController" superclassName="UIViewController">  | 
