liuzhenxing1118 1 жил өмнө
parent
commit
53e1a6c4de
30 өөрчлөгдсөн 447 нэмэгдсэн , 509 устгасан
  1. 5 1
      artimenring-iOS/Artimenring/Base.lproj/Localizable.strings
  2. 11 1
      artimenring-iOS/Artimenring/Classes/Model/EModel.h
  3. 5 1
      artimenring-iOS/Artimenring/Classes/Model/EModel.m
  4. 1 0
      artimenring-iOS/Artimenring/Classes/Model/SKTestData.h
  5. 21 0
      artimenring-iOS/Artimenring/Classes/Model/SKTestData.m
  6. 133 295
      artimenring-iOS/Artimenring/Classes/StoryBoard/Base.lproj/SchoolTime.storyboard
  7. 13 1
      artimenring-iOS/Artimenring/Classes/ViewController/Watch/WatchViewController.m
  8. 23 0
      artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/AlarmClock/AlarmClockDetailViewController.h
  9. 4 4
      artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/AlarmClock/AlarmClockDetailViewController.m
  10. 21 0
      artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/AlarmClock/AlarmClockListCell.h
  11. 43 0
      artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/AlarmClock/AlarmClockListCell.m
  12. 2 2
      artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/AlarmClock/AlarmClockListViewController.h
  13. 71 86
      artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/AlarmClock/AlarmClockListViewController.m
  14. 0 17
      artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/Clock/ClockDetailViewController.h
  15. 0 27
      artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/Clock/ClockListCell.h
  16. 0 58
      artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/Clock/ClockListCell.m
  17. 1 1
      artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/SchoolTime/SchoolTimeDetailViewController.h
  18. 6 6
      artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/SchoolTime/SchoolTimeDetailViewController.m
  19. 1 1
      artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/SchoolTime/SchoolTimeListViewController.m
  20. 3 3
      artimenring-iOS/Artimenring/Images.xcassets/Setting/Contents.json
  21. 22 0
      artimenring-iOS/Artimenring/Images.xcassets/Setting/banner_alarmclock.imageset/Contents.json
  22. BIN
      artimenring-iOS/Artimenring/Images.xcassets/Setting/banner_alarmclock.imageset/banner_alarmclock@2x.png
  23. BIN
      artimenring-iOS/Artimenring/Images.xcassets/Setting/banner_alarmclock.imageset/banner_alarmclock@3x.png
  24. 3 3
      artimenring-iOS/Artimenring/Images.xcassets/Watch/Contents.json
  25. 22 0
      artimenring-iOS/Artimenring/Images.xcassets/Watch/watch_icon_2_4.imageset/Contents.json
  26. BIN
      artimenring-iOS/Artimenring/Images.xcassets/Watch/watch_icon_2_4.imageset/watch_icon_2_4@2x.png
  27. BIN
      artimenring-iOS/Artimenring/Images.xcassets/Watch/watch_icon_2_4.imageset/watch_icon_2_4@3x.png
  28. 5 1
      artimenring-iOS/Artimenring/en.lproj/Localizable.strings
  29. 5 1
      artimenring-iOS/Artimenring/zh-Hans.lproj/Localizable.strings
  30. 26 0
      artimenring-iOS/VeryFit Kids.xcodeproj/project.pbxproj

+ 5 - 1
artimenring-iOS/Artimenring/Base.lproj/Localizable.strings

@@ -379,6 +379,9 @@
 "BDI.Input.Class" = "Input baby class";
 "BDI.No.Admin" = "Non administrators cannot modify.";
 
+//Alarm clock
+"AC.Title" = "Alarm Clock";
+
 //SchoolTimeList
 "STL.Title" = "School Mode";
 "STL.Title.Section" = "Disable period";
@@ -958,7 +961,8 @@
 "Watch.Admin.2.0" = "Track history";
 "Watch.Admin.2.1" = "Geo Fence";
 "Watch.Admin.2.2" = "School Mode";
-"Watch.Admin.2.3" = "Calendar";
+"Watch.Admin.2.3" = "Alarm clock";
+"Watch.Admin.2.4" = "Calendar";
 
 "Watch.Admin.3.0" = "Watch Wi-Fi";
 "Watch.Admin.3.1" = "Power On/Off Settings";

+ 11 - 1
artimenring-iOS/Artimenring/Classes/Model/EModel.h

@@ -71,7 +71,8 @@
 
 @property(nonatomic, assign) BOOL moveType; //是否支持动静判断
 @property(nonatomic, assign) BOOL holiday; //是否支持法定节假日
-@property(nonatomic, assign) BOOL onceClock; //是否支持闹钟响一次
+@property(nonatomic, assign) BOOL clock; //是否支持闹钟
+@property(nonatomic, assign) BOOL clockOnce; //是否支持闹钟响一次
 @property(nonatomic, assign) BOOL apn; //是否支持Apn
 @property(nonatomic, assign) BOOL traceUploadSwitch; //单点多点轨迹是否上报开关[0-false-关 1-true-开]//
 
@@ -227,6 +228,15 @@
 @property(nonatomic, assign) NSInteger holidaysFlag;
 @end
 
+@interface AlarmClockModel : BaseModel
+@property(nonatomic, assign) NSInteger _id;
+@property(nonatomic, copy) NSString* startTime;
+@property(nonatomic, copy) NSString* endTime;
+@property(nonatomic, copy) NSString* weekDay;
+@property(nonatomic, assign) NSInteger validFlag;
+@property(nonatomic, assign) NSInteger holidaysFlag;
+@end
+
 @interface RealPositionModel : BaseModel
 @property(nonatomic, copy) NSString* childId;
 @property(nonatomic, assign) NSInteger deviceId;

+ 5 - 1
artimenring-iOS/Artimenring/Classes/Model/EModel.m

@@ -144,7 +144,8 @@
         self.sendLocation = YES;
         self.moveType = NO;
         self.holiday = NO;
-        self.onceClock = NO;
+        self.clock = YES;
+        self.clockOnce = NO;
         self.apn = YES;
         self.chatVoiceMax = 15;
         self.historyPathMax = 7;
@@ -287,6 +288,9 @@
 @implementation SchoolTimeModel
 @end
 
+@implementation AlarmClockModel
+@end
+
 @implementation RealPositionModel
 @end
 

+ 1 - 0
artimenring-iOS/Artimenring/Classes/Model/SKTestData.h

@@ -16,6 +16,7 @@ NS_ASSUME_NONNULL_BEGIN
 + (SessionMessageModel*)chatMessage;
 + (NSDictionary*)childDatas;
 + (NSArray*)historyPath;
++ (NSArray*)schoolAlarmTimes;
 
 @end
 

+ 21 - 0
artimenring-iOS/Artimenring/Classes/Model/SKTestData.m

@@ -123,4 +123,25 @@
         },
     ];
 }
+
++ (NSArray*)schoolAlarmTimes {
+    return @[
+        @{
+            @"_id" : @(1),
+            @"startTime" : @"08:45",
+            @"endTime" : @"16:30",
+            @"weekDay" : @"1001010",
+            @"validFlag" : @(1),
+            @"holidaysFlag" : @(1),
+        },
+        @{
+            @"_id" : @(2),
+            @"startTime" : @"10:30",
+            @"endTime" : @"19:00",
+            @"weekDay" : @"1001010",
+            @"validFlag" : @(0),
+            @"holidaysFlag" : @(1),
+        },
+    ];
+}
 @end

+ 133 - 295
artimenring-iOS/Artimenring/Classes/StoryBoard/Base.lproj/SchoolTime.storyboard

@@ -1,9 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="22155" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="22155" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="retina5_9" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
         <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22131"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <scenes>
@@ -11,10 +13,6 @@
         <scene sceneID="Iwa-KI-irj">
             <objects>
                 <viewController storyboardIdentifier="SchoolTimeListVC" id="DAK-nl-Cdr" customClass="SchoolTimeListViewController" sceneMemberID="viewController">
-                    <layoutGuides>
-                        <viewControllerLayoutGuide type="top" id="0LA-Ha-i6W"/>
-                        <viewControllerLayoutGuide type="bottom" id="HJf-UP-hsS"/>
-                    </layoutGuides>
                     <view key="view" contentMode="scaleToFill" id="D0m-nJ-51a">
                         <rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -61,18 +59,19 @@
                                 </constraints>
                                 <state key="normal" title="Button" image="cellAdd"/>
                                 <connections>
-                                    <action selector="addTimeAction:" destination="DAK-nl-Cdr" eventType="touchUpInside" id="0du-Ws-BDV"/>
+                                    <action selector="showSchoolTimeDetail:" destination="DAK-nl-Cdr" eventType="touchUpInside" id="0du-Ws-BDV"/>
                                 </connections>
                             </button>
                         </subviews>
+                        <viewLayoutGuide key="safeArea" id="8AY-Za-2Fy"/>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                         <constraints>
-                            <constraint firstAttribute="trailing" secondItem="BLw-dk-D9Y" secondAttribute="trailing" id="D6S-9f-ezn"/>
-                            <constraint firstItem="BLw-dk-D9Y" firstAttribute="leading" secondItem="D0m-nJ-51a" secondAttribute="leading" id="HFG-TO-7wh"/>
-                            <constraint firstItem="HJf-UP-hsS" firstAttribute="top" secondItem="BLw-dk-D9Y" secondAttribute="bottom" id="KIo-XD-8TU"/>
-                            <constraint firstItem="VZW-44-zlZ" firstAttribute="centerX" secondItem="D0m-nJ-51a" secondAttribute="centerX" id="hCR-Fd-nsn"/>
-                            <constraint firstItem="BLw-dk-D9Y" firstAttribute="top" secondItem="0LA-Ha-i6W" secondAttribute="bottom" id="mXE-XS-6Dz"/>
-                            <constraint firstItem="HJf-UP-hsS" firstAttribute="top" secondItem="VZW-44-zlZ" secondAttribute="bottom" constant="20" id="zKq-ku-oKN"/>
+                            <constraint firstItem="8AY-Za-2Fy" firstAttribute="trailing" secondItem="BLw-dk-D9Y" secondAttribute="trailing" id="D6S-9f-ezn"/>
+                            <constraint firstItem="BLw-dk-D9Y" firstAttribute="leading" secondItem="8AY-Za-2Fy" secondAttribute="leading" id="HFG-TO-7wh"/>
+                            <constraint firstItem="8AY-Za-2Fy" firstAttribute="bottom" secondItem="BLw-dk-D9Y" secondAttribute="bottom" id="KIo-XD-8TU"/>
+                            <constraint firstItem="VZW-44-zlZ" firstAttribute="centerX" secondItem="8AY-Za-2Fy" secondAttribute="centerX" id="hCR-Fd-nsn"/>
+                            <constraint firstItem="BLw-dk-D9Y" firstAttribute="top" secondItem="8AY-Za-2Fy" secondAttribute="top" id="mXE-XS-6Dz"/>
+                            <constraint firstItem="8AY-Za-2Fy" firstAttribute="bottom" secondItem="VZW-44-zlZ" secondAttribute="bottom" constant="20" id="zKq-ku-oKN"/>
                         </constraints>
                     </view>
                     <connections>
