萤石云 iOSSDK,移植跨平台相关工程
1.引入自定义button和scrollview 2.引入时间选择器组件 3.完善临时密码功能 4.修改部分类名
23个文件已添加
4个文件已删除
10个文件已修改
2176 ■■■■■ 已修改文件
EZSDK/EZSDK.xcodeproj/project.pbxproj 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/Base/HDLEZBaseViewController.m 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/Base/HDLEZButton.h 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/Base/HDLEZButton.m 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/Base/HDLEZScrollView.h 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/Base/HDLEZScrollView.m 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/Base/HDLEZTopBarView.h 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/Base/HDLEZTopBarView.m 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/Global/EZHttpUtil.m 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/Global/HDLEZConstants.h 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/Global/HDLEZConstants.m 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/PrefixHeader.pch 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZCreatTempPassViewController.h 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZCreatTempPassViewController.m 231 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZInputViewController.h 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZInputViewController.m 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZTempDetailViewController.h 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZTempDetailViewController.m 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZVisitorRecordViewController.m 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLFVTempPassViewController.h 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLFVTempPassViewController.m 339 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZCreateTemPassView.h 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZCreateTemPassView.m 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZInputView.h 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZInputView.m 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZNormalCellView.h 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZNormalCellView.m 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZTempDetailView.h 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZTempDetailView.m 239 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVisitorRecordCell.m 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/TempPassword/Views/HDLFVCreateTemPassView.h 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/TempPassword/Views/HDLFVCreateTemPassView.m 240 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/Venders/FQDateTimeSDK.framework/FQDateTimeSDK 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/Venders/FQDateTimeSDK.framework/Headers/FQDateTimePickerView.h 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/Venders/FQDateTimeSDK.framework/Headers/FQDateTimeSDK.h 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/Venders/FQDateTimeSDK.framework/Info.plist 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK/EZ/Venders/FQDateTimeSDK.framework/Modules/module.modulemap 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EZSDK/EZSDK.xcodeproj/project.pbxproj
@@ -10,12 +10,22 @@
        AE5068D829B9DB5E009EA09A /* HDLEZTemInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = AE5068D729B9DB5E009EA09A /* HDLEZTemInfoModel.m */; };
        AEC306D229B9F2B5000B3861 /* HDLEZVisitorRecordView.m in Sources */ = {isa = PBXBuildFile; fileRef = AEC306D129B9F2B5000B3861 /* HDLEZVisitorRecordView.m */; };
        AEC306D529B9F2DB000B3861 /* HDLEZVisitorRecordCell.m in Sources */ = {isa = PBXBuildFile; fileRef = AEC306D429B9F2DB000B3861 /* HDLEZVisitorRecordCell.m */; };
        AEDD437F29BED161001D9477 /* HDLEZButton.m in Sources */ = {isa = PBXBuildFile; fileRef = AEDD437D29BED161001D9477 /* HDLEZButton.m */; };
        AEDD438229BEE6C2001D9477 /* HDLEZCreatTempPassViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AEDD438029BEE6C2001D9477 /* HDLEZCreatTempPassViewController.m */; };
        AEDD438529BEE6D2001D9477 /* HDLEZCreateTemPassView.m in Sources */ = {isa = PBXBuildFile; fileRef = AEDD438429BEE6D2001D9477 /* HDLEZCreateTemPassView.m */; };
        AEDD438929BEF0CD001D9477 /* HDLEZNormalCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = AEDD438829BEF0CD001D9477 /* HDLEZNormalCellView.m */; };
        AEDD438C29BF2C50001D9477 /* HDLEZInputViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AEDD438B29BF2C50001D9477 /* HDLEZInputViewController.m */; };
        AEDD438F29BF2C78001D9477 /* HDLEZInputView.m in Sources */ = {isa = PBXBuildFile; fileRef = AEDD438E29BF2C78001D9477 /* HDLEZInputView.m */; };
        AEDD944129B0329D00EAA2CA /* libEZOpenSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AEDD940729B0329D00EAA2CA /* libEZOpenSDK.a */; };
        AEE4704529C03DA300480163 /* FQDateTimeSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AEE4704429C03DA300480163 /* FQDateTimeSDK.framework */; };
        AEE4704C29C061AC00480163 /* HDLEZTempDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AEE4704B29C061AC00480163 /* HDLEZTempDetailViewController.m */; };
        AEE4704F29C061DF00480163 /* HDLEZTempDetailView.m in Sources */ = {isa = PBXBuildFile; fileRef = AEE4704E29C061DF00480163 /* HDLEZTempDetailView.m */; };
        AEE84D3B29BABAC00078FDAD /* HDLEZVisitorRecordViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AEE84D3929BABABF0078FDAD /* HDLEZVisitorRecordViewController.m */; };
        AEE84D3F29BAC5BF0078FDAD /* HDLEZBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AEE84D3D29BAC5BC0078FDAD /* HDLEZBaseViewController.m */; };
        AEE84D4329BAC7FE0078FDAD /* HDLEZConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = AEE84D4129BAC7F90078FDAD /* HDLEZConstants.m */; };
        AEE84D4629BACBAD0078FDAD /* HDLEZTopBarView.m in Sources */ = {isa = PBXBuildFile; fileRef = AEE84D4429BACBAA0078FDAD /* HDLEZTopBarView.m */; };
        AEE84D4929BAE2590078FDAD /* HDLEZNoDataView.m in Sources */ = {isa = PBXBuildFile; fileRef = AEE84D4829BAE2590078FDAD /* HDLEZNoDataView.m */; };
        AEF0148F29C188ED00D014FD /* HDLEZScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = AEF0148E29C188ED00D014FD /* HDLEZScrollView.m */; };
        B95AB87E26984D49007BC8D7 /* HDLAlarmInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = B95AB87D26984D49007BC8D7 /* HDLAlarmInfo.m */; };
        B95AB88726984DD5007BC8D7 /* NSObject+YYModel.m in Sources */ = {isa = PBXBuildFile; fileRef = B95AB88426984DD5007BC8D7 /* NSObject+YYModel.m */; };
        B95AB88826984DD5007BC8D7 /* YYClassInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = B95AB88526984DD5007BC8D7 /* YYClassInfo.m */; };
@@ -175,6 +185,18 @@
        AEC306D129B9F2B5000B3861 /* HDLEZVisitorRecordView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HDLEZVisitorRecordView.m; sourceTree = "<group>"; };
        AEC306D329B9F2DA000B3861 /* HDLEZVisitorRecordCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDLEZVisitorRecordCell.h; sourceTree = "<group>"; };
        AEC306D429B9F2DB000B3861 /* HDLEZVisitorRecordCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HDLEZVisitorRecordCell.m; sourceTree = "<group>"; };
        AEDD437D29BED161001D9477 /* HDLEZButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HDLEZButton.m; sourceTree = "<group>"; };
        AEDD437E29BED161001D9477 /* HDLEZButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDLEZButton.h; sourceTree = "<group>"; };
        AEDD438029BEE6C2001D9477 /* HDLEZCreatTempPassViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HDLEZCreatTempPassViewController.m; sourceTree = "<group>"; };
        AEDD438129BEE6C2001D9477 /* HDLEZCreatTempPassViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDLEZCreatTempPassViewController.h; sourceTree = "<group>"; };
        AEDD438329BEE6D2001D9477 /* HDLEZCreateTemPassView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDLEZCreateTemPassView.h; sourceTree = "<group>"; };
        AEDD438429BEE6D2001D9477 /* HDLEZCreateTemPassView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HDLEZCreateTemPassView.m; sourceTree = "<group>"; };
        AEDD438729BEF0CD001D9477 /* HDLEZNormalCellView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDLEZNormalCellView.h; sourceTree = "<group>"; };
        AEDD438829BEF0CD001D9477 /* HDLEZNormalCellView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HDLEZNormalCellView.m; sourceTree = "<group>"; };
        AEDD438A29BF2C50001D9477 /* HDLEZInputViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HDLEZInputViewController.h; sourceTree = "<group>"; };
        AEDD438B29BF2C50001D9477 /* HDLEZInputViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HDLEZInputViewController.m; sourceTree = "<group>"; };
        AEDD438D29BF2C78001D9477 /* HDLEZInputView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HDLEZInputView.h; sourceTree = "<group>"; };
        AEDD438E29BF2C78001D9477 /* HDLEZInputView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HDLEZInputView.m; sourceTree = "<group>"; };
        AEDD940729B0329D00EAA2CA /* libEZOpenSDK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libEZOpenSDK.a; sourceTree = "<group>"; };
        AEDD940929B0329D00EAA2CA /* EZConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZConstants.h; sourceTree = "<group>"; };
        AEDD940A29B0329D00EAA2CA /* EZHCNetDeviceSDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZHCNetDeviceSDK.h; sourceTree = "<group>"; };
@@ -230,6 +252,11 @@
        AEDD943E29B0329D00EAA2CA /* EZSADPDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZSADPDeviceInfo.h; sourceTree = "<group>"; };
        AEDD943F29B0329D00EAA2CA /* EZStorageInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZStorageInfo.h; sourceTree = "<group>"; };
        AEDD944029B0329D00EAA2CA /* EZConstants_WifiConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZConstants_WifiConfig.h; sourceTree = "<group>"; };
        AEE4704429C03DA300480163 /* FQDateTimeSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FQDateTimeSDK.framework; sourceTree = "<group>"; };
        AEE4704A29C061AC00480163 /* HDLEZTempDetailViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HDLEZTempDetailViewController.h; sourceTree = "<group>"; };
        AEE4704B29C061AC00480163 /* HDLEZTempDetailViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HDLEZTempDetailViewController.m; sourceTree = "<group>"; };
        AEE4704D29C061DF00480163 /* HDLEZTempDetailView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HDLEZTempDetailView.h; sourceTree = "<group>"; };
        AEE4704E29C061DF00480163 /* HDLEZTempDetailView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HDLEZTempDetailView.m; sourceTree = "<group>"; };
        AEE84D3929BABABF0078FDAD /* HDLEZVisitorRecordViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HDLEZVisitorRecordViewController.m; sourceTree = "<group>"; };
        AEE84D3A29BABAC00078FDAD /* HDLEZVisitorRecordViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDLEZVisitorRecordViewController.h; sourceTree = "<group>"; };
        AEE84D3D29BAC5BC0078FDAD /* HDLEZBaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HDLEZBaseViewController.m; sourceTree = "<group>"; };
@@ -240,6 +267,8 @@
        AEE84D4529BACBAD0078FDAD /* HDLEZTopBarView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDLEZTopBarView.h; sourceTree = "<group>"; };
        AEE84D4729BAE2550078FDAD /* HDLEZNoDataView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDLEZNoDataView.h; sourceTree = "<group>"; };
        AEE84D4829BAE2590078FDAD /* HDLEZNoDataView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HDLEZNoDataView.m; sourceTree = "<group>"; };
        AEF0148D29C188EC00D014FD /* HDLEZScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDLEZScrollView.h; sourceTree = "<group>"; };
        AEF0148E29C188ED00D014FD /* HDLEZScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HDLEZScrollView.m; sourceTree = "<group>"; };
        B95AB87C26984D49007BC8D7 /* HDLAlarmInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDLAlarmInfo.h; sourceTree = "<group>"; };
        B95AB87D26984D49007BC8D7 /* HDLAlarmInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HDLAlarmInfo.m; sourceTree = "<group>"; };
        B95AB88226984DD5007BC8D7 /* YYClassInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYClassInfo.h; sourceTree = "<group>"; };
@@ -618,6 +647,7 @@
            files = (
                AEDD944129B0329D00EAA2CA /* libEZOpenSDK.a in Frameworks */,
                B9BC99F425C0FFBD00C024FE /* libcrypto.a in Frameworks */,
                AEE4704529C03DA300480163 /* FQDateTimeSDK.framework in Frameworks */,
            );
            runOnlyForDeploymentPostprocessing = 0;
        };
