aboutsummaryrefslogtreecommitdiffstats
path: root/iBean
diff options
context:
space:
mode:
authorEddie Ehlin <eddiex@eddiex.se>2013-02-17 12:46:48 +0100
committerEddie Ehlin <eddiex@eddiex.se>2013-02-17 12:46:48 +0100
commit01e9e1dae8784202be7ec683d3f34d00c112eee1 (patch)
treeeb19ec8f8ec56062114552c4f4ca7350a4943768 /iBean
parent6ece0b7130b4160b57a18252c2a2bc89b33602ab (diff)
downloadiBean-01e9e1dae8784202be7ec683d3f34d00c112eee1.tar.gz
iBean-01e9e1dae8784202be7ec683d3f34d00c112eee1.zip
Added support for recurring thresholds
Diffstat (limited to 'iBean')
-rw-r--r--iBean/iBean.xcodeproj/project.pbxproj12
-rw-r--r--iBean/iBean.xcodeproj/project.xcworkspace/xcuserdata/eddiex.xcuserdatad/UserInterfaceState.xcuserstatebin50031 -> 48738 bytes
-rw-r--r--iBean/iBean.xcodeproj/xcuserdata/eddiex.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist12
-rw-r--r--iBean/iBean/.DS_Storebin6148 -> 6148 bytes
-rw-r--r--iBean/iBean/AppDelegate+Storage.m11
-rw-r--r--iBean/iBean/Threshold.h5
-rw-r--r--iBean/iBean/Threshold.m5
-rw-r--r--iBean/iBean/ThresholdViewController.h1
-rw-r--r--iBean/iBean/ThresholdViewController.m2
-rw-r--r--iBean/iBean/iBean.xcdatamodeld/iBean.xcdatamodel/contents5
-rw-r--r--iBean/iBean/iPhoneStoryboard.storyboard56
11 files changed, 85 insertions, 24 deletions
diff --git a/iBean/iBean.xcodeproj/project.pbxproj b/iBean/iBean.xcodeproj/project.pbxproj
index 2721cd3..3cabdce 100644
--- a/iBean/iBean.xcodeproj/project.pbxproj
+++ b/iBean/iBean.xcodeproj/project.pbxproj
@@ -36,10 +36,10 @@
024CB02016C04BD5009CBC15 /* UIColor+Extra.m in Sources */ = {isa = PBXBuildFile; fileRef = 024CB01F16C04BD5009CBC15 /* UIColor+Extra.m */; };
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 */; };
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 */; };
- 0276253F16B59E4C00EE2F4E /* Threshold.m in Sources */ = {isa = PBXBuildFile; fileRef = 0276253E16B59E4C00EE2F4E /* Threshold.m */; };
0276254216B5A64000EE2F4E /* ThresholdListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0276254116B5A64000EE2F4E /* ThresholdListViewController.m */; };
0276254516B5AACF00EE2F4E /* ThresholdViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0276254416B5AACF00EE2F4E /* ThresholdViewController.m */; };
0276254816B5BC5300EE2F4E /* ThresholdCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0276254716B5BC5300EE2F4E /* ThresholdCell.m */; };
@@ -96,14 +96,14 @@
024CB03516C2EF10009CBC15 /* UITableView+Extra.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UITableView+Extra.h"; sourceTree = "<group>"; };
024CB03616C2EF10009CBC15 /* UITableView+Extra.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UITableView+Extra.m"; sourceTree = "<group>"; };
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>"; };
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>"; };
0276253816B58D6000EE2F4E /* SettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SettingsViewController.m; sourceTree = "<group>"; };
0276253A16B59E4C00EE2F4E /* Configuration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Configuration.h; sourceTree = "<group>"; };
0276253B16B59E4C00EE2F4E /* Configuration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Configuration.m; sourceTree = "<group>"; };
- 0276253D16B59E4C00EE2F4E /* Threshold.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Threshold.h; sourceTree = "<group>"; };
- 0276253E16B59E4C00EE2F4E /* Threshold.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Threshold.m; sourceTree = "<group>"; };
0276254016B5A64000EE2F4E /* ThresholdListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThresholdListViewController.h; sourceTree = "<group>"; };
0276254116B5A64000EE2F4E /* ThresholdListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ThresholdListViewController.m; sourceTree = "<group>"; };
0276254316B5AACF00EE2F4E /* ThresholdViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThresholdViewController.h; sourceTree = "<group>"; };
@@ -232,8 +232,8 @@
020C55DF169792F800D8224C /* Data */ = {
isa = PBXGroup;
children = (
- 0276253D16B59E4C00EE2F4E /* Threshold.h */,
- 0276253E16B59E4C00EE2F4E /* Threshold.m */,
+ 024CC6AE16D0F33200F84F3D /* Threshold.h */,
+ 024CC6AF16D0F33200F84F3D /* Threshold.m */,
0276253A16B59E4C00EE2F4E /* Configuration.h */,
0276253B16B59E4C00EE2F4E /* Configuration.m */,
020C5684169F603700D8224C /* Interface */,
@@ -440,12 +440,12 @@
02E557BA16AC85A20080FBBA /* BeanCollectionExtractionScrollView.m in Sources */,
0276253916B58D6000EE2F4E /* SettingsViewController.m in Sources */,
0276253C16B59E4C00EE2F4E /* Configuration.m in Sources */,
- 0276253F16B59E4C00EE2F4E /* Threshold.m in Sources */,
0276254216B5A64000EE2F4E /* ThresholdListViewController.m in Sources */,
0276254516B5AACF00EE2F4E /* ThresholdViewController.m in Sources */,
0276254816B5BC5300EE2F4E /* ThresholdCell.m in Sources */,
024CB02016C04BD5009CBC15 /* UIColor+Extra.m in Sources */,
024CB03716C2EF10009CBC15 /* UITableView+Extra.m in Sources */,
+ 024CC6B016D0F33200F84F3D /* Threshold.m in Sources */,
);
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
index 7bbba69..dd74adc 100644
--- a/iBean/iBean.xcodeproj/project.xcworkspace/xcuserdata/eddiex.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/iBean/iBean.xcodeproj/project.xcworkspace/xcuserdata/eddiex.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/iBean/iBean.xcodeproj/xcuserdata/eddiex.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist b/iBean/iBean.xcodeproj/xcuserdata/eddiex.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist
index c2f8927..ee63edf 100644
--- a/iBean/iBean.xcodeproj/xcuserdata/eddiex.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist
+++ b/iBean/iBean.xcodeproj/xcuserdata/eddiex.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist
@@ -34,11 +34,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "iBean/ThresholdViewController.m"
- timestampString = "381271322.430192"
+ timestampString = "382793252.607427"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "86"
- endingLineNumber = "86"
+ startingLineNumber = "87"
+ endingLineNumber = "87"
landmarkName = "-commitThreshold:"
landmarkType = "5">
</FileBreakpoint>
@@ -125,11 +125,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "iBean/AppDelegate+Storage.m"
- timestampString = "381513161.061541"
+ timestampString = "382794135.600835"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "200"
- endingLineNumber = "200"
+ startingLineNumber = "210"
+ endingLineNumber = "210"
landmarkName = "-processThresholds"
landmarkType = "5">
</FileBreakpoint>
diff --git a/iBean/iBean/.DS_Store b/iBean/iBean/.DS_Store
index 4128183..00a4276 100644
--- a/iBean/iBean/.DS_Store
+++ b/iBean/iBean/.DS_Store
Binary files differ
diff --git a/iBean/iBean/AppDelegate+Storage.m b/iBean/iBean/AppDelegate+Storage.m
index 8448f3e..6fb3ca8 100644
--- a/iBean/iBean/AppDelegate+Storage.m
+++ b/iBean/iBean/AppDelegate+Storage.m
@@ -189,6 +189,14 @@
//Time to go through all thresholds and se which one(s) that are hit!
for (Threshold *t in sortedThresholds)
{
+ //Case 1 - Threshold is hit & is set to be recurring
+ if (([configuration.extractionCount integerValue] % [t.value integerValue]) == 0 && [t.recurring boolValue] == YES)
+ {
+ //Enable/re-enable the threshold.
+ t.enabled = [NSNumber numberWithBool:YES];
+ }
+
+ //Case 2 - Threshold is hit & enabled
if ([configuration.extractionCount integerValue] >= [t.value integerValue] && [t.enabled boolValue] == YES)
{
NSLog(@"Threshold %@ active (%@ >= %@)", t.name, configuration.extractionCount, t.value);
@@ -196,6 +204,9 @@
}
}
+ //Save context (to make sure that altered thresholds gets saved).
+ [self saveContext];
+
//Now, let's go through all active thresholds.
[self processActiveThreshold];
}
diff --git a/iBean/iBean/Threshold.h b/iBean/iBean/Threshold.h
index 7034bcd..f82a392 100644
--- a/iBean/iBean/Threshold.h
+++ b/iBean/iBean/Threshold.h
@@ -2,7 +2,7 @@
// Threshold.h
// iBean
//
-// Created by Eddie Ehlin on 2013-01-27.
+// Created by Eddie Ehlin on 2013-02-17.
// Copyright (c) 2013 Eddie Ehlin. All rights reserved.
//
@@ -13,9 +13,10 @@
@interface Threshold : NSManagedObject
+@property (nonatomic, retain) NSNumber * enabled;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSNumber * value;
-@property (nonatomic, retain) NSNumber * enabled;
+@property (nonatomic, retain) NSNumber * recurring;
@property (nonatomic, retain) Configuration *configuration;
@end
diff --git a/iBean/iBean/Threshold.m b/iBean/iBean/Threshold.m
index e8c6d85..53eb15c 100644
--- a/iBean/iBean/Threshold.m
+++ b/iBean/iBean/Threshold.m
@@ -2,7 +2,7 @@
// Threshold.m
// iBean
//
-// Created by Eddie Ehlin on 2013-01-27.
+// Created by Eddie Ehlin on 2013-02-17.
// Copyright (c) 2013 Eddie Ehlin. All rights reserved.
//
@@ -12,9 +12,10 @@
@implementation Threshold
+@dynamic enabled;
@dynamic name;
@dynamic value;
-@dynamic enabled;
+@dynamic recurring;
@dynamic configuration;
@end
diff --git a/iBean/iBean/ThresholdViewController.h b/iBean/iBean/ThresholdViewController.h
index 29d4874..6922514 100644
--- a/iBean/iBean/ThresholdViewController.h
+++ b/iBean/iBean/ThresholdViewController.h
@@ -24,6 +24,7 @@
@property (weak, nonatomic) IBOutlet UILabel *thresholdValueLabel;
@property (weak, nonatomic) IBOutlet UIStepper *thresholdValueStepper;
@property (weak, nonatomic) IBOutlet UISwitch *thresholdEnabledSwitch;
+@property (weak, nonatomic) IBOutlet UISwitch *thresholdRecurringSwitch;
/* UI Actions */
- (IBAction)valueStepperChanged:(id)sender;
diff --git a/iBean/iBean/ThresholdViewController.m b/iBean/iBean/ThresholdViewController.m
index 2e01373..050e61a 100644
--- a/iBean/iBean/ThresholdViewController.m
+++ b/iBean/iBean/ThresholdViewController.m
@@ -63,6 +63,7 @@
self.thresholdNameTextField.text = tmpThreshold.name;
self.thresholdEnabledSwitch.on = [tmpThreshold.enabled boolValue];
self.thresholdValueStepper.value = [tmpThreshold.value doubleValue];
+ self.thresholdRecurringSwitch.on = [tmpThreshold.recurring boolValue];
[self valueStepperChanged:self];
}
@@ -101,6 +102,7 @@
threshold.name = self.thresholdNameTextField.text;
threshold.value = [NSNumber numberWithDouble:self.thresholdValueStepper.value];
threshold.enabled = [NSNumber numberWithBool:self.thresholdEnabledSwitch.on];
+ threshold.recurring = [NSNumber numberWithBool:self.thresholdRecurringSwitch.on];
//Commit changes and save succeeds then return to list of thresholds.
commitError = [(AppDelegate*) [[UIApplication sharedApplication] delegate] save];
diff --git a/iBean/iBean/iBean.xcdatamodeld/iBean.xcdatamodel/contents b/iBean/iBean/iBean.xcdatamodeld/iBean.xcdatamodel/contents
index f421adc..66998b3 100644
--- a/iBean/iBean/iBean.xcdatamodeld/iBean.xcdatamodel/contents
+++ b/iBean/iBean/iBean.xcdatamodeld/iBean.xcdatamodel/contents
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<model name="" userDefinedModelVersionIdentifier="" type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="1811" systemVersion="12C60" minimumToolsVersion="Automatic" macOSVersion="Automatic" iOSVersion="Automatic">
+<model name="" userDefinedModelVersionIdentifier="" type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="2057" systemVersion="12C60" minimumToolsVersion="Automatic" macOSVersion="Automatic" iOSVersion="Automatic">
<entity name="Bean" representedClassName="Bean" syncable="YES">
<attribute name="amount" optional="YES" attributeType="Double" defaultValueString="0.0" syncable="YES"/>
<attribute name="grindSetting" optional="YES" attributeType="Integer 32" defaultValueString="0" syncable="YES"/>
@@ -25,6 +25,7 @@
<entity name="Threshold" representedClassName="Threshold" syncable="YES">
<attribute name="enabled" optional="YES" attributeType="Boolean" syncable="YES"/>
<attribute name="name" optional="YES" attributeType="String" syncable="YES"/>
+ <attribute name="recurring" optional="YES" attributeType="Boolean" syncable="YES"/>
<attribute name="value" optional="YES" attributeType="Integer 64" defaultValueString="0" syncable="YES"/>
<relationship name="configuration" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Configuration" inverseName="thresholds" inverseEntity="Configuration" syncable="YES"/>
</entity>
@@ -32,6 +33,6 @@
<element name="Bean" positionX="-369" positionY="111" width="128" height="105"/>
<element name="BeanCollection" positionX="160" positionY="192" width="128" height="150"/>
<element name="Configuration" positionX="324" positionY="18" width="128" height="118"/>
- <element name="Threshold" positionX="88" positionY="-63" width="128" height="103"/>
+ <element name="Threshold" positionX="88" positionY="-63" width="128" height="120"/>
</elements>
</model> \ No newline at end of file
diff --git a/iBean/iBean/iPhoneStoryboard.storyboard b/iBean/iBean/iPhoneStoryboard.storyboard
index 9be079b..2f77028 100644
--- a/iBean/iBean/iPhoneStoryboard.storyboard
+++ b/iBean/iBean/iPhoneStoryboard.storyboard
@@ -513,28 +513,70 @@
</constraints>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="4Bb-Xx-rYH">
- <rect key="frame" x="0.0" y="183" width="320" height="45"/>
+ <rect key="frame" x="0.0" y="183" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
<rect key="frame" x="10" y="0.0" width="300" height="43"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
- <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Active" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zFB-iB-raY">
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Recurring" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zFB-iB-raY">
+ <constraints>
+ <constraint firstAttribute="width" constant="175" id="F8D-le-xrd"/>
+ </constraints>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</label>
- <switch opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="sja-Le-4gL">
+ <switch opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" translatesAutoresizingMaskIntoConstraints="NO" id="sja-Le-4gL">
<color key="onTintColor" red="0.34650985049999999" green="0.21581921879999999" blue="0.1054245046" alpha="1" colorSpace="calibratedRGB"/>
</switch>
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Enable every nth extraction" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0dT-UA-LcR">
+ <constraints>
+ <constraint firstAttribute="height" constant="21" id="zkf-d9-gDe"/>
+ </constraints>
+ <fontDescription key="fontDescription" type="system" pointSize="14"/>
+ <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
+ <color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+ </label>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
</view>
<constraints>
<constraint firstItem="zFB-iB-raY" firstAttribute="leading" secondItem="4Bb-Xx-rYH" secondAttribute="leading" constant="30" id="GOc-ML-UJx"/>
+ <constraint firstItem="sja-Le-4gL" firstAttribute="leading" secondItem="0dT-UA-LcR" secondAttribute="trailing" constant="8" symbolic="YES" type="default" id="JMg-1k-3wU"/>
+ <constraint firstItem="sja-Le-4gL" firstAttribute="leading" secondItem="zFB-iB-raY" secondAttribute="trailing" constant="8" symbolic="YES" type="default" id="baX-do-xSh"/>
+ <constraint firstItem="0dT-UA-LcR" firstAttribute="top" secondItem="4Bb-Xx-rYH" secondAttribute="top" constant="20" type="default" id="g9G-ET-ujL"/>
<constraint firstItem="sja-Le-4gL" firstAttribute="top" secondItem="4Bb-Xx-rYH" secondAttribute="top" constant="8" id="jLs-Zh-kwh"/>
- <constraint firstAttribute="trailing" secondItem="sja-Le-4gL" secondAttribute="trailing" constant="30" id="o95-mR-xQJ"/>
- <constraint firstItem="sja-Le-4gL" firstAttribute="centerY" secondItem="zFB-iB-raY" secondAttribute="centerY" type="default" id="v08-bE-f3I"/>
+ <constraint firstItem="0dT-UA-LcR" firstAttribute="leading" secondItem="zFB-iB-raY" secondAttribute="leading" type="default" id="qhi-0y-Elv"/>
+ <constraint firstItem="zFB-iB-raY" firstAttribute="top" secondItem="4Bb-Xx-rYH" secondAttribute="top" constant="2" id="uRP-ob-Vzv"/>
+ </constraints>
+ </tableViewCell>
+ <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="VMT-x8-OLo">
+ <rect key="frame" x="0.0" y="227" width="320" height="45"/>
+ <autoresizingMask key="autoresizingMask"/>
+ <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+ <rect key="frame" x="10" y="0.0" width="300" height="43"/>
+ <autoresizingMask key="autoresizingMask"/>
+ <subviews>
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Enabled" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="M9W-69-Vz2">
+ <constraints>
+ <constraint firstAttribute="width" constant="175" id="NMS-E8-wYh"/>
+ </constraints>
+ <fontDescription key="fontDescription" type="system" pointSize="17"/>
+ <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+ <color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+ </label>
+ <switch opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="xfD-zQ-n70">
+ <color key="onTintColor" red="0.34650985049999999" green="0.21581921879999999" blue="0.1054245046" alpha="1" colorSpace="calibratedRGB"/>
+ </switch>
+ </subviews>
+ <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+ </view>
+ <constraints>
+ <constraint firstItem="xfD-zQ-n70" firstAttribute="top" secondItem="VMT-x8-OLo" secondAttribute="top" constant="8" id="CvJ-e2-hgz"/>
+ <constraint firstItem="xfD-zQ-n70" firstAttribute="leading" secondItem="M9W-69-Vz2" secondAttribute="trailing" constant="8" symbolic="YES" type="default" id="QCy-uR-ZsA"/>
+ <constraint firstItem="M9W-69-Vz2" firstAttribute="leading" secondItem="VMT-x8-OLo" secondAttribute="leading" constant="30" id="is4-RA-h5V"/>
+ <constraint firstItem="xfD-zQ-n70" firstAttribute="centerY" secondItem="M9W-69-Vz2" secondAttribute="centerY" type="default" id="wjz-3M-REN"/>
</constraints>
</tableViewCell>
</cells>
@@ -553,8 +595,9 @@
</barButtonItem>
</navigationItem>
<connections>
- <outlet property="thresholdEnabledSwitch" destination="sja-Le-4gL" id="KnO-wm-qa9"/>
+ <outlet property="thresholdEnabledSwitch" destination="xfD-zQ-n70" id="cRp-Cs-eZ5"/>
<outlet property="thresholdNameTextField" destination="nJO-Vo-PIR" id="N4U-un-QTr"/>
+ <outlet property="thresholdRecurringSwitch" destination="sja-Le-4gL" id="zmM-x3-lnU"/>
<outlet property="thresholdValueLabel" destination="Dth-cf-hBc" id="T0F-ci-Xqi"/>
<outlet property="thresholdValueStepper" destination="FfU-8X-ael" id="tbI-6k-Ic6"/>
</connections>
@@ -1364,6 +1407,7 @@
<relationship kind="action" name="valueStepperChanged:"/>
<relationship kind="outlet" name="thresholdEnabledSwitch" candidateClass="UISwitch"/>
<relationship kind="outlet" name="thresholdNameTextField" candidateClass="UITextField"/>
+ <relationship kind="outlet" name="thresholdRecurringSwitch" candidateClass="UISwitch"/>
<relationship kind="outlet" name="thresholdValueLabel" candidateClass="UILabel"/>
<relationship kind="outlet" name="thresholdValueStepper" candidateClass="UIStepper"/>
</relationships>