@@ -88,10 +87,6 @@
         <scene sceneID="h58-4f-3gT">
             <objects>
                 <viewController storyboardIdentifier="SchoolTimeDetailVC" id="yaz-Zz-9Bl" customClass="SchoolTimeDetailViewController" sceneMemberID="viewController">
-                    <layoutGuides>
-                        <viewControllerLayoutGuide type="top" id="oa0-Nj-jI5"/>
-                        <viewControllerLayoutGuide type="bottom" id="S7g-Te-iYR"/>
-                    </layoutGuides>
                     <view key="view" contentMode="scaleToFill" id="lHG-hS-dQa">
                         <rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -145,15 +140,16 @@
                                 </connections>
                             </button>
                         </subviews>
+                        <viewLayoutGuide key="safeArea" id="zwd-ld-Q3k"/>
                         <color key="backgroundColor" red="0.97647058823529409" green="0.97647058823529409" blue="0.9882352941176471" alpha="1" colorSpace="calibratedRGB"/>
                         <constraints>
-                            <constraint firstAttribute="trailing" secondItem="vJa-3b-MhN" secondAttribute="trailing" constant="15" id="3bV-a1-pGq"/>
-                            <constraint firstItem="S7g-Te-iYR" firstAttribute="top" secondItem="vJa-3b-MhN" secondAttribute="bottom" constant="40" id="Hs2-wd-0Sb"/>
-                            <constraint firstItem="S7g-Te-iYR" firstAttribute="top" secondItem="KGk-KD-Rfi" secondAttribute="bottom" id="RDC-oj-KOS"/>
+                            <constraint firstItem="zwd-ld-Q3k" firstAttribute="trailing" secondItem="vJa-3b-MhN" secondAttribute="trailing" constant="15" id="3bV-a1-pGq"/>
+                            <constraint firstItem="zwd-ld-Q3k" firstAttribute="bottom" secondItem="vJa-3b-MhN" secondAttribute="bottom" constant="40" id="Hs2-wd-0Sb"/>
+                            <constraint firstItem="zwd-ld-Q3k" firstAttribute="bottom" secondItem="KGk-KD-Rfi" secondAttribute="bottom" id="RDC-oj-KOS"/>
                             <constraint firstItem="KGk-KD-Rfi" firstAttribute="leading" secondItem="lHG-hS-dQa" secondAttribute="leadingMargin" constant="-16" id="gBq-Oy-ftJ"/>
-                            <constraint firstItem="KGk-KD-Rfi" firstAttribute="top" secondItem="oa0-Nj-jI5" secondAttribute="bottom" constant="1" id="q90-hq-xU3"/>
+                            <constraint firstItem="KGk-KD-Rfi" firstAttribute="top" secondItem="zwd-ld-Q3k" secondAttribute="top" constant="1" id="q90-hq-xU3"/>
                             <constraint firstAttribute="trailingMargin" secondItem="KGk-KD-Rfi" secondAttribute="trailing" constant="-16" id="rBQ-UM-jcm"/>
-                            <constraint firstItem="vJa-3b-MhN" firstAttribute="leading" secondItem="lHG-hS-dQa" secondAttribute="leading" constant="15" id="uso-ib-Ctf"/>
+                            <constraint firstItem="vJa-3b-MhN" firstAttribute="leading" secondItem="zwd-ld-Q3k" secondAttribute="leading" constant="15" id="uso-ib-Ctf"/>
                         </constraints>
                     </view>
                     <connections>
@@ -165,271 +161,10 @@
             </objects>
             <point key="canvasLocation" x="1303" y="-61"/>
         </scene>