@@ -639,6 +669,12 @@
            children = (
                AEE84D3A29BABAC00078FDAD /* HDLEZVisitorRecordViewController.h */,
                AEE84D3929BABABF0078FDAD /* HDLEZVisitorRecordViewController.m */,
                AEDD438129BEE6C2001D9477 /* HDLEZCreatTempPassViewController.h */,
                AEDD438029BEE6C2001D9477 /* HDLEZCreatTempPassViewController.m */,
                AEDD438A29BF2C50001D9477 /* HDLEZInputViewController.h */,
                AEDD438B29BF2C50001D9477 /* HDLEZInputViewController.m */,
                AEE4704A29C061AC00480163 /* HDLEZTempDetailViewController.h */,
                AEE4704B29C061AC00480163 /* HDLEZTempDetailViewController.m */,
            );
            path = Controllers;
            sourceTree = "<group>";
@@ -650,6 +686,14 @@
                AEC306D129B9F2B5000B3861 /* HDLEZVisitorRecordView.m */,
                AEC306D329B9F2DA000B3861 /* HDLEZVisitorRecordCell.h */,
                AEC306D429B9F2DB000B3861 /* HDLEZVisitorRecordCell.m */,
                AEDD438329BEE6D2001D9477 /* HDLEZCreateTemPassView.h */,
                AEDD438429BEE6D2001D9477 /* HDLEZCreateTemPassView.m */,
                AEDD438729BEF0CD001D9477 /* HDLEZNormalCellView.h */,
                AEDD438829BEF0CD001D9477 /* HDLEZNormalCellView.m */,
                AEDD438D29BF2C78001D9477 /* HDLEZInputView.h */,
                AEDD438E29BF2C78001D9477 /* HDLEZInputView.m */,
                AEE4704D29C061DF00480163 /* HDLEZTempDetailView.h */,
                AEE4704E29C061DF00480163 /* HDLEZTempDetailView.m */,
            );
            path = Views;
            sourceTree = "<group>";
@@ -743,6 +787,10 @@
        AEE84D3C29BAC3CA0078FDAD /* Base */ = {
            isa = PBXGroup;
            children = (
                AEF0148D29C188EC00D014FD /* HDLEZScrollView.h */,
                AEF0148E29C188ED00D014FD /* HDLEZScrollView.m */,
                AEDD437E29BED161001D9477 /* HDLEZButton.h */,
                AEDD437D29BED161001D9477 /* HDLEZButton.m */,
                AEE84D4729BAE2550078FDAD /* HDLEZNoDataView.h */,
                AEE84D4829BAE2590078FDAD /* HDLEZNoDataView.m */,
                AEE84D4529BACBAD0078FDAD /* HDLEZTopBarView.h */,
@@ -814,6 +862,7 @@
        B9BC97D425C0FFB600C024FE /* Venders */ = {
            isa = PBXGroup;
            children = (
                AEE4704429C03DA300480163 /* FQDateTimeSDK.framework */,
                B95AB88126984DD5007BC8D7 /* YYModel */,
                B9EA4E5325C7E805000FFDA2 /* MJRefresh */,
                B9BC97D525C0FFB600C024FE /* UITableView-FDTemplateLayoutCell */,
@@ -1488,6 +1537,7 @@
                B9BC99EA25C0FFBD00C024FE /* UIImage+GIF.m in Sources */,
                B9BC99E825C0FFBD00C024FE /* UIImageView+HighlightedWebCache.m in Sources */,
                B9EA4E8C25C7E806000FFDA2 /* MJRefreshBackNormalFooter.m in Sources */,
                AEDD438F29BF2C78001D9477 /* HDLEZInputView.m in Sources */,
                B9BC9A2125C0FFBD00C024FE /* EZLocationAlertVCViewController.m in Sources */,
                B9BC99D025C0FFBD00C024FE /* UIViewController+DDKit.m in Sources */,
                B9BC99F625C0FFBD00C024FE /* Aspects.m in Sources */,
@@ -1496,6 +1546,7 @@
                B9EA4E8925C7E806000FFDA2 /* UIView+MJExtension.m in Sources */,
                B9BC99FA25C0FFBD00C024FE /* Toast+UIView.m in Sources */,
                B9BC9A1525C0FFBD00C024FE /* EZAPConfigResultViewController.m in Sources */,
                AEDD437F29BED161001D9477 /* HDLEZButton.m in Sources */,
                B9BC9A1025C0FFBD00C024FE /* EZMessagePhotoViewController.m in Sources */,
                B9BC999C25C0FFBD00C024FE /* UITableView+FDKeyedHeightCache.m in Sources */,
                B9BC9A1725C0FFBD00C024FE /* EZEncryptCameraCell.m in Sources */,
@@ -1521,6 +1572,7 @@
                B9BC99CD25C0FFBD00C024FE /* NSArray+DDKit.m in Sources */,
                B9BC999D25C0FFBD00C024FE /* UITableView+FDTemplateLayoutCellDebug.m in Sources */,
                B9BC999E25C0FFBD00C024FE /* UITableView+FDIndexPathHeightCache.m in Sources */,
                AEDD438929BEF0CD001D9477 /* HDLEZNormalCellView.m in Sources */,
                B9BC99F325C0FFBD00C024FE /* UIButton+WebCache.m in Sources */,
                B9BC99B925C0FFBD00C024FE /* MWTapDetectingImageView.m in Sources */,
                B9BC99DE25C0FFBD00C024FE /* AFHTTPRequestOperationManager.m in Sources */,
@@ -1570,6 +1622,7 @@
                B9BC9A0725C0FFBD00C024FE /* EZWifiConfigViewController.m in Sources */,
                B9BC9A1325C0FFBD00C024FE /* EZLocalRealPlayViewController.m in Sources */,
                B9BC9A2725C0FFBD00C024FE /* EZAddByQRCodeViewController.m in Sources */,
                AEDD438529BEE6D2001D9477 /* HDLEZCreateTemPassView.m in Sources */,
                B9BC99FC25C0FFBD00C024FE /* NSDate-Utilities.m in Sources */,
                B9BC9A0425C0FFBD00C024FE /* MessageListCell.m in Sources */,
                B9EA4E8525C7E806000FFDA2 /* UIScrollView+MJRefresh.m in Sources */,
@@ -1581,18 +1634,22 @@
                B9BC99CC25C0FFBD00C024FE /* UIColor+DDKit.m in Sources */,
                AEE84D3F29BAC5BF0078FDAD /* HDLEZBaseViewController.m in Sources */,
                B9BC99DC25C0FFBD00C024FE /* AFURLConnectionOperation.m in Sources */,
                AEE4704F29C061DF00480163 /* HDLEZTempDetailView.m in Sources */,
                B9BC99E525C0FFBD00C024FE /* MKAnnotationView+WebCache.m in Sources */,
                B9BC9A0F25C0FFBD00C024FE /* EZDeviceResultViewController.m in Sources */,
                B9BC99E425C0FFBD00C024FE /* UIImage+WebP.m in Sources */,
                AEDD438229BEE6C2001D9477 /* HDLEZCreatTempPassViewController.m in Sources */,
                B9EA4E8E25C7E806000FFDA2 /* MJRefreshAutoGifFooter.m in Sources */,
                B9BC99FB25C0FFBD00C024FE /* EZRecordCell.m in Sources */,
                B9BC9A0625C0FFBD00C024FE /* EZCameraTableViewController.m in Sources */,
                B9EA4E8625C7E806000FFDA2 /* MJRefreshConst.m in Sources */,
                AEE4704C29C061AC00480163 /* HDLEZTempDetailViewController.m in Sources */,
                B9BC99FD25C0FFBD00C024FE /* HIKLoadViewItem+configPath.m in Sources */,
                B9BC99E325C0FFBD00C024FE /* MBProgressHUD.m in Sources */,
                B9EA4E8F25C7E806000FFDA2 /* MJRefreshAutoNormalFooter.m in Sources */,
                AE5068D829B9DB5E009EA09A /* HDLEZTemInfoModel.m in Sources */,
                B9BC99BB25C0FFBD00C024FE /* MWTapDetectingView.m in Sources */,
                AEDD438C29BF2C50001D9477 /* HDLEZInputViewController.m in Sources */,
                B9BC99F725C0FFBD00C024FE /* EZQRView.m in Sources */,
                B9BC9A1F25C0FFBD00C024FE /* EZSettingViewController.m in Sources */,
                B9EA4E9725C7E806000FFDA2 /* MJRefreshComponent.m in Sources */,
@@ -1610,6 +1667,7 @@
                B9EA4E8B25C7E806000FFDA2 /* MJRefreshBackStateFooter.m in Sources */,
                B9BC99A125C0FFBD00C024FE /* DDCollectionViewFlowLayout.m in Sources */,
                B9BC9A1E25C0FFBD00C024FE /* EZWifiInfoViewController.m in Sources */,
                AEF0148F29C188ED00D014FD /* HDLEZScrollView.m in Sources */,
                B9BC9A1925C0FFBD00C024FE /* EZAPWiFiConfigViewController.m in Sources */,
                B95AB88826984DD5007BC8D7 /* YYClassInfo.m in Sources */,
                B95AB88726984DD5007BC8D7 /* NSObject+YYModel.m in Sources */,
@@ -1740,6 +1798,10 @@
                CODE_SIGN_STYLE = Automatic;
                DEVELOPMENT_TEAM = 259RU5K4MU;
                ENABLE_BITCODE = NO;
                FRAMEWORK_SEARCH_PATHS = (
                    "$(inherited)",
                    "$(PROJECT_DIR)/EZSDK/EZ/Venders",
                );
                GCC_C_LANGUAGE_STANDARD = gnu99;
                GCC_NO_COMMON_BLOCKS = YES;
                GCC_PREFIX_HEADER = "$(PROJECT_DIR)/EZSDK/EZ/PrefixHeader.pch";
@@ -1763,6 +1825,10 @@
                CODE_SIGN_STYLE = Automatic;
                DEVELOPMENT_TEAM = 259RU5K4MU;
                ENABLE_BITCODE = NO;
                FRAMEWORK_SEARCH_PATHS = (
                    "$(inherited)",
                    "$(PROJECT_DIR)/EZSDK/EZ/Venders",
                );
                GCC_C_LANGUAGE_STANDARD = gnu99;
                GCC_NO_COMMON_BLOCKS = YES;
                GCC_PREFIX_HEADER = "$(PROJECT_DIR)/EZSDK/EZ/PrefixHeader.pch";
EZSDK/EZSDK/EZ/Base/HDLEZBaseViewController.m
@@ -25,7 +25,6 @@
    self.view.backgroundColor=HDLEZ_COLOR_VIEW_BACKGROUND;
    
    [self addSubViews];
    // Do any additional setup after loading the view.
}
@@ -74,6 +73,7 @@
- (HDLEZTopBarView *)topBarView{
    if (!_topBarView) {
        _topBarView = [[HDLEZTopBarView alloc] initWithFrame: CGRectMake(0, 0, HDLEZ_APP_SCREEN_WIDTH, 40)];
        [_topBarView.leftButton addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside];
        [_topBarView.backButton addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside];
    }
    return _topBarView;
@@ -105,4 +105,5 @@
-(void)clickRightBtn{
    
}
@end
EZSDK/EZSDK/EZ/Base/HDLEZButton.h
New file
@@ -0,0 +1,18 @@
//
//  HDLOPPButton.h
//  HDLOnProIpad
//
//  Created by 陈启扬 on 2022/8/16.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface HDLEZButton : UIButton
@property (nonatomic, assign) CGFloat tapWidth;//可点击宽度
@property (nonatomic, assign) CGFloat tapHeight;//可点击高度
@end
NS_ASSUME_NONNULL_END
EZSDK/EZSDK/EZ/Base/HDLEZButton.m
New file
@@ -0,0 +1,24 @@
//
//  HDLOPPButton.m
//  HDLOnProIpad
//
//  Created by 陈启扬 on 2022/8/16.
//
#import "HDLEZButton.h"
@implementation HDLEZButton
-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent*)event
{
    CGRect bounds = self.bounds;
    //扩大原热区直径至26,可以暴露个接口,用来设置需要扩大的半径。
    CGFloat widthDelta = MAX(self.tapWidth, 0);
    CGFloat heightDelta = MAX(self.tapHeight, 0);
    bounds = CGRectInset(bounds, -0.5 * widthDelta, -0.5 * heightDelta);
    return CGRectContainsPoint(bounds, point);
}
@end
EZSDK/EZSDK/EZ/Base/HDLEZScrollView.h
New file
@@ -0,0 +1,16 @@
//
//  SQLScrollView.h
//  SQLScrollview
//
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface HDLEZScrollView : UIScrollView<UIGestureRecognizerDelegate>
@end
NS_ASSUME_NONNULL_END
EZSDK/EZSDK/EZ/Base/HDLEZScrollView.m
New file
@@ -0,0 +1,17 @@
//
//  SQLScrollView.m
//  SQLScrollview
//
//  Created by Mr - 宋 on 2022/7/30.
//
#import "HDLEZScrollView.h"
@implementation HDLEZScrollView
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
    return YES;
}
@end
EZSDK/EZSDK/EZ/Base/HDLEZTopBarView.h
@@ -11,11 +11,13 @@
@interface HDLEZTopBarView : UIView
@property (nonatomic, strong) UIButton      *backButton;//返回按钮
@property (nonatomic, strong) UIButton      *rightButton;//右边按钮
@property (nonatomic, strong) HDLEZButton      *leftButton;//左边按钮
@property (nonatomic, strong) HDLEZButton      *backButton;//返回按钮
@property (nonatomic, strong) HDLEZButton      *rightButton;//右边按钮
@property (nonatomic, strong) UILabel       *titleLabel;//标题
@property (nonatomic, strong) UIView       *bottomLine;//下划线
@property (nonatomic, copy)  NSString *rightBtnTitle;//右边按钮标题
@property (nonatomic, copy)  NSString *leftBtnTitle;//左边按钮标题
-(void)setTitle:(NSString *)title;
EZSDK/EZSDK/EZ/Base/HDLEZTopBarView.m
@@ -24,7 +24,10 @@
        [self addSubview:self.titleLabel];
        [self addSubview:self.bottomLine];
        [self addSubview:self.rightButton];
        [self addSubview:self.leftButton];
        [self.rightButton setHidden:YES];
        [self.leftButton setHidden:YES];
        [self.bottomLine setHidden:YES];
    }
    return self;
}
@@ -32,13 +35,32 @@
- (UIButton*)backButton{
    if(!_backButton){
        //buttonWithType UIButtonTypeSystem 设置tintColor 就可以改变图片的颜色
        _backButton = [UIButton buttonWithType:UIButtonTypeSystem];
        _backButton.frame = CGRectMake(16, HDLEZ_APP_STATUS_BAR_HEIGHT+(40-20)/2, 12, 20);
        _backButton = [HDLEZButton buttonWithType:UIButtonTypeSystem];
        _backButton.frame = CGRectMake(16, HDLEZ_APP_STATUS_BAR_HEIGHT+(44-20)/2, 12, 20);
        [_backButton setImage:[UIImage imageNamed:@"hdl_ez_ic_nav_back"] forState:UIControlStateNormal];
        _backButton.tapHeight=40;
        _backButton.tapWidth=80;
        //按钮图标颜色
        _backButton.tintColor = HDLEZ_COLOR_TEXT;
    }
    return _backButton;
}
/*左边按钮
 */
