update
This commit is contained in:
@@ -33,6 +33,8 @@
|
|||||||
791887C12A839784007EA0C1 /* RefuseOrderEntryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 791887C02A839784007EA0C1 /* RefuseOrderEntryView.swift */; };
|
791887C12A839784007EA0C1 /* RefuseOrderEntryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 791887C02A839784007EA0C1 /* RefuseOrderEntryView.swift */; };
|
||||||
791887C42A84BFDB007EA0C1 /* Tool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 791887C32A84BFDB007EA0C1 /* Tool.swift */; };
|
791887C42A84BFDB007EA0C1 /* Tool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 791887C32A84BFDB007EA0C1 /* Tool.swift */; };
|
||||||
791887C62A84D9DF007EA0C1 /* DispatchOrderController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 791887C52A84D9DF007EA0C1 /* DispatchOrderController.swift */; };
|
791887C62A84D9DF007EA0C1 /* DispatchOrderController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 791887C52A84D9DF007EA0C1 /* DispatchOrderController.swift */; };
|
||||||
|
792EE0952AA74E0A00A212AB /* PushNotiCommonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 792EE0942AA74E0A00A212AB /* PushNotiCommonView.swift */; };
|
||||||
|
792EE0972AA74E5800A212AB /* PushNotiCommonTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 792EE0962AA74E5800A212AB /* PushNotiCommonTool.swift */; };
|
||||||
794FBB0D2A8F040D00D57BB8 /* HistoryController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB0C2A8F040D00D57BB8 /* HistoryController.swift */; };
|
794FBB0D2A8F040D00D57BB8 /* HistoryController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB0C2A8F040D00D57BB8 /* HistoryController.swift */; };
|
||||||
794FBB142A8F045F00D57BB8 /* MineController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB132A8F045F00D57BB8 /* MineController.swift */; };
|
794FBB142A8F045F00D57BB8 /* MineController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB132A8F045F00D57BB8 /* MineController.swift */; };
|
||||||
794FBB162A8F1A3300D57BB8 /* RescuePhotoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB152A8F1A3300D57BB8 /* RescuePhotoController.swift */; };
|
794FBB162A8F1A3300D57BB8 /* RescuePhotoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB152A8F1A3300D57BB8 /* RescuePhotoController.swift */; };
|
||||||
@@ -41,6 +43,7 @@
|
|||||||
794FBB1F2A92F7C300D57BB8 /* WebViewTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB1E2A92F7C300D57BB8 /* WebViewTool.swift */; };
|
794FBB1F2A92F7C300D57BB8 /* WebViewTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB1E2A92F7C300D57BB8 /* WebViewTool.swift */; };
|
||||||
794FBB212A934E0A00D57BB8 /* AppUpdateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB202A934E0A00D57BB8 /* AppUpdateView.swift */; };
|
794FBB212A934E0A00D57BB8 /* AppUpdateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB202A934E0A00D57BB8 /* AppUpdateView.swift */; };
|
||||||
794FBB232A93519800D57BB8 /* AppUpdateTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB222A93519800D57BB8 /* AppUpdateTool.swift */; };
|
794FBB232A93519800D57BB8 /* AppUpdateTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB222A93519800D57BB8 /* AppUpdateTool.swift */; };
|
||||||
|
79CB07CC2AA8465A00154B61 /* UserPermission.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79CB07CB2AA8465A00154B61 /* UserPermission.swift */; };
|
||||||
79CECC122A89BD1A00B95D8B /* MessageCenterController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79CECC112A89BD1A00B95D8B /* MessageCenterController.swift */; };
|
79CECC122A89BD1A00B95D8B /* MessageCenterController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79CECC112A89BD1A00B95D8B /* MessageCenterController.swift */; };
|
||||||
79CECC192A89EE6A00B95D8B /* ReviewFailedController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79CECC182A89EE6A00B95D8B /* ReviewFailedController.swift */; };
|
79CECC192A89EE6A00B95D8B /* ReviewFailedController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79CECC182A89EE6A00B95D8B /* ReviewFailedController.swift */; };
|
||||||
79CECC1B2A89F83800B95D8B /* AdditionalPhotoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79CECC1A2A89F83800B95D8B /* AdditionalPhotoController.swift */; };
|
79CECC1B2A89F83800B95D8B /* AdditionalPhotoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79CECC1A2A89F83800B95D8B /* AdditionalPhotoController.swift */; };
|
||||||
@@ -129,6 +132,8 @@
|
|||||||
791887C02A839784007EA0C1 /* RefuseOrderEntryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RefuseOrderEntryView.swift; sourceTree = "<group>"; };
|
791887C02A839784007EA0C1 /* RefuseOrderEntryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RefuseOrderEntryView.swift; sourceTree = "<group>"; };
|
||||||
791887C32A84BFDB007EA0C1 /* Tool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tool.swift; sourceTree = "<group>"; };
|
791887C32A84BFDB007EA0C1 /* Tool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tool.swift; sourceTree = "<group>"; };
|
||||||
791887C52A84D9DF007EA0C1 /* DispatchOrderController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DispatchOrderController.swift; sourceTree = "<group>"; };
|
791887C52A84D9DF007EA0C1 /* DispatchOrderController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DispatchOrderController.swift; sourceTree = "<group>"; };
|
||||||
|
792EE0942AA74E0A00A212AB /* PushNotiCommonView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotiCommonView.swift; sourceTree = "<group>"; };
|
||||||
|
792EE0962AA74E5800A212AB /* PushNotiCommonTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotiCommonTool.swift; sourceTree = "<group>"; };
|
||||||
794FBB0C2A8F040D00D57BB8 /* HistoryController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoryController.swift; sourceTree = "<group>"; };
|
794FBB0C2A8F040D00D57BB8 /* HistoryController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoryController.swift; sourceTree = "<group>"; };
|
||||||
794FBB132A8F045F00D57BB8 /* MineController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MineController.swift; sourceTree = "<group>"; };
|
794FBB132A8F045F00D57BB8 /* MineController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MineController.swift; sourceTree = "<group>"; };
|
||||||
794FBB152A8F1A3300D57BB8 /* RescuePhotoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RescuePhotoController.swift; sourceTree = "<group>"; };
|
794FBB152A8F1A3300D57BB8 /* RescuePhotoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RescuePhotoController.swift; sourceTree = "<group>"; };
|
||||||
@@ -137,6 +142,7 @@
|
|||||||
794FBB1E2A92F7C300D57BB8 /* WebViewTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebViewTool.swift; sourceTree = "<group>"; };
|
794FBB1E2A92F7C300D57BB8 /* WebViewTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebViewTool.swift; sourceTree = "<group>"; };
|
||||||
794FBB202A934E0A00D57BB8 /* AppUpdateView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppUpdateView.swift; sourceTree = "<group>"; };
|
794FBB202A934E0A00D57BB8 /* AppUpdateView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppUpdateView.swift; sourceTree = "<group>"; };
|
||||||
794FBB222A93519800D57BB8 /* AppUpdateTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppUpdateTool.swift; sourceTree = "<group>"; };
|
794FBB222A93519800D57BB8 /* AppUpdateTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppUpdateTool.swift; sourceTree = "<group>"; };
|
||||||
|
79CB07CB2AA8465A00154B61 /* UserPermission.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserPermission.swift; sourceTree = "<group>"; };
|
||||||
79CECC112A89BD1A00B95D8B /* MessageCenterController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageCenterController.swift; sourceTree = "<group>"; };
|
79CECC112A89BD1A00B95D8B /* MessageCenterController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageCenterController.swift; sourceTree = "<group>"; };
|
||||||
79CECC182A89EE6A00B95D8B /* ReviewFailedController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReviewFailedController.swift; sourceTree = "<group>"; };
|
79CECC182A89EE6A00B95D8B /* ReviewFailedController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReviewFailedController.swift; sourceTree = "<group>"; };
|
||||||
79CECC1A2A89F83800B95D8B /* AdditionalPhotoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdditionalPhotoController.swift; sourceTree = "<group>"; };
|
79CECC1A2A89F83800B95D8B /* AdditionalPhotoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdditionalPhotoController.swift; sourceTree = "<group>"; };
|
||||||
@@ -252,6 +258,8 @@
|
|||||||
791887C02A839784007EA0C1 /* RefuseOrderEntryView.swift */,
|
791887C02A839784007EA0C1 /* RefuseOrderEntryView.swift */,
|
||||||
79FB75ED2A9898EB00DB00A4 /* AcceptOrderView.swift */,
|
79FB75ED2A9898EB00DB00A4 /* AcceptOrderView.swift */,
|
||||||
79FB75EF2A98A26C00DB00A4 /* AcceptOrderTool.swift */,
|
79FB75EF2A98A26C00DB00A4 /* AcceptOrderTool.swift */,
|
||||||
|
792EE0942AA74E0A00A212AB /* PushNotiCommonView.swift */,
|
||||||
|
792EE0962AA74E5800A212AB /* PushNotiCommonTool.swift */,
|
||||||
);
|
);
|
||||||
path = View;
|
path = View;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -383,6 +391,7 @@
|
|||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
791887AD2A80F943007EA0C1 /* UserData.swift */,
|
791887AD2A80F943007EA0C1 /* UserData.swift */,
|
||||||
|
79CB07CB2AA8465A00154B61 /* UserPermission.swift */,
|
||||||
);
|
);
|
||||||
path = User;
|
path = User;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -954,6 +963,7 @@
|
|||||||
79FB761C2A9EEC3700DB00A4 /* GroupData.swift in Sources */,
|
79FB761C2A9EEC3700DB00A4 /* GroupData.swift in Sources */,
|
||||||
79FB76172A9DFC9600DB00A4 /* NotificationSetUpController.swift in Sources */,
|
79FB76172A9DFC9600DB00A4 /* NotificationSetUpController.swift in Sources */,
|
||||||
79CECC262A8C749B00B95D8B /* VehicleMonitorVideoController.swift in Sources */,
|
79CECC262A8C749B00B95D8B /* VehicleMonitorVideoController.swift in Sources */,
|
||||||
|
792EE0952AA74E0A00A212AB /* PushNotiCommonView.swift in Sources */,
|
||||||
794FBB212A934E0A00D57BB8 /* AppUpdateView.swift in Sources */,
|
794FBB212A934E0A00D57BB8 /* AppUpdateView.swift in Sources */,
|
||||||
79DD0DB42A95F00B00768FE7 /* Extension.swift in Sources */,
|
79DD0DB42A95F00B00768FE7 /* Extension.swift in Sources */,
|
||||||
791887802A7CE6F1007EA0C1 /* UserDefaultStrings.swift in Sources */,
|
791887802A7CE6F1007EA0C1 /* UserDefaultStrings.swift in Sources */,
|
||||||
@@ -985,7 +995,9 @@
|
|||||||
79CECC122A89BD1A00B95D8B /* MessageCenterController.swift in Sources */,
|
79CECC122A89BD1A00B95D8B /* MessageCenterController.swift in Sources */,
|
||||||
794FBB1F2A92F7C300D57BB8 /* WebViewTool.swift in Sources */,
|
794FBB1F2A92F7C300D57BB8 /* WebViewTool.swift in Sources */,
|
||||||
791887822A7CE71D007EA0C1 /* AppKeyStrings.swift in Sources */,
|
791887822A7CE71D007EA0C1 /* AppKeyStrings.swift in Sources */,
|
||||||
|
79CB07CC2AA8465A00154B61 /* UserPermission.swift in Sources */,
|
||||||
79CECC282A8CADEA00B95D8B /* VehicleMonitoringVideoDetailController.swift in Sources */,
|
79CECC282A8CADEA00B95D8B /* VehicleMonitoringVideoDetailController.swift in Sources */,
|
||||||
|
792EE0972AA74E5800A212AB /* PushNotiCommonTool.swift in Sources */,
|
||||||
79FB75F02A98A26C00DB00A4 /* AcceptOrderTool.swift in Sources */,
|
79FB75F02A98A26C00DB00A4 /* AcceptOrderTool.swift in Sources */,
|
||||||
791887A12A80CA10007EA0C1 /* ApiList.swift in Sources */,
|
791887A12A80CA10007EA0C1 /* ApiList.swift in Sources */,
|
||||||
791887AE2A80F943007EA0C1 /* UserData.swift in Sources */,
|
791887AE2A80F943007EA0C1 /* UserData.swift in Sources */,
|
||||||
|
|||||||
Binary file not shown.
@@ -253,8 +253,8 @@
|
|||||||
filePath = "OrderScheduling/Main/Initial.swift"
|
filePath = "OrderScheduling/Main/Initial.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "127"
|
startingLineNumber = "155"
|
||||||
endingLineNumber = "127"
|
endingLineNumber = "155"
|
||||||
landmarkName = "networkErrorHandler(response:)"
|
landmarkName = "networkErrorHandler(response:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -269,8 +269,8 @@
|
|||||||
filePath = "OrderScheduling/Main/Initial.swift"
|
filePath = "OrderScheduling/Main/Initial.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "128"
|
startingLineNumber = "156"
|
||||||
endingLineNumber = "128"
|
endingLineNumber = "156"
|
||||||
landmarkName = "Initial"
|
landmarkName = "Initial"
|
||||||
landmarkType = "21">
|
landmarkType = "21">
|
||||||
<Locations>
|
<Locations>
|
||||||
@@ -317,8 +317,8 @@
|
|||||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "599"
|
startingLineNumber = "636"
|
||||||
endingLineNumber = "599"
|
endingLineNumber = "636"
|
||||||
landmarkName = "tableView(_:cellForRowAt:)"
|
landmarkName = "tableView(_:cellForRowAt:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -526,6 +526,21 @@
|
|||||||
endingLineNumber = "35"
|
endingLineNumber = "35"
|
||||||
offsetFromSymbolStart = "504">
|
offsetFromSymbolStart = "504">
|
||||||
</Location>
|
</Location>
|
||||||
|
<Location
|
||||||
|
uuid = "F60CEE6A-AA19-4BDA-96D1-8F3B46A87FF5 - 7f2f3b14f8e01946"
|
||||||
|
shouldBeEnabled = "Yes"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
symbolName = "+[UIImage(DDCategory) dd_thumbnailImageForVideo:]"
|
||||||
|
moduleName = "OrderSchedulingNotificationService"
|
||||||
|
usesParentBreakpointCondition = "Yes"
|
||||||
|
urlString = "file:///Users/zd/Desktop/%E4%B8%AD%E9%81%93%E6%95%91%E6%8F%B4/OrderScheduling/Pods/DDCategoryKit_Private/DDCategoryKit_Private/Classes/UIImage+DDCategory/UIImage+DDCategory.m"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "35"
|
||||||
|
endingLineNumber = "35"
|
||||||
|
offsetFromSymbolStart = "504">
|
||||||
|
</Location>
|
||||||
</Locations>
|
</Locations>
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
</BreakpointProxy>
|
</BreakpointProxy>
|
||||||
@@ -539,8 +554,8 @@
|
|||||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "844"
|
startingLineNumber = "933"
|
||||||
endingLineNumber = "844"
|
endingLineNumber = "933"
|
||||||
landmarkName = "collectionView(_:cellForItemAt:)"
|
landmarkName = "collectionView(_:cellForItemAt:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -1237,8 +1252,8 @@
|
|||||||
filePath = "OrderScheduling/Main/AppDelegate.swift"
|
filePath = "OrderScheduling/Main/AppDelegate.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "138"
|
startingLineNumber = "149"
|
||||||
endingLineNumber = "138"
|
endingLineNumber = "149"
|
||||||
landmarkName = "jpushNotificationAuthorization(_:withInfo:)"
|
landmarkName = "jpushNotificationAuthorization(_:withInfo:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -1253,8 +1268,8 @@
|
|||||||
filePath = "OrderScheduling/Main/AppDelegate.swift"
|
filePath = "OrderScheduling/Main/AppDelegate.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "126"
|
startingLineNumber = "137"
|
||||||
endingLineNumber = "126"
|
endingLineNumber = "137"
|
||||||
landmarkName = "jpushNotificationCenter(_:didReceive:withCompletionHandler:)"
|
landmarkName = "jpushNotificationCenter(_:didReceive:withCompletionHandler:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -1413,8 +1428,8 @@
|
|||||||
filePath = "OrderScheduling/Main/Initial.swift"
|
filePath = "OrderScheduling/Main/Initial.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "113"
|
startingLineNumber = "138"
|
||||||
endingLineNumber = "113"
|
endingLineNumber = "138"
|
||||||
landmarkName = "changeRootViewController(window:)"
|
landmarkName = "changeRootViewController(window:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -1445,8 +1460,8 @@
|
|||||||
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "256"
|
startingLineNumber = "269"
|
||||||
endingLineNumber = "256"
|
endingLineNumber = "269"
|
||||||
landmarkName = "reloadData()"
|
landmarkName = "reloadData()"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -1509,8 +1524,8 @@
|
|||||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "256"
|
startingLineNumber = "241"
|
||||||
endingLineNumber = "256"
|
endingLineNumber = "241"
|
||||||
landmarkName = "entry(model:remarkId:)"
|
landmarkName = "entry(model:remarkId:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -1888,8 +1903,8 @@
|
|||||||
filePath = "OrderScheduling/Main/AppDelegate.swift"
|
filePath = "OrderScheduling/Main/AppDelegate.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "128"
|
startingLineNumber = "139"
|
||||||
endingLineNumber = "128"
|
endingLineNumber = "139"
|
||||||
landmarkName = "jpushNotificationCenter(_:didReceive:withCompletionHandler:)"
|
landmarkName = "jpushNotificationCenter(_:didReceive:withCompletionHandler:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -2029,8 +2044,8 @@
|
|||||||
filePath = "OrderScheduling/Main/Initial.swift"
|
filePath = "OrderScheduling/Main/Initial.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "104"
|
startingLineNumber = "129"
|
||||||
endingLineNumber = "104"
|
endingLineNumber = "129"
|
||||||
landmarkName = "changeRootViewController(window:)"
|
landmarkName = "changeRootViewController(window:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -2157,8 +2172,8 @@
|
|||||||
filePath = "OrderScheduling/Main/Initial.swift"
|
filePath = "OrderScheduling/Main/Initial.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "119"
|
startingLineNumber = "147"
|
||||||
endingLineNumber = "119"
|
endingLineNumber = "147"
|
||||||
landmarkName = "Initial"
|
landmarkName = "Initial"
|
||||||
landmarkType = "3">
|
landmarkType = "3">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -2381,8 +2396,8 @@
|
|||||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "855"
|
startingLineNumber = "944"
|
||||||
endingLineNumber = "855"
|
endingLineNumber = "944"
|
||||||
landmarkName = "collectionView(_:didSelectItemAt:)"
|
landmarkName = "collectionView(_:didSelectItemAt:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -2465,22 +2480,6 @@
|
|||||||
</Locations>
|
</Locations>
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
</BreakpointProxy>
|
</BreakpointProxy>
|
||||||
<BreakpointProxy
|
|
||||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
|
||||||
<BreakpointContent
|
|
||||||
uuid = "AE73D0A1-4B76-48CE-B9B1-7F631C9CBC4D"
|
|
||||||
shouldBeEnabled = "No"
|
|
||||||
ignoreCount = "0"
|
|
||||||
continueAfterRunningActions = "No"
|
|
||||||
filePath = "OrderSchedulingNotificationService/NotificationService.swift"
|
|
||||||
startingColumnNumber = "9223372036854775807"
|
|
||||||
endingColumnNumber = "9223372036854775807"
|
|
||||||
startingLineNumber = "59"
|
|
||||||
endingLineNumber = "59"
|
|
||||||
landmarkName = "didReceive(_:withContentHandler:)"
|
|
||||||
landmarkType = "7">
|
|
||||||
</BreakpointContent>
|
|
||||||
</BreakpointProxy>
|
|
||||||
<BreakpointProxy
|
<BreakpointProxy
|
||||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
<BreakpointContent
|
<BreakpointContent
|
||||||
@@ -2614,8 +2613,8 @@
|
|||||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "331"
|
startingLineNumber = "316"
|
||||||
endingLineNumber = "331"
|
endingLineNumber = "316"
|
||||||
landmarkName = "addActions()"
|
landmarkName = "addActions()"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -2630,8 +2629,8 @@
|
|||||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "320"
|
startingLineNumber = "305"
|
||||||
endingLineNumber = "320"
|
endingLineNumber = "305"
|
||||||
landmarkName = "addActions()"
|
landmarkName = "addActions()"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -2646,8 +2645,8 @@
|
|||||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "322"
|
startingLineNumber = "307"
|
||||||
endingLineNumber = "322"
|
endingLineNumber = "307"
|
||||||
landmarkName = "addActions()"
|
landmarkName = "addActions()"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -2678,8 +2677,8 @@
|
|||||||
filePath = "OrderSchedulingNotificationService/NotificationService.swift"
|
filePath = "OrderSchedulingNotificationService/NotificationService.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "24"
|
startingLineNumber = "29"
|
||||||
endingLineNumber = "24"
|
endingLineNumber = "29"
|
||||||
landmarkName = "didReceive(_:withContentHandler:)"
|
landmarkName = "didReceive(_:withContentHandler:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -2795,22 +2794,6 @@
|
|||||||
</Locations>
|
</Locations>
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
</BreakpointProxy>
|
</BreakpointProxy>
|
||||||
<BreakpointProxy
|
|
||||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
|
||||||
<BreakpointContent
|
|
||||||
uuid = "553E1DED-598C-4AC7-AB8A-8E3A45E18CAD"
|
|
||||||
shouldBeEnabled = "No"
|
|
||||||
ignoreCount = "0"
|
|
||||||
continueAfterRunningActions = "No"
|
|
||||||
filePath = "OrderSchedulingNotificationService/NotificationService.swift"
|
|
||||||
startingColumnNumber = "9223372036854775807"
|
|
||||||
endingColumnNumber = "9223372036854775807"
|
|
||||||
startingLineNumber = "53"
|
|
||||||
endingLineNumber = "53"
|
|
||||||
landmarkName = "didReceive(_:withContentHandler:)"
|
|
||||||
landmarkType = "7">
|
|
||||||
</BreakpointContent>
|
|
||||||
</BreakpointProxy>
|
|
||||||
<BreakpointProxy
|
<BreakpointProxy
|
||||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
<BreakpointContent
|
<BreakpointContent
|
||||||
@@ -2837,8 +2820,8 @@
|
|||||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "96"
|
startingLineNumber = "74"
|
||||||
endingLineNumber = "96"
|
endingLineNumber = "74"
|
||||||
landmarkName = "addActions()"
|
landmarkName = "addActions()"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -2917,8 +2900,8 @@
|
|||||||
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "255"
|
startingLineNumber = "268"
|
||||||
endingLineNumber = "255"
|
endingLineNumber = "268"
|
||||||
landmarkName = "reloadData()"
|
landmarkName = "reloadData()"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -2933,8 +2916,8 @@
|
|||||||
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "254"
|
startingLineNumber = "267"
|
||||||
endingLineNumber = "254"
|
endingLineNumber = "267"
|
||||||
landmarkName = "reloadData()"
|
landmarkName = "reloadData()"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -2949,8 +2932,8 @@
|
|||||||
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "210"
|
startingLineNumber = "223"
|
||||||
endingLineNumber = "210"
|
endingLineNumber = "223"
|
||||||
landmarkName = "viewDidLoad()"
|
landmarkName = "viewDidLoad()"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -2965,8 +2948,8 @@
|
|||||||
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "204"
|
startingLineNumber = "217"
|
||||||
endingLineNumber = "204"
|
endingLineNumber = "217"
|
||||||
landmarkName = "viewDidLoad()"
|
landmarkName = "viewDidLoad()"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -3284,28 +3267,12 @@
|
|||||||
filePath = "OrderScheduling/Main/SceneDelegate.swift"
|
filePath = "OrderScheduling/Main/SceneDelegate.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "21"
|
startingLineNumber = "22"
|
||||||
endingLineNumber = "21"
|
endingLineNumber = "22"
|
||||||
landmarkName = "scene(_:willConnectTo:options:)"
|
landmarkName = "scene(_:willConnectTo:options:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
</BreakpointProxy>
|
</BreakpointProxy>
|
||||||
<BreakpointProxy
|
|
||||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
|
||||||
<BreakpointContent
|
|
||||||
uuid = "DEC821E4-E165-42B8-9B0D-B4AE114BDCDA"
|
|
||||||
shouldBeEnabled = "No"
|
|
||||||
ignoreCount = "0"
|
|
||||||
continueAfterRunningActions = "No"
|
|
||||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
|
||||||
startingColumnNumber = "9223372036854775807"
|
|
||||||
endingColumnNumber = "9223372036854775807"
|
|
||||||
startingLineNumber = "77"
|
|
||||||
endingLineNumber = "77"
|
|
||||||
landmarkName = "addActions()"
|
|
||||||
landmarkType = "7">
|
|
||||||
</BreakpointContent>
|
|
||||||
</BreakpointProxy>
|
|
||||||
<BreakpointProxy
|
<BreakpointProxy
|
||||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
<BreakpointContent
|
<BreakpointContent
|
||||||
@@ -3316,8 +3283,8 @@
|
|||||||
filePath = "OrderScheduling/Main/AppDelegate.swift"
|
filePath = "OrderScheduling/Main/AppDelegate.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "137"
|
startingLineNumber = "148"
|
||||||
endingLineNumber = "137"
|
endingLineNumber = "148"
|
||||||
landmarkName = "jpushNotificationAuthorization(_:withInfo:)"
|
landmarkName = "jpushNotificationAuthorization(_:withInfo:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -3332,8 +3299,8 @@
|
|||||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "938"
|
startingLineNumber = "1027"
|
||||||
endingLineNumber = "938"
|
endingLineNumber = "1027"
|
||||||
landmarkName = "viewSafeAreaInsetsDidChange()"
|
landmarkName = "viewSafeAreaInsetsDidChange()"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -3380,8 +3347,8 @@
|
|||||||
filePath = "OrderScheduling/Main/SceneDelegate.swift"
|
filePath = "OrderScheduling/Main/SceneDelegate.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "37"
|
startingLineNumber = "38"
|
||||||
endingLineNumber = "37"
|
endingLineNumber = "38"
|
||||||
landmarkName = "sceneDidBecomeActive(_:)"
|
landmarkName = "sceneDidBecomeActive(_:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
<Locations>
|
<Locations>
|
||||||
@@ -3428,8 +3395,8 @@
|
|||||||
filePath = "OrderScheduling/Main/SceneDelegate.swift"
|
filePath = "OrderScheduling/Main/SceneDelegate.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "47"
|
startingLineNumber = "50"
|
||||||
endingLineNumber = "47"
|
endingLineNumber = "50"
|
||||||
landmarkName = "sceneWillResignActive(_:)"
|
landmarkName = "sceneWillResignActive(_:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -3444,8 +3411,8 @@
|
|||||||
filePath = "OrderScheduling/Main/SceneDelegate.swift"
|
filePath = "OrderScheduling/Main/SceneDelegate.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "57"
|
startingLineNumber = "60"
|
||||||
endingLineNumber = "57"
|
endingLineNumber = "60"
|
||||||
landmarkName = "sceneWillEnterForeground(_:)"
|
landmarkName = "sceneWillEnterForeground(_:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -3508,8 +3475,8 @@
|
|||||||
filePath = "OrderScheduling/Main/SceneDelegate.swift"
|
filePath = "OrderScheduling/Main/SceneDelegate.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "66"
|
startingLineNumber = "69"
|
||||||
endingLineNumber = "66"
|
endingLineNumber = "69"
|
||||||
landmarkName = "sceneDidEnterBackground(_:)"
|
landmarkName = "sceneDidEnterBackground(_:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -3540,8 +3507,8 @@
|
|||||||
filePath = "OrderScheduling/Main/SceneDelegate.swift"
|
filePath = "OrderScheduling/Main/SceneDelegate.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "59"
|
startingLineNumber = "62"
|
||||||
endingLineNumber = "59"
|
endingLineNumber = "62"
|
||||||
landmarkName = "sceneWillEnterForeground(_:)"
|
landmarkName = "sceneWillEnterForeground(_:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -3620,8 +3587,8 @@
|
|||||||
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "188"
|
startingLineNumber = "201"
|
||||||
endingLineNumber = "188"
|
endingLineNumber = "201"
|
||||||
landmarkName = "init(nibName:bundle:)"
|
landmarkName = "init(nibName:bundle:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -3818,5 +3785,357 @@
|
|||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
</BreakpointProxy>
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "C112368C-5489-4A98-B486-24FA04C3A0D8"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderScheduling/Main/AppDelegate.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "101"
|
||||||
|
endingLineNumber = "101"
|
||||||
|
landmarkName = "jpushNotificationCenter(_:willPresent:withCompletionHandler:)"
|
||||||
|
landmarkType = "7">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "BDC90EDD-76EB-4C9D-8369-70759BAB0AC2"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderSchedulingNotificationService/NotificationService.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "31"
|
||||||
|
endingLineNumber = "31"
|
||||||
|
landmarkName = "didReceive(_:withContentHandler:)"
|
||||||
|
landmarkType = "7">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "43D1F3FB-438D-4EB9-8645-AFFEC27E2DFB"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderSchedulingNotificationService/NotificationService.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "34"
|
||||||
|
endingLineNumber = "34"
|
||||||
|
landmarkName = "didReceive(_:withContentHandler:)"
|
||||||
|
landmarkType = "7">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "E0FB39F8-DE9F-4E80-AC1A-075CE1BC3F7C"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderSchedulingNotificationService/NotificationService.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "37"
|
||||||
|
endingLineNumber = "37"
|
||||||
|
landmarkName = "didReceive(_:withContentHandler:)"
|
||||||
|
landmarkType = "7">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "698E6059-A3ED-42CC-B04D-BF240A541882"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderSchedulingNotificationService/NotificationService.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "33"
|
||||||
|
endingLineNumber = "33"
|
||||||
|
landmarkName = "didReceive(_:withContentHandler:)"
|
||||||
|
landmarkType = "7">
|
||||||
|
<Locations>
|
||||||
|
<Location
|
||||||
|
uuid = "698E6059-A3ED-42CC-B04D-BF240A541882 - 70dd8776de7de34e"
|
||||||
|
shouldBeEnabled = "Yes"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
symbolName = "OrderSchedulingNotificationService.NotificationService.didReceive(_: __C.UNNotificationRequest, withContentHandler: (__C.UNNotificationContent) -> ()) -> ()"
|
||||||
|
moduleName = "OrderSchedulingNotificationService"
|
||||||
|
usesParentBreakpointCondition = "Yes"
|
||||||
|
urlString = "file:///Users/zd/Desktop/%E4%B8%AD%E9%81%93%E6%95%91%E6%8F%B4/OrderScheduling/OrderSchedulingNotificationService/NotificationService.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "28"
|
||||||
|
endingLineNumber = "28"
|
||||||
|
offsetFromSymbolStart = "908">
|
||||||
|
</Location>
|
||||||
|
<Location
|
||||||
|
uuid = "698E6059-A3ED-42CC-B04D-BF240A541882 - 70dd8776de7de34e"
|
||||||
|
shouldBeEnabled = "Yes"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
symbolName = "OrderSchedulingNotificationService.NotificationService.didReceive(_: __C.UNNotificationRequest, withContentHandler: (__C.UNNotificationContent) -> ()) -> ()"
|
||||||
|
moduleName = "OrderSchedulingNotificationService"
|
||||||
|
usesParentBreakpointCondition = "Yes"
|
||||||
|
urlString = "file:///Users/zd/Desktop/%E4%B8%AD%E9%81%93%E6%95%91%E6%8F%B4/OrderScheduling/OrderSchedulingNotificationService/NotificationService.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "28"
|
||||||
|
endingLineNumber = "28"
|
||||||
|
offsetFromSymbolStart = "1040">
|
||||||
|
</Location>
|
||||||
|
</Locations>
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "44E61B06-2A5A-4FFF-A4DB-42607CC96F32"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderSchedulingNotificationService/NotificationService.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "64"
|
||||||
|
endingLineNumber = "64"
|
||||||
|
landmarkName = "didReceive(_:withContentHandler:)"
|
||||||
|
landmarkType = "7">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "8E0EC5F0-EC9A-4049-9CEC-5E240FFAA1B1"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderScheduling/Global/Tool/Tool.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "188"
|
||||||
|
endingLineNumber = "188"
|
||||||
|
landmarkName = "playVoiceWith(userInfo:)"
|
||||||
|
landmarkType = "7">
|
||||||
|
<Locations>
|
||||||
|
<Location
|
||||||
|
uuid = "8E0EC5F0-EC9A-4049-9CEC-5E240FFAA1B1 - 75ae0035b01e1adf"
|
||||||
|
shouldBeEnabled = "Yes"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
symbolName = "OrderScheduling.Tool.playVoiceWith(userInfo: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>) -> ()"
|
||||||
|
moduleName = "OrderScheduling"
|
||||||
|
usesParentBreakpointCondition = "Yes"
|
||||||
|
urlString = "file:///Users/zd/Desktop/%E4%B8%AD%E9%81%93%E6%95%91%E6%8F%B4/OrderScheduling/OrderScheduling/Global/Tool/Tool.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "184"
|
||||||
|
endingLineNumber = "184"
|
||||||
|
offsetFromSymbolStart = "576">
|
||||||
|
</Location>
|
||||||
|
<Location
|
||||||
|
uuid = "8E0EC5F0-EC9A-4049-9CEC-5E240FFAA1B1 - 75ae0035b01e1adf"
|
||||||
|
shouldBeEnabled = "Yes"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
symbolName = "OrderScheduling.Tool.playVoiceWith(userInfo: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>) -> ()"
|
||||||
|
moduleName = "OrderScheduling"
|
||||||
|
usesParentBreakpointCondition = "Yes"
|
||||||
|
urlString = "file:///Users/zd/Desktop/%E4%B8%AD%E9%81%93%E6%95%91%E6%8F%B4/OrderScheduling/OrderScheduling/Global/Tool/Tool.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "184"
|
||||||
|
endingLineNumber = "184"
|
||||||
|
offsetFromSymbolStart = "800">
|
||||||
|
</Location>
|
||||||
|
</Locations>
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "74782B60-419E-4A8D-A5EA-3E3D1A0CEF59"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderScheduling/Global/Tool/Tool.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "179"
|
||||||
|
endingLineNumber = "179"
|
||||||
|
landmarkName = "Tool"
|
||||||
|
landmarkType = "3">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "4DF97B7E-A042-4DCB-8976-E36DC0EE035A"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderScheduling/Main/AppDelegate.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "115"
|
||||||
|
endingLineNumber = "115"
|
||||||
|
landmarkName = "jpushNotificationCenter(_:willPresent:withCompletionHandler:)"
|
||||||
|
landmarkType = "7">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "13D4EEB2-43B5-4060-973F-6B3853959DB1"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderScheduling/Global/User/UserPermission.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "32"
|
||||||
|
endingLineNumber = "32"
|
||||||
|
landmarkName = "init()"
|
||||||
|
landmarkType = "7">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "5EB1A9D1-06E4-4E1F-A715-D6D7E2C64DB8"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderScheduling/Main/Initial.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "73"
|
||||||
|
endingLineNumber = "73"
|
||||||
|
landmarkName = "initCall()"
|
||||||
|
landmarkType = "7">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "D242BE6B-F51B-45F2-BFEA-829872E24978"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "857"
|
||||||
|
endingLineNumber = "857"
|
||||||
|
landmarkName = "tableView(_:cellForRowAt:)"
|
||||||
|
landmarkType = "7">
|
||||||
|
<Locations>
|
||||||
|
<Location
|
||||||
|
uuid = "D242BE6B-F51B-45F2-BFEA-829872E24978 - b8ab704301458127"
|
||||||
|
shouldBeEnabled = "Yes"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
symbolName = "OrderScheduling.RescueIsIngController.tableView(_: __C.UITableView, cellForRowAt: Foundation.IndexPath) -> __C.UITableViewCell"
|
||||||
|
moduleName = "OrderScheduling"
|
||||||
|
usesParentBreakpointCondition = "Yes"
|
||||||
|
urlString = "file:///Users/zd/Desktop/%E4%B8%AD%E9%81%93%E6%95%91%E6%8F%B4/OrderScheduling/OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "857"
|
||||||
|
endingLineNumber = "857"
|
||||||
|
offsetFromSymbolStart = "10851">
|
||||||
|
</Location>
|
||||||
|
<Location
|
||||||
|
uuid = "D242BE6B-F51B-45F2-BFEA-829872E24978 - a65e7ca50fc68a8"
|
||||||
|
shouldBeEnabled = "Yes"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
symbolName = "closure #5 (SnapKit.ConstraintMaker) -> () in OrderScheduling.RescueIsIngController.tableView(_: __C.UITableView, cellForRowAt: Foundation.IndexPath) -> __C.UITableViewCell"
|
||||||
|
moduleName = "OrderScheduling"
|
||||||
|
usesParentBreakpointCondition = "Yes"
|
||||||
|
urlString = "file:///Users/zd/Desktop/%E4%B8%AD%E9%81%93%E6%95%91%E6%8F%B4/OrderScheduling/OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "858"
|
||||||
|
endingLineNumber = "858"
|
||||||
|
offsetFromSymbolStart = "77">
|
||||||
|
</Location>
|
||||||
|
</Locations>
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "9D2B5A65-D238-4600-B88F-FED82BC497D8"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "871"
|
||||||
|
endingLineNumber = "871"
|
||||||
|
landmarkName = "tableView(_:cellForRowAt:)"
|
||||||
|
landmarkType = "7">
|
||||||
|
<Locations>
|
||||||
|
<Location
|
||||||
|
uuid = "9D2B5A65-D238-4600-B88F-FED82BC497D8 - b8ab7043014587f1"
|
||||||
|
shouldBeEnabled = "Yes"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
symbolName = "OrderScheduling.RescueIsIngController.tableView(_: __C.UITableView, cellForRowAt: Foundation.IndexPath) -> __C.UITableViewCell"
|
||||||
|
moduleName = "OrderScheduling"
|
||||||
|
usesParentBreakpointCondition = "Yes"
|
||||||
|
urlString = "file:///Users/zd/Desktop/%E4%B8%AD%E9%81%93%E6%95%91%E6%8F%B4/OrderScheduling/OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "871"
|
||||||
|
endingLineNumber = "871"
|
||||||
|
offsetFromSymbolStart = "11587">
|
||||||
|
</Location>
|
||||||
|
<Location
|
||||||
|
uuid = "9D2B5A65-D238-4600-B88F-FED82BC497D8 - d42d1355e00f52fc"
|
||||||
|
shouldBeEnabled = "Yes"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
symbolName = "closure #7 (SnapKit.ConstraintMaker) -> () in OrderScheduling.RescueIsIngController.tableView(_: __C.UITableView, cellForRowAt: Foundation.IndexPath) -> __C.UITableViewCell"
|
||||||
|
moduleName = "OrderScheduling"
|
||||||
|
usesParentBreakpointCondition = "Yes"
|
||||||
|
urlString = "file:///Users/zd/Desktop/%E4%B8%AD%E9%81%93%E6%95%91%E6%8F%B4/OrderScheduling/OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "872"
|
||||||
|
endingLineNumber = "872"
|
||||||
|
offsetFromSymbolStart = "35">
|
||||||
|
</Location>
|
||||||
|
</Locations>
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "D422F708-5DA3-46E1-AB61-4317909C58D9"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "876"
|
||||||
|
endingLineNumber = "876"
|
||||||
|
landmarkName = "tableView(_:cellForRowAt:)"
|
||||||
|
landmarkType = "7">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
</Breakpoints>
|
</Breakpoints>
|
||||||
</Bucket>
|
</Bucket>
|
||||||
|
|||||||
@@ -232,6 +232,48 @@ open class Entry {
|
|||||||
SwiftEntryKit.display(entry: view, using: attributes)
|
SwiftEntryKit.display(entry: view, using: attributes)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func showPushNotiCommonEntry(view:UIView,name:String? = nil) {
|
||||||
|
var attributes = EKAttributes()
|
||||||
|
attributes = .centerFloat
|
||||||
|
attributes.name = name
|
||||||
|
attributes.precedence = .override(priority: .min, dropEnqueuedEntries: false)
|
||||||
|
attributes.displayMode = .inferred
|
||||||
|
attributes.displayDuration = .infinity
|
||||||
|
attributes.screenBackground = .color(color: .clear)
|
||||||
|
attributes.entryBackground = .color(color: .white)
|
||||||
|
attributes.screenInteraction = .absorbTouches
|
||||||
|
attributes.entryInteraction = .absorbTouches
|
||||||
|
attributes.scroll = .disabled
|
||||||
|
attributes.entranceAnimation = .init(
|
||||||
|
translate: .init(
|
||||||
|
duration: 0.25,
|
||||||
|
spring: .init(damping: 1, initialVelocity: 0)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
attributes.exitAnimation = .init(
|
||||||
|
translate: .init(duration: 0.25)
|
||||||
|
)
|
||||||
|
attributes.popBehavior = .animated(
|
||||||
|
animation: .init(
|
||||||
|
translate: .init(duration: 0.25)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
attributes.shadow = .active(
|
||||||
|
with: .init(
|
||||||
|
color: .black,
|
||||||
|
opacity: 0.3,
|
||||||
|
radius: 6
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
attributes.positionConstraints = .init(verticalOffset:0,size:.init(width:EKAttributes.PositionConstraints.Edge.constant(value: auto(276)),height:EKAttributes.PositionConstraints.Edge.constant(value: auto(148))))
|
||||||
|
|
||||||
|
attributes.positionConstraints.safeArea = .overridden
|
||||||
|
attributes.positionConstraints.rotation.isEnabled = false
|
||||||
|
attributes.statusBar = .light
|
||||||
|
SwiftEntryKit.display(entry: view, using: attributes)
|
||||||
|
}
|
||||||
|
|
||||||
func showNotificationAuthEntry(view:UIView,name:String? = nil) {
|
func showNotificationAuthEntry(view:UIView,name:String? = nil) {
|
||||||
var attributes = EKAttributes()
|
var attributes = EKAttributes()
|
||||||
attributes = .centerFloat
|
attributes = .centerFloat
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ open class GroupData {
|
|||||||
public static let `default` = GroupData()
|
public static let `default` = GroupData()
|
||||||
let groudUserDefault = UserDefaults(suiteName: GROUPID)
|
let groudUserDefault = UserDefaults(suiteName: GROUPID)
|
||||||
|
|
||||||
// 判断推送能不能解析出字典
|
// 解析出字典
|
||||||
func parserAlertToDictionary(userInfo:[AnyHashable:Any]?) -> Dictionary<String,String>? {
|
func parserAlertToDictionary(userInfo:[AnyHashable:Any]?) -> Dictionary<String,String>? {
|
||||||
let aps = userInfo?[pushNoti_aps_key] as? [String:Any]
|
let aps = userInfo?[pushNoti_aps_key] as? [String:Any]
|
||||||
|
|
||||||
@@ -44,6 +44,30 @@ open class GroupData {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 解析需要播放的文字
|
||||||
|
func parserBroadcastToString(userInfo:[AnyHashable:Any]?) -> String? {
|
||||||
|
if let broadcastKeywords = (userInfo?[pushNoti_broadcastKeywords_key] as? String),broadcastKeywords.isEmpty == false {
|
||||||
|
return broadcastKeywords
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// 判断是不是需要语音广播
|
||||||
|
func isBroadcastPushNotification(userInfo:[AnyHashable:Any]?) -> Bool {
|
||||||
|
if let broadcastKeywords = (userInfo?[pushNoti_broadcastKeywords_key] as? String),broadcastKeywords.isEmpty == false {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// 是否需要弹窗
|
||||||
|
func isShowPopPushNotification(userInfo:[AnyHashable:Any]?) -> Bool {
|
||||||
|
if let isShowPop = (userInfo?[pushNoti_isShowPop_key] as? Bool),isShowPop == true {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
// 不需要记录
|
// 不需要记录
|
||||||
public var bestAttemptContentUserInfo : [AnyHashable:Any]? {
|
public var bestAttemptContentUserInfo : [AnyHashable:Any]? {
|
||||||
return groudUserDefault?.object(forKey: bestAttemptContentUserInfo_key) as? [AnyHashable:Any]
|
return groudUserDefault?.object(forKey: bestAttemptContentUserInfo_key) as? [AnyHashable:Any]
|
||||||
|
|||||||
@@ -158,8 +158,7 @@ open class Tool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func dealWithOrderPushNotification(completionHandler:(([AnyHashable:Any]) -> Void)?) {
|
func dealWithOrderPushNotification(completionHandler:(([AnyHashable:Any]) -> Void)?) {
|
||||||
let userInfo = GROUP.bestAttemptContentUserInfo
|
if let userInfo = GROUP.bestAttemptContentUserInfo {
|
||||||
if let userInfo {
|
|
||||||
if completionHandler != nil {
|
if completionHandler != nil {
|
||||||
completionHandler!(userInfo)
|
completionHandler!(userInfo)
|
||||||
}
|
}
|
||||||
@@ -171,18 +170,20 @@ open class Tool {
|
|||||||
if GROUP.newMessageAlert != true {
|
if GROUP.newMessageAlert != true {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if GROUP.isOrderPushNotification(userInfo: userInfo) == true {
|
||||||
ACCEPTORDERTOOL.open(userInfo: userInfo)
|
ACCEPTORDERTOOL.open(userInfo: userInfo)
|
||||||
|
}else{
|
||||||
|
PUSHNOTICOMMONTOOL.open(userInfo: userInfo)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public var systemSoundID : SystemSoundID?
|
|
||||||
public var soundCount : Int = 0
|
|
||||||
public var needPlayAudio : Bool = true
|
|
||||||
func playVoiceWith(userInfo:[AnyHashable:Any]?) {
|
func playVoiceWith(userInfo:[AnyHashable:Any]?) {
|
||||||
if GROUP.newMessageSound != true {
|
if GROUP.newMessageSound != true {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
stopVoice()
|
||||||
|
|
||||||
if GROUP.isOrderPushNotification(userInfo: userInfo) == true {
|
if GROUP.isOrderPushNotification(userInfo: userInfo) == true {
|
||||||
let juheVehcileName = userInfo?[pushNoti_juheVehcileName_key] as? String
|
let juheVehcileName = userInfo?[pushNoti_juheVehcileName_key] as? String
|
||||||
var auidoUrl : URL?
|
var auidoUrl : URL?
|
||||||
@@ -193,34 +194,15 @@ open class Tool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if let auidoUrl {
|
if let auidoUrl {
|
||||||
var audioSoundID:SystemSoundID = 0
|
DDAS.playSound(audioUrl: auidoUrl,name: "sound",numberOfLoops: 10,timeInterval: 2)
|
||||||
AudioServicesCreateSystemSoundID(auidoUrl as CFURL, &audioSoundID)
|
|
||||||
systemSoundID = audioSoundID
|
|
||||||
needPlayAudio = true
|
|
||||||
soundCount = 0
|
|
||||||
cycleVoice()
|
|
||||||
}
|
}
|
||||||
|
}else if GROUP.isBroadcastPushNotification(userInfo: userInfo) == true, let broadcast = GROUP.parserBroadcastToString(userInfo: userInfo) {
|
||||||
|
DDSS.play(text: broadcast, name: "broadcast")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func cycleVoice() {
|
|
||||||
if let systemSoundID, soundCount < 10, needPlayAudio == true {
|
|
||||||
AudioServicesPlaySystemSoundWithCompletion(systemSoundID) {[weak self] in
|
|
||||||
self?.soundCount+=1
|
|
||||||
DispatchQueue.global().asyncAfter(deadline: .now() + 2, execute: {[weak self] in
|
|
||||||
self?.cycleVoice()
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
systemSoundID = nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func stopVoice() {
|
func stopVoice() {
|
||||||
if let systemSoundID {
|
DDAS.stopSound(name: "sound")
|
||||||
needPlayAudio = false
|
DDSS.stop(name: "broadcast")
|
||||||
soundCount = 0
|
|
||||||
AudioServicesDisposeSystemSoundID(systemSoundID)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
102
OrderScheduling/Global/User/UserPermission.swift
Normal file
102
OrderScheduling/Global/User/UserPermission.swift
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
//
|
||||||
|
// UserPermission.swift
|
||||||
|
// OrderScheduling
|
||||||
|
//
|
||||||
|
// Created by 中道 on 2023/9/6.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import RxSwift
|
||||||
|
import RxRelay
|
||||||
|
|
||||||
|
public let USERP = UserPermission.default
|
||||||
|
|
||||||
|
open class UserPermission {
|
||||||
|
public static let `default` = UserPermission()
|
||||||
|
public let relay = ReplayRelay<Any?>.create(bufferSize: 1)
|
||||||
|
public let disposeBag = DisposeBag()
|
||||||
|
public var userPermissionRelay = ReplayRelay<Array<String>?>.create(bufferSize: 1)
|
||||||
|
|
||||||
|
public var canRejectDispatchHandle : Bool = false
|
||||||
|
public var canAcceptDispatchHandle : Bool = false
|
||||||
|
public var canWaitdispatchBtn : Bool = false
|
||||||
|
public var canWaitModifyDispatchBtn : Bool = false
|
||||||
|
public var canDealWith : Bool = false
|
||||||
|
public var canSupplierRemarkBtn : Bool = false
|
||||||
|
public var canSupplierAuditEditCostBtn : Bool = false
|
||||||
|
public var canSupplierAuditUploadPhotoBtn : Bool = false
|
||||||
|
|
||||||
|
init() {
|
||||||
|
Observable.combineLatest(relay, USER.refreshTokenSub)
|
||||||
|
.flatMapLatest { (_,_) in
|
||||||
|
return RQ.userOperationPermissions()
|
||||||
|
}
|
||||||
|
.subscribe(onNext: {[weak self] response in
|
||||||
|
self?.canRejectDispatchHandle = false
|
||||||
|
if response?.data?.contains(where: { value in
|
||||||
|
value == UserOperationPermissionsDataModel.DataEnum.rejectDispatchHandle.rawValue
|
||||||
|
}) == true {
|
||||||
|
self?.canRejectDispatchHandle = true
|
||||||
|
}
|
||||||
|
|
||||||
|
self?.canAcceptDispatchHandle = false
|
||||||
|
if response?.data?.contains(where: { value in
|
||||||
|
value == UserOperationPermissionsDataModel.DataEnum.acceptDispatchHandle.rawValue
|
||||||
|
}) == true {
|
||||||
|
self?.canAcceptDispatchHandle = true
|
||||||
|
}
|
||||||
|
|
||||||
|
self?.canWaitdispatchBtn = false
|
||||||
|
if response?.data?.contains(where: { value in
|
||||||
|
value == UserOperationPermissionsDataModel.DataEnum.waitdispatchBtn.rawValue
|
||||||
|
}) == true {
|
||||||
|
self?.canWaitdispatchBtn = true
|
||||||
|
}
|
||||||
|
|
||||||
|
self?.canWaitModifyDispatchBtn = false
|
||||||
|
if response?.data?.contains(where: { value in
|
||||||
|
value == UserOperationPermissionsDataModel.DataEnum.waitModifyDispatchBtn.rawValue
|
||||||
|
}) == true {
|
||||||
|
self?.canWaitModifyDispatchBtn = true
|
||||||
|
}
|
||||||
|
|
||||||
|
self?.canWaitModifyDispatchBtn = false
|
||||||
|
if response?.data?.contains(where: { value in
|
||||||
|
value == UserOperationPermissionsDataModel.DataEnum.waitModifyDispatchBtn.rawValue
|
||||||
|
}) == true {
|
||||||
|
self?.canWaitModifyDispatchBtn = true
|
||||||
|
}
|
||||||
|
|
||||||
|
self?.canDealWith = false
|
||||||
|
if response?.data?.contains(where: { value in
|
||||||
|
value == UserOperationPermissionsDataModel.DataEnum.dealWith.rawValue
|
||||||
|
}) == true {
|
||||||
|
self?.canDealWith = true
|
||||||
|
}
|
||||||
|
|
||||||
|
self?.canSupplierRemarkBtn = false
|
||||||
|
if response?.data?.contains(where: { value in
|
||||||
|
value == UserOperationPermissionsDataModel.DataEnum.supplierRemarkBtn.rawValue
|
||||||
|
}) == true {
|
||||||
|
self?.canSupplierRemarkBtn = true
|
||||||
|
}
|
||||||
|
|
||||||
|
self?.canSupplierAuditEditCostBtn = false
|
||||||
|
if response?.data?.contains(where: { value in
|
||||||
|
value == UserOperationPermissionsDataModel.DataEnum.supplierAuditEditCostBtn.rawValue
|
||||||
|
}) == true {
|
||||||
|
self?.canSupplierAuditEditCostBtn = true
|
||||||
|
}
|
||||||
|
|
||||||
|
self?.canSupplierAuditUploadPhotoBtn = false
|
||||||
|
if response?.data?.contains(where: { value in
|
||||||
|
value == UserOperationPermissionsDataModel.DataEnum.supplierAuditUploadPhotoBtn.rawValue
|
||||||
|
}) == true {
|
||||||
|
self?.canSupplierAuditUploadPhotoBtn = true
|
||||||
|
}
|
||||||
|
|
||||||
|
self?.userPermissionRelay.accept(response?.data)
|
||||||
|
})
|
||||||
|
.disposed(by: disposeBag)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -130,6 +130,13 @@ extension HistoryItemController {
|
|||||||
.disposed(by: disposeBag)
|
.disposed(by: disposeBag)
|
||||||
|
|
||||||
historyItemView.tableView.mj_header?.beginRefreshing()
|
historyItemView.tableView.mj_header?.beginRefreshing()
|
||||||
|
|
||||||
|
USERP.userPermissionRelay
|
||||||
|
.observe(on: MainScheduler.instance)
|
||||||
|
.subscribe(onNext: {[weak self] _ in
|
||||||
|
self?.historyItemView.tableView.reloadData()
|
||||||
|
})
|
||||||
|
.disposed(by: disposeBag)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -221,6 +228,44 @@ extension HistoryItemController : UITableViewDelegate, UITableViewDataSource {
|
|||||||
WEBTOOL.open(name: .supplySettlement, appending: "&queryType=\(OrderTypeEnum.UNCLOSED_ORDER.rawValue)&userOrderId=\(model.userOrderId)&orderCode=\(model.orderCode)&taskOrderId=\(model.taskOrderId)")
|
WEBTOOL.open(name: .supplySettlement, appending: "&queryType=\(OrderTypeEnum.UNCLOSED_ORDER.rawValue)&userOrderId=\(model.userOrderId)&orderCode=\(model.orderCode)&taskOrderId=\(model.taskOrderId)")
|
||||||
})
|
})
|
||||||
.disposed(by: cell!.disposeBag)
|
.disposed(by: cell!.disposeBag)
|
||||||
|
|
||||||
|
if USERP.canSupplierRemarkBtn == true {
|
||||||
|
cell?.reportButton.isHidden = false
|
||||||
|
cell?.reportButton.snp.updateConstraints({ make in
|
||||||
|
make.width.equalTo(auto(80))
|
||||||
|
make.right.equalTo(cell!.additionalButton.snp.left).offset(-auto(10))
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
cell?.reportButton.isHidden = true
|
||||||
|
cell?.reportButton.snp.updateConstraints({ make in
|
||||||
|
make.width.equalTo(0)
|
||||||
|
make.right.equalTo(cell!.additionalButton.snp.left).offset(0)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if USERP.canSupplierAuditEditCostBtn == true {
|
||||||
|
cell?.additionalButton.isHidden = false
|
||||||
|
cell?.additionalButton.snp.updateConstraints({ make in
|
||||||
|
make.width.equalTo(auto(80))
|
||||||
|
make.right.equalTo(-auto(10))
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
cell?.additionalButton.isHidden = true
|
||||||
|
cell?.additionalButton.snp.updateConstraints({ make in
|
||||||
|
make.width.equalTo(0)
|
||||||
|
make.right.equalTo(0)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if USERP.canSupplierRemarkBtn == false && USERP.canSupplierAuditEditCostBtn == false {
|
||||||
|
cell?.additionalButton.snp.updateConstraints({ make in
|
||||||
|
make.height.equalTo(0)
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
cell?.additionalButton.snp.updateConstraints({ make in
|
||||||
|
make.height.equalTo(auto(30))
|
||||||
|
})
|
||||||
|
}
|
||||||
return cell!
|
return cell!
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -554,7 +599,8 @@ class HistoryItemCell : DDTableViewCell {
|
|||||||
reportButton.snp.makeConstraints { make in
|
reportButton.snp.makeConstraints { make in
|
||||||
make.right.equalTo(additionalButton.snp.left).offset(-auto(10))
|
make.right.equalTo(additionalButton.snp.left).offset(-auto(10))
|
||||||
make.top.equalTo(additionalButton)
|
make.top.equalTo(additionalButton)
|
||||||
make.width.height.equalTo(additionalButton)
|
make.width.equalTo(auto(80))
|
||||||
|
make.height.equalTo(auto(30))
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,4 +55,6 @@ open class ApiList {
|
|||||||
public let checkLogin = "/supplierAppV2/open/checkLogin"
|
public let checkLogin = "/supplierAppV2/open/checkLogin"
|
||||||
|
|
||||||
public let uploadCallRecord = "/supplierAppV2/dispatchApp/order/uploadCallRecord"
|
public let uploadCallRecord = "/supplierAppV2/dispatchApp/order/uploadCallRecord"
|
||||||
|
|
||||||
|
public let userOperationPermissions = "/supplierAppV2/dispatchApp/user/userOperationPermissions"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -107,4 +107,8 @@ open class RequestList {
|
|||||||
func uploadCallRecord(parameters:Encodable) -> Single<ResponseModel<String>?> {
|
func uploadCallRecord(parameters:Encodable) -> Single<ResponseModel<String>?> {
|
||||||
return DDAF.post(urlString: HOST+API.uploadCallRecord,parameters: parameters,encoding: JSONParameterEncoder.default,headers: [tokenHeader()],responseType: ResponseModel<String>.self)
|
return DDAF.post(urlString: HOST+API.uploadCallRecord,parameters: parameters,encoding: JSONParameterEncoder.default,headers: [tokenHeader()],responseType: ResponseModel<String>.self)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func userOperationPermissions() -> Single<ResponseModel<[String]>?> {
|
||||||
|
return DDAF.post(urlString: HOST+API.userOperationPermissions,encoding: URLEncodedFormParameterEncoder.default,headers: [tokenHeader()],responseType: ResponseModel<[String]>.self)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -305,4 +305,17 @@ public class MessageReminderListDataModel : Decodable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class UserOperationPermissionsDataModel : Decodable {
|
||||||
|
enum DataEnum : String,Decodable {
|
||||||
|
case rejectDispatchHandle = "rejectDispatchHandle"
|
||||||
|
case acceptDispatchHandle = "acceptDispatchHandle"
|
||||||
|
case waitdispatchBtn = "waitdispatchBtn"
|
||||||
|
case waitModifyDispatchBtn = "waitModifyDispatchBtn"
|
||||||
|
case dealWith = "dealWith"
|
||||||
|
case supplierRemarkBtn = "supplierRemarkBtn"
|
||||||
|
case supplierAuditEditCostBtn = "supplierAuditEditCostBtn"
|
||||||
|
case supplierAuditUploadPhotoBtn = "supplierAuditUploadPhotoBtn"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -105,12 +105,23 @@ extension AppDelegate : JPUSHRegisterDelegate {
|
|||||||
MCOUNT.newestMessage()
|
MCOUNT.newestMessage()
|
||||||
|
|
||||||
if GROUP.isOrderPushNotification(userInfo: userInfo) == true {
|
if GROUP.isOrderPushNotification(userInfo: userInfo) == true {
|
||||||
// 只有订单类型才会弹窗和声音
|
// 新订单的处理
|
||||||
TOOL.dealWithOrderPushNotification { userInfo in
|
TOOL.dealWithOrderPushNotification { userInfo in
|
||||||
TOOL.playAlertWith(userInfo: userInfo)
|
TOOL.playAlertWith(userInfo: userInfo)
|
||||||
TOOL.playVoiceWith(userInfo: userInfo)
|
TOOL.playVoiceWith(userInfo: userInfo)
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
|
// 普通通知弹框
|
||||||
|
if GROUP.isShowPopPushNotification(userInfo: userInfo) == true {
|
||||||
|
TOOL.dealWithOrderPushNotification { userInfo in
|
||||||
|
TOOL.playAlertWith(userInfo: userInfo)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 普通声音
|
||||||
|
if GROUP.isBroadcastPushNotification(userInfo: userInfo) == true {
|
||||||
|
TOOL.playVoiceWith(userInfo: userInfo)
|
||||||
|
}
|
||||||
|
|
||||||
completionHandler(1 << 1 | 1 << 2)
|
completionHandler(1 << 1 | 1 << 2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,9 +39,6 @@ class Initial : NSObject {
|
|||||||
// af
|
// af
|
||||||
initAF()
|
initAF()
|
||||||
|
|
||||||
// call
|
|
||||||
initCall()
|
|
||||||
|
|
||||||
// cocoadebug
|
// cocoadebug
|
||||||
initCocoaDebug()
|
initCocoaDebug()
|
||||||
}
|
}
|
||||||
@@ -88,6 +85,34 @@ class Initial : NSObject {
|
|||||||
.disposed(by: disposeBag)
|
.disposed(by: disposeBag)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func initRefreshToken() {
|
||||||
|
// 刷新token,全屏都不许动
|
||||||
|
Observable.just(1)
|
||||||
|
.observe(on: MainScheduler.instance)
|
||||||
|
.do(onNext: { _ in
|
||||||
|
UIApplication.shared.dd_keyWindow.dd_showHUD()
|
||||||
|
})
|
||||||
|
.flatMapLatest { _ in
|
||||||
|
return RQ.token(parameters: TokenParameters(refresh_token: USER.refreshToken!))
|
||||||
|
}
|
||||||
|
.observe(on: MainScheduler.instance)
|
||||||
|
.do(onNext: { _ in
|
||||||
|
UIApplication.shared.dd_keyWindow.dd_hideHUD()
|
||||||
|
})
|
||||||
|
.subscribe(onNext: { response in
|
||||||
|
if response?.success == true {
|
||||||
|
USER.setToken(token: response?.data?.accessToken.tokenValue)
|
||||||
|
USER.setRefreshToken(token: response?.data?.refreshToken.tokenValue)
|
||||||
|
}
|
||||||
|
USER.refreshTokenSub.onNext(true)
|
||||||
|
})
|
||||||
|
.disposed(by: disposeBag)
|
||||||
|
}
|
||||||
|
|
||||||
|
func initPermission() {
|
||||||
|
USERP.relay.accept(nil)
|
||||||
|
}
|
||||||
|
|
||||||
func initAppUpdate() {
|
func initAppUpdate() {
|
||||||
APPUPDATE.requestAppUpdateRelay.accept(.auto)
|
APPUPDATE.requestAppUpdateRelay.accept(.auto)
|
||||||
}
|
}
|
||||||
@@ -111,7 +136,10 @@ class Initial : NSObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: Notification_loginSuccessToRescueController), object: nil, queue: .main) {[weak self] note in
|
NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: Notification_loginSuccessToRescueController), object: nil, queue: .main) {[weak self] note in
|
||||||
|
self?.initRefreshToken()
|
||||||
|
self?.initPermission()
|
||||||
self?.initAppUpdate()
|
self?.initAppUpdate()
|
||||||
|
self?.initCall()
|
||||||
window?.rootViewController = MainTabBarController.init()
|
window?.rootViewController = MainTabBarController.init()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,8 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
|
|||||||
|
|
||||||
public var window: UIWindow?
|
public var window: UIWindow?
|
||||||
public var initial : Initial = Initial.shareInstance
|
public var initial : Initial = Initial.shareInstance
|
||||||
|
public var appIsAlive : Bool = false
|
||||||
|
|
||||||
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
|
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
|
||||||
// Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
|
// Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
|
||||||
// If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
|
// If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
|
||||||
@@ -34,12 +35,14 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func sceneDidBecomeActive(_ scene: UIScene) {
|
func sceneDidBecomeActive(_ scene: UIScene) {
|
||||||
if USER.isLogin == true {
|
if USER.isLogin == true,appIsAlive == true {
|
||||||
// 只有订单类型才会弹窗和声音
|
// 处理app收到推送后写入GROUP的数据,当app处于后台时才要弹出,app died不需要
|
||||||
TOOL.dealWithOrderPushNotification { userInfo in
|
TOOL.dealWithOrderPushNotification { userInfo in
|
||||||
TOOL.playAlertWith(userInfo: userInfo)
|
TOOL.playAlertWith(userInfo: userInfo)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 说明app时活的,用来判断进入后台之后返回前台时的问题
|
||||||
|
appIsAlive = true
|
||||||
}
|
}
|
||||||
|
|
||||||
func sceneWillResignActive(_ scene: UIScene) {
|
func sceneWillResignActive(_ scene: UIScene) {
|
||||||
|
|||||||
@@ -16,9 +16,6 @@ open class AcceptOrderTool : NSObject {
|
|||||||
private let disposeBag = DisposeBag()
|
private let disposeBag = DisposeBag()
|
||||||
|
|
||||||
func open(userInfo:[AnyHashable:Any]?) {
|
func open(userInfo:[AnyHashable:Any]?) {
|
||||||
if GROUP.newMessageAlert != true {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
let acceptOrderView = AcceptOrderView()
|
let acceptOrderView = AcceptOrderView()
|
||||||
acceptOrderView.titleLabel.text = "新订单"
|
acceptOrderView.titleLabel.text = "新订单"
|
||||||
acceptOrderView.contentLabel.text = TOOL.getOrderString(userInfo: userInfo)
|
acceptOrderView.contentLabel.text = TOOL.getOrderString(userInfo: userInfo)
|
||||||
|
|||||||
52
OrderScheduling/Rescue/View/PushNotiCommonTool.swift
Normal file
52
OrderScheduling/Rescue/View/PushNotiCommonTool.swift
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
//
|
||||||
|
// PushNotiCommonTool.swift
|
||||||
|
// OrderScheduling
|
||||||
|
//
|
||||||
|
// Created by 中道 on 2023/9/5.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import RxSwift
|
||||||
|
import RxCocoa
|
||||||
|
|
||||||
|
public let PUSHNOTICOMMONTOOL = PushNotiCommonTool.default
|
||||||
|
|
||||||
|
open class PushNotiCommonTool : NSObject {
|
||||||
|
public static let `default` = PushNotiCommonTool()
|
||||||
|
private let disposeBag = DisposeBag()
|
||||||
|
|
||||||
|
func open(userInfo:[AnyHashable:Any]?) {
|
||||||
|
let commonView = PushNotiCommonView()
|
||||||
|
if let dict = GROUP.parserAlertToDictionary(userInfo: userInfo) {
|
||||||
|
if let title = dict[pushNoti_title_key] {
|
||||||
|
commonView.titleLabel.text = title
|
||||||
|
}
|
||||||
|
if let body = dict[pushNoti_body_key] {
|
||||||
|
commonView.contentLabel.text = body
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if let cancel = (userInfo?[pushNoti_cancelButtonText_key] as? String) {
|
||||||
|
commonView.cancelButton.setTitle(cancel, for: .normal)
|
||||||
|
}
|
||||||
|
if let sure = (userInfo?[pushNoti_confirmButtonText_key] as? String) {
|
||||||
|
commonView.sureButton.setTitle(sure, for: .normal)
|
||||||
|
}
|
||||||
|
|
||||||
|
commonView.cancelButton.rx.tap
|
||||||
|
.subscribe(onNext: {
|
||||||
|
ENTRY.dismiss(name: pushNotiCommonViewEntry) {
|
||||||
|
// 停止声音播放
|
||||||
|
TOOL.stopVoice()
|
||||||
|
}
|
||||||
|
}).disposed(by: disposeBag)
|
||||||
|
|
||||||
|
commonView.sureButton.rx.tap
|
||||||
|
.subscribe(onNext: {
|
||||||
|
ENTRY.dismiss(name: pushNotiCommonViewEntry) {
|
||||||
|
// 停止声音播放
|
||||||
|
TOOL.stopVoice()
|
||||||
|
}
|
||||||
|
}).disposed(by: disposeBag)
|
||||||
|
ENTRY.showPushNotiCommonEntry(view: commonView,name: pushNotiCommonViewEntry)
|
||||||
|
}
|
||||||
|
}
|
||||||
119
OrderScheduling/Rescue/View/PushNotiCommonView.swift
Normal file
119
OrderScheduling/Rescue/View/PushNotiCommonView.swift
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
//
|
||||||
|
// PushNotiCommonView.swift
|
||||||
|
// OrderScheduling
|
||||||
|
//
|
||||||
|
// Created by 中道 on 2023/9/5.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import DDControlsKit_Private
|
||||||
|
import DDAutoUIKit_Private
|
||||||
|
|
||||||
|
open class PushNotiCommonView : DDView{
|
||||||
|
private let radiusView : DDView
|
||||||
|
private let scrollView : DDScrollView
|
||||||
|
private let scrollContentView : DDView
|
||||||
|
public let titleLabel : DDLabel
|
||||||
|
public let contentLabel : DDLabel
|
||||||
|
public let horizontalLine : DDView
|
||||||
|
public let verticalLine : DDView
|
||||||
|
public let cancelButton : DDButton
|
||||||
|
public let sureButton : DDButton
|
||||||
|
public override init(frame: CGRect) {
|
||||||
|
radiusView = DDView.init()
|
||||||
|
scrollView = DDScrollView()
|
||||||
|
scrollContentView = DDView.init()
|
||||||
|
titleLabel = DDLabel.dd_init(withText: "", font: .mediumFont(auto(16)), textColor: .black)
|
||||||
|
contentLabel = DDLabel.dd_init(withText: "", font: .mediumFont(auto(14)), textColor: .black.alpha(0.5))
|
||||||
|
horizontalLine = DDView()
|
||||||
|
verticalLine = DDView()
|
||||||
|
cancelButton = DDButton.dd_initCustom()
|
||||||
|
sureButton = DDButton.dd_initCustom()
|
||||||
|
super.init(frame: frame)
|
||||||
|
radiusView.layer.cornerRadius = auto(10)
|
||||||
|
radiusView.layer.masksToBounds = true
|
||||||
|
addSubview(radiusView)
|
||||||
|
radiusView.addSubview(titleLabel)
|
||||||
|
radiusView.addSubview(scrollView)
|
||||||
|
scrollView.addSubview(scrollContentView)
|
||||||
|
contentLabel.numberOfLines = 0
|
||||||
|
contentLabel.textAlignment = .center
|
||||||
|
contentLabel.text = ""
|
||||||
|
scrollContentView.addSubview(contentLabel)
|
||||||
|
horizontalLine.backgroundColor = .hex("979797").alpha(0.35)
|
||||||
|
radiusView.addSubview(horizontalLine)
|
||||||
|
verticalLine.backgroundColor = .hex("979797").alpha(0.35)
|
||||||
|
verticalLine.isHidden = true
|
||||||
|
radiusView.addSubview(verticalLine)
|
||||||
|
cancelButton.setTitle("取消", for: .normal)
|
||||||
|
cancelButton.titleLabel?.font = .mediumFont(auto(14))
|
||||||
|
cancelButton.backgroundColor = .white
|
||||||
|
cancelButton.setTitleColor(.black.alpha(0.3), for: .normal)
|
||||||
|
radiusView.addSubview(cancelButton)
|
||||||
|
sureButton.setTitle("确定", for: .normal)
|
||||||
|
sureButton.setTitleColor(.white, for: .normal)
|
||||||
|
sureButton.titleLabel?.font = .mediumFont(auto(14))
|
||||||
|
sureButton.backgroundColor = .hex("1C62D9")
|
||||||
|
radiusView.addSubview(sureButton)
|
||||||
|
|
||||||
|
radiusView.snp.makeConstraints { make in
|
||||||
|
make.edges.equalToSuperview()
|
||||||
|
}
|
||||||
|
|
||||||
|
titleLabel.snp.makeConstraints { make in
|
||||||
|
make.centerX.equalToSuperview()
|
||||||
|
make.top.equalToSuperview().offset(auto(15))
|
||||||
|
}
|
||||||
|
|
||||||
|
scrollView.snp.makeConstraints { make in
|
||||||
|
make.top.equalTo(titleLabel.snp.bottom).offset(0)
|
||||||
|
make.left.right.equalToSuperview()
|
||||||
|
make.bottom.equalTo(horizontalLine.snp.top)
|
||||||
|
}
|
||||||
|
|
||||||
|
scrollContentView.snp.makeConstraints { make in
|
||||||
|
make.edges.equalToSuperview()
|
||||||
|
make.width.equalToSuperview()
|
||||||
|
make.height.greaterThanOrEqualToSuperview()
|
||||||
|
}
|
||||||
|
|
||||||
|
contentLabel.snp.makeConstraints { make in
|
||||||
|
make.left.equalToSuperview().offset(auto(20))
|
||||||
|
make.top.equalToSuperview().offset(auto(15))
|
||||||
|
make.right.equalTo(-auto(20))
|
||||||
|
make.bottom.equalTo(scrollContentView).offset(-auto(20))
|
||||||
|
}
|
||||||
|
|
||||||
|
horizontalLine.snp.makeConstraints { make in
|
||||||
|
make.bottom.equalToSuperview().offset(-auto(40))
|
||||||
|
make.left.right.equalToSuperview()
|
||||||
|
make.height.equalTo(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
verticalLine.snp.makeConstraints { make in
|
||||||
|
make.centerX.equalToSuperview()
|
||||||
|
make.top.equalTo(horizontalLine.snp.bottom)
|
||||||
|
make.bottom.equalToSuperview()
|
||||||
|
make.width.equalTo(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
cancelButton.snp.makeConstraints { make in
|
||||||
|
make.left.equalToSuperview()
|
||||||
|
make.right.equalTo(verticalLine.snp.left)
|
||||||
|
make.top.equalTo(horizontalLine.snp.bottom)
|
||||||
|
make.bottom.equalToSuperview()
|
||||||
|
}
|
||||||
|
|
||||||
|
sureButton.snp.makeConstraints { make in
|
||||||
|
make.bottom.equalToSuperview()
|
||||||
|
make.right.equalToSuperview()
|
||||||
|
make.top.equalTo(horizontalLine.snp.top)
|
||||||
|
make.left.equalTo(verticalLine.snp.right)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public required init?(coder: NSCoder) {
|
||||||
|
fatalError("init(coder:) has not been implemented")
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -66,28 +66,6 @@ extension RescueController {
|
|||||||
WEBTOOL.open(name: .todoList,appending: nil)
|
WEBTOOL.open(name: .todoList,appending: nil)
|
||||||
})
|
})
|
||||||
.disposed(by: disposeBag)
|
.disposed(by: disposeBag)
|
||||||
|
|
||||||
// 刷新token,全屏都不许动
|
|
||||||
Observable.just(1)
|
|
||||||
.observe(on: MainScheduler.instance)
|
|
||||||
.do(onNext: { _ in
|
|
||||||
UIApplication.shared.dd_keyWindow.dd_showHUD()
|
|
||||||
})
|
|
||||||
.flatMapLatest { _ in
|
|
||||||
return RQ.token(parameters: TokenParameters(refresh_token: USER.refreshToken!))
|
|
||||||
}
|
|
||||||
.observe(on: MainScheduler.instance)
|
|
||||||
.do(onNext: { _ in
|
|
||||||
UIApplication.shared.dd_keyWindow.dd_hideHUD()
|
|
||||||
})
|
|
||||||
.subscribe(onNext: { response in
|
|
||||||
if response?.success == true {
|
|
||||||
USER.setToken(token: response?.data?.accessToken.tokenValue)
|
|
||||||
USER.setRefreshToken(token: response?.data?.refreshToken.tokenValue)
|
|
||||||
}
|
|
||||||
USER.refreshTokenSub.onNext(true)
|
|
||||||
})
|
|
||||||
.disposed(by: disposeBag)
|
|
||||||
|
|
||||||
// 点击tabBar 需要刷下下列
|
// 点击tabBar 需要刷下下列
|
||||||
preRefreshRelay
|
preRefreshRelay
|
||||||
@@ -220,6 +198,13 @@ extension RescuePendingOrderController {
|
|||||||
self?.pendingOrderView.tableView.mj_header?.beginRefreshing()
|
self?.pendingOrderView.tableView.mj_header?.beginRefreshing()
|
||||||
})
|
})
|
||||||
.disposed(by: disposeBag)
|
.disposed(by: disposeBag)
|
||||||
|
|
||||||
|
USERP.userPermissionRelay
|
||||||
|
.observe(on: MainScheduler.instance)
|
||||||
|
.subscribe(onNext: {[weak self] _ in
|
||||||
|
self?.pendingOrderView.tableView.reloadData()
|
||||||
|
})
|
||||||
|
.disposed(by: disposeBag)
|
||||||
}
|
}
|
||||||
|
|
||||||
func entry(model:OrderListDataModel,remarkId:String?) {
|
func entry(model:OrderListDataModel,remarkId:String?) {
|
||||||
@@ -351,6 +336,13 @@ extension RescuePendingDispatchController {
|
|||||||
self?.pendingDispatchView.tableView.mj_header?.beginRefreshing()
|
self?.pendingDispatchView.tableView.mj_header?.beginRefreshing()
|
||||||
})
|
})
|
||||||
.disposed(by: disposeBag)
|
.disposed(by: disposeBag)
|
||||||
|
|
||||||
|
USERP.userPermissionRelay
|
||||||
|
.observe(on: MainScheduler.instance)
|
||||||
|
.subscribe(onNext: {[weak self] _ in
|
||||||
|
self?.pendingDispatchView.tableView.reloadData()
|
||||||
|
})
|
||||||
|
.disposed(by: disposeBag)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -413,6 +405,13 @@ extension RescueIsIngController {
|
|||||||
self?.pendingIsIngView.tableView.mj_header?.beginRefreshing()
|
self?.pendingIsIngView.tableView.mj_header?.beginRefreshing()
|
||||||
})
|
})
|
||||||
.disposed(by: disposeBag)
|
.disposed(by: disposeBag)
|
||||||
|
|
||||||
|
USERP.userPermissionRelay
|
||||||
|
.observe(on: MainScheduler.instance)
|
||||||
|
.subscribe(onNext: {[weak self] _ in
|
||||||
|
self?.pendingIsIngView.tableView.reloadData()
|
||||||
|
})
|
||||||
|
.disposed(by: disposeBag)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -531,6 +530,44 @@ extension RescuePendingOrderController : UITableViewDelegate,UITableViewDataSour
|
|||||||
self?.acceptOrderRelay.accept(model)
|
self?.acceptOrderRelay.accept(model)
|
||||||
})
|
})
|
||||||
.disposed(by: cell!.disposeBag)
|
.disposed(by: cell!.disposeBag)
|
||||||
|
|
||||||
|
if USERP.canRejectDispatchHandle == true {
|
||||||
|
cell?.refuseButton.isHidden = false
|
||||||
|
cell?.refuseButton.snp.updateConstraints({ make in
|
||||||
|
make.right.equalTo(cell!.acceptButton.snp.left).offset(-auto(10))
|
||||||
|
make.width.equalTo(auto(80))
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
cell?.refuseButton.isHidden = true
|
||||||
|
cell?.refuseButton.snp.updateConstraints({ make in
|
||||||
|
make.right.equalTo(cell!.acceptButton.snp.left).offset(0)
|
||||||
|
make.width.equalTo(0)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if USERP.canAcceptDispatchHandle == true {
|
||||||
|
cell?.acceptButton.isHidden = false
|
||||||
|
cell?.acceptButton.snp.updateConstraints({ make in
|
||||||
|
make.width.equalTo(auto(80))
|
||||||
|
make.right.equalTo(-auto(10))
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
cell?.acceptButton.isHidden = true
|
||||||
|
cell?.acceptButton.snp.updateConstraints({ make in
|
||||||
|
make.width.equalTo(0)
|
||||||
|
make.right.equalTo(0)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if USERP.canRejectDispatchHandle == false && USERP.canAcceptDispatchHandle == false {
|
||||||
|
cell?.acceptButton.snp.updateConstraints({ make in
|
||||||
|
make.height.equalTo(0)
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
cell?.acceptButton.snp.updateConstraints({ make in
|
||||||
|
make.height.equalTo(auto(30))
|
||||||
|
})
|
||||||
|
}
|
||||||
return cell!
|
return cell!
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -712,6 +749,20 @@ extension RescuePendingDispatchController : UITableViewDelegate,UITableViewDataS
|
|||||||
self?.navigationController?.pushViewController(vc, animated: true)
|
self?.navigationController?.pushViewController(vc, animated: true)
|
||||||
})
|
})
|
||||||
.disposed(by: cell!.disposeBag)
|
.disposed(by: cell!.disposeBag)
|
||||||
|
|
||||||
|
if USERP.canWaitdispatchBtn == true {
|
||||||
|
cell?.dispatchButton.isHidden = false
|
||||||
|
cell?.dispatchButton.snp.updateConstraints({ make in
|
||||||
|
make.right.equalTo(auto(10))
|
||||||
|
make.width.equalTo(auto(80))
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
cell?.dispatchButton.isHidden = true
|
||||||
|
cell?.dispatchButton.snp.updateConstraints({ make in
|
||||||
|
make.right.equalTo(0)
|
||||||
|
make.width.equalTo(0)
|
||||||
|
})
|
||||||
|
}
|
||||||
return cell!
|
return cell!
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -800,6 +851,44 @@ extension RescueIsIngController : UITableViewDelegate,UITableViewDataSource {
|
|||||||
WEBTOOL.open(name: .reporting,appending: "&queryType=\(OrderTypeEnum.TO_RESCUE.rawValue)&userOrderId=\(model.userOrderId)&orderCode=\(model.orderCode)")
|
WEBTOOL.open(name: .reporting,appending: "&queryType=\(OrderTypeEnum.TO_RESCUE.rawValue)&userOrderId=\(model.userOrderId)&orderCode=\(model.orderCode)")
|
||||||
})
|
})
|
||||||
.disposed(by: cell!.disposeBag)
|
.disposed(by: cell!.disposeBag)
|
||||||
|
|
||||||
|
if USERP.canWaitModifyDispatchBtn == true {
|
||||||
|
cell?.dispatchButton.isHidden = false
|
||||||
|
cell?.dispatchButton.snp.updateConstraints({ make in
|
||||||
|
make.right.equalTo(cell!.reportButton.snp.left).offset(-auto(10))
|
||||||
|
make.width.equalTo(auto(80))
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
cell?.dispatchButton.isHidden = true
|
||||||
|
cell?.dispatchButton.snp.updateConstraints({ make in
|
||||||
|
make.right.equalTo(cell!.reportButton.snp.left).offset(0)
|
||||||
|
make.width.equalTo(0)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if USERP.canSupplierRemarkBtn == true {
|
||||||
|
cell?.reportButton.isHidden = false
|
||||||
|
cell?.reportButton.snp.updateConstraints({ make in
|
||||||
|
make.width.equalTo(auto(80))
|
||||||
|
make.right.equalTo(-auto(10))
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
cell?.reportButton.isHidden = true
|
||||||
|
cell?.reportButton.snp.updateConstraints({ make in
|
||||||
|
make.width.equalTo(0)
|
||||||
|
make.right.equalTo(0)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if USERP.canWaitModifyDispatchBtn == false && USERP.canSupplierRemarkBtn == false {
|
||||||
|
cell?.reportButton.snp.updateConstraints({ make in
|
||||||
|
make.height.equalTo(0)
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
cell?.reportButton.snp.updateConstraints({ make in
|
||||||
|
make.height.equalTo(auto(30))
|
||||||
|
})
|
||||||
|
}
|
||||||
return cell!
|
return cell!
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1240,7 +1329,8 @@ class RescuePendingOrderCell : DDTableViewCell {
|
|||||||
refuseButton.snp.makeConstraints { make in
|
refuseButton.snp.makeConstraints { make in
|
||||||
make.right.equalTo(acceptButton.snp.left).offset(-auto(10))
|
make.right.equalTo(acceptButton.snp.left).offset(-auto(10))
|
||||||
make.top.equalTo(acceptButton)
|
make.top.equalTo(acceptButton)
|
||||||
make.width.height.equalTo(acceptButton)
|
make.width.equalTo(auto(80))
|
||||||
|
make.height.equalTo(auto(30))
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1528,7 +1618,8 @@ class RescuePendingDispatchCell : DDTableViewCell {
|
|||||||
contactButton.snp.makeConstraints { make in
|
contactButton.snp.makeConstraints { make in
|
||||||
make.right.equalTo(dispatchButton.snp.left).offset(-auto(10))
|
make.right.equalTo(dispatchButton.snp.left).offset(-auto(10))
|
||||||
make.top.equalTo(dispatchButton)
|
make.top.equalTo(dispatchButton)
|
||||||
make.width.height.equalTo(dispatchButton)
|
make.width.equalTo(auto(80))
|
||||||
|
make.height.equalTo(auto(30))
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1725,7 +1816,8 @@ class RescueIsIngCell : DDTableViewCell {
|
|||||||
dispatchButton.snp.makeConstraints { make in
|
dispatchButton.snp.makeConstraints { make in
|
||||||
make.right.equalTo(reportButton.snp.left).offset(-auto(10))
|
make.right.equalTo(reportButton.snp.left).offset(-auto(10))
|
||||||
make.top.equalTo(reportButton)
|
make.top.equalTo(reportButton)
|
||||||
make.width.height.equalTo(reportButton)
|
make.width.equalTo(auto(80))
|
||||||
|
make.height.equalTo(auto(30))
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -122,6 +122,13 @@ extension ReviewFailedController {
|
|||||||
self?.reviewFailedView.tableView.mj_header?.beginRefreshing()
|
self?.reviewFailedView.tableView.mj_header?.beginRefreshing()
|
||||||
})
|
})
|
||||||
.disposed(by: disposeBag)
|
.disposed(by: disposeBag)
|
||||||
|
|
||||||
|
USERP.userPermissionRelay
|
||||||
|
.observe(on: MainScheduler.instance)
|
||||||
|
.subscribe(onNext: {[weak self] _ in
|
||||||
|
self?.reviewFailedView.tableView.reloadData()
|
||||||
|
})
|
||||||
|
.disposed(by: disposeBag)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -161,6 +168,12 @@ extension ReviewFailedController : UITableViewDelegate,UITableViewDataSource {
|
|||||||
self?.navigationController?.pushViewController(vc, animated: true)
|
self?.navigationController?.pushViewController(vc, animated: true)
|
||||||
})
|
})
|
||||||
.disposed(by: cell!.disposeBag)
|
.disposed(by: cell!.disposeBag)
|
||||||
|
|
||||||
|
if USERP.canSupplierAuditUploadPhotoBtn == true {
|
||||||
|
cell?.additionalButton.isHidden = false
|
||||||
|
}else{
|
||||||
|
cell?.additionalButton.isHidden = true
|
||||||
|
}
|
||||||
return cell!
|
return cell!
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,16 @@ public let pushNoti_taskCode_key = "taskCode"
|
|||||||
|
|
||||||
public let pushNoti_newOrder_key = "新订单"
|
public let pushNoti_newOrder_key = "新订单"
|
||||||
|
|
||||||
|
public let pushNoti_broadcastKeywords_key = "broadcastKeywords"
|
||||||
|
|
||||||
|
public let pushNoti_isShowPop_key = "isShowPop"
|
||||||
|
|
||||||
|
public let pushNoti_titleContent_key = "titleContent"
|
||||||
|
|
||||||
|
public let pushNoti_confirmButtonText_key = "confirmButtonText"
|
||||||
|
|
||||||
|
public let pushNoti_cancelButtonText_key = "cancelButtonText"
|
||||||
|
|
||||||
// 本地音频的键
|
// 本地音频的键
|
||||||
public let juheNewOrderAudio_key = "juheNewOrderAudio.wav"
|
public let juheNewOrderAudio_key = "juheNewOrderAudio.wav"
|
||||||
|
|
||||||
|
|||||||
@@ -18,3 +18,5 @@ public let appUpdateEntry = "appUpdateEntry"
|
|||||||
public let notificationAuthViewEntry = "notificationAuthViewEntry"
|
public let notificationAuthViewEntry = "notificationAuthViewEntry"
|
||||||
|
|
||||||
public let acceptOrderViewEntry = "acceptOrderViewEntry"
|
public let acceptOrderViewEntry = "acceptOrderViewEntry"
|
||||||
|
|
||||||
|
public let pushNotiCommonViewEntry = "pushNotiCommonViewEntry"
|
||||||
|
|||||||
BIN
OrderSchedulingNotificationService/.DS_Store
vendored
Normal file
BIN
OrderSchedulingNotificationService/.DS_Store
vendored
Normal file
Binary file not shown.
@@ -19,6 +19,11 @@ class NotificationService: UNNotificationServiceExtension {
|
|||||||
|
|
||||||
if let bestAttemptContent = bestAttemptContent {
|
if let bestAttemptContent = bestAttemptContent {
|
||||||
// Modify the notification content here...
|
// Modify the notification content here...
|
||||||
|
JPushNotificationExtensionService.jpushSetAppkey(JPushKey)
|
||||||
|
JPushNotificationExtensionService.jpushReceive(request) {
|
||||||
|
contentHandler(request.content)
|
||||||
|
}
|
||||||
|
|
||||||
let userInfo = bestAttemptContent.userInfo
|
let userInfo = bestAttemptContent.userInfo
|
||||||
|
|
||||||
if let dict = GROUP.parserAlertToDictionary(userInfo: userInfo) {
|
if let dict = GROUP.parserAlertToDictionary(userInfo: userInfo) {
|
||||||
@@ -46,16 +51,23 @@ class NotificationService: UNNotificationServiceExtension {
|
|||||||
bestAttemptContent.sound = sound
|
bestAttemptContent.sound = sound
|
||||||
|
|
||||||
GROUP.setBestAttemptContentUserInfo(bestAttemptContentUserInfo: userInfo)
|
GROUP.setBestAttemptContentUserInfo(bestAttemptContentUserInfo: userInfo)
|
||||||
|
contentHandler(bestAttemptContent)
|
||||||
}else{
|
}else{
|
||||||
bestAttemptContent.sound = .default
|
if let isShowPop = (userInfo[pushNoti_broadcastKeywords_key] as? Bool), isShowPop == true {
|
||||||
|
if let userInfo = GROUP.bestAttemptContentUserInfo,GROUP.isOrderPushNotification(userInfo: userInfo) == true {
|
||||||
|
}else{
|
||||||
|
GROUP.setBestAttemptContentUserInfo(bestAttemptContentUserInfo: userInfo)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if let broadcastKeywords = (userInfo[pushNoti_broadcastKeywords_key] as? String),broadcastKeywords.isEmpty == false {
|
||||||
|
bestAttemptContent.sound = .default
|
||||||
|
contentHandler(bestAttemptContent)
|
||||||
|
}else{
|
||||||
|
bestAttemptContent.sound = .default
|
||||||
|
contentHandler(bestAttemptContent)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
JPushNotificationExtensionService.jpushSetAppkey(JPushKey)
|
|
||||||
JPushNotificationExtensionService.jpushReceive(request) {
|
|
||||||
contentHandler(request.content)
|
|
||||||
}
|
|
||||||
|
|
||||||
contentHandler(bestAttemptContent)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -63,6 +75,20 @@ class NotificationService: UNNotificationServiceExtension {
|
|||||||
// Called just before the extension will be terminated by the system.
|
// Called just before the extension will be terminated by the system.
|
||||||
// Use this as an opportunity to deliver your "best attempt" at modified content, otherwise the original push payload will be used.
|
// Use this as an opportunity to deliver your "best attempt" at modified content, otherwise the original push payload will be used.
|
||||||
if let contentHandler = contentHandler, let bestAttemptContent = bestAttemptContent {
|
if let contentHandler = contentHandler, let bestAttemptContent = bestAttemptContent {
|
||||||
|
let userInfo = bestAttemptContent.userInfo
|
||||||
|
|
||||||
|
if let dict = GROUP.parserAlertToDictionary(userInfo: userInfo) {
|
||||||
|
if let title = dict[pushNoti_title_key] {
|
||||||
|
bestAttemptContent.title = title
|
||||||
|
}
|
||||||
|
if let body = dict[pushNoti_body_key] {
|
||||||
|
bestAttemptContent.body = body
|
||||||
|
}
|
||||||
|
}else if let body = GROUP.parserAlertToString(userInfo: userInfo) {
|
||||||
|
bestAttemptContent.body = body
|
||||||
|
}
|
||||||
|
|
||||||
|
bestAttemptContent.sound = .default
|
||||||
contentHandler(bestAttemptContent)
|
contentHandler(bestAttemptContent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ PODS:
|
|||||||
- BRPickerView/StringPickerView (2.8.1):
|
- BRPickerView/StringPickerView (2.8.1):
|
||||||
- BRPickerView/Base
|
- BRPickerView/Base
|
||||||
- CocoaDebug (1.7.7)
|
- CocoaDebug (1.7.7)
|
||||||
- DDAudioPlayerKit_Private (0.1.0)
|
- DDAudioPlayerKit_Private (0.1.3)
|
||||||
- DDAutoUIKit_Private (0.1.3)
|
- DDAutoUIKit_Private (0.1.3)
|
||||||
- DDBasicControlsKit_Private/DDBaseAnimation/DDTransitionAnimation (0.3.2)
|
- DDBasicControlsKit_Private/DDBaseAnimation/DDTransitionAnimation (0.3.2)
|
||||||
- DDBasicControlsKit_Private/DDBaseAttributedString (0.3.2):
|
- DDBasicControlsKit_Private/DDBaseAttributedString (0.3.2):
|
||||||
@@ -374,7 +374,7 @@ SPEC CHECKSUMS:
|
|||||||
AMapTrack-NO-IDFA: 7109cf1867f5d6c407c8191492b1f73101e1682e
|
AMapTrack-NO-IDFA: 7109cf1867f5d6c407c8191492b1f73101e1682e
|
||||||
BRPickerView: 2531a2d4d0fea0b57a1c738de215af0f88863a2f
|
BRPickerView: 2531a2d4d0fea0b57a1c738de215af0f88863a2f
|
||||||
CocoaDebug: b38d31464b91a9775928f8667d114db07b136565
|
CocoaDebug: b38d31464b91a9775928f8667d114db07b136565
|
||||||
DDAudioPlayerKit_Private: b18c9b8b4ee2d421227895edac27b2a799fcdb0d
|
DDAudioPlayerKit_Private: b727c241c5cd06f09d64bb2b3d5682b6e9eb8165
|
||||||
DDAutoUIKit_Private: 188066b4d13c8096676ddd9efa15974238f6dca3
|
DDAutoUIKit_Private: 188066b4d13c8096676ddd9efa15974238f6dca3
|
||||||
DDBasicControlsKit_Private: d3aebc505eaac273a8f6b85238662ad6e64a1a08
|
DDBasicControlsKit_Private: d3aebc505eaac273a8f6b85238662ad6e64a1a08
|
||||||
DDCategoryKit_Private: 19d515c43d5e9c4ee80b8ccf3fb8ab40368b8668
|
DDCategoryKit_Private: 19d515c43d5e9c4ee80b8ccf3fb8ab40368b8668
|
||||||
@@ -404,6 +404,6 @@ SPEC CHECKSUMS:
|
|||||||
SwiftEntryKit: 61b5fa36f34a97dd8013e48a7345bc4c4720be9a
|
SwiftEntryKit: 61b5fa36f34a97dd8013e48a7345bc4c4720be9a
|
||||||
ZLPhotoBrowser: 0563c2bfc7b247b65d023d646012f46cba94101b
|
ZLPhotoBrowser: 0563c2bfc7b247b65d023d646012f46cba94101b
|
||||||
|
|
||||||
PODFILE CHECKSUM: 4a6b876956d7d3482deecd88ffe2bf250614e00b
|
PODFILE CHECKSUM: 8b73e7b8269156e4fa26d46c40f768817fa76230
|
||||||
|
|
||||||
COCOAPODS: 1.11.3
|
COCOAPODS: 1.11.3
|
||||||
|
|||||||
@@ -7,75 +7,124 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
import AVFoundation
|
import AVFoundation
|
||||||
|
//import DDLogKit_Private
|
||||||
|
|
||||||
public let DDAS = DDAudioService.default
|
public let DDAS = DDAudioService.default
|
||||||
|
|
||||||
open class DDAudioService {
|
open class DDAudioService {
|
||||||
public static let `default` = DDAudioService()
|
public static let `default` = DDAudioService()
|
||||||
|
private var items : [DDAudioServiceItem] = []
|
||||||
|
|
||||||
private var audioSoundID : SystemSoundID = 0
|
public func playSoundWithVibrate(audioUrl:URL,name:String,numberOfLoops:Int = 1,timeInterval:TimeInterval = 0,eachLoopCompletionBlock: (() -> Void)? = nil,endCompletionBlock: (() -> Void)? = nil) {
|
||||||
private var vibrateSoundID : SystemSoundID = 0
|
let item = DDAudioServiceItem(name: name)
|
||||||
private var audioNumberOfLoops : Int = 0
|
items.append(item)
|
||||||
private var vibrateNumberOfLoops : Int = 0
|
item.playSoundWithVibrate(audioUrl: audioUrl,numberOfLoops: numberOfLoops,timeInterval: timeInterval,eachLoopCompletionBlock: eachLoopCompletionBlock,endCompletionBlock: endCompletionBlock)
|
||||||
private var endSound : Bool = false
|
}
|
||||||
private var endVibrate : Bool = false
|
|
||||||
|
public func playSound(audioUrl:URL,name:String,numberOfLoops:Int = 1,timeInterval:TimeInterval = 0,eachLoopCompletionBlock: (() -> Void)? = nil,endCompletionBlock: (() -> Void)? = nil) {
|
||||||
public func playSoundWithVibrate(audioUrl:URL,numberOfLoops:Int = 1) {
|
let item = DDAudioServiceItem(name: name)
|
||||||
playVibrate(numberOfLoops: -1)
|
items.append(item)
|
||||||
playSound(audioUrl: audioUrl,numberOfLoops: numberOfLoops) {[weak self] in
|
item.playSound(audioUrl: audioUrl,numberOfLoops: numberOfLoops,timeInterval: timeInterval,eachLoopCompletionBlock: eachLoopCompletionBlock,endCompletionBlock: endCompletionBlock)
|
||||||
self?.stopSound()
|
}
|
||||||
self?.stopVibrate()
|
|
||||||
|
public func playVibrate(name:String,numberOfLoops:Int = 1,timeInterval:TimeInterval = 0,eachLoopCompletionBlock: (() -> Void)? = nil,endCompletionBlock: (() -> Void)? = nil) {
|
||||||
|
let item = DDAudioServiceItem(name: name)
|
||||||
|
items.append(item)
|
||||||
|
item.playVibrate(numberOfLoops: numberOfLoops,timeInterval: timeInterval,eachLoopCompletionBlock: eachLoopCompletionBlock,endCompletionBlock: endCompletionBlock)
|
||||||
|
}
|
||||||
|
|
||||||
|
public func stopSoundWithVibrate(name:String) {
|
||||||
|
if items.contains(where: { item in
|
||||||
|
item.name == name
|
||||||
|
}) == true {
|
||||||
|
if let index = items.firstIndex(where: { item in
|
||||||
|
item.name == name
|
||||||
|
}) {
|
||||||
|
let item = items[index]
|
||||||
|
item.stopSoundWithVibrate {[weak self] in
|
||||||
|
self?.items.remove(at: index)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public func stopSoundWithVibrate() {
|
public func stopSound(name:String) {
|
||||||
stopSound()
|
if items.contains(where: { item in
|
||||||
stopVibrate()
|
item.name == name
|
||||||
|
}) == true {
|
||||||
|
if let index = items.firstIndex(where: { item in
|
||||||
|
item.name == name
|
||||||
|
}) {
|
||||||
|
let item = items[index]
|
||||||
|
item.stopSound {[weak self] in
|
||||||
|
self?.items.remove(at: index)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public func playSound(audioUrl:URL,numberOfLoops:Int = 1, endCompletionBlock: (() -> Void)? = nil) {
|
public func stopVibrate(name:String) {
|
||||||
self.audioNumberOfLoops = numberOfLoops
|
if items.contains(where: { item in
|
||||||
|
item.name == name
|
||||||
|
}) == true {
|
||||||
|
if let index = items.firstIndex(where: { item in
|
||||||
|
item.name == name
|
||||||
|
}) {
|
||||||
|
let item = items[index]
|
||||||
|
item.stopVibrate {[weak self] in
|
||||||
|
self?.items.remove(at: index)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
open class DDAudioServiceItem {
|
||||||
|
fileprivate var name : String
|
||||||
|
private var audioSoundID : SystemSoundID = 0
|
||||||
|
private var vibrateSoundID : SystemSoundID = 0
|
||||||
|
private var endSound : Bool = false
|
||||||
|
private var endVibrate : Bool = false
|
||||||
|
private var stopSoundCompletionHander : (() -> Void)?
|
||||||
|
private var stopVibrateCompletionHander : (() -> Void)?
|
||||||
|
|
||||||
|
init(name:String) {
|
||||||
|
self.name = name
|
||||||
|
}
|
||||||
|
|
||||||
|
public func playSoundWithVibrate(audioUrl:URL,numberOfLoops:Int = 1,timeInterval:TimeInterval = 0, eachLoopCompletionBlock: (() -> Void)? = nil,endCompletionBlock: (() -> Void)? = nil) {
|
||||||
|
playVibrate(numberOfLoops: -1)
|
||||||
|
playSound(audioUrl: audioUrl,numberOfLoops: numberOfLoops,timeInterval: timeInterval,eachLoopCompletionBlock: eachLoopCompletionBlock) {[weak self] in
|
||||||
|
self?.stopVibrate {
|
||||||
|
if endCompletionBlock != nil {
|
||||||
|
endCompletionBlock!()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public func stopSoundWithVibrate(completionHander:@escaping (() -> Void)) {
|
||||||
|
stopSound {[weak self] in
|
||||||
|
self?.stopVibrate {
|
||||||
|
completionHander()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public func playSound(audioUrl:URL,numberOfLoops:Int = 1,timeInterval:TimeInterval = 0,eachLoopCompletionBlock: (() -> Void)? = nil,endCompletionBlock: (() -> Void)? = nil) {
|
||||||
|
|
||||||
var audioSoundID:SystemSoundID = 0
|
var audioSoundID:SystemSoundID = 0
|
||||||
AudioServicesCreateSystemSoundID(audioUrl as CFURL, &audioSoundID)
|
AudioServicesCreateSystemSoundID(audioUrl as CFURL, &audioSoundID)
|
||||||
self.audioSoundID = audioSoundID
|
self.audioSoundID = audioSoundID
|
||||||
DispatchQueue.global().async {[weak self] in
|
DispatchQueue.global().async {[weak self] in
|
||||||
self?.playSound(audioSoundID: audioSoundID,leftNumberOfLoops: numberOfLoops,endCompletionBlock: {
|
self?.playSound(audioSoundID: audioSoundID,leftNumberOfLoops: numberOfLoops,timeInterval: timeInterval,eachLoopCompletionBlock: eachLoopCompletionBlock,endCompletionBlock: endCompletionBlock)
|
||||||
if endCompletionBlock != nil {
|
|
||||||
endCompletionBlock!()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public func playVibrate(numberOfLoops:Int = 1, endCompletionBlock: (() -> Void)? = nil) {
|
private func playSound(audioSoundID:SystemSoundID,leftNumberOfLoops:Int,timeInterval:TimeInterval,eachLoopCompletionBlock: (() -> Void)?, endCompletionBlock: (() -> Void)?) {
|
||||||
self.audioNumberOfLoops = numberOfLoops
|
|
||||||
|
|
||||||
var vibrateSoundID : SystemSoundID = 0
|
|
||||||
vibrateSoundID = kSystemSoundID_Vibrate
|
|
||||||
self.vibrateSoundID = vibrateSoundID
|
|
||||||
DispatchQueue.global().async {[weak self] in
|
|
||||||
self?.playVibrate(vibrateSoundID: vibrateSoundID, leftNumberOfLoops: numberOfLoops,endCompletionBlock: {
|
|
||||||
if endCompletionBlock != nil {
|
|
||||||
endCompletionBlock!()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public func stopSound() {
|
|
||||||
endSound = true
|
|
||||||
AudioServicesDisposeSystemSoundID(audioSoundID)
|
|
||||||
}
|
|
||||||
|
|
||||||
public func stopVibrate() {
|
|
||||||
endVibrate = true
|
|
||||||
AudioServicesDisposeSystemSoundID(vibrateSoundID)
|
|
||||||
}
|
|
||||||
|
|
||||||
private func playSound(audioSoundID:SystemSoundID,leftNumberOfLoops:Int,timeInterval:TimeInterval = 0,eachLoopCompletionBlock: (() -> Void)? = nil, endCompletionBlock: (() -> Void)? = nil) {
|
|
||||||
var changeLeftNumberOfLoops = leftNumberOfLoops
|
var changeLeftNumberOfLoops = leftNumberOfLoops
|
||||||
AudioServicesPlaySystemSoundWithCompletion(audioSoundID) {[weak self] in
|
AudioServicesPlaySystemSoundWithCompletion(audioSoundID) {[weak self] in
|
||||||
|
// 每次loop后回调
|
||||||
if eachLoopCompletionBlock != nil {
|
if eachLoopCompletionBlock != nil {
|
||||||
eachLoopCompletionBlock!()
|
eachLoopCompletionBlock!()
|
||||||
}
|
}
|
||||||
@@ -83,22 +132,61 @@ open class DDAudioService {
|
|||||||
// 当前的剩余为0就结束
|
// 当前的剩余为0就结束
|
||||||
changeLeftNumberOfLoops-=1
|
changeLeftNumberOfLoops-=1
|
||||||
if changeLeftNumberOfLoops == 0 || self?.endSound == true {
|
if changeLeftNumberOfLoops == 0 || self?.endSound == true {
|
||||||
self?.stopSound()
|
// 结束播放
|
||||||
if endCompletionBlock != nil {
|
AudioServicesDisposeSystemSoundID(audioSoundID)
|
||||||
|
// DDLog(message: "name = \(self?.name ?? "")的sound播放结束")
|
||||||
|
|
||||||
|
// 清除数据
|
||||||
|
self?.audioSoundID = 0
|
||||||
|
self?.endSound = false
|
||||||
|
|
||||||
|
// stop后回调
|
||||||
|
if self?.stopSoundCompletionHander != nil {
|
||||||
|
self?.stopSoundCompletionHander!()
|
||||||
|
}else if endCompletionBlock != nil {
|
||||||
|
// play所有loops后回调
|
||||||
endCompletionBlock!()
|
endCompletionBlock!()
|
||||||
}
|
}
|
||||||
print("sound播放结束")
|
|
||||||
}else{
|
}else{
|
||||||
DispatchQueue.global().asyncAfter(deadline: .now() + timeInterval, execute: {
|
DispatchQueue.global().asyncAfter(deadline: .now() + timeInterval, execute: {
|
||||||
self?.playSound(audioSoundID: audioSoundID, leftNumberOfLoops: changeLeftNumberOfLoops,timeInterval: timeInterval)
|
self?.playSound(audioSoundID: audioSoundID, leftNumberOfLoops: changeLeftNumberOfLoops,timeInterval: timeInterval,eachLoopCompletionBlock: eachLoopCompletionBlock,endCompletionBlock: endCompletionBlock)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func playVibrate(vibrateSoundID:SystemSoundID,leftNumberOfLoops:Int,timeInterval:TimeInterval = 0,eachLoopCompletionBlock: (() -> Void)? = nil, endCompletionBlock: (() -> Void)? = nil) {
|
public func stopSound(completionHandler:@escaping (() -> Void)) {
|
||||||
|
stopSoundCompletionHander = completionHandler
|
||||||
|
|
||||||
|
// 先尝试关闭
|
||||||
|
let status = AudioServicesDisposeSystemSoundID(audioSoundID)
|
||||||
|
// DDLog(message: "sound dispose status = \(status)")
|
||||||
|
if status != 0 {
|
||||||
|
// 假如没有关闭成功的话会来到结束
|
||||||
|
endSound = true
|
||||||
|
}else {
|
||||||
|
audioSoundID = 0
|
||||||
|
// DDLog(message: "name = \(name)的sound播放结束")
|
||||||
|
completionHandler()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public func playVibrate(numberOfLoops:Int = 1,timeInterval:TimeInterval = 0,eachLoopCompletionBlock: (() -> Void)? = nil,endCompletionBlock: (() -> Void)? = nil) {
|
||||||
|
self.endVibrate = false
|
||||||
|
|
||||||
|
var vibrateSoundID : SystemSoundID = 0
|
||||||
|
vibrateSoundID = kSystemSoundID_Vibrate
|
||||||
|
self.vibrateSoundID = vibrateSoundID
|
||||||
|
DispatchQueue.global().async {[weak self] in
|
||||||
|
self?.playVibrate(vibrateSoundID: vibrateSoundID, leftNumberOfLoops: numberOfLoops,timeInterval: timeInterval,eachLoopCompletionBlock: eachLoopCompletionBlock,endCompletionBlock: endCompletionBlock)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private func playVibrate(vibrateSoundID:SystemSoundID,leftNumberOfLoops:Int,timeInterval:TimeInterval = 0,eachLoopCompletionBlock: (() -> Void)?, endCompletionBlock: (() -> Void)?) {
|
||||||
var changeLeftNumberOfLoops = leftNumberOfLoops
|
var changeLeftNumberOfLoops = leftNumberOfLoops
|
||||||
AudioServicesPlayAlertSoundWithCompletion(vibrateSoundID) {[weak self] in
|
AudioServicesPlayAlertSoundWithCompletion(vibrateSoundID) {[weak self] in
|
||||||
|
// 每次loop后回调
|
||||||
if eachLoopCompletionBlock != nil {
|
if eachLoopCompletionBlock != nil {
|
||||||
eachLoopCompletionBlock!()
|
eachLoopCompletionBlock!()
|
||||||
}
|
}
|
||||||
@@ -106,17 +194,43 @@ open class DDAudioService {
|
|||||||
// 当前的剩余为0就结束
|
// 当前的剩余为0就结束
|
||||||
changeLeftNumberOfLoops-=1
|
changeLeftNumberOfLoops-=1
|
||||||
if changeLeftNumberOfLoops == 0 || self?.endVibrate == true {
|
if changeLeftNumberOfLoops == 0 || self?.endVibrate == true {
|
||||||
self?.stopVibrate()
|
// 结束
|
||||||
if endCompletionBlock != nil {
|
AudioServicesDisposeSystemSoundID(vibrateSoundID)
|
||||||
|
// DDLog(message: "name = \(self?.name ?? "")的vibrate播放结束")
|
||||||
|
|
||||||
|
// 清除数据
|
||||||
|
self?.vibrateSoundID = 0
|
||||||
|
self?.endVibrate = false
|
||||||
|
|
||||||
|
// stop后的回调
|
||||||
|
if self?.stopVibrateCompletionHander != nil {
|
||||||
|
self?.stopVibrateCompletionHander!()
|
||||||
|
}else if endCompletionBlock != nil {
|
||||||
|
// play完所有loops后回调
|
||||||
endCompletionBlock!()
|
endCompletionBlock!()
|
||||||
}
|
}
|
||||||
print("vibrate播放结束")
|
|
||||||
}else{
|
}else{
|
||||||
DispatchQueue.global().asyncAfter(deadline: .now() + timeInterval, execute: {
|
DispatchQueue.global().asyncAfter(deadline: .now() + timeInterval, execute: {
|
||||||
self?.playVibrate(vibrateSoundID: vibrateSoundID, leftNumberOfLoops: changeLeftNumberOfLoops,timeInterval: timeInterval)
|
self?.playVibrate(vibrateSoundID: vibrateSoundID, leftNumberOfLoops: changeLeftNumberOfLoops,timeInterval: timeInterval,eachLoopCompletionBlock: eachLoopCompletionBlock,endCompletionBlock: endCompletionBlock)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func stopVibrate(completionHandler:@escaping (() -> Void)) {
|
||||||
|
stopVibrateCompletionHander = completionHandler
|
||||||
|
|
||||||
|
// 先尝试关闭
|
||||||
|
let status = AudioServicesDisposeSystemSoundID(vibrateSoundID)
|
||||||
|
// DDLog(message: "vibrate dispose status = \(status)")
|
||||||
|
// if status != 0 {
|
||||||
|
// // 假如没有关闭成功的话会来到结束
|
||||||
|
endVibrate = true
|
||||||
|
// }else{
|
||||||
|
// vibrateSoundID = 0
|
||||||
|
// DDLog(message: "name = \(name)的vibrate播放结束")
|
||||||
|
// completionHandler()
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
93
Pods/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private/Classes/DDSpeechSynthesizer.swift
generated
Normal file
93
Pods/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private/Classes/DDSpeechSynthesizer.swift
generated
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
//
|
||||||
|
// DDSpeechSynthesizer.swift
|
||||||
|
// DDAudioPlayerKit_Private
|
||||||
|
//
|
||||||
|
// Created by 中道 on 2023/9/5.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import AVFoundation
|
||||||
|
|
||||||
|
public let DDSS = DDSpeechSynthesizer.default
|
||||||
|
|
||||||
|
open class DDSpeechSynthesizer {
|
||||||
|
public static let `default` = DDSpeechSynthesizer()
|
||||||
|
private var items : [DDSpeechSynthesizerItem] = []
|
||||||
|
|
||||||
|
public func play(text:String,name:String,numberOfLoops:Int = 1,timeInterval:TimeInterval = 0,eachLoopCompletionBlock: (() -> Void)? = nil, endCompletionBlock: (() -> Void)? = nil) {
|
||||||
|
let item = DDSpeechSynthesizerItem(name: name)
|
||||||
|
items.append(item)
|
||||||
|
item.play(text: text,numberOfLoops:numberOfLoops,timeInterval:timeInterval,eachLoopCompletionBlock:eachLoopCompletionBlock,endCompletionBlock:endCompletionBlock)
|
||||||
|
}
|
||||||
|
|
||||||
|
public func stop(name:String) {
|
||||||
|
if items.contains(where: { item in
|
||||||
|
item.name == name
|
||||||
|
}) == true {
|
||||||
|
if let index = items.firstIndex(where: { item in
|
||||||
|
item.name == name
|
||||||
|
}) {
|
||||||
|
let item = items[index]
|
||||||
|
item.stop()
|
||||||
|
items.remove(at: index)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DDSpeechSynthesizerItem: NSObject, AVSpeechSynthesizerDelegate {
|
||||||
|
private var synthesizer : AVSpeechSynthesizer?
|
||||||
|
private var utterance : AVSpeechUtterance?
|
||||||
|
public var name : String
|
||||||
|
private var numberOfLoops : Int = 0
|
||||||
|
private var timeInterval : TimeInterval = 0
|
||||||
|
private var eachLoopCompletionBlock : (() -> Void)?
|
||||||
|
private var endCompletionBlock : (() -> Void)?
|
||||||
|
|
||||||
|
init(name:String) {
|
||||||
|
self.name = name
|
||||||
|
}
|
||||||
|
|
||||||
|
func play(text:String,numberOfLoops:Int,timeInterval:TimeInterval,eachLoopCompletionBlock: (() -> Void)?, endCompletionBlock: (() -> Void)?) {
|
||||||
|
self.numberOfLoops = numberOfLoops
|
||||||
|
self.timeInterval = timeInterval
|
||||||
|
self.eachLoopCompletionBlock = eachLoopCompletionBlock
|
||||||
|
self.endCompletionBlock = endCompletionBlock
|
||||||
|
|
||||||
|
synthesizer = AVSpeechSynthesizer()
|
||||||
|
synthesizer?.delegate = self
|
||||||
|
utterance = AVSpeechUtterance(string: text)
|
||||||
|
utterance?.voice = AVSpeechSynthesisVoice(language: "zh-Hans")
|
||||||
|
utterance?.rate = AVSpeechUtteranceDefaultSpeechRate
|
||||||
|
if let utterance {
|
||||||
|
synthesizer?.speak(utterance)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public func speechSynthesizer(_ synthesizer: AVSpeechSynthesizer, didFinish utterance: AVSpeechUtterance) {
|
||||||
|
if eachLoopCompletionBlock != nil {
|
||||||
|
eachLoopCompletionBlock!()
|
||||||
|
}
|
||||||
|
|
||||||
|
numberOfLoops-=1
|
||||||
|
|
||||||
|
if numberOfLoops == 0 {
|
||||||
|
if endCompletionBlock != nil {
|
||||||
|
endCompletionBlock!()
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
DispatchQueue.global().asyncAfter(deadline: .now() + timeInterval, execute: {[weak self] in
|
||||||
|
if let utterance = self?.utterance {
|
||||||
|
self?.synthesizer?.speak(utterance)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func stop() {
|
||||||
|
synthesizer?.stopSpeaking(at: .immediate)
|
||||||
|
synthesizer?.delegate = nil
|
||||||
|
synthesizer = nil
|
||||||
|
utterance = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
6
Pods/Manifest.lock
generated
6
Pods/Manifest.lock
generated
@@ -23,7 +23,7 @@ PODS:
|
|||||||
- BRPickerView/StringPickerView (2.8.1):
|
- BRPickerView/StringPickerView (2.8.1):
|
||||||
- BRPickerView/Base
|
- BRPickerView/Base
|
||||||
- CocoaDebug (1.7.7)
|
- CocoaDebug (1.7.7)
|
||||||
- DDAudioPlayerKit_Private (0.1.0)
|
- DDAudioPlayerKit_Private (0.1.3)
|
||||||
- DDAutoUIKit_Private (0.1.3)
|
- DDAutoUIKit_Private (0.1.3)
|
||||||
- DDBasicControlsKit_Private/DDBaseAnimation/DDTransitionAnimation (0.3.2)
|
- DDBasicControlsKit_Private/DDBaseAnimation/DDTransitionAnimation (0.3.2)
|
||||||
- DDBasicControlsKit_Private/DDBaseAttributedString (0.3.2):
|
- DDBasicControlsKit_Private/DDBaseAttributedString (0.3.2):
|
||||||
@@ -374,7 +374,7 @@ SPEC CHECKSUMS:
|
|||||||
AMapTrack-NO-IDFA: 7109cf1867f5d6c407c8191492b1f73101e1682e
|
AMapTrack-NO-IDFA: 7109cf1867f5d6c407c8191492b1f73101e1682e
|
||||||
BRPickerView: 2531a2d4d0fea0b57a1c738de215af0f88863a2f
|
BRPickerView: 2531a2d4d0fea0b57a1c738de215af0f88863a2f
|
||||||
CocoaDebug: b38d31464b91a9775928f8667d114db07b136565
|
CocoaDebug: b38d31464b91a9775928f8667d114db07b136565
|
||||||
DDAudioPlayerKit_Private: b18c9b8b4ee2d421227895edac27b2a799fcdb0d
|
DDAudioPlayerKit_Private: b727c241c5cd06f09d64bb2b3d5682b6e9eb8165
|
||||||
DDAutoUIKit_Private: 188066b4d13c8096676ddd9efa15974238f6dca3
|
DDAutoUIKit_Private: 188066b4d13c8096676ddd9efa15974238f6dca3
|
||||||
DDBasicControlsKit_Private: d3aebc505eaac273a8f6b85238662ad6e64a1a08
|
DDBasicControlsKit_Private: d3aebc505eaac273a8f6b85238662ad6e64a1a08
|
||||||
DDCategoryKit_Private: 19d515c43d5e9c4ee80b8ccf3fb8ab40368b8668
|
DDCategoryKit_Private: 19d515c43d5e9c4ee80b8ccf3fb8ab40368b8668
|
||||||
@@ -404,6 +404,6 @@ SPEC CHECKSUMS:
|
|||||||
SwiftEntryKit: 61b5fa36f34a97dd8013e48a7345bc4c4720be9a
|
SwiftEntryKit: 61b5fa36f34a97dd8013e48a7345bc4c4720be9a
|
||||||
ZLPhotoBrowser: 0563c2bfc7b247b65d023d646012f46cba94101b
|
ZLPhotoBrowser: 0563c2bfc7b247b65d023d646012f46cba94101b
|
||||||
|
|
||||||
PODFILE CHECKSUM: 4a6b876956d7d3482deecd88ffe2bf250614e00b
|
PODFILE CHECKSUM: 8b73e7b8269156e4fa26d46c40f768817fa76230
|
||||||
|
|
||||||
COCOAPODS: 1.11.3
|
COCOAPODS: 1.11.3
|
||||||
|
|||||||
15752
Pods/Pods.xcodeproj/project.pbxproj
generated
15752
Pods/Pods.xcodeproj/project.pbxproj
generated
File diff suppressed because it is too large
Load Diff
@@ -1,3 +1,4 @@
|
|||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private
|
||||||
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
|
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
APPLICATION_EXTENSION_API_ONLY = YES
|
||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
||||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private
|
||||||
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
|
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
|
||||||
|
|||||||
@@ -1,6 +1,29 @@
|
|||||||
# Acknowledgements
|
# Acknowledgements
|
||||||
This application makes use of the following third party libraries:
|
This application makes use of the following third party libraries:
|
||||||
|
|
||||||
|
## DDAudioPlayerKit_Private
|
||||||
|
|
||||||
|
Copyright (c) 2023 DDIsFriend <DDIsFriend@163.com>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
## JCore
|
## JCore
|
||||||
|
|
||||||
Copyright jpush.cn
|
Copyright jpush.cn
|
||||||
|
|||||||
@@ -12,6 +12,35 @@
|
|||||||
<key>Type</key>
|
<key>Type</key>
|
||||||
<string>PSGroupSpecifier</string>
|
<string>PSGroupSpecifier</string>
|
||||||
</dict>
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>Copyright (c) 2023 DDIsFriend <DDIsFriend@163.com>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
</string>
|
||||||
|
<key>License</key>
|
||||||
|
<string>MIT</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>DDAudioPlayerKit_Private</string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>FooterText</key>
|
<key>FooterText</key>
|
||||||
<string>Copyright jpush.cn</string>
|
<string>Copyright jpush.cn</string>
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
#ifdef __OBJC__
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#else
|
||||||
|
#ifndef FOUNDATION_EXPORT
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#define FOUNDATION_EXPORT extern "C"
|
||||||
|
#else
|
||||||
|
#define FOUNDATION_EXPORT extern
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT double Pods_OrderSchedulingNotificationServiceVersionNumber;
|
||||||
|
FOUNDATION_EXPORT const unsigned char Pods_OrderSchedulingNotificationServiceVersionString[];
|
||||||
|
|
||||||
@@ -2,11 +2,14 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
|||||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/JCore" "${PODS_ROOT}/JPush" "${PODS_ROOT}/JPushExtension"
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/JCore" "${PODS_ROOT}/JPush" "${PODS_ROOT}/JPushExtension"
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BRPickerView" "${PODS_ROOT}/Headers/Public/CocoaDebug" "${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private" "${PODS_ROOT}/Headers/Public/DDCategoryKit_Private" "${PODS_ROOT}/Headers/Public/DDLogKit_Private" "${PODS_ROOT}/Headers/Public/DDMAMapKit_Private" "${PODS_ROOT}/Headers/Public/DDProgressHUDKit_Private" "${PODS_ROOT}/Headers/Public/DDTimerKit_Private" "${PODS_ROOT}/Headers/Public/DDWebImageKit_Private" "${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/RxCocoa" "${PODS_ROOT}/Headers/Public/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension/Headers"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BRPickerView" "${PODS_ROOT}/Headers/Public/CocoaDebug" "${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private" "${PODS_ROOT}/Headers/Public/DDCategoryKit_Private" "${PODS_ROOT}/Headers/Public/DDLogKit_Private" "${PODS_ROOT}/Headers/Public/DDMAMapKit_Private" "${PODS_ROOT}/Headers/Public/DDProgressHUDKit_Private" "${PODS_ROOT}/Headers/Public/DDTimerKit_Private" "${PODS_ROOT}/Headers/Public/DDWebImageKit_Private" "${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/RxCocoa" "${PODS_ROOT}/Headers/Public/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension/Headers"
|
||||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension"
|
LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" "${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension" /usr/lib/swift
|
||||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"JCore" -l"JPush" -l"JPushExtension" -l"resolv" -l"z" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreTelephony" -framework "Foundation" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "WebKit" -weak_framework "AppTrackingTransparency" -weak_framework "UserNotifications"
|
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private.modulemap"
|
||||||
|
OTHER_LDFLAGS = $(inherited) -ObjC -l"DDAudioPlayerKit_Private" -l"JCore" -l"JPush" -l"JPushExtension" -l"resolv" -l"z" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreTelephony" -framework "Foundation" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "WebKit" -weak_framework "AppTrackingTransparency" -weak_framework "UserNotifications"
|
||||||
|
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private.modulemap"
|
||||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||||
PODS_ROOT = ${SRCROOT}/Pods
|
PODS_ROOT = ${SRCROOT}/Pods
|
||||||
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
|
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
|
||||||
|
SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private"
|
||||||
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
module Pods_OrderSchedulingNotificationService {
|
||||||
|
umbrella header "Pods-OrderSchedulingNotificationService-umbrella.h"
|
||||||
|
|
||||||
|
export *
|
||||||
|
module * { export * }
|
||||||
|
}
|
||||||
@@ -2,11 +2,14 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
|||||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/JCore" "${PODS_ROOT}/JPush" "${PODS_ROOT}/JPushExtension"
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/JCore" "${PODS_ROOT}/JPush" "${PODS_ROOT}/JPushExtension"
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BRPickerView" "${PODS_ROOT}/Headers/Public/CocoaDebug" "${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private" "${PODS_ROOT}/Headers/Public/DDCategoryKit_Private" "${PODS_ROOT}/Headers/Public/DDLogKit_Private" "${PODS_ROOT}/Headers/Public/DDMAMapKit_Private" "${PODS_ROOT}/Headers/Public/DDProgressHUDKit_Private" "${PODS_ROOT}/Headers/Public/DDTimerKit_Private" "${PODS_ROOT}/Headers/Public/DDWebImageKit_Private" "${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/RxCocoa" "${PODS_ROOT}/Headers/Public/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension/Headers"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BRPickerView" "${PODS_ROOT}/Headers/Public/CocoaDebug" "${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private" "${PODS_ROOT}/Headers/Public/DDCategoryKit_Private" "${PODS_ROOT}/Headers/Public/DDLogKit_Private" "${PODS_ROOT}/Headers/Public/DDMAMapKit_Private" "${PODS_ROOT}/Headers/Public/DDProgressHUDKit_Private" "${PODS_ROOT}/Headers/Public/DDTimerKit_Private" "${PODS_ROOT}/Headers/Public/DDWebImageKit_Private" "${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/RxCocoa" "${PODS_ROOT}/Headers/Public/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension/Headers"
|
||||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension"
|
LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" "${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension" /usr/lib/swift
|
||||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"JCore" -l"JPush" -l"JPushExtension" -l"resolv" -l"z" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreTelephony" -framework "Foundation" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "WebKit" -weak_framework "AppTrackingTransparency" -weak_framework "UserNotifications"
|
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private.modulemap"
|
||||||
|
OTHER_LDFLAGS = $(inherited) -ObjC -l"DDAudioPlayerKit_Private" -l"JCore" -l"JPush" -l"JPushExtension" -l"resolv" -l"z" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreTelephony" -framework "Foundation" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "WebKit" -weak_framework "AppTrackingTransparency" -weak_framework "UserNotifications"
|
||||||
|
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private.modulemap"
|
||||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||||
PODS_ROOT = ${SRCROOT}/Pods
|
PODS_ROOT = ${SRCROOT}/Pods
|
||||||
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
|
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
|
||||||
|
SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private"
|
||||||
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
||||||
|
|||||||
Reference in New Issue
Block a user