-        <!--School Time Setting View Controller-->
-        <scene sceneID="Qyf-0q-z42">
-            <objects>
-                <viewController storyboardIdentifier="SchoolTimeVC" id="PCv-So-xLI" customClass="SchoolTimeSettingViewController" sceneMemberID="viewController">
-                    <layoutGuides>
-                        <viewControllerLayoutGuide type="top" id="JRk-q7-t9g"/>
-                        <viewControllerLayoutGuide type="bottom" id="9W7-xc-2Ae"/>
-                    </layoutGuides>
-                    <view key="view" contentMode="scaleToFill" id="riV-XL-1yb">
-                        <rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <subviews>
-                            <view contentMode="scaleToFill" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="n6J-TF-r2J">
-                                <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
-                                <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.04610958615" colorSpace="custom" customColorSpace="sRGB"/>
-                            </view>
-                            <view contentMode="scaleToFill" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="aVZ-w0-9ft">
-                                <rect key="frame" x="0.0" y="65" width="375" height="60"/>
-                                <subviews>
-                                    <view hidden="YES" contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="QgC-q1-Hwg">
-                                        <rect key="frame" x="0.0" y="0.0" width="375" height="0.5"/>
-                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                        <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.19657939190000001" colorSpace="custom" customColorSpace="sRGB"/>
-                                    </view>
-                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="开启上课禁用:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FWZ-ot-r66">
-                                        <rect key="frame" x="15" y="19.333333333333329" width="115" height="21.333333333333329"/>
-                                        <fontDescription key="fontDescription" type="system" pointSize="18"/>
-                                        <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59612542229999999" colorSpace="custom" customColorSpace="sRGB"/>
-                                        <nil key="highlightedColor"/>
-                                    </label>
-                                    <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="PHa-2e-UQd">
-                                        <rect key="frame" x="310" y="15" width="51" height="31"/>
-                                        <constraints>
-                                            <constraint firstAttribute="width" constant="49" id="ZDx-Am-b6F"/>
-                                            <constraint firstAttribute="height" constant="31" id="edB-gZ-fTa"/>
-                                        </constraints>
-                                        <connections>
-                                            <action selector="onSchoolTimeSwitchChange:" destination="PCv-So-xLI" eventType="valueChanged" id="653-xV-gl1"/>
-                                        </connections>
-                                    </switch>
-                                </subviews>
-                                <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                <constraints>
-                                    <constraint firstItem="PHa-2e-UQd" firstAttribute="centerY" secondItem="aVZ-w0-9ft" secondAttribute="centerY" id="G6b-rc-bx1"/>
-                                    <constraint firstAttribute="height" constant="60" id="GRb-Nb-eR1"/>
-                                    <constraint firstAttribute="trailing" secondItem="PHa-2e-UQd" secondAttribute="trailing" constant="16" id="Tr3-64-6MZ"/>
-                                    <constraint firstItem="FWZ-ot-r66" firstAttribute="centerY" secondItem="aVZ-w0-9ft" secondAttribute="centerY" id="Y4k-2p-AK1"/>
-                                    <constraint firstItem="FWZ-ot-r66" firstAttribute="leading" secondItem="aVZ-w0-9ft" secondAttribute="leading" constant="15" id="lNE-IN-WRK"/>
-                                </constraints>
-                            </view>
-                            <view contentMode="scaleToFill" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="tjX-yK-QEZ">
-                                <rect key="frame" x="0.0" y="125" width="375" height="60"/>
-                                <subviews>
-                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="上午时段:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bC4-WX-CEd">
-                                        <rect key="frame" x="15" y="17.666666666666657" width="84" height="25"/>
-                                        <constraints>
-                                            <constraint firstAttribute="width" constant="84" id="5F8-W6-U51"/>
-                                            <constraint firstAttribute="height" constant="25" id="Q5z-7I-ssu"/>
-                                        </constraints>
-                                        <fontDescription key="fontDescription" type="system" pointSize="18"/>
-                                        <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59876478040000003" colorSpace="custom" customColorSpace="sRGB"/>
-                                        <nil key="highlightedColor"/>
-                                    </label>
-                                    <button opaque="NO" contentMode="scaleToFill" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zB9-D5-7tR">
-                                        <rect key="frame" x="193" y="15" width="60" height="30"/>
-                                        <constraints>
-                                            <constraint firstAttribute="height" constant="30" id="4wO-Vy-jmu"/>
-                                            <constraint firstAttribute="width" constant="60" id="98W-yD-MZ6"/>
-                                        </constraints>
-                                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                        <state key="normal" title="08:00">
-                                            <color key="titleColor" red="0.054901960780000002" green="0.66666666669999997" blue="0.88235294119999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                            <color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                        </state>
-                                        <connections>
-                                            <action selector="onClickMorningBegin:" destination="PCv-So-xLI" eventType="touchUpInside" id="ggG-X1-xkj"/>
-                                        </connections>
-                                    </button>
-                                    <view contentMode="scaleToFill" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="sGn-tV-yVh">
-                                        <rect key="frame" x="263" y="30" width="26" height="0.5"/>
-                                        <color key="backgroundColor" red="0.66666666669999997" green="0.66666666669999997" blue="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                        <constraints>
-                                            <constraint firstAttribute="height" constant="0.5" id="CTB-Ex-Ggj"/>
-                                            <constraint firstAttribute="width" constant="26" id="JKI-vb-uz0"/>
-                                        </constraints>
-                                    </view>
-                                    <button opaque="NO" contentMode="scaleToFill" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Ywv-sx-vnm">
-                                        <rect key="frame" x="299" y="15" width="60" height="30"/>
-                                        <constraints>
-                                            <constraint firstAttribute="height" constant="30" id="3ex-Si-ccb"/>
-                                            <constraint firstAttribute="width" constant="60" id="p0U-Ln-pJA"/>
-                                        </constraints>
-                                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                        <state key="normal" title="11:30">
-                                            <color key="titleColor" red="0.054901960780000002" green="0.66666666669999997" blue="0.88235294119999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                            <color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                        </state>
-                                        <connections>
-                                            <action selector="onClickMorningEnd:" destination="PCv-So-xLI" eventType="touchUpInside" id="EC5-BV-oCk"/>
-                                        </connections>
-                                    </button>
-                                    <view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="QKu-Hx-Wpe">
-                                        <rect key="frame" x="0.0" y="0.0" width="375" height="0.5"/>
-                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                        <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.20162056589999999" colorSpace="custom" customColorSpace="sRGB"/>
-                                    </view>
-                                </subviews>
-                                <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                <constraints>
-                                    <constraint firstItem="Ywv-sx-vnm" firstAttribute="centerY" secondItem="tjX-yK-QEZ" secondAttribute="centerY" id="9Eo-xk-hEl"/>
-                                    <constraint firstItem="zB9-D5-7tR" firstAttribute="centerY" secondItem="tjX-yK-QEZ" secondAttribute="centerY" id="AUC-Ak-Xfm"/>
-                                    <constraint firstItem="sGn-tV-yVh" firstAttribute="leading" secondItem="zB9-D5-7tR" secondAttribute="trailing" constant="10" id="BwA-rh-3c6"/>
-                                    <constraint firstItem="sGn-tV-yVh" firstAttribute="centerY" secondItem="tjX-yK-QEZ" secondAttribute="centerY" id="EM8-fg-BVH"/>
-                                    <constraint firstItem="bC4-WX-CEd" firstAttribute="leading" secondItem="tjX-yK-QEZ" secondAttribute="leading" constant="15" id="Kck-f2-g3O"/>
-                                    <constraint firstItem="bC4-WX-CEd" firstAttribute="centerY" secondItem="tjX-yK-QEZ" secondAttribute="centerY" id="Ov5-d5-Lm0"/>
-                                    <constraint firstAttribute="trailing" secondItem="Ywv-sx-vnm" secondAttribute="trailing" constant="16" id="nOn-gY-Ssf"/>
-                                    <constraint firstAttribute="height" constant="60" id="zXa-58-FkR"/>
-                                    <constraint firstItem="Ywv-sx-vnm" firstAttribute="leading" secondItem="sGn-tV-yVh" secondAttribute="trailing" constant="10" id="zkd-Jg-Klp"/>
-                                </constraints>
-                            </view>
-                            <view contentMode="scaleToFill" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="hao-Qk-QbO">
-                                <rect key="frame" x="0.0" y="185" width="375" height="60"/>
-                                <subviews>
-                                    <button opaque="NO" contentMode="scaleToFill" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6Il-d5-rB0">
-                                        <rect key="frame" x="193" y="15" width="60" height="30"/>
-                                        <constraints>
-                                            <constraint firstAttribute="height" constant="30" id="C8G-Pk-6Ou"/>
-                                            <constraint firstAttribute="width" constant="60" id="ier-lg-4Jv"/>
-                                        </constraints>
-                                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                        <state key="normal" title="14:30">
-                                            <color key="titleColor" red="0.054901960780000002" green="0.66666666669999997" blue="0.88235294119999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                            <color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                        </state>
-                                        <connections>
-                                            <action selector="onClickAfternoonBegin:" destination="PCv-So-xLI" eventType="touchUpInside" id="zvm-Ab-n6j"/>
-                                        </connections>
-                                    </button>
-                                    <view contentMode="scaleToFill" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="7wW-vf-C54">
-                                        <rect key="frame" x="263" y="30" width="26" height="0.5"/>
-                                        <color key="backgroundColor" red="0.66666666669999997" green="0.66666666669999997" blue="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                        <constraints>
-                                            <constraint firstAttribute="height" constant="0.5" id="0pu-hG-NMG"/>
-                                            <constraint firstAttribute="width" constant="26" id="hOW-ab-0Aj"/>
-                                        </constraints>
-                                    </view>
-                                    <button opaque="NO" contentMode="scaleToFill" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cGz-i0-SUP">
-                                        <rect key="frame" x="299" y="15" width="60" height="30"/>
-                                        <constraints>
-                                            <constraint firstAttribute="height" constant="30" id="TFD-fK-YLC"/>
-                                            <constraint firstAttribute="width" constant="60" id="aMV-9s-WHX"/>
-                                        </constraints>
-                                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                                        <state key="normal" title="16:30">
-                                            <color key="titleColor" red="0.054901960780000002" green="0.66666666669999997" blue="0.88235294119999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                            <color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                        </state>
-                                        <connections>
-                                            <action selector="onClickAfternoonEnd:" destination="PCv-So-xLI" eventType="touchUpInside" id="HM7-dq-CEc"/>
-                                        </connections>
-                                    </button>
-                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="下午时段:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lPO-rv-cob">
-                                        <rect key="frame" x="15" y="17.666666666666657" width="84" height="25"/>
-                                        <constraints>
-                                            <constraint firstAttribute="height" constant="25" id="2v6-fr-nPb"/>
-                                            <constraint firstAttribute="width" constant="84" id="eaK-y3-ozT"/>
-                                        </constraints>
-                                        <fontDescription key="fontDescription" type="system" pointSize="18"/>
-                                        <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.60370038010000004" colorSpace="custom" customColorSpace="sRGB"/>
-                                        <nil key="highlightedColor"/>
-                                    </label>
-                                    <view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="LPM-Aw-nih">
-                                        <rect key="frame" x="0.0" y="0.0" width="375" height="0.5"/>
-                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                        <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.20162056589999999" colorSpace="custom" customColorSpace="sRGB"/>
-                                    </view>
-                                    <view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="hI8-0I-j43">
-                                        <rect key="frame" x="0.0" y="60" width="375" height="0.5"/>
-                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                        <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.20162056589999999" colorSpace="custom" customColorSpace="sRGB"/>
-                                    </view>
-                                </subviews>
-                                <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                <constraints>
-                                    <constraint firstItem="cGz-i0-SUP" firstAttribute="centerY" secondItem="hao-Qk-QbO" secondAttribute="centerY" id="2RG-vf-IVB"/>
-                                    <constraint firstItem="lPO-rv-cob" firstAttribute="centerY" secondItem="hao-Qk-QbO" secondAttribute="centerY" id="CY8-Y4-OoL"/>
-                                    <constraint firstItem="7wW-vf-C54" firstAttribute="leading" secondItem="6Il-d5-rB0" secondAttribute="trailing" constant="10" id="IWe-nV-hXC"/>
-                                    <constraint firstItem="7wW-vf-C54" firstAttribute="centerY" secondItem="hao-Qk-QbO" secondAttribute="centerY" id="PjP-xE-i9g"/>
-                                    <constraint firstItem="6Il-d5-rB0" firstAttribute="centerY" secondItem="hao-Qk-QbO" secondAttribute="centerY" id="TML-rA-Xji"/>
-                                    <constraint firstAttribute="height" constant="60" id="cm5-26-PNM"/>
-                                    <constraint firstItem="lPO-rv-cob" firstAttribute="leading" secondItem="hao-Qk-QbO" secondAttribute="leading" constant="15" id="elc-Mk-3CF"/>
-                                    <constraint firstItem="cGz-i0-SUP" firstAttribute="leading" secondItem="7wW-vf-C54" secondAttribute="trailing" constant="10" id="i53-27-nZ2"/>
-                                    <constraint firstAttribute="trailing" secondItem="cGz-i0-SUP" secondAttribute="trailing" constant="16" id="wCp-ve-wu8"/>
-                                </constraints>
-                            </view>
-                            <view contentMode="scaleToFill" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="4eZ-5X-ngF">
-                                <rect key="frame" x="0.0" y="265" width="375" height="60"/>
-                                <subviews>
-                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="星期:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2E7-h8-7co">
-                                        <rect key="frame" x="15" y="19" width="42" height="21"/>
-                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                        <fontDescription key="fontDescription" type="system" pointSize="18"/>
-                                        <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.60137774489999996" colorSpace="custom" customColorSpace="sRGB"/>
-                                        <nil key="highlightedColor"/>
-                                    </label>
-                                    <view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="XKw-2z-MpZ">
-                                        <rect key="frame" x="0.0" y="0.0" width="375" height="0.5"/>
-                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                        <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.20162056589999999" colorSpace="custom" customColorSpace="sRGB"/>
-                                    </view>
-                                    <view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="0Dw-cn-iib">
-                                        <rect key="frame" x="0.0" y="60" width="375" height="0.5"/>
-                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                        <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.20162056589999999" colorSpace="custom" customColorSpace="sRGB"/>
-                                    </view>
-                                </subviews>
-                                <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                <constraints>
-                                    <constraint firstAttribute="height" constant="60" id="xHi-Mq-LO8"/>
-                                </constraints>
-                            </view>
-                        </subviews>
-                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                        <constraints>
-                            <constraint firstItem="4eZ-5X-ngF" firstAttribute="leading" secondItem="riV-XL-1yb" secondAttribute="leadingMargin" constant="-20" id="4Rz-QC-vzc"/>
-                            <constraint firstItem="hao-Qk-QbO" firstAttribute="leading" secondItem="riV-XL-1yb" secondAttribute="leadingMargin" constant="-20" id="4Vm-Ok-A64"/>
-                            <constraint firstItem="n6J-TF-r2J" firstAttribute="top" secondItem="JRk-q7-t9g" secondAttribute="bottom" constant="-64" id="9bM-ez-Euc"/>
-                            <constraint firstItem="aVZ-w0-9ft" firstAttribute="top" secondItem="JRk-q7-t9g" secondAttribute="bottom" constant="1" id="BOp-Fg-BuA"/>
-                            <constraint firstItem="aVZ-w0-9ft" firstAttribute="leading" secondItem="riV-XL-1yb" secondAttribute="leadingMargin" constant="-20" id="JdJ-MW-528"/>
-                            <constraint firstAttribute="trailingMargin" secondItem="4eZ-5X-ngF" secondAttribute="trailing" constant="-20" id="Lrt-xJ-Oo3"/>
-                            <constraint firstItem="9W7-xc-2Ae" firstAttribute="top" secondItem="n6J-TF-r2J" secondAttribute="bottom" id="M1P-PG-bdt"/>
-                            <constraint firstItem="hao-Qk-QbO" firstAttribute="top" secondItem="tjX-yK-QEZ" secondAttribute="bottom" id="OTE-ID-fep"/>
-                            <constraint firstAttribute="trailingMargin" secondItem="hao-Qk-QbO" secondAttribute="trailing" constant="-20" id="Oou-fD-sr6"/>
-                            <constraint firstAttribute="trailingMargin" secondItem="aVZ-w0-9ft" secondAttribute="trailing" constant="-20" id="SHz-Mp-OpO"/>
-                            <constraint firstItem="tjX-yK-QEZ" firstAttribute="top" secondItem="aVZ-w0-9ft" secondAttribute="bottom" id="Wg2-dV-0Te"/>
-                            <constraint firstAttribute="trailingMargin" secondItem="n6J-TF-r2J" secondAttribute="trailing" constant="-20" id="Why-Wb-eI8"/>
-                            <constraint firstItem="tjX-yK-QEZ" firstAttribute="leading" secondItem="riV-XL-1yb" secondAttribute="leadingMargin" constant="-20" id="Z4n-Fd-qiK"/>
-                            <constraint firstItem="4eZ-5X-ngF" firstAttribute="top" secondItem="hao-Qk-QbO" secondAttribute="bottom" constant="20" id="gvR-S9-UR0"/>
-                            <constraint firstItem="n6J-TF-r2J" firstAttribute="leading" secondItem="riV-XL-1yb" secondAttribute="leadingMargin" constant="-20" id="hBN-SZ-dze"/>
-                            <constraint firstAttribute="trailingMargin" secondItem="tjX-yK-QEZ" secondAttribute="trailing" constant="-20" id="rID-BQ-S8v"/>
-                        </constraints>
-                    </view>
-                    <navigationItem key="navigationItem" id="Xll-kK-OCe"/>
-                    <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
-                    <connections>
-                        <outlet property="afternoonBeginBtn" destination="6Il-d5-rB0" id="dZe-Zz-2Rm"/>
-                        <outlet property="afternoonEndBtn" destination="cGz-i0-SUP" id="1Z6-kz-E7o"/>
-                        <outlet property="mSwitchBtn" destination="PHa-2e-UQd" id="8wY-vg-d0k"/>
-                        <outlet property="mWeekView" destination="4eZ-5X-ngF" id="BA5-dG-hdC"/>
-                        <outlet property="morningBeginBtn" destination="zB9-D5-7tR" id="Uhh-p0-1q0"/>
-                        <outlet property="morningEndBtn" destination="Ywv-sx-vnm" id="eGF-Hg-A1g"/>
-                    </connections>
-                </viewController>
-                <placeholder placeholderIdentifier="IBFirstResponder" id="7wY-ix-vLC" userLabel="First Responder" sceneMemberID="firstResponder"/>
-            </objects>
-            <point key="canvasLocation" x="2642" y="-61"/>
-        </scene>
         <!--Time Repeat View Controller-->
         <scene sceneID="NEP-zw-qz9">
             <objects>
                 <viewController storyboardIdentifier="TimeRepeatVC" id="TIH-A5-KJk" customClass="TimeRepeatViewController" sceneMemberID="viewController">