-(UIButton*)leftButton{
    if(!_leftButton){
        //buttonWithType UIButtonTypeSystem 设置tintColor 就可以改变图片的颜色
        _leftButton = [HDLEZButton buttonWithType:UIButtonTypeSystem];
        _leftButton.frame = CGRectMake(16, HDLEZ_APP_STATUS_BAR_HEIGHT+(44-20)/2, 80, 20);
        [_leftButton setTitleColor:HDLEZ_COLOR_TEXT_TITLE_GRAY forState:UIControlStateNormal];
        _leftButton.titleLabel.font=HDLEZ_Get_FontRegularWithSize(HDLEZ_FontSize_14);
        _leftButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
        _leftButton.tapHeight=40;
        _leftButton.tapWidth=80;
    }
    return _leftButton;
}
- (UILabel *)titleLabel{
@@ -63,10 +85,13 @@
    if(!_rightButton){
        //buttonWithType UIButtonTypeSystem 设置tintColor 就可以改变图片的颜色
//        _rightButton = [UIButton buttonWithType:UIButtonTypeSystem];
        _rightButton=[[UIButton alloc] init];
        _rightButton.frame = CGRectMake(HDLEZ_APP_SCREEN_WIDTH-16-60, HDLEZ_APP_STATUS_BAR_HEIGHT, 60, 44);
        _rightButton=[[HDLEZButton alloc] init];
        _rightButton.frame = CGRectMake(HDLEZ_APP_SCREEN_WIDTH-12-32, HDLEZ_APP_STATUS_BAR_HEIGHT+(44-32)/2, 32, 32);
        [_rightButton setTitleColor:HDLEZ_COLOR_TEXT_LIGHT_BLUE forState:UIControlStateNormal];
        _rightButton.titleLabel.font=HDLEZ_Get_FontRegularWithSize(HDLEZ_FontSize_14);
        _rightButton.tapHeight=44;
        _rightButton.tapWidth=44;
        //按钮图标颜色
//        _backButton.tintColor = HDLEZ_COLOR_TEXT;
    }
@@ -94,7 +119,15 @@
}
//设置右边按钮标题
/*设置左边按钮标题
 */
-(void)setLeftBtnTitle:(NSString *)leftBtnTitle{
    _leftBtnTitle=leftBtnTitle;
    [_leftButton setHidden:NO];
    [_leftButton setTitle:leftBtnTitle forState:UIControlStateNormal];
}
/*设置右边按钮标题
 */
-(void)setRightBtnTitle:(NSString *)rightBtnTitle{
    _rightBtnTitle=rightBtnTitle;
    [_rightButton setHidden:NO];
EZSDK/EZSDK/EZ/Global/EZHttpUtil.m
@@ -329,7 +329,7 @@
    
    parameters = [self GetSignRequestDictionary:parameters];
    
    NSLog(@"添加临时密码参数:%@",parameters);
    NSLog(@"添加临时密码参数1:%@",parameters);
    
    [self requestHttpsPost:API_POST_EZ_AddTemp parameters:parameters completion:^(ResponseData *responseData) {
        if (completion) {
@@ -421,6 +421,8 @@
                            completion(responseData);
                            return;
                        }];
                    }else{
                        completion(responseData);
                    }
                }];
            }else{
EZSDK/EZSDK/EZ/Global/HDLEZConstants.h
@@ -79,6 +79,7 @@
#define HDLEZ_COLOR_BACKGROUND_BUTTON HDLEZHEXCOLOR(0x4484F4,1.0) //按钮背景颜色
#define HDLEZ_COLOR_BACKGROUND_BUTTON_GRAY HDLEZHEXCOLOR(0xC0C7D4,1.0) //按钮灰背景颜色
#define HDLEZ_COLOR_BACKGROUND_LINE HDLEZHEXCOLOR(0xECEDEE,1.0) //下划线背景颜色
#define HDLEZ_COLOR_BACKGROUND_LINE_RED HDLEZHEXCOLOR(0xFF5757,1.0) //线背景红颜色
//字体大小
@@ -90,6 +91,7 @@
#define HDLEZ_FontSize_14 14   //  小标题字号 14
#define HDLEZ_FontSize_24 24   //  小标题字号 24
#define HDLEZ_FontSize_18 18   //  小标题字号 18
#define HDLEZ_FontSize_26 26   //  小标题字号 26
#define HDLEZ_APP_UIFont            @"PingFangSC-Regular"//苹方-简 常规体
#define HDLEZ_APP_UIFont_BOLD       @"PingFangSC-Semibold"//苹方-简 中粗体
@@ -178,4 +180,9 @@
 */
+(NSString *)turnDateString:(NSString*)dateString toFormater:(NSString*)formater;
/*判断是否为纯数字
 @param number 内容
 */
+(BOOL)validateNumber:(NSString*)number;
@end
EZSDK/EZSDK/EZ/Global/HDLEZConstants.m
@@ -287,4 +287,24 @@
    return targetDateStr;
}
/*判断是否为纯数字
 @param number 内容
 */
