temp commit, a few views added
This commit is contained in:
parent
62bc57e9e0
commit
7cede28758
|
@ -16,6 +16,8 @@
|
|||
F8025E5021EE746400ECF0C0 /* Calibrator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8025E4F21EE746400ECF0C0 /* Calibrator.swift */; };
|
||||
F8025E5421EE8D2100ECF0C0 /* Libre1Calibrator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8025E5321EE8D2100ECF0C0 /* Libre1Calibrator.swift */; };
|
||||
F8025E6B21F7CD7600ECF0C0 /* UIStoryboard.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8025E6A21F7CD7600ECF0C0 /* UIStoryboard.swift */; };
|
||||
F804870C2336D90200EBDDB7 /* M5Stack+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = F804870A2336D90200EBDDB7 /* M5Stack+CoreDataClass.swift */; };
|
||||
F804870D2336D90200EBDDB7 /* M5Stack+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = F804870B2336D90200EBDDB7 /* M5Stack+CoreDataProperties.swift */; };
|
||||
F80610C4222D4E4D00D8F236 /* ActionClosureable-extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F80610C3222D4E4D00D8F236 /* ActionClosureable-extension.swift */; };
|
||||
F81D6D4822BD5F62005EFAE2 /* DexcomShareUploadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F81D6D4722BD5F62005EFAE2 /* DexcomShareUploadManager.swift */; };
|
||||
F81D6D4E22BFC762005EFAE2 /* TextsDexcomShareTestResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = F81D6D4D22BFC762005EFAE2 /* TextsDexcomShareTestResult.swift */; };
|
||||
|
@ -47,8 +49,6 @@
|
|||
F821CF9722AE589E005C1E43 /* HealthKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F821CF9622AE589E005C1E43 /* HealthKit.framework */; };
|
||||
F821CF9D22AEF483005C1E43 /* BGReadingSpeaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = F821CF9C22AEF483005C1E43 /* BGReadingSpeaker.swift */; };
|
||||
F856CE5B22EDC8E50083E436 /* ConstantsBluetoothPairing.swift in Sources */ = {isa = PBXBuildFile; fileRef = F856CE5A22EDC8E50083E436 /* ConstantsBluetoothPairing.swift */; };
|
||||
F85C4A962336C5E100D6A86F /* M5Stack+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = F85C4A952336C5E100D6A86F /* M5Stack+CoreDataClass.swift */; };
|
||||
F85C4A972336C5E100D6A86F /* M5Stack+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = F85C4A942336C5E100D6A86F /* M5Stack+CoreDataProperties.swift */; };
|
||||
F85C4A9A2336CE8E00D6A86F /* M5StacksViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F85C4A992336CE8E00D6A86F /* M5StacksViewController.swift */; };
|
||||
F85C4A9D2336D05100D6A86F /* M5StackViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F85C4A9C2336D05100D6A86F /* M5StackViewController.swift */; };
|
||||
F85DC2ED21CFE2F500B9F74A /* BgReading+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = F85DC2E721CFE2F500B9F74A /* BgReading+CoreDataProperties.swift */; };
|
||||
|
@ -232,6 +232,8 @@
|
|||
F8025E4F21EE746400ECF0C0 /* Calibrator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Calibrator.swift; sourceTree = "<group>"; };
|
||||
F8025E5321EE8D2100ECF0C0 /* Libre1Calibrator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Libre1Calibrator.swift; sourceTree = "<group>"; };
|
||||
F8025E6A21F7CD7600ECF0C0 /* UIStoryboard.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIStoryboard.swift; sourceTree = "<group>"; };
|
||||
F804870A2336D90200EBDDB7 /* M5Stack+CoreDataClass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "M5Stack+CoreDataClass.swift"; sourceTree = "<group>"; };
|
||||
F804870B2336D90200EBDDB7 /* M5Stack+CoreDataProperties.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "M5Stack+CoreDataProperties.swift"; sourceTree = "<group>"; };
|
||||
F80610C3222D4E4D00D8F236 /* ActionClosureable-extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ActionClosureable-extension.swift"; sourceTree = "<group>"; };
|
||||
F81D6D4522B67F55005EFAE2 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/SpeakReading.strings; sourceTree = "<group>"; };
|
||||
F81D6D4722BD5F62005EFAE2 /* DexcomShareUploadManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DexcomShareUploadManager.swift; sourceTree = "<group>"; };
|
||||
|
@ -268,8 +270,6 @@
|
|||
F846CDD623046BAE00DCF016 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/SettingsViews.strings; sourceTree = "<group>"; };
|
||||
F856CE5A22EDC8E50083E436 /* ConstantsBluetoothPairing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConstantsBluetoothPairing.swift; sourceTree = "<group>"; };
|
||||
F85C4A93233632EC00D6A86F /* xdrip v2.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "xdrip v2.xcdatamodel"; sourceTree = "<group>"; };
|
||||
F85C4A942336C5E100D6A86F /* M5Stack+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "M5Stack+CoreDataProperties.swift"; path = "/Users/johandegraeve/OneDrive/Xcode Projects/xdrip/xdrip/Core Data/classes/M5Stack+CoreDataProperties.swift"; sourceTree = "<absolute>"; };
|
||||
F85C4A952336C5E100D6A86F /* M5Stack+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "M5Stack+CoreDataClass.swift"; path = "/Users/johandegraeve/OneDrive/Xcode Projects/xdrip/xdrip/Core Data/classes/M5Stack+CoreDataClass.swift"; sourceTree = "<absolute>"; };
|
||||
F85C4A992336CE8E00D6A86F /* M5StacksViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = M5StacksViewController.swift; sourceTree = "<group>"; };
|
||||
F85C4A9C2336D05100D6A86F /* M5StackViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = M5StackViewController.swift; sourceTree = "<group>"; };
|
||||
F85DC2E721CFE2F500B9F74A /* BgReading+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "BgReading+CoreDataProperties.swift"; path = "../Extensions/BgReading+CoreDataProperties.swift"; sourceTree = "<group>"; };
|
||||
|
@ -1299,6 +1299,8 @@
|
|||
F8EA6CA421B9A25B0082976B /* classes */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F804870A2336D90200EBDDB7 /* M5Stack+CoreDataClass.swift */,
|
||||
F804870B2336D90200EBDDB7 /* M5Stack+CoreDataProperties.swift */,
|
||||
F8B3A79122635A25004BA588 /* AlertEntry+CoreDataClass.swift */,
|
||||
F8B3A79222635A25004BA588 /* AlertEntry+CoreDataProperties.swift */,
|
||||
F8B3A78C22622953004BA588 /* AlertType+CoreDataClass.swift */,
|
||||
|
@ -1307,8 +1309,6 @@
|
|||
F85DC2E721CFE2F500B9F74A /* BgReading+CoreDataProperties.swift */,
|
||||
F85DC2F021CFE3D400B9F74A /* Calibration+CoreDataClass.swift */,
|
||||
F867E25D2252ADAB000FD265 /* Calibration+CoreDataProperties.swift */,
|
||||
F85C4A952336C5E100D6A86F /* M5Stack+CoreDataClass.swift */,
|
||||
F85C4A942336C5E100D6A86F /* M5Stack+CoreDataProperties.swift */,
|
||||
F85DC2F121CFE3D400B9F74A /* Sensor+CoreDataClass.swift */,
|
||||
F85DC2E921CFE2F500B9F74A /* Sensor+CoreDataProperties.swift */,
|
||||
);
|
||||
|
@ -1607,7 +1607,9 @@
|
|||
F8A389CA232118E80010F405 /* M5StackDelegate.swift in Sources */,
|
||||
F8B3A847227F090E004BA588 /* SettingsViewNightScoutSettingsViewModel.swift in Sources */,
|
||||
F8B3A79622635A25004BA588 /* AlertEntry+CoreDataClass.swift in Sources */,
|
||||
F804870C2336D90200EBDDB7 /* M5Stack+CoreDataClass.swift in Sources */,
|
||||
F8AC425E21ADEBD60078C348 /* AppDelegate.swift in Sources */,
|
||||
F804870D2336D90200EBDDB7 /* M5Stack+CoreDataProperties.swift in Sources */,
|
||||
F821CF8E22AB090C005C1E43 /* DatePickerViewController.swift in Sources */,
|
||||
F8A1585322EDB602007F5B5D /* ConstantsBloodGlucose.swift in Sources */,
|
||||
F8A389C823203E3E0010F405 /* ConstantsM5Stack.swift in Sources */,
|
||||
|
@ -1622,7 +1624,6 @@
|
|||
F8025C0A21D94FD700ECF0C0 /* CBManagerState.swift in Sources */,
|
||||
F8B3A80A227A3D11004BA588 /* TextsAlertTypeSettings.swift in Sources */,
|
||||
F8A1586D22EDB9BE007F5B5D /* ConstantsDexcomFollower.swift in Sources */,
|
||||
F85C4A962336C5E100D6A86F /* M5Stack+CoreDataClass.swift in Sources */,
|
||||
F8B3A850227F26F8004BA588 /* AlertTypesSettingsViewController.swift in Sources */,
|
||||
F8A7407022DBB24800967CFC /* BluconTransmitterOpCode.swift in Sources */,
|
||||
F8EA6CAD21BC2CA40082976B /* BluetoothTransmitter.swift in Sources */,
|
||||
|
@ -1668,7 +1669,6 @@
|
|||
F821CF5E229BF43A005C1E43 /* BgReading+NightScout.swift in Sources */,
|
||||
F8A389EB233175A10010F405 /* SettingsViewM5StackSettingsViewModel.swift in Sources */,
|
||||
F85C4A9D2336D05100D6A86F /* M5StackViewController.swift in Sources */,
|
||||
F85C4A972336C5E100D6A86F /* M5Stack+CoreDataProperties.swift in Sources */,
|
||||
F8A54ADE22D911BA00934E7A /* AESCrypt.m in Sources */,
|
||||
F8A54ADC22D911BA00934E7A /* AuthChallengeTxMessage.swift in Sources */,
|
||||
F8025C1321DA683400ECF0C0 /* Data.swift in Sources */,
|
||||
|
|
|
@ -7,6 +7,8 @@ public class M5Stack: NSManagedObject {
|
|||
/// create M5Stack
|
||||
init(address: String, name: String, nsManagedObjectContext:NSManagedObjectContext) {
|
||||
|
||||
let entity = NSEntityDescription.entity(forEntityName: "M5Stack", in: nsManagedObjectContext)!
|
||||
|
||||
super.init(entity: entity, insertInto: nsManagedObjectContext)
|
||||
|
||||
self.address = address
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
<relationship name="bgreadings" toMany="YES" deletionRule="Deny" destinationEntity="BgReading" inverseName="calibration" inverseEntity="BgReading" syncable="YES"/>
|
||||
<relationship name="sensor" maxCount="1" deletionRule="Nullify" destinationEntity="Sensor" inverseName="calibrations" inverseEntity="Sensor" syncable="YES"/>
|
||||
</entity>
|
||||
<entity name="M5Stack" representedClassName=".M5Stack" syncable="YES" codeGenerationType="class">
|
||||
<entity name="M5Stack" representedClassName=".M5Stack" syncable="YES">
|
||||
<attribute name="address" optional="YES" attributeType="String" syncable="YES"/>
|
||||
<attribute name="blepassword" optional="YES" attributeType="String" syncable="YES"/>
|
||||
<attribute name="name" optional="YES" attributeType="String" syncable="YES"/>
|
||||
|
@ -72,7 +72,7 @@
|
|||
<element name="AlertType" positionX="-657" positionY="180" width="128" height="165"/>
|
||||
<element name="BgReading" positionX="-285.87109375" positionY="31.9921875" width="128" height="330"/>
|
||||
<element name="Calibration" positionX="-859.21484375" positionY="46.21484375" width="128" height="285"/>
|
||||
<element name="Sensor" positionX="-603.0859375" positionY="482.2890625" width="128" height="120"/>
|
||||
<element name="M5Stack" positionX="-657" positionY="180" width="128" height="90"/>
|
||||
<element name="Sensor" positionX="-603.0859375" positionY="482.2890625" width="128" height="120"/>
|
||||
</elements>
|
||||
</model>
|
|
@ -336,6 +336,9 @@
|
|||
<rect key="frame" x="0.0" y="20" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</navigationBar>
|
||||
<connections>
|
||||
<segue destination="E45-Z1-hcE" kind="relationship" relationship="rootViewController" id="T8s-QM-PHX"/>
|
||||
</connections>
|
||||
</navigationController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="jbk-qM-hX3" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
|
@ -398,19 +401,145 @@
|
|||
</objects>
|
||||
<point key="canvasLocation" x="2582" y="565"/>
|
||||
</scene>
|
||||
<!--M5 Stacks Settings View Controller-->
|
||||
<!--M5 Stacks View Controller-->
|
||||
<scene sceneID="0Ef-2k-ynF">
|
||||
<objects>
|
||||
<viewController id="E45-Z1-hcE" userLabel="M5 Stacks Settings View Controller" customClass="M5StacksViewController" customModule="xdrip" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<viewController id="E45-Z1-hcE" userLabel="M5 Stacks View Controller" customClass="M5StacksViewController" customModule="xdrip" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="i06-al-mW1">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="dMM-nl-Zfn">
|
||||
<rect key="frame" x="0.0" y="64" width="375" height="554"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<prototypes>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="SettingsCell" textLabel="0QS-QO-ffs" detailTextLabel="Mfz-72-6g0" style="IBUITableViewCellStyleValue1" id="FCD-AT-hwi">
|
||||
<rect key="frame" x="0.0" y="28" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="FCD-AT-hwi" id="FU1-LI-A2c">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Title" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="0QS-QO-ffs">
|
||||
<rect key="frame" x="15" y="12" width="33.5" height="20.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="textColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Detail" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Mfz-72-6g0">
|
||||
<rect key="frame" x="316" y="12" width="44" height="20.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="textColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
</prototypes>
|
||||
</tableView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<constraints>
|
||||
<constraint firstItem="dMM-nl-Zfn" firstAttribute="top" secondItem="EvW-JA-i05" secondAttribute="top" id="29Q-kv-s6U"/>
|
||||
<constraint firstItem="EvW-JA-i05" firstAttribute="trailing" secondItem="dMM-nl-Zfn" secondAttribute="trailing" id="RW4-82-iS1"/>
|
||||
<constraint firstItem="EvW-JA-i05" firstAttribute="bottom" secondItem="dMM-nl-Zfn" secondAttribute="bottom" id="eJN-bF-vxa"/>
|
||||
<constraint firstItem="dMM-nl-Zfn" firstAttribute="leading" secondItem="EvW-JA-i05" secondAttribute="leading" id="tBD-7H-z2z"/>
|
||||
</constraints>
|
||||
<viewLayoutGuide key="safeArea" id="EvW-JA-i05"/>
|
||||
</view>
|
||||
<navigationItem key="navigationItem" id="RIF-ql-JYW">
|
||||
<barButtonItem key="rightBarButtonItem" systemItem="add" id="r5a-yh-yig"/>
|
||||
</navigationItem>
|
||||
<connections>
|
||||
<segue destination="FJ0-eY-Fv0" kind="show" id="BEa-Az-mem"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="ajO-AG-xfd" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="2582" y="-134"/>
|
||||
</scene>
|
||||
<!--Title-->
|
||||
<scene sceneID="fw3-II-GI1">
|
||||
<objects>
|
||||
<viewController id="FJ0-eY-Fv0" customClass="M5StackViewController" customModule="xdrip" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="0Ho-lg-UtI">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="L9f-Ab-Egz">
|
||||
<rect key="frame" x="20" y="93" width="49" height="39"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="22"/>
|
||||
<state key="normal" title="Scan"/>
|
||||
</button>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="82M-Ti-NV0">
|
||||
<rect key="frame" x="0.0" y="132" width="375" height="486"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<prototypes>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="SettingsCell" textLabel="vbi-WE-Mvc" detailTextLabel="N1U-VA-CRw" style="IBUITableViewCellStyleValue1" id="dpi-qU-2Va">
|
||||
<rect key="frame" x="0.0" y="28" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="dpi-qU-2Va" id="QVR-WA-lkN">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Title" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="vbi-WE-Mvc">
|
||||
<rect key="frame" x="15" y="12" width="33.5" height="20.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="textColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="Detail" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="N1U-VA-CRw">
|
||||
<rect key="frame" x="316" y="12" width="44" height="20.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="textColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
</prototypes>
|
||||
</tableView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1RS-D2-mWR">
|
||||
<rect key="frame" x="0.0" y="64" width="375" height="29"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="24"/>
|
||||
<nil key="textColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WtR-0P-RyL">
|
||||
<rect key="frame" x="273" y="93" width="82" height="39"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="22"/>
|
||||
<state key="normal" title="Connect"/>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<constraints>
|
||||
<constraint firstItem="1RS-D2-mWR" firstAttribute="top" secondItem="jHe-GP-4Jf" secondAttribute="top" id="3lK-sw-knt"/>
|
||||
<constraint firstItem="WtR-0P-RyL" firstAttribute="top" secondItem="1RS-D2-mWR" secondAttribute="bottom" id="4wk-hA-Vwa"/>
|
||||
<constraint firstItem="L9f-Ab-Egz" firstAttribute="leading" secondItem="jHe-GP-4Jf" secondAttribute="leading" constant="20" id="8zf-zJ-HsA"/>
|
||||
<constraint firstItem="L9f-Ab-Egz" firstAttribute="top" secondItem="1RS-D2-mWR" secondAttribute="bottom" id="Ecq-df-Wdc"/>
|
||||
<constraint firstItem="jHe-GP-4Jf" firstAttribute="trailing" secondItem="1RS-D2-mWR" secondAttribute="trailing" id="OWt-LZ-NU6"/>
|
||||
<constraint firstItem="1RS-D2-mWR" firstAttribute="leading" secondItem="jHe-GP-4Jf" secondAttribute="leading" id="Vam-rI-i6T"/>
|
||||
<constraint firstItem="jHe-GP-4Jf" firstAttribute="trailing" secondItem="WtR-0P-RyL" secondAttribute="trailing" constant="20" id="ed1-re-h1k"/>
|
||||
<constraint firstItem="82M-Ti-NV0" firstAttribute="top" secondItem="L9f-Ab-Egz" secondAttribute="bottom" id="n9y-ia-TyG"/>
|
||||
<constraint firstItem="jHe-GP-4Jf" firstAttribute="bottom" secondItem="82M-Ti-NV0" secondAttribute="bottom" id="qBc-5d-R7l"/>
|
||||
<constraint firstItem="jHe-GP-4Jf" firstAttribute="trailing" secondItem="82M-Ti-NV0" secondAttribute="trailing" id="w0B-Wn-iY0"/>
|
||||
<constraint firstItem="82M-Ti-NV0" firstAttribute="leading" secondItem="jHe-GP-4Jf" secondAttribute="leading" id="yg8-ad-aLX"/>
|
||||
</constraints>
|
||||
<viewLayoutGuide key="safeArea" id="jHe-GP-4Jf"/>
|
||||
</view>
|
||||
<navigationItem key="navigationItem" title="Title" id="1DE-2P-Qfh">
|
||||
<rightBarButtonItems>
|
||||
<barButtonItem style="done" systemItem="done" id="CUr-JD-RwV"/>
|
||||
<barButtonItem systemItem="trash" id="N7o-Nz-l8g"/>
|
||||
</rightBarButtonItems>
|
||||
</navigationItem>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="kwG-Zz-t1q" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="3582" y="-134"/>
|
||||
</scene>
|
||||
<!--Alert Settings View Controller-->
|
||||
|
|
|
@ -264,6 +264,8 @@ class BluetoothTransmitter: NSObject, CBCentralManagerDelegate, CBPeripheralDele
|
|||
} else {
|
||||
trace(" peripheral is nil", log: log, type: .info)
|
||||
}
|
||||
} else {
|
||||
trace(" uuid is not nil, but central.retrievePeripherals returns 0 peripherals", log: log, type: .error)
|
||||
}
|
||||
} else {
|
||||
trace(" uuid is nil", log: log, type: .info)
|
||||
|
@ -290,6 +292,8 @@ class BluetoothTransmitter: NSObject, CBCentralManagerDelegate, CBPeripheralDele
|
|||
if peripheral.identifier.uuidString == deviceAddress {
|
||||
trace(" stored address matches peripheral address, will try to connect", log: log, type: .info)
|
||||
stopScanAndconnect(to: peripheral)
|
||||
} else {
|
||||
trace(" stored address does not match peripheral address, ignoring this device", log: log, type: .info)
|
||||
}
|
||||
} else {
|
||||
//the app never connected before to our device
|
||||
|
@ -302,7 +306,7 @@ class BluetoothTransmitter: NSObject, CBCentralManagerDelegate, CBPeripheralDele
|
|||
stopScanAndconnect(to: peripheral)
|
||||
} else {
|
||||
// peripheral.name is nil or does not contain expectedName
|
||||
trace(" new peripheral doesn't have device name as expected, ignoring", log: log, type: .info)
|
||||
trace(" new peripheral doesn't have device name as expected, ignoring this device", log: log, type: .info)
|
||||
}
|
||||
} else {
|
||||
// we don't expect any specific device name, so let's connect
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import Foundation
|
||||
import UIKit
|
||||
|
||||
/// UIViewController to show
|
||||
final class M5StackViewController: UIViewController {
|
||||
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import Foundation
|
||||
import UIKit
|
||||
|
||||
/// uiviewcontroller to show list of M5Stacks, first uiviewcontroller when clicking the M5Stack tab
|
||||
final class M5StacksViewController: UIViewController {
|
||||
|
|
|
@ -12,11 +12,11 @@ fileprivate enum Setting:Int, CaseIterable {
|
|||
case value = 2
|
||||
}
|
||||
|
||||
/// AlertSettingsViewController and NewAlertSettingsViewController have similar functionality, ie the first is about updating an existing alertEntry, the other is about creating a new one.
|
||||
/// AlertSettingsViewController and NewAlertSettingsViewController have similar functionality, ie the first is about updating an existing alertEntry, the other is about creating a new one. The class AlertSettingsViewControllerData has the common code
|
||||
///
|
||||
/// AlertSettingsViewController is doing a performsegue towards NewAlertSettingsViewController. That only works with different UIViewControllers (that's why it's two), but the functionality in it is 90% the same.
|
||||
///
|
||||
/// to avoid code duplication, all relevant code is writtein in the class AlertSettingsViewControllerData, which conforms to the protocols UITableViewDataSource, UITableViewDelegate
|
||||
/// to avoid code duplication, all relevant code is written in the class AlertSettingsViewControllerData, which conforms to the protocols UITableViewDataSource, UITableViewDelegate
|
||||
///
|
||||
/// the classes AlertSettingsViewController and NewAlertSettingsViewController have a property of type AlertSettingsViewControllerData, and the tableView in each of them uses that property as delegate and datasource
|
||||
class AlertSettingsViewControllerData: NSObject, UITableViewDataSource, UITableViewDelegate {
|
||||
|
|
Loading…
Reference in New Issue