-                    <layoutGuides>
-                        <viewControllerLayoutGuide type="top" id="Ved-zo-HVU"/>
-                        <viewControllerLayoutGuide type="bottom" id="yJk-6z-rVS"/>
-                    </layoutGuides>
                     <view key="view" contentMode="scaleToFill" id="yL9-ik-hTh">
                         <rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -462,12 +197,13 @@
                                 </connections>
                             </tableView>
                         </subviews>
+                        <viewLayoutGuide key="safeArea" id="lVl-aa-H4g"/>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                         <constraints>
-                            <constraint firstItem="4da-Qw-oDk" firstAttribute="leading" secondItem="yL9-ik-hTh" secondAttribute="leading" id="2N5-20-JQq"/>
-                            <constraint firstItem="4da-Qw-oDk" firstAttribute="top" secondItem="Ved-zo-HVU" secondAttribute="bottom" id="3P9-lg-ygM"/>
-                            <constraint firstItem="yJk-6z-rVS" firstAttribute="top" secondItem="4da-Qw-oDk" secondAttribute="bottom" id="t5P-bO-oLR"/>
-                            <constraint firstAttribute="trailing" secondItem="4da-Qw-oDk" secondAttribute="trailing" id="xDa-0g-p1q"/>
+                            <constraint firstItem="4da-Qw-oDk" firstAttribute="leading" secondItem="lVl-aa-H4g" secondAttribute="leading" id="2N5-20-JQq"/>
+                            <constraint firstItem="4da-Qw-oDk" firstAttribute="top" secondItem="lVl-aa-H4g" secondAttribute="top" id="3P9-lg-ygM"/>
+                            <constraint firstItem="lVl-aa-H4g" firstAttribute="bottom" secondItem="4da-Qw-oDk" secondAttribute="bottom" id="t5P-bO-oLR"/>
+                            <constraint firstItem="lVl-aa-H4g" firstAttribute="trailing" secondItem="4da-Qw-oDk" secondAttribute="trailing" id="xDa-0g-p1q"/>
                         </constraints>
                     </view>
                     <connections>
@@ -482,10 +218,6 @@
         <scene sceneID="9q2-qj-iul">
             <objects>
                 <viewController storyboardIdentifier="TimeRepeatCustomVC" id="7mW-ZJ-KBc" customClass="TimeRepeatCustomViewController" sceneMemberID="viewController">
-                    <layoutGuides>
-                        <viewControllerLayoutGuide type="top" id="MQ5-IY-zpJ"/>
-                        <viewControllerLayoutGuide type="bottom" id="IaB-z6-Q1F"/>
-                    </layoutGuides>
                     <view key="view" contentMode="scaleToFill" id="peg-Zp-cVf">
                         <rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -522,12 +254,13 @@
                                 </connections>
                             </tableView>
                         </subviews>
+                        <viewLayoutGuide key="safeArea" id="PuT-8e-EId"/>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                         <constraints>
-                            <constraint firstItem="DV9-ZS-cec" firstAttribute="leading" secondItem="peg-Zp-cVf" secondAttribute="leading" id="7KP-N5-sLU"/>
-                            <constraint firstItem="DV9-ZS-cec" firstAttribute="top" secondItem="MQ5-IY-zpJ" secondAttribute="bottom" id="BWh-Ss-VCG"/>
-                            <constraint firstAttribute="trailing" secondItem="DV9-ZS-cec" secondAttribute="trailing" id="R3U-r8-jrv"/>
-                            <constraint firstItem="IaB-z6-Q1F" firstAttribute="top" secondItem="DV9-ZS-cec" secondAttribute="bottom" id="RLf-jI-Kgp"/>
+                            <constraint firstItem="DV9-ZS-cec" firstAttribute="leading" secondItem="PuT-8e-EId" secondAttribute="leading" id="7KP-N5-sLU"/>
+                            <constraint firstItem="DV9-ZS-cec" firstAttribute="top" secondItem="PuT-8e-EId" secondAttribute="top" id="BWh-Ss-VCG"/>
+                            <constraint firstItem="PuT-8e-EId" firstAttribute="trailing" secondItem="DV9-ZS-cec" secondAttribute="trailing" id="R3U-r8-jrv"/>
+                            <constraint firstItem="PuT-8e-EId" firstAttribute="bottom" secondItem="DV9-ZS-cec" secondAttribute="bottom" id="RLf-jI-Kgp"/>
                         </constraints>
                     </view>
                     <connections>
@@ -536,11 +269,116 @@
                 </viewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="S3Q-Lk-mxG" userLabel="First Responder" sceneMemberID="firstResponder"/>
             </objects>