+(BOOL)validateNumber:(NSString*)number{
    BOOL res = YES;
    NSCharacterSet* tmpSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
    int i = 0;
    while (i < number.length) {
        NSString * string = [number substringWithRange:NSMakeRange(i, 1)];
        NSRange range = [string rangeOfCharacterFromSet:tmpSet];
        if (range.length == 0) {
            res = NO;
            break;
        }
        i++;
    }
    return res;
}
@end
EZSDK/EZSDK/EZ/PrefixHeader.pch
@@ -26,6 +26,9 @@
#import "GlobalKit.h"
#import "EZHttpUtil.h"
#import "EZSDK.h"
#import "MBProgressHUD.h"
#import "HDLEZButton.h"
#import "HDLEZConstants.h"
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZCreatTempPassViewController.h
New file
@@ -0,0 +1,26 @@
//
//  HDLFVTempPassViewController.h
//  Ezviz
//
//  Created by 陈启扬 on 2022/4/22.
//  Copyright © 2022 hdl. All rights reserved.
//
#import "HDLEZBaseViewController.h"
#import "HDLEZCreateTemPassView.h"
//#import "HDLFVTemPDetailModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface HDLEZCreatTempPassViewController : HDLEZBaseViewController
//@property(nonatomic,assign)HDLFVTemPassType temPassType;//临时密码类型
@property(nonatomic,copy)NSString *deviceId;//设备id
@property(nonatomic,strong)HDLEZTemInfoModel *temPdetailModel;//临时密码model
@property(nonatomic,assign)BOOL isShowDetail;//判断是否从列表点击进来看详情的(用于判断取消后是否需要自动返回列表)
@end
NS_ASSUME_NONNULL_END
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZCreatTempPassViewController.m
New file
@@ -0,0 +1,231 @@
//
//  HDLFVTempPassViewController.m
//  Ezviz
//
//  Created by 陈启扬 on 2022/4/22.
//  Copyright © 2022 hdl. All rights reserved.
//
#import "HDLEZCreatTempPassViewController.h"
#import "HDLEZCreateTemPassView.h"
#import "HDLEZInputViewController.h"
#import <FQDateTimeSDK/FQDateTimeSDK.h>
#import "HDLEZTempDetailViewController.h"
typedef enum {
    HDLEZPickTimeType_Effective=0, //生效
    HDLEZPickTimeType_Expire=1,//失效
}HDLEZPickTimeType;
@interface HDLEZCreatTempPassViewController ()<HDLEZInputViewControllerDelegate,FQDateTimePickerViewDelegate>
@property(nonatomic,strong)HDLEZCreateTemPassView *tempView; //临时密码view
@property (nonatomic, copy)NSString *selectedEffectiveTime;//已选择的生效时间
@property (nonatomic, copy)NSString *selectedExpireTime;//已选择的失效时间
@property(nonatomic,assign)HDLEZPickTimeType pickTimeType;//选择时间类型
@property(nonatomic,strong)HDLEZTemInfoModel *addTemPModel;//添加临时密码model
@end
@implementation HDLEZCreatTempPassViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    [self setTopBarViewWithTitle:HDLEZLocallizedString(@"device_temp_pass")];
    //保存按钮
    self.topBarView.rightButton.frame = CGRectMake(HDLEZ_APP_SCREEN_WIDTH-16-50, HDLEZ_APP_STATUS_BAR_HEIGHT+(44-20)/2, 50, 20);
    self.topBarView.rightButton.titleLabel.textAlignment=NSTextAlignmentRight;
    self.topBarView.rightBtnTitle=HDLEZLocallizedString(@"device_temp_save");
    [self.topBarView.rightButton addTarget:self action:@selector(saveTemp) forControlEvents:UIControlEventTouchUpInside];
    _addTemPModel=[[HDLEZTemInfoModel alloc] init];
    _addTemPModel.limitCount=@"-1";
    // Do any additional setup after loading the view.
}
-(void)addSubViews{
    //临时密码view
    _tempView=[[HDLEZCreateTemPassView alloc] init];
    [self.view addSubview:_tempView];
    [_tempView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(self.view).offset(HDLEZ_APP_TOP_BAR_HEIGHT);
        make.left.right.equalTo(self.view);
        make.bottom.equalTo(self.view);
    }];
//    _tempView.temPassType=self.temPassType;
    __weak __typeof(self)weakSelf = self;
    _tempView.userV.clickBtn = ^{//点击使用人
        [weakSelf inputWithType:HDLEZInputType_User title:HDLEZLocallizedString(@"device_temp_user")];
    };
    _tempView.validTimeV.clickBtn = ^{//点击开始时间
        [weakSelf selectEffectiveTime];
    };
    _tempView.expireTimeV.clickBtn = ^{//点击结束时间
        [weakSelf selectExpirationTime];
    };
    _tempView.useCountV.clickBtn = ^{//点击使用次数
        [weakSelf inputWithType:HDLEZInputType_UseCount title:HDLEZLocallizedString(@"device_temp_use_times")];
    };
}
/*点击输入内容
 @param inputType 输入类型
 @param title 标题
 */
-(void)inputWithType:(HDLEZInputType)inputType title:(NSString *)title{
    HDLEZInputViewController *vc=[[HDLEZInputViewController alloc] init];
    vc.inputType=inputType;
    vc.navTitle=title;
    vc.inputDelegate=self;
    vc.modalPresentationStyle = UIModalPresentationFullScreen;
    [self presentViewController:vc animated:YES completion:nil];
}
/*点击了选择生效时间
 */
-(void)selectEffectiveTime{
    self.pickTimeType=HDLEZPickTimeType_Effective;
    [self showDatePicker];
}
/*点击了选择失效时间
 */
-(void)selectExpirationTime{
    self.pickTimeType=HDLEZPickTimeType_Expire;
    [self showDatePicker];
}
/*点击了保存按钮
 */
-(void)saveTemp{
    if (!_addTemPModel.userName||_addTemPModel.userName.length==0) {//未输入使用人
        HDLEZLog(@"未输入使用人:%@",_addTemPModel.userName);
        [self.view makeToast:HDLEZLocallizedString(@"device_temp_please_input_user_name")
                        duration:1.5
                        position:@"center"];
        return;
    }
    if (!_addTemPModel.beginTime||_addTemPModel.beginTime.length==0) {//未选择开始时间
        [self.view makeToast:HDLEZLocallizedString(@"device_temp_please_select_begin_time")
                        duration:1.5
                        position:@"center"];
        return;
    }
    if (!_addTemPModel.endTime||_addTemPModel.endTime.length==0) {//未选择结束时间
        [self.view makeToast:HDLEZLocallizedString(@"device_temp_please_select_end_time")
                        duration:1.5
                        position:@"center"];
        return;
    }
    if ([HDLEZConstants compareOneDay:[NSDate dateWithTimeIntervalSince1970:[self.addTemPModel.endTime integerValue]] withAnotherDay:[NSDate dateWithTimeIntervalSince1970:[self.addTemPModel.beginTime integerValue]]]==-1) {//结束时间早于开始时间
        [self.view makeToast:HDLEZLocallizedString(@"device_temp_please_end_time_should_later")
                        duration:1.5
                        position:@"center"];
        return;
    }
    [MBProgressHUD showHUDAddedTo:self.view animated:YES];
    __weak __typeof(self)weakSelf = self;
    [[EZHttpUtil sharedManager] addTempByHDL:self.addTemPModel deviceId:self.deviceId completion:^(ResponseData * _Nonnull responseData) {
        HDLEZLog(@"添加密码结果:%@",responseData.data);
        [MBProgressHUD hideHUDForView:weakSelf.view animated:YES];
        if (responseData.success) {
            [[NSNotificationCenter defaultCenter] postNotificationName:HDLEZNotificationChangeTemP object:nil];
            HDLEZTemInfoModel *tempInfo=[HDLEZTemInfoModel yy_modelWithDictionary:responseData.data];
            [weakSelf toTempDetailVWithTempInfo:tempInfo];
        }else{
            [weakSelf.view makeToast:responseData.message
                            duration:1.5
                            position:@"center"];
        }
    }];
}
/*跳转免密详情页
 */
-(void)toTempDetailVWithTempInfo:(HDLEZTemInfoModel*)tempInfo{
    HDLEZTempDetailViewController *vc=[[HDLEZTempDetailViewController alloc] init];
    vc.temPdetailModel=tempInfo;
    vc.deviceId=self.deviceId;
    [self.navigationController pushViewController:vc animated:YES];
}
/*展示时间选择器
 */
-(void)showDatePicker{
    FQDateTimePickerView *pickerView = [[FQDateTimePickerView alloc] init];
    pickerView.delegate = self;    //遵循代理
    pickerView.pickerModel = FQDateTimePickerModelDateTime;    //日期模式
    pickerView.cancelColor = HDLEZ_COLOR_TEXT_LIGHT_GRAY;    //取消颜色
    pickerView.confirmColor = HDLEZ_COLOR_TEXT_LIGHT_BLUE;    //确定颜色
    pickerView.cancelText=HDLEZLocallizedString(@"device_temp_cancle");
    pickerView.confirmText=HDLEZLocallizedString(@"device_temp_sure");
    pickerView.unitsData=@[HDLEZLocallizedString(@"device_temp_unit_year"),HDLEZLocallizedString(@"device_temp_unit_month"),HDLEZLocallizedString(@"device_temp_unit_date"),HDLEZLocallizedString(@"device_temp_unit_hour"),HDLEZLocallizedString(@"device_temp_unit_minute"),HDLEZLocallizedString(@"device_temp_unit_minute")];
    pickerView.minDate = [NSDate new];    //最小时间
    [pickerView showPicker];    //展示
}
/*时间转string
 @param date 时间
 */
-(NSString *)turnDate:(NSDate*)date{
    return [HDLEZConstants timeStrWithFormate:[NSString stringWithFormat:@"yyyy%@MM%@dd%@ HH:mm",HDLEZLocallizedString(@"device_temp_year"),HDLEZLocallizedString(@"device_temp_month"),HDLEZLocallizedString(@"device_temp_date")] data:date];
}
#pragma FQDateTimePickerViewDelegate
/// 确认操作
/// @param date 日期NSDate
/// @param dateStr 日期NSString
/// @param target 用于区分pickerView
- (void)confirmActionWithDate:(NSDate *)date withDateString:(NSString *)dateStr withTarget:(NSInteger)target{
    HDLEZLog(@"选择的时间:%.f",[date timeIntervalSince1970]);
    if (self.pickTimeType==HDLEZPickTimeType_Effective) {//选择生效时间
        _tempView.validTimeV.contentL.text=[self turnDate:date];
        self.addTemPModel.beginTime=[NSString stringWithFormat:@"%.f",[date timeIntervalSince1970]];
    }else{//选择结束时间
        _tempView.expireTimeV.contentL.text=[self turnDate:date];
        self.addTemPModel.endTime=[NSString stringWithFormat:@"%.f",[date timeIntervalSince1970]];
    }
}
#pragma HDLEZInputViewControllerDelegate
/*输入了内容
 @param content 内容
 @param inputType 输入类型
 */
-(void)inputContent:(NSString *)content inputType:(HDLEZInputType)inputType{
    if (inputType==HDLEZInputType_User) {
        _tempView.userV.contentL.text=content;
        self.addTemPModel.userName=content;
    }else{
        _tempView.useCountV.contentL.text=content;
        self.addTemPModel.limitCount=content;
        if (content.length==0) {
            _tempView.useCountV.contentL.text=HDLEZLocallizedString(@"device_temp_unlimited_times");
            self.addTemPModel.limitCount=@"-1";
        }
    }
}
@end
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZInputViewController.h
New file
@@ -0,0 +1,31 @@
//
//  HDLEZInputViewController.h
//  EZSDK
//
//  Created by 陈启扬 on 2023/3/13.
//
#import "HDLEZBaseViewController.h"
#import "HDLEZInputView.h"
NS_ASSUME_NONNULL_BEGIN
@protocol HDLEZInputViewControllerDelegate <NSObject>
/*输入了内容
 @param content 内容
 @param inputType 输入类型
 */
-(void)inputContent:(NSString *)content inputType:(HDLEZInputType)inputType;
@end
@interface HDLEZInputViewController : HDLEZBaseViewController
@property (nonatomic, copy)NSString *navTitle;//标题
@property (nonatomic, copy)NSString *describe;//描述
@property (nonatomic, assign)HDLEZInputType inputType;//输入类型
@property (nonatomic, weak) id<HDLEZInputViewControllerDelegate> inputDelegate;//代理
@end
NS_ASSUME_NONNULL_END
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZInputViewController.m
New file
@@ -0,0 +1,67 @@
//
//  HDLEZInputViewController.m
//  EZSDK
//
//  Created by 陈启扬 on 2023/3/13.
//
#import "HDLEZInputViewController.h"
@interface HDLEZInputViewController ()
@property(nonatomic,strong)HDLEZInputView *inputView; //输入view
@end
@implementation HDLEZInputViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    //导航栏
    [self setTopBarViewWithTitle:self.navTitle];
    [self.topBarView.bottomLine setHidden:YES];
    //确认按钮
    self.topBarView.rightButton.frame = CGRectMake(HDLEZ_APP_SCREEN_WIDTH-16-50, HDLEZ_APP_STATUS_BAR_HEIGHT+(44-20)/2, 50, 20);
    self.topBarView.rightButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
    self.topBarView.rightBtnTitle=HDLEZLocallizedString(@"device_temp_sure");
    [self.topBarView.rightButton addTarget:self action:@selector(sure) forControlEvents:UIControlEventTouchUpInside];
    //取消按钮
    [self.topBarView.backButton setImage:nil forState:UIControlStateNormal];
    self.topBarView.leftBtnTitle=HDLEZLocallizedString(@"device_temp_cancle");
}
-(void)addSubViews{
    //输入view
    _inputView=[[HDLEZInputView alloc] init];
    [self.view addSubview:_inputView];
    [_inputView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(self.view).offset(HDLEZ_APP_TOP_BAR_HEIGHT);
        make.left.bottom.right.equalTo(self.view);
    }];
    _inputView.inputType=self.inputType;
}
/*确认
 */
-(void)sure{
    if (self.inputType==HDLEZInputType_UseCount) {
        if (_inputView.inputTextF.text.length!=0&&![HDLEZConstants validateNumber:_inputView.inputTextF.text]) {//输入非纯数字
            [self.view makeToast:HDLEZLocallizedString(@"device_temp_input_pure_number")
                            duration:1.5
                            position:@"center"];
            return;
        }
        if (_inputView.inputTextF.text.length!=0&&([_inputView.inputTextF.text integerValue]>100||[_inputView.inputTextF.text integerValue]<1)){//输入大于100或小于1
            [self.view makeToast:HDLEZLocallizedString(@"device_temp_input_valid_number")
                            duration:1.5
                        position:@"center"];
            return;
        }
    }
    if (self.inputDelegate&&[self.inputDelegate respondsToSelector:@selector(inputContent:inputType:)]) {
        [self.inputDelegate inputContent:_inputView.inputTextF.text inputType:self.inputType];
    }
    [self dismissViewControllerAnimated:YES completion:nil];
}
@end
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZTempDetailViewController.h
New file
@@ -0,0 +1,18 @@
//
//  HDLEZTempDetailViewController.h
//  EZSDK
//
//  Created by 陈启扬 on 2023/3/14.
//
#import "HDLEZBaseViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface HDLEZTempDetailViewController : HDLEZBaseViewController
@property(nonatomic,strong)HDLEZTemInfoModel *temPdetailModel;//临时密码model
@property(nonatomic,copy)NSString *deviceId;//设备id
@end
NS_ASSUME_NONNULL_END
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZTempDetailViewController.m
New file
@@ -0,0 +1,101 @@
//
//  HDLEZTempDetailViewController.m
//  EZSDK
//
//  Created by 陈启扬 on 2023/3/14.
//
#import "HDLEZTempDetailViewController.h"
#import "HDLEZTempDetailView.h"
#import "HDLEZVisitorRecordViewController.h"
@interface HDLEZTempDetailViewController ()
@property(nonatomic,strong)HDLEZTempDetailView *tempDetailView; //临时密码详情view
@end
@implementation HDLEZTempDetailViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    [self setTopBarViewWithTitle:HDLEZLocallizedString(@"device_temp_pass")];
    [self.topBarView.bottomLine setHidden:YES];
    // Do any additional setup after loading the view.
}
-(void)addSubViews{
    //临时密码详情view
    _tempDetailView=[[HDLEZTempDetailView alloc] init];
    [self.view addSubview:_tempDetailView];
    [_tempDetailView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(self.view).offset(HDLEZ_APP_TOP_BAR_HEIGHT);
        make.left.right.equalTo(self.view);
        make.bottom.equalTo(self.view);
    }];
    _tempDetailView.temPdetailModel=self.temPdetailModel;
    __weak __typeof(self)weakSelf = self;
    _tempDetailView.longTapPassWordBlock = ^(NSString * _Nonnull content) {//长按密码
        UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
        pasteboard.string = content;
        [weakSelf.view makeToast:HDLEZLocallizedString(@"device_temp_copied")
                        duration:1.5
                        position:@"center"];
    };
    _tempDetailView.deletePassWordBlock = ^(NSString * _Nonnull content) {//点击删除
        [weakSelf deletePass];
    };
}
/*点击返回
 */
-(void)goBack{
    NSArray *viewControllers = self.navigationController.viewControllers;
    for (UIViewController *vc in viewControllers)
    {
        if ([vc isKindOfClass:[HDLEZVisitorRecordViewController class]])
        {//跳转到临时密码列表页
            [self.navigationController popToViewController:vc animated:YES];
            break;
        }
    }
}
/*删除密码
 */
-(void)deletePass{
    UIAlertController *alert=[UIAlertController alertControllerWithTitle:HDLEZLocallizedString(@"alert_title") message:HDLEZLocallizedString(@"device_temp_sure_to_delete") preferredStyle:UIAlertControllerStyleAlert];
    UIAlertAction *cancle=[UIAlertAction actionWithTitle:HDLEZLocallizedString(@"device_temp_cancle") style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
    }];
    __weak __typeof(self)weakSelf = self;
    UIAlertAction *sure=[UIAlertAction actionWithTitle:HDLEZLocallizedString(@"device_temp_sure") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
        [weakSelf sureToDelete];
    }];
    [alert addAction:cancle];
    [alert addAction:sure];
    [self presentViewController:alert animated:YES completion:nil];
}
/*确认删除
 */
-(void)sureToDelete{
    [MBProgressHUD showHUDAddedTo:self.view animated:YES];
    __weak __typeof(self)weakSelf = self;
    [[EZHttpUtil sharedManager] deleteTempByHDL:_temPdetailModel.extVisitorId deviceId:self.deviceId completion:^(ResponseData * _Nonnull responseData) {
        HDLEZLog(@"删除临时密码结果:%@",responseData.data);
        [MBProgressHUD hideHUDForView:weakSelf.view animated:YES];
        if (responseData.success) {
            [[NSNotificationCenter defaultCenter] postNotificationName:HDLEZNotificationChangeTemP object:nil];
            [weakSelf goBack];
        }else{
            [weakSelf.view makeToast:responseData.message
                            duration:1.5
                            position:@"center"];
        }
    }];
}
@end
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZVisitorRecordViewController.m
@@ -10,8 +10,12 @@
#import "HDLEZVisitorRecordView.h"
//#import "HDLFVTempPassViewController.h"
//#import "HDLFVHttpRequestManager.h"
#import "MJRefreshNormalHeader.h"
#import "HDLEZCreatTempPassViewController.h"
#import "HDLEZTempDetailViewController.h"
@interface HDLEZVisitorRecordViewController ()<HDLEZVisitorRecordViewDelegate>
@property (nonatomic, strong) HDLEZVisitorRecordView *visitorRecordV;
@property (nonatomic, strong) MJRefreshNormalHeader *header;
@end
@@ -21,7 +25,11 @@
    [super viewDidLoad];
    [self setTopBarViewWithTitle:HDLEZLocallizedString(@"device_temp_pass")];
    [self.topBarView.bottomLine setHidden:YES];
    //添加按钮
    [self.topBarView.rightButton setHidden:NO];
    [self.topBarView.rightButton setBackgroundImage:[UIImage imageNamed:@"hdl_ez_temp_add"] forState:UIControlStateNormal];
    [self.topBarView.rightButton addTarget:self action:@selector(addTemp) forControlEvents:UIControlEventTouchUpInside];
    //注册临时密码列表变化通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notificationChangeTemP) name:HDLEZNotificationChangeTemP object:nil];
    // Do any additional setup after loading the view.
@@ -35,7 +43,7 @@
//临时密码变化通知
-(void)notificationChangeTemP{
    [self getTemPList];
    [_header beginRefreshing];
}
-(void)addSubViews{
@@ -49,7 +57,18 @@
    }];
    _visitorRecordV.choseDelegate=self;
    
    [self getTemPList];
    //下拉刷新
    // 设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadNewData方法)
    _header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(getTemPList)];
    // 设置自动切换透明度(在导航栏下面自动隐藏)
    _header.automaticallyChangeAlpha = YES;
    // 隐藏时间
    _header.lastUpdatedTimeLabel.hidden = YES;
    // 隐藏刷新状态文本
    _header.stateLabel.hidden = YES;
    _visitorRecordV.mj_header=_header;
    [_header beginRefreshing];