-            <point key="canvasLocation" x="1974" y="593"/>
+            <point key="canvasLocation" x="2730" y="-61"/>
+        </scene>
+        <!--Alarm Clock List View Controller-->
+        <scene sceneID="0wd-XZ-Nc7">
+            <objects>
+                <viewController storyboardIdentifier="AlarmClockListVC" id="sHd-3c-7em" customClass="AlarmClockListViewController" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="AU9-XO-umn">
+                        <rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="nqJ-7P-PDf">
+                                <rect key="frame" x="0.0" y="50" width="375" height="728"/>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <prototypes>
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="AlarmClockListCellID" textLabel="j1e-6m-5BI" detailTextLabel="onz-Yu-fHJ" rowHeight="78" style="IBUITableViewCellStyleSubtitle" id="Kxh-wT-8ln" customClass="AlarmClockListCell">
+                                        <rect key="frame" x="0.0" y="50" width="375" height="78"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Kxh-wT-8ln" id="oWp-1U-wlj">
+                                            <rect key="frame" x="0.0" y="0.0" width="375" height="78"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <subviews>
+                                                <label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Title" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="j1e-6m-5BI">
+                                                    <rect key="frame" x="20" y="19" width="33" height="20.333333333333332"/>
+                                                    <autoresizingMask key="autoresizingMask"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                                    <color key="textColor" red="0.0" green="0.0039215686269999999" blue="0.29411764709999999" alpha="1" colorSpace="calibratedRGB"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                                <label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Subtitle" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="onz-Yu-fHJ">
+                                                    <rect key="frame" x="19.999999999999996" y="42.333333333333329" width="43.666666666666664" height="14.333333333333334"/>
+                                                    <autoresizingMask key="autoresizingMask"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                                    <color key="textColor" red="0.0" green="0.0039215686269999999" blue="0.29411764709999999" alpha="0.59806101069999995" colorSpace="calibratedRGB"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                            </subviews>
+                                        </tableViewCellContentView>
+                                    </tableViewCell>
+                                </prototypes>
+                                <connections>
+                                    <outlet property="dataSource" destination="sHd-3c-7em" id="B1U-X3-dy6"/>
+                                    <outlet property="delegate" destination="sHd-3c-7em" id="n86-b9-jrI"/>
+                                </connections>
+                            </tableView>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cDb-W1-pJE">
+                                <rect key="frame" x="157.66666666666666" y="698" width="60" height="60"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="60" id="Ywf-4r-Jd5"/>
+                                    <constraint firstAttribute="width" constant="60" id="nQg-8C-txk"/>
+                                </constraints>
+                                <state key="normal" title="Button" image="cellAdd"/>
+                                <connections>
+                                    <action selector="showAlarmClockDetail:" destination="sHd-3c-7em" eventType="touchUpInside" id="8wc-Po-MX1"/>
+                                </connections>
+                            </button>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="9tu-AZ-SGR"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                        <constraints>
+                            <constraint firstItem="nqJ-7P-PDf" firstAttribute="top" secondItem="9tu-AZ-SGR" secondAttribute="top" id="AxQ-HA-MmL"/>
+                            <constraint firstItem="9tu-AZ-SGR" firstAttribute="bottom" secondItem="nqJ-7P-PDf" secondAttribute="bottom" id="PEI-ec-shc"/>
+                            <constraint firstItem="nqJ-7P-PDf" firstAttribute="leading" secondItem="9tu-AZ-SGR" secondAttribute="leading" id="Vdl-Kb-zwz"/>
+                            <constraint firstItem="9tu-AZ-SGR" firstAttribute="bottom" secondItem="cDb-W1-pJE" secondAttribute="bottom" constant="20" id="Vun-Vw-i2A"/>
+                            <constraint firstItem="cDb-W1-pJE" firstAttribute="centerX" secondItem="9tu-AZ-SGR" secondAttribute="centerX" id="iF0-gb-w0H"/>
+                            <constraint firstItem="9tu-AZ-SGR" firstAttribute="trailing" secondItem="nqJ-7P-PDf" secondAttribute="trailing" id="p83-y4-EHn"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="mAddBtn" destination="cDb-W1-pJE" id="FY0-lJ-b0G"/>
+                        <outlet property="mTableView" destination="nqJ-7P-PDf" id="pcY-Ld-IlP"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="OX4-Kh-YuW" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="641" y="616"/>
+        </scene>
+        <!--Alarm Clock Detail View Controller-->
+        <scene sceneID="bsd-sc-KNz">
+            <objects>
+                <viewController storyboardIdentifier="AlarmClockDetailVC" id="SE8-Oy-dab" customClass="AlarmClockDetailViewController" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="11m-Pv-8jb">
+                        <rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <datePicker contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" datePickerMode="time" minuteInterval="1" style="wheels" translatesAutoresizingMaskIntoConstraints="NO" id="Vnx-X4-NU0">
+                                <rect key="frame" x="0.0" y="50" width="375" height="350"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="350" id="gMk-iq-ZwU"/>
+                                </constraints>
+                            </datePicker>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="atq-Zt-QMc"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="Vnx-X4-NU0" firstAttribute="trailing" secondItem="atq-Zt-QMc" secondAttribute="trailing" id="3pL-PY-W6J"/>
+                            <constraint firstItem="Vnx-X4-NU0" firstAttribute="leading" secondItem="atq-Zt-QMc" secondAttribute="leading" id="GWc-Tx-X4a"/>
+                            <constraint firstItem="Vnx-X4-NU0" firstAttribute="top" secondItem="atq-Zt-QMc" secondAttribute="top" id="PIP-qw-Awk"/>
+                        </constraints>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="BuB-Wi-z3q" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="1351" y="616"/>
         </scene>
     </scenes>
     <resources>
         <image name="cellAdd" width="60" height="60"/>
         <image name="time_repeat_nor" width="24" height="24"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
     </resources>
 </document>

+ 13 - 1
artimenring-iOS/Artimenring/Classes/ViewController/Watch/WatchViewController.m

@@ -130,8 +130,10 @@ static NSString * const HeaderReuseIdentifier = @"WatchHeaderID";
         [thirdArray addObject:@(0)];
         [thirdArray addObject:@(1)];
         [thirdArray addObject:@(2)];
-        if (model.match.eventReminder)
+        if (model.match.clock)
             [thirdArray addObject:@(3)];
+        if (model.match.eventReminder)
+            [thirdArray addObject:@(4)];
         mFunctionDic[@"2"] = thirdArray;
         
         NSMutableArray* fourArray = NSMutableArray.new;
@@ -409,6 +411,9 @@ static NSString * const HeaderReuseIdentifier = @"WatchHeaderID";
                         [self showSchoolTime];
                         break;
                     case 3:
+                        [self showAlarmClock];
+                        break;
+                    case 4:
                         [self showEventReminder];
                         break;
                     default:
@@ -576,6 +581,13 @@ static NSString * const HeaderReuseIdentifier = @"WatchHeaderID";
     [self pushViewController:controller animated:YES];
 }
 
+- (void)showAlarmClock {
+    [MobClick event:@"ClickAlarmClockList"];
+    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"SchoolTime" bundle:nil];
+    UIViewController *controller = [storyboard instantiateViewControllerWithIdentifier:@"AlarmClockListVC"];
+    [self pushViewController:controller animated:YES];
+}
+
 - (void)showEventReminder {
     [MobClick event:@"ClickEventReminder"];
     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"EventReminder" bundle:nil];

+ 23 - 0
artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/AlarmClock/AlarmClockDetailViewController.h

@@ -0,0 +1,23 @@
+//
+//  AlarmClockDetailViewController.h
+//  VeryFit Kids
+//
+//  Created by 刘振兴 on 2024/2/1.
+//  Copyright © 2024 BaH Cy. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol AlarmClockDetailDelegate <NSObject>
+- (void)onModelUpdate:(NSInteger)actionType model:(AlarmClockModel*)model;
+@end
+
+@interface AlarmClockDetailViewController : EBaseViewController
+@property(nonatomic, assign) NSInteger mActionType;
+@property(nonatomic, strong) AlarmClockModel* mAlarmClockModel;
+@property(nonatomic, weak) id<AlarmClockDetailDelegate> delegate;
+@end
+
+NS_ASSUME_NONNULL_END

+ 4 - 4
artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/Clock/ClockDetailViewController.m → artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/AlarmClock/AlarmClockDetailViewController.m

@@ -1,18 +1,18 @@
 //
-//  ClockDetailViewController.m
+//  AlarmClockDetailViewController.m
 //  VeryFit Kids
 //
 //  Created by 刘振兴 on 2024/2/1.
 //  Copyright © 2024 BaH Cy. All rights reserved.
 //
 
-#import "ClockDetailViewController.h"
+#import "AlarmClockDetailViewController.h"
 
-@interface ClockDetailViewController ()
+@interface AlarmClockDetailViewController ()
 
 @end
 
-@implementation ClockDetailViewController
+@implementation AlarmClockDetailViewController
 
 - (void)viewDidLoad {
     [super viewDidLoad];

+ 21 - 0
artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/AlarmClock/AlarmClockListCell.h

@@ -0,0 +1,21 @@
+//
+//  AlarmClockListCell.h
+//  Artimenring
+//
+//  Created by 振兴 刘 on 16/4/20.
+//  Copyright © 2016年 BaH Cy. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+
+@protocol AlarmClockListCellDelegate <NSObject>
+- (void)onAlarmClockSwitchChange:(NSInteger)row flag:(NSInteger)flag;
+@end
+
+
+@interface AlarmClockListCell : UITableViewCell
+@property(nonatomic, assign)id<AlarmClockListCellDelegate> delegate;
+- (void)setData:(AlarmClockModel*)dic;
+- (void)AlarmClockSwitchChange:(id)sender;
+@end

+ 43 - 0
artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/AlarmClock/AlarmClockListCell.m

@@ -0,0 +1,43 @@
+//
+//  AlarmClockListCell.m
+//  Artimenring
+//
+//  Created by 振兴 刘 on 16/4/20.
+//  Copyright © 2016年 BaH Cy. All rights reserved.
+//
+
+#import "AlarmClockListCell.h"
+#import "ZSElectricityModeViewController.h"
+
+@implementation AlarmClockListCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+    
+    self.accessoryType = UITableViewCellAccessoryNone;
+    
+    UISwitch *switchBtn = [[UISwitch alloc] init];
+    [switchBtn addTarget:self action:@selector(AlarmClockSwitchChange:) forControlEvents:(UIControlEventValueChanged)];
+    self.accessoryView = switchBtn;
+}
+
+- (void)setData:(AlarmClockModel*)model {
+    NSString* startTime = [EUtil HHmm2hhmm:model.startTime];
+    NSString* endTime = [EUtil HHmm2hhmm:model.endTime];
+    NSString* weekDay = [EUtil parseWeekday:model.weekDay];
+    self.textLabel.text = [NSString stringWithFormat:@"%@ - %@", startTime, endTime];
+    self.detailTextLabel.text = weekDay;
+    
+    UISwitch* switchBtn = (UISwitch*)self.accessoryView;
+    [switchBtn setOn: model.validFlag >= 1];
+}
+
+- (void)AlarmClockSwitchChange:(id)sender {
+    UISwitch* switchBtn = (UISwitch*)sender;
+    if (self.delegate && [self.delegate respondsToSelector:@selector(onAlarmClockSwitchChange:flag:)]) {
+        [self.delegate onAlarmClockSwitchChange:self.tag flag:switchBtn.on? 1:0];
+    }
+}
+
+@end

+ 2 - 2
artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/Clock/ClockListViewController.h → artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/AlarmClock/AlarmClockListViewController.h

@@ -1,5 +1,5 @@
 //
-//  ClockListViewController.h
+//  AlarmClockListViewController.h
 //  Artimenring
 //
 //  Created by 振兴 刘 on 16/4/20.
@@ -9,7 +9,7 @@
 #import <UIKit/UIKit.h>
 #import "EBaseViewController.h"
 