//    [self getTemPList];
}
/*获取临时密码列表
@@ -58,6 +77,7 @@
    __weak __typeof(self)weakSelf = self;
    [[EZHttpUtil sharedManager] getTempListByHDL:self.deviceId completion:^(ResponseData * _Nonnull responseData) {
        HDLEZLog(@"临时密码列表:%@",responseData.data);
        [weakSelf.header endRefreshing];
        weakSelf.visitorRecordV.temPList=[NSArray yy_modelArrayWithClass:[HDLEZTemInfoModel class] json:responseData.data];
    }];
}
@@ -79,10 +99,17 @@
-(void)visitorRecordViewdidSelectRecord:(HDLEZTemInfoModel *)tempDetailModel{
//    HDLFVTempPassViewController *vc=[[HDLFVTempPassViewController alloc] init];
//    vc.temPassType=HDLFVTemPassType_Detail;
//    vc.temPdetailModel=tempDetailModel;
//    vc.isShowDetail=YES;
//    [self.navigationController pushViewController:vc animated:YES ];
    HDLEZTempDetailViewController *vc=[[HDLEZTempDetailViewController alloc] init];
    vc.temPdetailModel=tempDetailModel;
    vc.deviceId=self.deviceId;
    [self.navigationController pushViewController:vc animated:YES ];
}
/*添加临时密码
 */
-(void)addTemp{
    HDLEZCreatTempPassViewController *vc=[[HDLEZCreatTempPassViewController alloc] init];
    vc.deviceId=self.deviceId;
    [self.navigationController pushViewController:vc animated:YES];
}
@end
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLFVTempPassViewController.h
File was deleted
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLFVTempPassViewController.m
File was deleted
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZCreateTemPassView.h
New file
@@ -0,0 +1,22 @@
//
//  HDLFVCreateTemPassView.h
//  Ezviz
//
//  Created by 陈启扬 on 2022/4/22.
//  Copyright © 2022 hdl. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "HDLEZNormalCellView.h"
NS_ASSUME_NONNULL_BEGIN
@interface HDLEZCreateTemPassView : UIView
@property (nonatomic, strong)HDLEZNormalCellView *userV;//使用人view
@property (nonatomic, strong)HDLEZNormalCellView *validV;//有效期view
@property (nonatomic, strong)HDLEZNormalCellView *validTimeV;//生效时间view
@property (nonatomic, strong)HDLEZNormalCellView *expireTimeV;//失效时间view
@property (nonatomic, strong)HDLEZNormalCellView *useCountV;//使用次数view
@end
NS_ASSUME_NONNULL_END
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZCreateTemPassView.m
New file
@@ -0,0 +1,112 @@
//
//  HDLFVCreateTemPassView.m
//  Ezviz
//
//  Created by 陈启扬 on 2022/4/22.
//  Copyright © 2022 hdl. All rights reserved.
//
#import "HDLEZCreateTemPassView.h"
@interface HDLEZCreateTemPassView ()
@property (nonatomic, strong)UIView *expireV;//无效View
@property (nonatomic, strong)UILabel *expireL;//无效Lable
@property (nonatomic, strong)UIScrollView *scrollV;//滚动view
@end
@implementation HDLEZCreateTemPassView
-(instancetype)init{
    self = [super init];
    if (self) {
//        _isShow=YES;
//        _tempPassword=@"";
        [self initUI];
    }
    return  self;
}
-(void)initUI{
    //滚动view
    _scrollV=[[UIScrollView alloc] init];
    if (@available(iOS 11.0, *)) {
        _scrollV.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
    }
    [self addSubview:_scrollV];
    [_scrollV mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(self);
        make.right.left.bottom.equalTo(self);
    }];
    _scrollV.contentSize=CGSizeMake(HDLEZ_APP_SCREEN_WIDTH, 665);
    //使用人
    _userV=[[HDLEZNormalCellView alloc] init];
    [_scrollV addSubview:_userV];
    [_userV mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(_scrollV);
        make.left.right.equalTo(self);
        make.height.mas_equalTo(50);
    }];
    _userV.title= HDLEZLocallizedString(@"device_temp_user");
    _userV.titleL.font=HDLEZ_Get_FontRegularWithSize(HDLEZ_FontSize_16);
    [_userV.lineV setHidden:YES];
    //有效期
    _validV=[[HDLEZNormalCellView alloc] init];
    [_scrollV addSubview:_validV];
    [_validV mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(_userV.mas_bottom).offset(8);
        make.left.right.equalTo(self);
        make.height.mas_equalTo(50);
    }];
    _validV.title= HDLEZLocallizedString(@"device_temp_valid_date");
    _validV.titleL.textColor=HDLEZ_COLOR_TEXT_LIGHT_BLUE;
    _validV.titleL.font=HDLEZ_Get_FontBoldWithSize(HDLEZ_FontSize_16);
    [_validV hideNextImg];
    //生效时间
    _validTimeV=[[HDLEZNormalCellView alloc] init];
    [_scrollV addSubview:_validTimeV];
    [_validTimeV mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(_validV.mas_bottom);
        make.left.right.equalTo(self);
        make.height.mas_equalTo(50);
    }];
    _validTimeV.title=HDLEZLocallizedString(@"device_temp_valid_begin");
    [_validTimeV hideNextImg];
    _validTimeV.contentL.text=HDLEZLocallizedString(@"device_temp_please_select");
    //失效时间
    _expireTimeV=[[HDLEZNormalCellView alloc] init];
    [_scrollV addSubview:_expireTimeV];
    [_expireTimeV mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(_validTimeV.mas_bottom);
        make.left.right.equalTo(self);
        make.height.mas_equalTo(50);
    }];
    _expireTimeV.title=HDLEZLocallizedString(@"device_temp_valid_end");
    [_expireTimeV.lineV setHidden:YES];
    [_expireTimeV hideNextImg];
    _expireTimeV.contentL.text=HDLEZLocallizedString(@"device_temp_please_select");
    //使用次数
    _useCountV=[[HDLEZNormalCellView alloc] init];
    [_scrollV addSubview:_useCountV];
    [_useCountV mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(_expireTimeV.mas_bottom).offset(8);
        make.left.right.equalTo(self);
        make.height.mas_equalTo(50);
    }];
    _useCountV.title=HDLEZLocallizedString(@"device_temp_use_times");
    [_useCountV.lineV setHidden:YES];
    _useCountV.contentL.text=HDLEZLocallizedString(@"device_temp_unlimited_times");
}
@end
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZInputView.h
New file
@@ -0,0 +1,25 @@
//
//  HDLEZInputView.h
//  EZSDK
//
//  Created by 陈启扬 on 2023/3/13.
//
#import <UIKit/UIKit.h>
typedef enum {
    HDLEZInputType_User=0, //使用人
    HDLEZInputType_UseCount=1,//使用次数
}HDLEZInputType;//输入类型
NS_ASSUME_NONNULL_BEGIN
@interface HDLEZInputView : UIView
@property (nonatomic, strong)UITextField *inputTextF;//输入框
@property (nonatomic, strong)UILabel *describeL;//描述lable
@property (nonatomic, assign)HDLEZInputType inputType;//输入类型
@end
NS_ASSUME_NONNULL_END
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZInputView.m
New file
@@ -0,0 +1,71 @@
//
//  HDLEZInputView.m
//  EZSDK
//
//  Created by 陈启扬 on 2023/3/13.
//
#import "HDLEZInputView.h"
@implementation HDLEZInputView
-(instancetype)init{
    self = [super init];
    if (self) {
        [self initUI];
    }
    return  self;
}
-(void)initUI{
    self.backgroundColor = HDLEZ_COLOR_VIEW_BACKGROUND;
    //输入view
    UIView *inputV=[[UIView alloc] init];
    [self addSubview:inputV];
    [inputV mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.left.right.equalTo(self);
        make.height.mas_equalTo(50);
    }];
    inputV.backgroundColor=HDLEZ_COLOR_VIEW_FOREGROUND;
    //输入框
    _inputTextF=[[UITextField alloc] init];
    [inputV addSubview:_inputTextF];
    [_inputTextF mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.bottom.equalTo(inputV);
        make.left.equalTo(inputV).offset(16);
        make.right.equalTo(inputV).offset(-16);
    }];
    _inputTextF.placeholder=HDLEZLocallizedString(@"device_temp_please_input");
    _inputTextF.textColor=HDLEZ_COLOR_TEXT_TITLE_GRAY;
    _inputTextF.font=HDLEZ_Get_FontRegularWithSize(HDLEZ_FontSize_16);
    //描述lable
    _describeL=[[UILabel alloc] init];
    [self addSubview:_describeL];
    [_describeL mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(inputV.mas_bottom).offset(10);
        make.left.equalTo(inputV).offset(16);
        make.right.equalTo(inputV).offset(-16);
        make.height.mas_equalTo(30);
    }];
    _describeL.numberOfLines=2;
    _describeL.adjustsFontSizeToFitWidth=YES;
    _describeL.textColor=HDLEZ_COLOR_TEXT_TITLE_GRAY;
    _describeL.font=HDLEZ_Get_FontRegularWithSize(HDLEZ_FontSize_14);
}
/*设置输入类型值
 */
-(void)setInputType:(HDLEZInputType)inputType{
    _inputType=inputType;
    if (inputType==HDLEZInputType_UseCount) {//为输入使用次数
        _inputTextF.keyboardType=UIKeyboardTypeASCIICapableNumberPad;
        _describeL.text=HDLEZLocallizedString(@"device_temp_input_use_count_describe");
    }
}
@end
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZNormalCellView.h
New file
@@ -0,0 +1,37 @@
//
//  HDLFVNormalCellView.h
//  Ezviz
//
//  Created by 陈启扬 on 2022/4/25.
//  Copyright © 2022 hdl. All rights reserved.
//
#import <UIKit/UIKit.h>
typedef void (^HDLEZCellVoidBlock)(void);
NS_ASSUME_NONNULL_BEGIN
@interface HDLEZNormalCellView : UIView
@property (nonatomic, strong)UILabel *titleL;//标题Lable
@property (nonatomic, copy)NSString *title;//标题
@property (nonatomic, strong)UILabel *contentL;//内容Lable
@property (nonatomic, strong)UIView *lineV;//下划线
@property (nonatomic, strong)UIButton *button;//按钮
@property(nonatomic,strong)HDLEZCellVoidBlock clickBtn; //点击按钮
/*隐藏右侧箭头
 */
-(void)hideNextImg;
@end
NS_ASSUME_NONNULL_END
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZNormalCellView.m
New file
@@ -0,0 +1,112 @@
//
//  HDLFVNormalCellView.m
//  Ezviz
//
//  Created by 陈启扬 on 2022/4/25.
//  Copyright © 2022 hdl. All rights reserved.
//
#import "HDLEZNormalCellView.h"
@interface HDLEZNormalCellView ()
@property (nonatomic, strong)UIImageView *nextImgV;//箭头图标
@end
@implementation HDLEZNormalCellView
-(instancetype)init{
    self = [super init];
    if (self) {
        [self initUI];
    }
    return  self;
}
-(void)initUI{
    self.backgroundColor=HDLEZ_COLOR_VIEW_FOREGROUND;
    //标题lable
    _titleL=[[UILabel alloc] init];
    [self addSubview:_titleL];
    [_titleL mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.bottom.equalTo(self);
        make.left.equalTo(self).offset(16);
        make.width.mas_equalTo(0);
    }];
    _titleL.adjustsFontSizeToFitWidth=YES;
    _titleL.textColor=HDLEZ_COLOR_TEXT_TITLE_GRAY;
    _titleL.font=HDLEZ_Get_FontRegularWithSize(HDLEZ_FontSize_14);
    //右箭头
    _nextImgV=[[UIImageView alloc] init];
    [self addSubview:_nextImgV];
    [_nextImgV mas_makeConstraints:^(MASConstraintMaker *make) {
        make.right.equalTo(self).offset(-20);
        make.centerY.equalTo(self.mas_centerY);
        make.width.height.mas_equalTo(16);
    }];
    _nextImgV.image=[UIImage imageNamed:@"hdl_ez_list_next"];
    //内容lable
    _contentL=[[UILabel alloc] init];
    [self addSubview:_contentL];
    [_contentL mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.bottom.equalTo(self);
        make.left.equalTo(_titleL.mas_right).offset(5);
        make.right.equalTo(_nextImgV.mas_left).offset(-5);
    }];
    _contentL.adjustsFontSizeToFitWidth=YES;
    _contentL.numberOfLines=2;
    _contentL.textAlignment=NSTextAlignmentRight;
    _contentL.textColor=HDLEZ_COLOR_TEXT_INPUT_PLACEHOLD_GRAY;
    _contentL.font=HDLEZ_Get_FontRegularWithSize(HDLEZ_FontSize_12);
    //下划线
    _lineV=[[UIView alloc] init];
    [self addSubview:_lineV];
    [_lineV mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.equalTo(self).offset(16);
        make.bottom.equalTo(self);
        make.right.equalTo(self).offset(-16);
        make.height.mas_equalTo(1);
    }];
    _lineV.backgroundColor=HDLEZ_COLOR_BACKGROUND_LINE;
    //按钮
    _button=[[UIButton alloc] init];
    [self addSubview:_button];
    [_button mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.right.top.bottom.equalTo(self);
    }];
    [_button addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];
}
/*点击按钮
 */
-(void)buttonClick{
    if (self.clickBtn) {
        self.clickBtn();
    }
}
/*隐藏右侧箭头
 */
-(void)hideNextImg{
    [_nextImgV mas_updateConstraints:^(MASConstraintMaker *make) {
        make.width.mas_equalTo(0);
    }];
    [_nextImgV setHidden:YES];
}
-(void)setTitle:(NSString *)title{
    _title=title;
    CGSize titleSize=[title sizeWithAttributes:@{NSFontAttributeName:HDLEZ_Get_FontRegularWithSize(HDLEZ_FontSize_14)}];
    [_titleL mas_updateConstraints:^(MASConstraintMaker *make) {
        make.width.mas_equalTo(titleSize.width+5);
    }];
    _titleL.text=title;
}
@end
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZTempDetailView.h
New file
@@ -0,0 +1,21 @@
//
//  HDLEZTempDetailView.h
//  EZSDK
//
//  Created by 陈启扬 on 2023/3/14.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
typedef void (^HDLEZTempDetailBlock)(NSString* content);
@interface HDLEZTempDetailView : UIView
@property(nonatomic,strong)HDLEZTemInfoModel *temPdetailModel;//临时密码model
@property(nonatomic,strong)HDLEZTempDetailBlock longTapPassWordBlock; //长按密码
@property(nonatomic,strong)HDLEZTempDetailBlock deletePassWordBlock; //删除密码
@end
NS_ASSUME_NONNULL_END
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZTempDetailView.m
New file
@@ -0,0 +1,239 @@
//
//  HDLEZTempDetailView.m
//  EZSDK
//
//  Created by 陈启扬 on 2023/3/14.
//
#import "HDLEZTempDetailView.h"
#import "HDLEZNormalCellView.h"
#import "HDLEZScrollView.h"
@interface HDLEZTempDetailView ()
@property (nonatomic, strong)HDLEZScrollView *scrollV;//滚动view
@property (nonatomic, strong)UIView *passwordV;//密码view
@property (nonatomic, strong)UILabel *passwordL;//密码lable
@property (nonatomic, strong)UILabel *describeL;//描述lable
@property (nonatomic, strong)HDLEZNormalCellView *userV;//使用人view
@property (nonatomic, strong)HDLEZNormalCellView *validV;//有效期view
@property (nonatomic, strong)HDLEZNormalCellView *validTimeV;//生效时间view
@property (nonatomic, strong)HDLEZNormalCellView *expireTimeV;//失效时间view
@property (nonatomic, strong)HDLEZNormalCellView *useCountV;//使用次数view
@property (nonatomic, strong)HDLEZButton *deleteBtn;//删除按钮
@end
@implementation HDLEZTempDetailView
-(instancetype)init{
    self = [super init];
    if (self) {
        [self initUI];
    }
    return  self;
}
-(void)initUI{
    //滚动view
    _scrollV=[[HDLEZScrollView alloc] init];
    if (@available(iOS 11.0, *)) {
        _scrollV.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
    }
    [self addSubview:_scrollV];
    [_scrollV mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(self);
        make.right.left.bottom.equalTo(self);
    }];
    _scrollV.contentSize=CGSizeMake(HDLEZ_APP_SCREEN_WIDTH, 665);
    //密码view
    _passwordV=[[UIView alloc] init];
    [_scrollV addSubview:_passwordV];
    [_passwordV mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(_scrollV);
        make.left.right.equalTo(self);
        make.height.mas_equalTo(180);
    }];
    //密码背景imageV
    UIImageView *passBackImgV=[[UIImageView alloc] init];
    [_passwordV addSubview:passBackImgV];
    [passBackImgV mas_makeConstraints:^(MASConstraintMaker *make) {
        make.center.equalTo(_passwordV);
        make.height.mas_equalTo(165);
        make.width.mas_equalTo(258);
    }];
    passBackImgV.image=[UIImage imageNamed:@"hdl_ez_temp_pass_word"];
    //密码lable
    _passwordL=[[UILabel alloc] init];
    [_passwordV addSubview:_passwordL];
    [_passwordL mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(passBackImgV).offset(50);
        make.left.equalTo(passBackImgV).offset(44);
        make.right.equalTo(passBackImgV).offset(-44);
        make.height.mas_equalTo(37);
    }];
    _passwordL.textAlignment=NSTextAlignmentCenter;
    _passwordL.textColor=HDLEZ_COLOR_TEXT_WHITE;
    _passwordL.font=HDLEZ_Get_FontRegularWithSize(HDLEZ_FontSize_26);
    //描述lable
    _describeL=[[UILabel alloc] init];
    [_passwordV addSubview:_describeL];
    [_describeL mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(_passwordL.mas_bottom);
        make.left.right.equalTo(_passwordL);
        make.height.mas_equalTo(15);
    }];
    _describeL.textAlignment=NSTextAlignmentCenter;
    _describeL.adjustsFontSizeToFitWidth=YES;
    _describeL.textColor=HDLEZ_COLOR_TEXT_WHITE;
    _describeL.font=HDLEZ_Get_FontRegularWithSize(HDLEZ_FontSize_10);
    _describeL.text=HDLEZLocallizedString(@"device_temp_long_tap_copy");
    //使用人
    _userV=[[HDLEZNormalCellView alloc] init];
    [_scrollV addSubview:_userV];
    [_userV mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(_passwordV.mas_bottom);
        make.left.right.equalTo(self);
        make.height.mas_equalTo(50);
    }];
    _userV.title= HDLEZLocallizedString(@"device_temp_user");
    _userV.titleL.font=HDLEZ_Get_FontRegularWithSize(HDLEZ_FontSize_16);
    [_userV.lineV setHidden:YES];
    [_userV hideNextImg];
    //有效期
    _validV=[[HDLEZNormalCellView alloc] init];
    [_scrollV addSubview:_validV];
    [_validV mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(_userV.mas_bottom).offset(8);
        make.left.right.equalTo(self);
        make.height.mas_equalTo(50);
    }];
    _validV.title= HDLEZLocallizedString(@"device_temp_valid_date");
    _validV.titleL.textColor=HDLEZ_COLOR_TEXT_LIGHT_BLUE;
    _validV.titleL.font=HDLEZ_Get_FontBoldWithSize(HDLEZ_FontSize_16);
    [_validV hideNextImg];
    //生效时间
    _validTimeV=[[HDLEZNormalCellView alloc] init];
    [_scrollV addSubview:_validTimeV];
    [_validTimeV mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(_validV.mas_bottom);
        make.left.right.equalTo(self);
        make.height.mas_equalTo(50);
    }];
    _validTimeV.title=HDLEZLocallizedString(@"device_temp_valid_begin");
    [_validTimeV hideNextImg];
    //失效时间
    _expireTimeV=[[HDLEZNormalCellView alloc] init];
    [_scrollV addSubview:_expireTimeV];
    [_expireTimeV mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(_validTimeV.mas_bottom);
        make.left.right.equalTo(self);
        make.height.mas_equalTo(50);
    }];
    _expireTimeV.title=HDLEZLocallizedString(@"device_temp_valid_end");
    [_expireTimeV.lineV setHidden:YES];
    [_expireTimeV hideNextImg];
    //使用次数
    _useCountV=[[HDLEZNormalCellView alloc] init];
    [_scrollV addSubview:_useCountV];
    [_useCountV mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(_expireTimeV.mas_bottom).offset(8);
        make.left.right.equalTo(self);
        make.height.mas_equalTo(50);
    }];
    _useCountV.title=HDLEZLocallizedString(@"device_temp_use_times");
    [_useCountV.lineV setHidden:YES];
    [_useCountV hideNextImg];
    //删除按钮
    _deleteBtn=[[HDLEZButton alloc] init];
    [_scrollV addSubview:_deleteBtn];
    [_deleteBtn mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(_useCountV.mas_bottom).offset(50);
        make.left.equalTo(self).offset(80);
        make.right.equalTo(self).offset(-80);
        make.height.mas_equalTo(42);
    }];
    _deleteBtn.layer.cornerRadius=21;
    _deleteBtn.layer.borderWidth=1;
    _deleteBtn.layer.borderColor=HDLEZ_COLOR_BACKGROUND_LINE_RED.CGColor;
    [_deleteBtn setTitleColor:HDLEZ_COLOR_BACKGROUND_LINE_RED forState:UIControlStateNormal];
    _deleteBtn.titleLabel.font=HDLEZ_Get_FontRegularWithSize(HDLEZ_FontSize_16);
    [_deleteBtn setTitle:HDLEZLocallizedString(@"delete") forState:UIControlStateNormal];
    [_deleteBtn addTarget:self action:@selector(delete) forControlEvents:UIControlEventTouchUpInside];
    //添加点击事件
    UILongPressGestureRecognizer *longTap=[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longTapTemp)];
    [passBackImgV addGestureRecognizer:longTap];
    _passwordV.userInteractionEnabled=YES;
    passBackImgV.userInteractionEnabled=YES;
}
/*长按密码
 */