-@interface ClockListViewController : EBaseViewController
+@interface AlarmClockListViewController : EBaseViewController
 
 @property(nonatomic, strong) IBOutlet UITableView* mTableView;
 @property(nonatomic, strong) IBOutlet UIButton* mAddBtn;

+ 71 - 86
artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/Clock/ClockListViewController.m → artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/AlarmClock/AlarmClockListViewController.m

@@ -1,23 +1,23 @@
 //
-//  ClockListViewController.m
+//  AlarmClockListViewController.m
 //  Artimenring
 //
 //  Created by 振兴 刘 on 16/4/20.
 //  Copyright © 2016年 BaH Cy. All rights reserved.
 //
 
-#import "ClockListViewController.h"
-#import "ClockListCell.h"
-#import "ClockDetailViewController.h"
+#import "AlarmClockListViewController.h"
+#import "AlarmClockListCell.h"
+#import "AlarmClockDetailViewController.h"
 #import "EBaseHeaderView.h"
 #import <UMMobClick/MobClick.h>
 
-@interface ClockListViewController ()<UITableViewDelegate, UITableViewDataSource, ClockListCellDelegate, ClockDetailDelegate>
-@property(nonatomic, strong) NSMutableArray* mTimeModlList;
+@interface AlarmClockListViewController ()<UITableViewDelegate, UITableViewDataSource, AlarmClockListCellDelegate, AlarmClockDetailDelegate>
+@property(nonatomic, strong) NSMutableArray<AlarmClockModel*>* mModelList;
 @end
 
 
-@implementation ClockListViewController
+@implementation AlarmClockListViewController
 
 - (void)viewDidLoad {
     [super viewDidLoad];
@@ -31,14 +31,13 @@
     [self.navigationController setNavigationBarHidden:NO];
     [EUtil setViewShadow:self.mAddBtn color:[UIColor colorWithRed:44/255.0f green:156/255.0f blue:255/255.0f alpha:1] offset:CGSizeMake(0, 2) opacity:0.4 radius:4];
     
-    self.mTimeModlList = [NSMutableArray new];
-    
-    [self getClockList];
+    self.mModelList = [NSMutableArray new];
+    [self requestAlarmClock];
 }
 
 - (void)viewWillAppear:(BOOL)animated {
     [super viewWillAppear:animated];
-    self.title = NSLocalizedString(@"STL.Title", nil);
+    self.title = NSLocalizedString(@"AC.Title", nil);
 }
 
 - (void)viewDidAppear:(BOOL)animated {
@@ -52,17 +51,20 @@
 }
 
 #pragma mark - Network