-(void)longTapTemp{
    if (self.longTapPassWordBlock) {
        self.longTapPassWordBlock(_passwordL.text);
    }
}
/*点击删除
 */
-(void)delete{
    if (self.deletePassWordBlock) {
        self.deletePassWordBlock(@"");
    }
}
/*时间转string
 @param date 时间
 */
-(NSString *)turnDate:(NSDate*)date{
    return [HDLEZConstants timeStrWithFormate:[NSString stringWithFormat:@"yyyy%@MM%@dd%@ HH:mm",HDLEZLocallizedString(@"device_temp_year"),HDLEZLocallizedString(@"device_temp_month"),HDLEZLocallizedString(@"device_temp_date")] data:date];
}
/*设置临时密码信息值
 */
-(void)setTemPdetailModel:(HDLEZTemInfoModel *)temPdetailModel{
    _temPdetailModel=temPdetailModel;
    //密码
    _passwordL.text=temPdetailModel.password;
    //使用人
    _userV.contentL.text=temPdetailModel.userName;
    //开始时间
    _validTimeV.contentL.text= [self turnDate:[NSDate dateWithTimeIntervalSince1970:[temPdetailModel.beginTime integerValue]]];
    //结束时间
    _expireTimeV.contentL.text= [self turnDate:[NSDate dateWithTimeIntervalSince1970:[temPdetailModel.endTime integerValue]]];
    //使用此时
    if ([temPdetailModel.limitCount isEqualToString:@"-1"]) {
        _useCountV.contentL.text=HDLEZLocallizedString(@"device_temp_unlimited_use_times");
    }else{
        _useCountV.contentL.text=[NSString stringWithFormat:@"%@%@%@,%@%@%@",HDLEZLocallizedString(@"device_temp_total"),temPdetailModel.limitCount,HDLEZLocallizedString(@"device_temp_times"),HDLEZLocallizedString(@"device_temp_left"),temPdetailModel.useCount,HDLEZLocallizedString(@"device_temp_times")];
    }
}
@end
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVisitorRecordCell.m
@@ -128,10 +128,16 @@
    _timeL.text=[NSString stringWithFormat:@"%@ - %@",[self turnDate:tempInfo.beginTime],[self turnDate:tempInfo.endTime]];
    
    //剩余次数
    NSString *contentStr=[NSString stringWithFormat:@"%@%@%@",HDLEZLocallizedString(@"device_temp_left"),tempInfo.useCount,HDLEZLocallizedString(@"device_temp_times")];
    NSMutableAttributedString *attributedStringM = [[NSMutableAttributedString alloc] initWithString:contentStr];
    [attributedStringM addAttribute:NSForegroundColorAttributeName value:HDLEZ_COLOR_TITLE_BLACK range:NSMakeRange(contentStr.length-HDLEZLocallizedString(@"device_temp_times").length-tempInfo.useCount.length, tempInfo.useCount.length)];
    _describeL.attributedText=attributedStringM;
    if ([tempInfo.useCount isEqualToString:@"-1"]) {//不限次数
        _describeL.text=HDLEZLocallizedString(@"device_temp_unlimited_use_times");
        _describeL.textColor=HDLEZ_COLOR_TITLE_BLACK;
    }else{
        NSString *contentStr=[NSString stringWithFormat:@"%@%@%@",HDLEZLocallizedString(@"device_temp_left"),tempInfo.useCount,HDLEZLocallizedString(@"device_temp_times")];
        NSMutableAttributedString *attributedStringM = [[NSMutableAttributedString alloc] initWithString:contentStr];
        [attributedStringM addAttribute:NSForegroundColorAttributeName value:HDLEZ_COLOR_TITLE_BLACK range:NSMakeRange(contentStr.length-HDLEZLocallizedString(@"device_temp_times").length-tempInfo.useCount.length, tempInfo.useCount.length)];
        _describeL.attributedText=attributedStringM;
    }
    
    
}
EZSDK/EZSDK/EZ/TempPassword/Views/HDLFVCreateTemPassView.h
File was deleted
EZSDK/EZSDK/EZ/TempPassword/Views/HDLFVCreateTemPassView.m
File was deleted
EZSDK/EZSDK/EZ/Venders/FQDateTimeSDK.framework/FQDateTimeSDK
Binary files differ
EZSDK/EZSDK/EZ/Venders/FQDateTimeSDK.framework/Headers/FQDateTimePickerView.h
New file
@@ -0,0 +1,107 @@
//
//  FQDateTimePickerView.h
//  FQTools
//
//  Created by wuwuFQ on 2021/5/26.
//
#import <UIKit/UIKit.h>
typedef enum{
    FQDateTimePickerModelYMDate,// 年月 2021-05
    FQDateTimePickerModelDate,// 年月日 2021-05-26
    FQDateTimePickerModelDateTime,//年月日 时分 yyyy-mm-dd HH:mm 只支持24小时制
    FQDateTimePickerModelDateTimeSecond,//年月日 时分秒 yyyy-mm-dd HH:mm:ss 只支持24小时制
    FQDateTimePickerModelTime,// 时分 HH:mm 只支持24小时制
    FQDateTimePickerModelTimeSecond,// 时分秒 HH:mm:ss 只支持24小时制
} FQDateTimePickerModel;
NS_ASSUME_NONNULL_BEGIN
@protocol FQDateTimePickerViewDelegate <NSObject>
/// 确认操作
/// @param date 日期NSDate
/// @param dateStr 日期NSString
/// @param target 用于区分pickerView
- (void)confirmActionWithDate:(NSDate *)date withDateString:(NSString *)dateStr withTarget:(NSInteger)target;
@optional
/// 取消操作
/// @param target 用于区分pickerView
- (void)cancelActionWithTarget:(NSInteger)target;
/// 滚动操作
/// @param date 日期NSDate
/// @param dateStr 日期NSString
/// @param target 用于区分pickerView
- (void)scrollActionWithDate:(NSDate *)date withDateString:(NSString *)dateStr withTarget:(NSInteger)target;
@end
@interface FQDateTimePickerView : UIView
/*----------------   UI  ------------------------*/
/// 遮罩背景色
@property (nonatomic, strong) UIColor *maskBackgroundColor;
/// 选择器背景色
@property (nonatomic, strong) UIColor *pickerBackgroundColor;
///确定按钮文本
@property (nonatomic, copy) NSString *confirmText;
///确定按钮颜色 默认black
@property (nonatomic, strong) UIColor *confirmColor;
///确定按钮字体 默认系统18pt
@property (nonatomic, strong) UIFont *confirmFont;
///取消按钮文本
@property (nonatomic, copy) NSString *cancelText;
///取消按钮颜色 默认黑色
@property (nonatomic, strong) UIColor *cancelColor;
///取消按钮字体 默认系统18pt
@property (nonatomic, strong) UIFont *cancelFont;
///标题文本 默认 ""
@property (nonatomic, copy) NSString *title;
///标题颜色 默认黑色
@property (nonatomic, strong) UIColor *titleColor;
///标题字体 默认系统SFUI-Regular 16.00pt
@property (nonatomic, strong) UIFont *titleFont;
///滚轮日期文本颜色(默认black)
@property (nonatomic, strong) UIColor *pickerColor;
///滚轮日期文本字体[UIFont systemFontOfSize:16]
@property (nonatomic, strong) UIFont *pickerFont;
/*----------------   NSDate  ------------------------*/
///限制最大时间
@property (nonatomic, strong) NSDate *maxDate;
///限制最小时间
@property (nonatomic, strong) NSDate *minDate;
///默认时间 - - 默认当前时间
@property (nonatomic, strong) NSDate *defaultDate;
/// 单位:默认[@"年", @"月", @"日", @"时", @"分", @"秒"],请一一对应,设置 unitsData = nil 可置空
@property (nonatomic, strong, null_unspecified) NSArray *unitsData;
/*----------------   other  ------------------------*/
/// Protocol
@property (nonatomic, weak) id<FQDateTimePickerViewDelegate> delegate;
/// 选择器的枚举 默认FQDateTimePickerModelDate
@property (nonatomic, assign) FQDateTimePickerModel pickerModel;
/// pickerView的tag  用于区分回调
@property (nonatomic, assign) NSInteger target;
/// 展示在window上(请在展示之前,设置好需要的属性)
- (void)showPicker;
/// 展示在view上(请在展示之前,设置好需要的属性)
/// - Parameter view: <#view description#>
- (void)showPickerInView:(UIView *)view;
@end
NS_ASSUME_NONNULL_END
EZSDK/EZSDK/EZ/Venders/FQDateTimeSDK.framework/Headers/FQDateTimeSDK.h
New file
@@ -0,0 +1,18 @@
//
//  FQDateTimeSDK.h
//  FQDateTimeSDK
//
//  Created by wuwuFQ on 2022/4/28.
//
#import <Foundation/Foundation.h>
#import "FQDateTimePickerView.h"
//! Project version number for FQDateTimeSDK.
FOUNDATION_EXPORT double FQDateTimeSDKVersionNumber;
//! Project version string for FQDateTimeSDK.
FOUNDATION_EXPORT const unsigned char FQDateTimeSDKVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <FQDateTimeSDK/PublicHeader.h>
EZSDK/EZSDK/EZ/Venders/FQDateTimeSDK.framework/Info.plist
Binary files differ
EZSDK/EZSDK/EZ/Venders/FQDateTimeSDK.framework/Modules/module.modulemap
New file
@@ -0,0 +1,6 @@
framework module FQDateTimeSDK {
  umbrella header "FQDateTimeSDK.h"
  export *
  module * { export * }
}