-- (void)getClockList {
+- (void)requestAlarmClock {
+#ifdef SK_DEBUG_DATA
+    NSArray* data = [SKTestData schoolAlarmTimes];
+    self.mModelList = [AlarmClockModel mj_objectArrayWithKeyValuesArray:data];
+    [_mTableView reloadData];
+#else
+    @weakify(self);
     NSString* cid = [DataManager shared].mSelectChildModel.childId;
     [self ShowHUBWithText:NSLocalizedString(@"DB.GetWatch.Info", nil)];
     [ERequest httpRequest:@{} path:cid httpURL:URL_SCHOOL_TIME httpMethod:@"GET" onSuccess:^(NSDictionary *result) {
         [self HiddenHUB];
         if ([ERequest isSuccessWithResult:result]){
-            for (NSDictionary* dic in result[@"data"]) {
-                ClockModel* model = [ClockModel mj_objectWithKeyValues:dic];
-                [self.mTimeModlList addObject:model];
-                [_mTableView reloadData];
-            }
+            self.mModelList = [AlarmClockModel mj_objectArrayWithKeyValuesArray:result[@"data"]];
+            [_mTableView reloadData];
         } else {
             [EasyTextView showErrorText:result[@"message"]];
         }
@@ -70,24 +72,25 @@
         [self HiddenHUB];
         [EasyTextView showErrorText:NSLocalizedString(@"Network.Error", nil)];
     }];
+#endif
 }
 
-- (void)updateClockList:(NSInteger)row flag:(NSInteger)flag {
+- (void)updateAlarmClock:(NSInteger)row flag:(NSInteger)flag {
+    AlarmClockModel* model = [self.mModelList objectAtIndex:row];
     NSDictionary *param = @{
-                            @"rowId":self.mTimeModlList[row][@"RowId"],
-                            @"startTime":self.mTimeModlList[row][@"StartTime"],
-                            @"endTime":self.mTimeModlList[row][@"EndTime"],
-                            @"holidaysFlag":[NSNumber numberWithInteger:[self.mTimeModlList[row][@"HolidaysFlag"] integerValue]],
-                            @"weekDay":self.mTimeModlList[row][@"WeekDay"],
-                            @"validFlag":[NSNumber numberWithInteger:flag],
-                            };
-
+        @"id" : @(model._id),
+        @"startTime" : model.startTime,
+        @"endTime" : model.endTime,
+        @"holidaysFlag" : @(model.holidaysFlag),
+        @"weekDay" : model.weekDay,
+        @"validFlag" : @(flag),
+    };
     [self ShowHUBWithText:NSLocalizedString(@"DB.GetWatch.Info", nil)];
     [ERequest httpRequest:param httpURL:URL_SCHOOL_TIME_HANDOFF httpMethod:@"PUT" onSuccess:^(NSDictionary *result) {
         [self HiddenHUB];
         if ([ERequest isSuccessWithResult:result]){
-             [EasyTextView showSuccessText:NSLocalizedString(@"Modify.Done", nil)];
-            self.mTimeModlList[row][@"ValidFlag"] = [NSNumber numberWithInteger:flag];
+            [EasyTextView showSuccessText:NSLocalizedString(@"Modify.Done", nil)];
+            model.validFlag = flag;
             [_mTableView reloadData];
         } else {
             [EasyTextView showErrorText:result[@"message"]];
@@ -95,93 +98,85 @@
     } onFailure:^(NSError *error) {
         [self HiddenHUB];
         [EasyTextView showErrorText:NSLocalizedString(@"Network.Error", nil)];
-        NSLog(@"%@",error);
     }];
 }
 
-- (void)deleteClockList:(NSInteger)row
-{
+- (void)deleteAlarmClock:(NSInteger)row {
+    AlarmClockModel* model = [self.mModelList objectAtIndex:row];
     NSDictionary *param = @{
-                            @"cid":[DataManager shared].mSelectChildModel.childId,
-                            @"rowId": self.mTimeModlList[row][@"RowId"],
-                            };
-
+        @"cid" : [DataManager shared].mSelectChildModel.childId,
+        @"id" : @(model._id),
+    };
     [self ShowHUBWithText:NSLocalizedString(@"DB.GetWatch.Info", nil)];
-    
     [ERequest httpRequest:param httpURL:URL_SCHOOL_TIME httpMethod:@"DELETE" onSuccess:^(NSDictionary *result) {
         [self HiddenHUB];
         if ([ERequest isSuccessWithResult:result]){
-            
-            [self.mTimeModlList removeObjectAtIndex:row];
+            [self.mModelList removeObjectAtIndex:row];
             [_mTableView reloadData];
-            
         } else {
             [EasyTextView showErrorText:result[@"message"]];
         }
     } onFailure:^(NSError *error) {
         [self HiddenHUB];
         [EasyTextView showErrorText:NSLocalizedString(@"Network.Error", nil)];
-        NSLog(@"%@",error);
     }];
 }
 
-- (IBAction)addTimeAction:(id)sender {
-    [MobClick event:@"ClickClockSetting"];
-    ClockDetailViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"ClockDetailVC"];
+- (IBAction)showAlarmClockDetail:(id)sender {
+    [MobClick event:@"ClickAlarmClockSetting"];
+    AlarmClockDetailViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"AlarmClockDetailVC"];
     controller.mActionType = 0;
-    controller.mClockModel = [[ClockModel alloc] init];
+    controller.mAlarmClockModel = [[AlarmClockModel alloc] init];
     controller.delegate = self;
     [self pushViewController:controller animated:YES];
 }
 
-- (void)onClockSwitchChange:(NSInteger)row flag:(NSInteger)flag {
-    [self updateClockList:row flag:flag];
+- (void)onAlarmClockSwitchChange:(NSInteger)row flag:(NSInteger)flag {
+    [self updateAlarmClock:row flag:flag];
 }
 
-- (void)onClockChange:(NSInteger)actionType change:(ClockModel*)model {
+- (void)onAlarmClockChange:(NSInteger)actionType change:(AlarmClockModel*)model {
     if (actionType == 0) {
         //添加
-        [self.mTimeModlList addObject:model];
+        [self.mModelList addObject:model];
     } else if (actionType == 1) {
         //更新
-        for (int i = 0; i < self.mTimeModlList.count; i++) {
-            ClockModel* cellModel = [self.mTimeModlList objectAtIndex:i];
+        for (int i = 0; i < self.mModelList.count; i++) {
+            AlarmClockModel* cellModel = [self.mModelList objectAtIndex:i];
             if (cellModel._id != model._id)
                 continue;
-            [BaseModel replaceObject:self.mTimeModlList oldObject:cellModel newObject:model];
+            [BaseModel replaceObject:self.mModelList oldObject:cellModel newObject:model];
         }
     } else if (actionType == 2) {
         //删除
-        for (ClockModel* cellModel in self.mTimeModlList) {
+        for (AlarmClockModel* cellModel in self.mModelList) {
             if (cellModel._id != model._id)
                 continue;
-            [self.mTimeModlList removeObject:cellModel];
+            [self.mModelList removeObject:cellModel];
             break;
         }
     }
 }
 
 #pragma mark - tableView
-- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
-{
-    static NSString *cellID = @"ClockListCellID";
-    ClockListCell *cell = (ClockListCell*)[_mTableView dequeueReusableCellWithIdentifier:cellID forIndexPath:indexPath];
-    if(cell == nil)
-    {
-        cell = [[ClockListCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellID];
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+    static NSString *cellID = @"AlarmClockListCellID";
+    AlarmClockListCell *cell = (AlarmClockListCell*)[_mTableView dequeueReusableCellWithIdentifier:cellID forIndexPath:indexPath];
+    if(cell == nil) {
+        cell = [[AlarmClockListCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellID];
     }
     
     [cell setTag:indexPath.row];
     cell.delegate = self;
-    [cell setData:self.mTimeModlList[indexPath.row]];
+    [cell setData:self.mModelList[indexPath.row]];
     return cell;
 }
 
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
     [self.mTableView deselectRowAtIndexPath:indexPath animated:YES];
-    [MobClick event:@"ClickClockSetting"];
-    ClockDetailViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"ClockDetailVC"];
-    controller.mClockModel = self.mTimeModlList[indexPath.row];
+    [MobClick event:@"ClickAlarmClockSetting"];
+    AlarmClockDetailViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"AlarmClockDetailVC"];
+    controller.mAlarmClockModel = self.mModelList[indexPath.row];
     controller.mActionType = 1;
     controller.delegate = self;
     [self pushViewController:controller animated:YES];
@@ -191,63 +186,53 @@
     return 2;
 }
 
-- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
-{
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
     if (section == 0)
         return 0;
     else
-        return self.mTimeModlList.count;
+        return self.mModelList.count;
 }
 
 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
-    
     if (section == 0) {
         EBaseHeaderView *baseView = [[NSBundle mainBundle] loadNibNamed:@"EBaseHeaderView" owner:self options:nil][0];
         [baseView setFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_WIDTH*0.576)];
-        [baseView.mBaseHeaderImage setImage:[UIImage imageNamed:@"banner_classtime"]];
+        [baseView.mBaseHeaderImage setImage:[UIImage imageNamed:@"banner_alarmclock"]];
         return baseView;
     }
-    else {
-        return nil;
-    }
+    return nil;
 }
 
-- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
-{
+- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
     if (section == 0)
         return SCREEN_WIDTH*0.576;
     else
         return 0;
 }
 
-- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
-{
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
     return 78;
 }
 
-- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
-{
+- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
     if (indexPath.section == 0)
         return UITableViewCellEditingStyleNone;
     else
         return UITableViewCellEditingStyleDelete;
 }
 
-- (NSString*)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
-{
+- (NSString*)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath {
     return NSLocalizedString(@"STL.Delete", nil);
 }
 
-- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
-{
+- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
     if(editingStyle == UITableViewCellEditingStyleDelete)
-        [self deleteClockList:indexPath.row];
+        [self deleteAlarmClock:indexPath.row];
 }
 
--(NSArray<UITableViewRowAction*>*)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
-{
+- (NSArray<UITableViewRowAction*>*)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath {
     UITableViewRowAction *rowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:NSLocalizedString(@"STL.Delete", nil) handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
-            [self deleteClockList:indexPath.row];
+            [self deleteAlarmClock:indexPath.row];
         }];
     rowAction.backgroundColor = [UIColor colorWithRed:255/255.0f green:69/255.0f blue:146/255.0f alpha:1];
     NSArray *arr = @[rowAction];

+ 0 - 17
artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/Clock/ClockDetailViewController.h

@@ -1,17 +0,0 @@
-//
-//  ClockDetailViewController.h
-//  VeryFit Kids
-//
-//  Created by 刘振兴 on 2024/2/1.
-//  Copyright © 2024 BaH Cy. All rights reserved.
-//
-
-#import <UIKit/UIKit.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface ClockDetailViewController : UIViewController
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 27
artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/Clock/ClockListCell.h

@@ -1,27 +0,0 @@
-//
-//  ClockListCell.h
-//  Artimenring
-//
-//  Created by 振兴 刘 on 16/4/20.
-//  Copyright © 2016年 BaH Cy. All rights reserved.
-//
-
-#import <UIKit/UIKit.h>
-
-
-@protocol ClockListCellDelegate <NSObject>
-
-- (void)onClockSwitchChange:(NSInteger)row flag:(NSInteger)flag;
-
-@end
-
-
-@interface ClockListCell : UITableViewCell
-
-@property(nonatomic, assign)id<ClockListCellDelegate> delegate;
-
-- (void)setData:(NSDictionary*)dic;
-
-- (void)ClockSwitchChange:(id)sender;
-
-@end

+ 0 - 58
artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/Clock/ClockListCell.m

@@ -1,58 +0,0 @@
-//
-//  ClockListCell.m
-//  Artimenring
-//
-//  Created by 振兴 刘 on 16/4/20.
-//  Copyright © 2016年 BaH Cy. All rights reserved.
-//
-
-#import "ClockListCell.h"
-#import "ZSElectricityModeViewController.h"
-
-@implementation ClockListCell
-
-- (void)awakeFromNib {
-    [super awakeFromNib];
-    // Initialization code
-    
-    self.accessoryType = UITableViewCellAccessoryNone;
-    
-    UISwitch *switchBtn = [[UISwitch alloc] init];
-    [switchBtn addTarget:self action:@selector(ClockSwitchChange:) forControlEvents:(UIControlEventValueChanged)];
-    self.accessoryView = switchBtn;
-}
-
-- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
-    [super setSelected:selected animated:animated];
-
-    // Configure the view for the selected state
-}
-
-- (void)setData:(NSDictionary*)dic
-{
-    [self setTitle:dic];
-    [self refreshView:dic];
-}
-
-- (void)setTitle:(NSDictionary*)dic
-{
-    self.textLabel.text = [NSString stringWithFormat:@"%@ - %@", [EUtil HHmm2hhmm:dic[@"StartTime"]], [EUtil HHmm2hhmm:dic[@"EndTime"]]];
-    self.detailTextLabel.text = [EUtil parseWeekday:dic[@"WeekDay"]];
-}
-
-- (void)refreshView:(NSDictionary*)dic
-{
-    NSInteger iSwitch = [dic[@"ValidFlag"] integerValue];
-    UISwitch* switchBtn = (UISwitch*)self.accessoryView;
-    [switchBtn setOn: iSwitch == 1? YES:NO];
-}
-
-- (void)ClockSwitchChange:(id)sender
-{
-    UISwitch* switchBtn = (UISwitch*)sender;
-    if (self.delegate && [self.delegate respondsToSelector:@selector(onClockSwitchChange:flag:)]) {
-        [self.delegate onClockSwitchChange:self.tag flag:switchBtn.on? 1:0];
-    }
-}
-
-@end

+ 1 - 1
artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/SchoolTime/SchoolTimeDetailViewController.h

@@ -10,7 +10,7 @@
 #import "EBaseViewController.h"
 
 @protocol SchoolTimeDetailDelegate <NSObject>
-- (void)onSchoolTimeChange:(NSInteger)actionType change:(SchoolTimeModel*)model;
+- (void)onModelUpdate:(NSInteger)actionType model:(SchoolTimeModel*)model;
 @end
 
 

+ 6 - 6
artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/SchoolTime/SchoolTimeDetailViewController.m

@@ -132,8 +132,8 @@
         if([ERequest isSuccessWithResult:result]) {
             [EasyTextView showSuccessText:NSLocalizedString(@"Request.Modify.Success", nil)];
             
-            if (weak_self.delegate && [weak_self.delegate respondsToSelector:@selector(onSchoolTimeChange:change:)]) {
-                [weak_self.delegate onSchoolTimeChange:1 change:weak_self.mSchoolTimeModel];
+            if (weak_self.delegate && [weak_self.delegate respondsToSelector:@selector(onModelUpdate:model:)]) {
+                [weak_self.delegate onModelUpdate:1 model:weak_self.mSchoolTimeModel];
             }
             [self backToPreviousPage:[UIButton new]];
         } else {
@@ -160,8 +160,8 @@
         [self HiddenHUB];
         if([ERequest isSuccessWithResult:result]) {
             [EasyTextView showSuccessText:NSLocalizedString(@"Request.Modify.Success", nil)];
-            if (weak_self.delegate && [weak_self.delegate respondsToSelector:@selector(onSchoolTimeChange:change:)]) {
-                [weak_self.delegate onSchoolTimeChange:0 change:weak_self.mSchoolTimeModel];
+            if (weak_self.delegate && [weak_self.delegate respondsToSelector:@selector(onModelUpdate:model:)]) {
+                [weak_self.delegate onModelUpdate:0 model:weak_self.mSchoolTimeModel];
             }
             [weak_self backToPreviousPage:[UIButton new]];
         } else {
@@ -182,8 +182,8 @@
     [ERequest httpRequest:param httpURL:URL_SCHOOL_TIME httpMethod:@"POST" onSuccess:^(NSDictionary *result) {
         [self HiddenHUB];
         if ([ERequest isSuccessWithResult:result]){
-            if (weak_self.delegate && [weak_self.delegate respondsToSelector:@selector(onSchoolTimeChange:change:)]) {
-                [weak_self.delegate onSchoolTimeChange:2 change:weak_self.mSchoolTimeModel];
+            if (weak_self.delegate && [weak_self.delegate respondsToSelector:@selector(onModelUpdate:model:)]) {
+                [weak_self.delegate onModelUpdate:2 model:weak_self.mSchoolTimeModel];
             }
             [self backToPreviousPage:[UIButton new]];
             

+ 1 - 1
artimenring-iOS/Artimenring/Classes/ViewController/WatchFunction/SchoolTime/SchoolTimeListViewController.m

@@ -129,7 +129,7 @@
     [self updateSchoolTime:row flag:flag];
 }
 
-- (void)onSchoolTimeChange:(NSInteger)actionType change:(SchoolTimeModel*)model {
+- (void)onModelUpdate:(NSInteger)actionType model:(SchoolTimeModel*)model {
     if (actionType == 0) {
         //添加
         [self.mModelList addObject:model];

+ 3 - 3
artimenring-iOS/Artimenring/Images.xcassets/Setting/Contents.json

@@ -1,6 +1,6 @@
 {
   "info" : {
-    "version" : 1,
-    "author" : "xcode"
+    "author" : "xcode",
+    "version" : 1
   }
-}
+}

+ 22 - 0
artimenring-iOS/Artimenring/Images.xcassets/Setting/banner_alarmclock.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "banner_alarmclock@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "banner_alarmclock@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
artimenring-iOS/Artimenring/Images.xcassets/Setting/banner_alarmclock.imageset/banner_alarmclock@2x.png


BIN
artimenring-iOS/Artimenring/Images.xcassets/Setting/banner_alarmclock.imageset/banner_alarmclock@3x.png


+ 3 - 3
artimenring-iOS/Artimenring/Images.xcassets/Watch/Contents.json

@@ -1,6 +1,6 @@
 {
   "info" : {
-    "version" : 1,
-    "author" : "xcode"
+    "author" : "xcode",
+    "version" : 1
   }
-}
+}

+ 22 - 0
artimenring-iOS/Artimenring/Images.xcassets/Watch/watch_icon_2_4.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "watch_icon_2_4@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "watch_icon_2_4@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
artimenring-iOS/Artimenring/Images.xcassets/Watch/watch_icon_2_4.imageset/watch_icon_2_4@2x.png


BIN
artimenring-iOS/Artimenring/Images.xcassets/Watch/watch_icon_2_4.imageset/watch_icon_2_4@3x.png


+ 5 - 1
artimenring-iOS/Artimenring/en.lproj/Localizable.strings

@@ -379,6 +379,9 @@
 "BDI.Input.Class" = "Input baby class";  
 "BDI.No.Admin" = "Non administrators cannot modify."; 
 
+//Alarm clock
+"AC.Title" = "Alarm Clock";
+
 //SchoolTimeList
 "STL.Title" = "School Mode";
 "STL.Title.Section" = "Disable period"; 
@@ -958,7 +961,8 @@
 "Watch.Admin.2.0" = "Track history";
 "Watch.Admin.2.1" = "Geo Fence";
 "Watch.Admin.2.2" = "School Mode";
-"Watch.Admin.2.3" = "Calendar";
+"Watch.Admin.2.3" = "Alarm clock";
+"Watch.Admin.2.4" = "Calendar";
 
 "Watch.Admin.3.0" = "Watch Wi-Fi";
 "Watch.Admin.3.1" = "Power On/Off Settings";

+ 5 - 1
artimenring-iOS/Artimenring/zh-Hans.lproj/Localizable.strings

@@ -376,6 +376,9 @@
 "BDI.Input.Class" = "请输入宝贝班级";
 "BDI.No.Admin" = "非管理员不可以修改";
 
+//Alarm clock
+"AC.Title" = "闹钟";
+
 //SchoolTimeList
 "STL.Title" = "上课禁用";
 "STL.Title.Section" = "禁用时段";
@@ -955,7 +958,8 @@
 "Watch.Admin.2.0" = "历史轨迹";
 "Watch.Admin.2.1" = "电子围栏";
 "Watch.Admin.2.2" = "上课禁用";
-"Watch.Admin.2.3" = "活动提醒";
+"Watch.Admin.2.3" = "闹钟";
+"Watch.Admin.2.4" = "活动提醒";
 
 "Watch.Admin.3.0" = "手表Wi-Fi";
 "Watch.Admin.3.1" = "开关机设置";

+ 26 - 0
artimenring-iOS/VeryFit Kids.xcodeproj/project.pbxproj

@@ -326,6 +326,9 @@
 		E4781B832B6A3264008CB674 /* ChatInputBarView.m in Sources */ = {isa = PBXBuildFile; fileRef = E4781B822B6A3264008CB674 /* ChatInputBarView.m */; };
 		E4781B852B6A33FE008CB674 /* ChatInputBarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E4781B842B6A33FE008CB674 /* ChatInputBarView.xib */; };
 		E47A722E2AFBA3F100656945 /* EUtil.mm in Sources */ = {isa = PBXBuildFile; fileRef = E47A722D2AFBA3F100656945 /* EUtil.mm */; };
+		E47FBA2A2B6B6CF000BB42DE /* AlarmClockListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E47FBA272B6B6CF000BB42DE /* AlarmClockListCell.m */; };
+		E47FBA2B2B6B6CF000BB42DE /* AlarmClockListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E47FBA282B6B6CF000BB42DE /* AlarmClockListViewController.m */; };
+		E47FBA2C2B6B6CF000BB42DE /* AlarmClockDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E47FBA292B6B6CF000BB42DE /* AlarmClockDetailViewController.m */; };
 		E4845D0E2B677E54000C0D26 /* DataManager+address.m in Sources */ = {isa = PBXBuildFile; fileRef = E4845D0D2B677E54000C0D26 /* DataManager+address.m */; };
 		E4888F6F2B4C04E100941B4F /* SKPushMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = E4888F6E2B4C04E100941B4F /* SKPushMessage.m */; };
 		E4888F722B4C0F2C00941B4F /* MainViewController+watch.m in Sources */ = {isa = PBXBuildFile; fileRef = E4888F712B4C0F2C00941B4F /* MainViewController+watch.m */; };
@@ -1026,6 +1029,12 @@
 		E4781B822B6A3264008CB674 /* ChatInputBarView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChatInputBarView.m; sourceTree = "<group>"; };
 		E4781B842B6A33FE008CB674 /* ChatInputBarView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChatInputBarView.xib; sourceTree = "<group>"; };
 		E47A722D2AFBA3F100656945 /* EUtil.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = EUtil.mm; sourceTree = "<group>"; };
+		E47FBA242B6B6CF000BB42DE /* AlarmClockListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlarmClockListViewController.h; sourceTree = "<group>"; };
+		E47FBA252B6B6CF000BB42DE /* AlarmClockListCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlarmClockListCell.h; sourceTree = "<group>"; };
+		E47FBA262B6B6CF000BB42DE /* AlarmClockDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlarmClockDetailViewController.h; sourceTree = "<group>"; };
+		E47FBA272B6B6CF000BB42DE /* AlarmClockListCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AlarmClockListCell.m; sourceTree = "<group>"; };
+		E47FBA282B6B6CF000BB42DE /* AlarmClockListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AlarmClockListViewController.m; sourceTree = "<group>"; };
+		E47FBA292B6B6CF000BB42DE /* AlarmClockDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AlarmClockDetailViewController.m; sourceTree = "<group>"; };
 		E4845D0C2B677E54000C0D26 /* DataManager+address.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "DataManager+address.h"; sourceTree = "<group>"; };
 		E4845D0D2B677E54000C0D26 /* DataManager+address.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "DataManager+address.m"; sourceTree = "<group>"; };
 		E4888F6D2B4C04E100941B4F /* SKPushMessage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SKPushMessage.h; sourceTree = "<group>"; };
@@ -2159,6 +2168,7 @@
 		E459F0312B6B3D16002571E3 /* WatchFunction */ = {
 			isa = PBXGroup;
 			children = (
+				E47FBA232B6B6CF000BB42DE /* AlarmClock */,
 				E459F0562B6B3D16002571E3 /* APN */,
 				E459F05F2B6B3D16002571E3 /* ElectricityMode */,
 				E459F0642B6B3D16002571E3 /* EyeCare */,
@@ -2335,6 +2345,19 @@
 			path = Chat/UUChat;
 			sourceTree = "<group>";
 		};
+		E47FBA232B6B6CF000BB42DE /* AlarmClock */ = {
+			isa = PBXGroup;
+			children = (
+				E47FBA262B6B6CF000BB42DE /* AlarmClockDetailViewController.h */,
+				E47FBA292B6B6CF000BB42DE /* AlarmClockDetailViewController.m */,
+				E47FBA252B6B6CF000BB42DE /* AlarmClockListCell.h */,
+				E47FBA272B6B6CF000BB42DE /* AlarmClockListCell.m */,
+				E47FBA242B6B6CF000BB42DE /* AlarmClockListViewController.h */,
+				E47FBA282B6B6CF000BB42DE /* AlarmClockListViewController.m */,
+			);
+			path = AlarmClock;
+			sourceTree = "<group>";
+		};
 		E49A836F2B625B3A00D5B289 /* Call */ = {
 			isa = PBXGroup;
 			children = (
@@ -2993,6 +3016,7 @@
 				E46FBAEB2B2FE4F7000404E9 /* SKWebSocket+domains.m in Sources */,
 				E4FE9B952AD9465100DEABCA /* MYBlurIntroductionView.m in Sources */,
 				E4FE9B712AD9465100DEABCA /* NSCalendar+FSExtension.m in Sources */,
+				E47FBA2B2B6B6CF000BB42DE /* AlarmClockListViewController.m in Sources */,
 				276ABB9B1B4CCFCA00FADF6C /* AddRoundView.m in Sources */,
 				E539AD311B0DB89E004B71F3 /* SelectPictureView.swift in Sources */,
 				E4FE9B782AD9465100DEABCA /* IconActionSheet.m in Sources */,
@@ -3163,6 +3187,7 @@
 				E4D46A422ADE2D980092AB29 /* NSData+AES.m in Sources */,
 				27BECA211CBB504E00E3FD19 /* VoiceConverter.mm in Sources */,
 				271CD165200493830060C574 /* PushHistoryViewController.m in Sources */,
+				E47FBA2A2B6B6CF000BB42DE /* AlarmClockListCell.m in Sources */,
 				E4D46A222ADE2CE70092AB29 /* CircleProgressView.m in Sources */,
 				E4FE9B602AD9465100DEABCA /* SSLunarDate.m in Sources */,
 				E4FE9B692AD9465100DEABCA /* SSHolidayUS.m in Sources */,
@@ -3218,6 +3243,7 @@
 				E4FE9B5F2AD9465100DEABCA /* SSLunarDateHoliday.m in Sources */,
 				E4FE9B8C2AD9465100DEABCA /* ASDaySelectionView.m in Sources */,
 				27CF315D2003048B008600C2 /* FenceDetailViewCell.m in Sources */,
+				E47FBA2C2B6B6CF000BB42DE /* AlarmClockDetailViewController.m in Sources */,
 				E4FE9B6C2AD9465100DEABCA /* FSCalendarHeader.m in Sources */,
 				E4FE9B682AD9465100DEABCA /* SSHolidayHK.m in Sources */,
 				27C621BC1F3C513000C2B7A3 /* BindDeviceRelationViewController.m in Sources */,