update
This commit is contained in:
@@ -33,6 +33,8 @@
|
||||
791887C12A839784007EA0C1 /* RefuseOrderEntryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 791887C02A839784007EA0C1 /* RefuseOrderEntryView.swift */; };
|
||||
791887C42A84BFDB007EA0C1 /* Tool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 791887C32A84BFDB007EA0C1 /* Tool.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 */; };
|
||||
794FBB142A8F045F00D57BB8 /* MineController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB132A8F045F00D57BB8 /* MineController.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 */; };
|
||||
794FBB212A934E0A00D57BB8 /* AppUpdateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB202A934E0A00D57BB8 /* AppUpdateView.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 */; };
|
||||
79CECC192A89EE6A00B95D8B /* ReviewFailedController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79CECC182A89EE6A00B95D8B /* ReviewFailedController.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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
@@ -137,6 +142,7 @@
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
@@ -252,6 +258,8 @@
|
||||
791887C02A839784007EA0C1 /* RefuseOrderEntryView.swift */,
|
||||
79FB75ED2A9898EB00DB00A4 /* AcceptOrderView.swift */,
|
||||
79FB75EF2A98A26C00DB00A4 /* AcceptOrderTool.swift */,
|
||||
792EE0942AA74E0A00A212AB /* PushNotiCommonView.swift */,
|
||||
792EE0962AA74E5800A212AB /* PushNotiCommonTool.swift */,
|
||||
);
|
||||
path = View;
|
||||
sourceTree = "<group>";
|
||||
@@ -383,6 +391,7 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
791887AD2A80F943007EA0C1 /* UserData.swift */,
|
||||
79CB07CB2AA8465A00154B61 /* UserPermission.swift */,
|
||||
);
|
||||
path = User;
|
||||
sourceTree = "<group>";
|
||||
@@ -954,6 +963,7 @@
|
||||
79FB761C2A9EEC3700DB00A4 /* GroupData.swift in Sources */,
|
||||
79FB76172A9DFC9600DB00A4 /* NotificationSetUpController.swift in Sources */,
|
||||
79CECC262A8C749B00B95D8B /* VehicleMonitorVideoController.swift in Sources */,
|
||||
792EE0952AA74E0A00A212AB /* PushNotiCommonView.swift in Sources */,
|
||||
794FBB212A934E0A00D57BB8 /* AppUpdateView.swift in Sources */,
|
||||
79DD0DB42A95F00B00768FE7 /* Extension.swift in Sources */,
|
||||
791887802A7CE6F1007EA0C1 /* UserDefaultStrings.swift in Sources */,
|
||||
@@ -985,7 +995,9 @@
|
||||
79CECC122A89BD1A00B95D8B /* MessageCenterController.swift in Sources */,
|
||||
794FBB1F2A92F7C300D57BB8 /* WebViewTool.swift in Sources */,
|
||||
791887822A7CE71D007EA0C1 /* AppKeyStrings.swift in Sources */,
|
||||
79CB07CC2AA8465A00154B61 /* UserPermission.swift in Sources */,
|
||||
79CECC282A8CADEA00B95D8B /* VehicleMonitoringVideoDetailController.swift in Sources */,
|
||||
792EE0972AA74E5800A212AB /* PushNotiCommonTool.swift in Sources */,
|
||||
79FB75F02A98A26C00DB00A4 /* AcceptOrderTool.swift in Sources */,
|
||||
791887A12A80CA10007EA0C1 /* ApiList.swift in Sources */,
|
||||
791887AE2A80F943007EA0C1 /* UserData.swift in Sources */,
|
||||
|
||||
Binary file not shown.
@@ -253,8 +253,8 @@
|
||||
filePath = "OrderScheduling/Main/Initial.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "127"
|
||||
endingLineNumber = "127"
|
||||
startingLineNumber = "155"
|
||||
endingLineNumber = "155"
|
||||
landmarkName = "networkErrorHandler(response:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -269,8 +269,8 @@
|
||||
filePath = "OrderScheduling/Main/Initial.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "128"
|
||||
endingLineNumber = "128"
|
||||
startingLineNumber = "156"
|
||||
endingLineNumber = "156"
|
||||
landmarkName = "Initial"
|
||||
landmarkType = "21">
|
||||
<Locations>
|
||||
@@ -317,8 +317,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "599"
|
||||
endingLineNumber = "599"
|
||||
startingLineNumber = "636"
|
||||
endingLineNumber = "636"
|
||||
landmarkName = "tableView(_:cellForRowAt:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -526,6 +526,21 @@
|
||||
endingLineNumber = "35"
|
||||
offsetFromSymbolStart = "504">
|
||||
</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>
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
@@ -539,8 +554,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "844"
|
||||
endingLineNumber = "844"
|
||||
startingLineNumber = "933"
|
||||
endingLineNumber = "933"
|
||||
landmarkName = "collectionView(_:cellForItemAt:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -1237,8 +1252,8 @@
|
||||
filePath = "OrderScheduling/Main/AppDelegate.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "138"
|
||||
endingLineNumber = "138"
|
||||
startingLineNumber = "149"
|
||||
endingLineNumber = "149"
|
||||
landmarkName = "jpushNotificationAuthorization(_:withInfo:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -1253,8 +1268,8 @@
|
||||
filePath = "OrderScheduling/Main/AppDelegate.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "126"
|
||||
endingLineNumber = "126"
|
||||
startingLineNumber = "137"
|
||||
endingLineNumber = "137"
|
||||
landmarkName = "jpushNotificationCenter(_:didReceive:withCompletionHandler:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -1413,8 +1428,8 @@
|
||||
filePath = "OrderScheduling/Main/Initial.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "113"
|
||||
endingLineNumber = "113"
|
||||
startingLineNumber = "138"
|
||||
endingLineNumber = "138"
|
||||
landmarkName = "changeRootViewController(window:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -1445,8 +1460,8 @@
|
||||
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "256"
|
||||
endingLineNumber = "256"
|
||||
startingLineNumber = "269"
|
||||
endingLineNumber = "269"
|
||||
landmarkName = "reloadData()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -1509,8 +1524,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "256"
|
||||
endingLineNumber = "256"
|
||||
startingLineNumber = "241"
|
||||
endingLineNumber = "241"
|
||||
landmarkName = "entry(model:remarkId:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -1888,8 +1903,8 @@
|
||||
filePath = "OrderScheduling/Main/AppDelegate.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "128"
|
||||
endingLineNumber = "128"
|
||||
startingLineNumber = "139"
|
||||
endingLineNumber = "139"
|
||||
landmarkName = "jpushNotificationCenter(_:didReceive:withCompletionHandler:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -2029,8 +2044,8 @@
|
||||
filePath = "OrderScheduling/Main/Initial.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "104"
|
||||
endingLineNumber = "104"
|
||||
startingLineNumber = "129"
|
||||
endingLineNumber = "129"
|
||||
landmarkName = "changeRootViewController(window:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -2157,8 +2172,8 @@
|
||||
filePath = "OrderScheduling/Main/Initial.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "119"
|
||||
endingLineNumber = "119"
|
||||
startingLineNumber = "147"
|
||||
endingLineNumber = "147"
|
||||
landmarkName = "Initial"
|
||||
landmarkType = "3">
|
||||
</BreakpointContent>
|
||||
@@ -2381,8 +2396,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "855"
|
||||
endingLineNumber = "855"
|
||||
startingLineNumber = "944"
|
||||
endingLineNumber = "944"
|
||||
landmarkName = "collectionView(_:didSelectItemAt:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -2465,22 +2480,6 @@
|
||||
</Locations>
|
||||
</BreakpointContent>
|
||||
</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
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
@@ -2614,8 +2613,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "331"
|
||||
endingLineNumber = "331"
|
||||
startingLineNumber = "316"
|
||||
endingLineNumber = "316"
|
||||
landmarkName = "addActions()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -2630,8 +2629,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "320"
|
||||
endingLineNumber = "320"
|
||||
startingLineNumber = "305"
|
||||
endingLineNumber = "305"
|
||||
landmarkName = "addActions()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -2646,8 +2645,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "322"
|
||||
endingLineNumber = "322"
|
||||
startingLineNumber = "307"
|
||||
endingLineNumber = "307"
|
||||
landmarkName = "addActions()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -2678,8 +2677,8 @@
|
||||
filePath = "OrderSchedulingNotificationService/NotificationService.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "24"
|
||||
endingLineNumber = "24"
|
||||
startingLineNumber = "29"
|
||||
endingLineNumber = "29"
|
||||
landmarkName = "didReceive(_:withContentHandler:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -2795,22 +2794,6 @@
|
||||
</Locations>
|
||||
</BreakpointContent>
|
||||
</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
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
@@ -2837,8 +2820,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "96"
|
||||
endingLineNumber = "96"
|
||||
startingLineNumber = "74"
|
||||
endingLineNumber = "74"
|
||||
landmarkName = "addActions()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -2917,8 +2900,8 @@
|
||||
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "255"
|
||||
endingLineNumber = "255"
|
||||
startingLineNumber = "268"
|
||||
endingLineNumber = "268"
|
||||
landmarkName = "reloadData()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -2933,8 +2916,8 @@
|
||||
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "254"
|
||||
endingLineNumber = "254"
|
||||
startingLineNumber = "267"
|
||||
endingLineNumber = "267"
|
||||
landmarkName = "reloadData()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -2949,8 +2932,8 @@
|
||||
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "210"
|
||||
endingLineNumber = "210"
|
||||
startingLineNumber = "223"
|
||||
endingLineNumber = "223"
|
||||
landmarkName = "viewDidLoad()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -2965,8 +2948,8 @@
|
||||
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "204"
|
||||
endingLineNumber = "204"
|
||||
startingLineNumber = "217"
|
||||
endingLineNumber = "217"
|
||||
landmarkName = "viewDidLoad()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -3284,28 +3267,12 @@
|
||||
filePath = "OrderScheduling/Main/SceneDelegate.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "21"
|
||||
endingLineNumber = "21"
|
||||
startingLineNumber = "22"
|
||||
endingLineNumber = "22"
|
||||
landmarkName = "scene(_:willConnectTo:options:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</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
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
@@ -3316,8 +3283,8 @@
|
||||
filePath = "OrderScheduling/Main/AppDelegate.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "137"
|
||||
endingLineNumber = "137"
|
||||
startingLineNumber = "148"
|
||||
endingLineNumber = "148"
|
||||
landmarkName = "jpushNotificationAuthorization(_:withInfo:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -3332,8 +3299,8 @@
|
||||
filePath = "OrderScheduling/Rescue/ViewController/RescueController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "938"
|
||||
endingLineNumber = "938"
|
||||
startingLineNumber = "1027"
|
||||
endingLineNumber = "1027"
|
||||
landmarkName = "viewSafeAreaInsetsDidChange()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -3380,8 +3347,8 @@
|
||||
filePath = "OrderScheduling/Main/SceneDelegate.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "37"
|
||||
endingLineNumber = "37"
|
||||
startingLineNumber = "38"
|
||||
endingLineNumber = "38"
|
||||
landmarkName = "sceneDidBecomeActive(_:)"
|
||||
landmarkType = "7">
|
||||
<Locations>
|
||||
@@ -3428,8 +3395,8 @@
|
||||
filePath = "OrderScheduling/Main/SceneDelegate.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "47"
|
||||
endingLineNumber = "47"
|
||||
startingLineNumber = "50"
|
||||
endingLineNumber = "50"
|
||||
landmarkName = "sceneWillResignActive(_:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -3444,8 +3411,8 @@
|
||||
filePath = "OrderScheduling/Main/SceneDelegate.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "57"
|
||||
endingLineNumber = "57"
|
||||
startingLineNumber = "60"
|
||||
endingLineNumber = "60"
|
||||
landmarkName = "sceneWillEnterForeground(_:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -3508,8 +3475,8 @@
|
||||
filePath = "OrderScheduling/Main/SceneDelegate.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "66"
|
||||
endingLineNumber = "66"
|
||||
startingLineNumber = "69"
|
||||
endingLineNumber = "69"
|
||||
landmarkName = "sceneDidEnterBackground(_:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -3540,8 +3507,8 @@
|
||||
filePath = "OrderScheduling/Main/SceneDelegate.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "59"
|
||||
endingLineNumber = "59"
|
||||
startingLineNumber = "62"
|
||||
endingLineNumber = "62"
|
||||
landmarkName = "sceneWillEnterForeground(_:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -3620,8 +3587,8 @@
|
||||
filePath = "OrderScheduling/ReviewFailed/ViewController/ReviewFailedController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "188"
|
||||
endingLineNumber = "188"
|
||||
startingLineNumber = "201"
|
||||
endingLineNumber = "201"
|
||||
landmarkName = "init(nibName:bundle:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@@ -3818,5 +3785,357 @@
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</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>
|
||||
</Bucket>
|
||||
|
||||
@@ -232,6 +232,48 @@ open class Entry {
|
||||
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) {
|
||||
var attributes = EKAttributes()
|
||||
attributes = .centerFloat
|
||||
|
||||
@@ -13,7 +13,7 @@ open class GroupData {
|
||||
public static let `default` = GroupData()
|
||||
let groudUserDefault = UserDefaults(suiteName: GROUPID)
|
||||
|
||||
// 判断推送能不能解析出字典
|
||||
// 解析出字典
|
||||
func parserAlertToDictionary(userInfo:[AnyHashable:Any]?) -> Dictionary<String,String>? {
|
||||
let aps = userInfo?[pushNoti_aps_key] as? [String:Any]
|
||||
|
||||
@@ -44,6 +44,30 @@ open class GroupData {
|
||||
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]? {
|
||||
return groudUserDefault?.object(forKey: bestAttemptContentUserInfo_key) as? [AnyHashable:Any]
|
||||
|
||||
@@ -158,8 +158,7 @@ open class Tool {
|
||||
}
|
||||
|
||||
func dealWithOrderPushNotification(completionHandler:(([AnyHashable:Any]) -> Void)?) {
|
||||
let userInfo = GROUP.bestAttemptContentUserInfo
|
||||
if let userInfo {
|
||||
if let userInfo = GROUP.bestAttemptContentUserInfo {
|
||||
if completionHandler != nil {
|
||||
completionHandler!(userInfo)
|
||||
}
|
||||
@@ -171,18 +170,20 @@ open class Tool {
|
||||
if GROUP.newMessageAlert != true {
|
||||
return
|
||||
}
|
||||
|
||||
ACCEPTORDERTOOL.open(userInfo: userInfo)
|
||||
if GROUP.isOrderPushNotification(userInfo: userInfo) == true {
|
||||
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]?) {
|
||||
if GROUP.newMessageSound != true {
|
||||
return
|
||||
}
|
||||
|
||||
stopVoice()
|
||||
|
||||
if GROUP.isOrderPushNotification(userInfo: userInfo) == true {
|
||||
let juheVehcileName = userInfo?[pushNoti_juheVehcileName_key] as? String
|
||||
var auidoUrl : URL?
|
||||
@@ -193,34 +194,15 @@ open class Tool {
|
||||
}
|
||||
|
||||
if let auidoUrl {
|
||||
var audioSoundID:SystemSoundID = 0
|
||||
AudioServicesCreateSystemSoundID(auidoUrl as CFURL, &audioSoundID)
|
||||
systemSoundID = audioSoundID
|
||||
needPlayAudio = true
|
||||
soundCount = 0
|
||||
cycleVoice()
|
||||
DDAS.playSound(audioUrl: auidoUrl,name: "sound",numberOfLoops: 10,timeInterval: 2)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
}else if GROUP.isBroadcastPushNotification(userInfo: userInfo) == true, let broadcast = GROUP.parserBroadcastToString(userInfo: userInfo) {
|
||||
DDSS.play(text: broadcast, name: "broadcast")
|
||||
}
|
||||
}
|
||||
|
||||
func stopVoice() {
|
||||
if let systemSoundID {
|
||||
needPlayAudio = false
|
||||
soundCount = 0
|
||||
AudioServicesDisposeSystemSoundID(systemSoundID)
|
||||
}
|
||||
DDAS.stopSound(name: "sound")
|
||||
DDSS.stop(name: "broadcast")
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
|
||||
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)")
|
||||
})
|
||||
.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!
|
||||
}
|
||||
|
||||
@@ -554,7 +599,8 @@ class HistoryItemCell : DDTableViewCell {
|
||||
reportButton.snp.makeConstraints { make in
|
||||
make.right.equalTo(additionalButton.snp.left).offset(-auto(10))
|
||||
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 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>?> {
|
||||
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()
|
||||
|
||||
if GROUP.isOrderPushNotification(userInfo: userInfo) == true {
|
||||
// 只有订单类型才会弹窗和声音
|
||||
// 新订单的处理
|
||||
TOOL.dealWithOrderPushNotification { userInfo in
|
||||
TOOL.playAlertWith(userInfo: userInfo)
|
||||
TOOL.playVoiceWith(userInfo: userInfo)
|
||||
}
|
||||
}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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,9 +39,6 @@ class Initial : NSObject {
|
||||
// af
|
||||
initAF()
|
||||
|
||||
// call
|
||||
initCall()
|
||||
|
||||
// cocoadebug
|
||||
initCocoaDebug()
|
||||
}
|
||||
@@ -88,6 +85,34 @@ class Initial : NSObject {
|
||||
.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() {
|
||||
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
|
||||
self?.initRefreshToken()
|
||||
self?.initPermission()
|
||||
self?.initAppUpdate()
|
||||
self?.initCall()
|
||||
window?.rootViewController = MainTabBarController.init()
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
|
||||
|
||||
public var window: UIWindow?
|
||||
public var initial : Initial = Initial.shareInstance
|
||||
public var appIsAlive : Bool = false
|
||||
|
||||
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`.
|
||||
@@ -34,12 +35,14 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
|
||||
}
|
||||
|
||||
func sceneDidBecomeActive(_ scene: UIScene) {
|
||||
if USER.isLogin == true {
|
||||
// 只有订单类型才会弹窗和声音
|
||||
if USER.isLogin == true,appIsAlive == true {
|
||||
// 处理app收到推送后写入GROUP的数据,当app处于后台时才要弹出,app died不需要
|
||||
TOOL.dealWithOrderPushNotification { userInfo in
|
||||
TOOL.playAlertWith(userInfo: userInfo)
|
||||
}
|
||||
}
|
||||
// 说明app时活的,用来判断进入后台之后返回前台时的问题
|
||||
appIsAlive = true
|
||||
}
|
||||
|
||||
func sceneWillResignActive(_ scene: UIScene) {
|
||||
|
||||
@@ -16,9 +16,6 @@ open class AcceptOrderTool : NSObject {
|
||||
private let disposeBag = DisposeBag()
|
||||
|
||||
func open(userInfo:[AnyHashable:Any]?) {
|
||||
if GROUP.newMessageAlert != true {
|
||||
return
|
||||
}
|
||||
let acceptOrderView = AcceptOrderView()
|
||||
acceptOrderView.titleLabel.text = "新订单"
|
||||
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")
|
||||
}
|
||||
}
|
||||
@@ -67,28 +67,6 @@ extension RescueController {
|
||||
})
|
||||
.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 需要刷下下列
|
||||
preRefreshRelay
|
||||
.observe(on: MainScheduler.instance)
|
||||
@@ -220,6 +198,13 @@ extension RescuePendingOrderController {
|
||||
self?.pendingOrderView.tableView.mj_header?.beginRefreshing()
|
||||
})
|
||||
.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?) {
|
||||
@@ -351,6 +336,13 @@ extension RescuePendingDispatchController {
|
||||
self?.pendingDispatchView.tableView.mj_header?.beginRefreshing()
|
||||
})
|
||||
.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()
|
||||
})
|
||||
.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)
|
||||
})
|
||||
.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!
|
||||
}
|
||||
|
||||
@@ -712,6 +749,20 @@ extension RescuePendingDispatchController : UITableViewDelegate,UITableViewDataS
|
||||
self?.navigationController?.pushViewController(vc, animated: true)
|
||||
})
|
||||
.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!
|
||||
}
|
||||
|
||||
@@ -800,6 +851,44 @@ extension RescueIsIngController : UITableViewDelegate,UITableViewDataSource {
|
||||
WEBTOOL.open(name: .reporting,appending: "&queryType=\(OrderTypeEnum.TO_RESCUE.rawValue)&userOrderId=\(model.userOrderId)&orderCode=\(model.orderCode)")
|
||||
})
|
||||
.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!
|
||||
}
|
||||
|
||||
@@ -1240,7 +1329,8 @@ class RescuePendingOrderCell : DDTableViewCell {
|
||||
refuseButton.snp.makeConstraints { make in
|
||||
make.right.equalTo(acceptButton.snp.left).offset(-auto(10))
|
||||
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
|
||||
make.right.equalTo(dispatchButton.snp.left).offset(-auto(10))
|
||||
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
|
||||
make.right.equalTo(reportButton.snp.left).offset(-auto(10))
|
||||
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()
|
||||
})
|
||||
.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)
|
||||
})
|
||||
.disposed(by: cell!.disposeBag)
|
||||
|
||||
if USERP.canSupplierAuditUploadPhotoBtn == true {
|
||||
cell?.additionalButton.isHidden = false
|
||||
}else{
|
||||
cell?.additionalButton.isHidden = true
|
||||
}
|
||||
return cell!
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,6 +22,16 @@ public let pushNoti_taskCode_key = "taskCode"
|
||||
|
||||
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"
|
||||
|
||||
|
||||
@@ -18,3 +18,5 @@ public let appUpdateEntry = "appUpdateEntry"
|
||||
public let notificationAuthViewEntry = "notificationAuthViewEntry"
|
||||
|
||||
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 {
|
||||
// Modify the notification content here...
|
||||
JPushNotificationExtensionService.jpushSetAppkey(JPushKey)
|
||||
JPushNotificationExtensionService.jpushReceive(request) {
|
||||
contentHandler(request.content)
|
||||
}
|
||||
|
||||
let userInfo = bestAttemptContent.userInfo
|
||||
|
||||
if let dict = GROUP.parserAlertToDictionary(userInfo: userInfo) {
|
||||
@@ -46,16 +51,23 @@ class NotificationService: UNNotificationServiceExtension {
|
||||
bestAttemptContent.sound = sound
|
||||
|
||||
GROUP.setBestAttemptContentUserInfo(bestAttemptContentUserInfo: userInfo)
|
||||
contentHandler(bestAttemptContent)
|
||||
}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)
|
||||
}
|
||||
}
|
||||
|
||||
JPushNotificationExtensionService.jpushSetAppkey(JPushKey)
|
||||
JPushNotificationExtensionService.jpushReceive(request) {
|
||||
contentHandler(request.content)
|
||||
if let broadcastKeywords = (userInfo[pushNoti_broadcastKeywords_key] as? String),broadcastKeywords.isEmpty == false {
|
||||
bestAttemptContent.sound = .default
|
||||
contentHandler(bestAttemptContent)
|
||||
}else{
|
||||
bestAttemptContent.sound = .default
|
||||
contentHandler(bestAttemptContent)
|
||||
}
|
||||
}
|
||||
|
||||
contentHandler(bestAttemptContent)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,6 +75,20 @@ class NotificationService: UNNotificationServiceExtension {
|
||||
// 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.
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ PODS:
|
||||
- BRPickerView/StringPickerView (2.8.1):
|
||||
- BRPickerView/Base
|
||||
- CocoaDebug (1.7.7)
|
||||
- DDAudioPlayerKit_Private (0.1.0)
|
||||
- DDAudioPlayerKit_Private (0.1.3)
|
||||
- DDAutoUIKit_Private (0.1.3)
|
||||
- DDBasicControlsKit_Private/DDBaseAnimation/DDTransitionAnimation (0.3.2)
|
||||
- DDBasicControlsKit_Private/DDBaseAttributedString (0.3.2):
|
||||
@@ -374,7 +374,7 @@ SPEC CHECKSUMS:
|
||||
AMapTrack-NO-IDFA: 7109cf1867f5d6c407c8191492b1f73101e1682e
|
||||
BRPickerView: 2531a2d4d0fea0b57a1c738de215af0f88863a2f
|
||||
CocoaDebug: b38d31464b91a9775928f8667d114db07b136565
|
||||
DDAudioPlayerKit_Private: b18c9b8b4ee2d421227895edac27b2a799fcdb0d
|
||||
DDAudioPlayerKit_Private: b727c241c5cd06f09d64bb2b3d5682b6e9eb8165
|
||||
DDAutoUIKit_Private: 188066b4d13c8096676ddd9efa15974238f6dca3
|
||||
DDBasicControlsKit_Private: d3aebc505eaac273a8f6b85238662ad6e64a1a08
|
||||
DDCategoryKit_Private: 19d515c43d5e9c4ee80b8ccf3fb8ab40368b8668
|
||||
@@ -404,6 +404,6 @@ SPEC CHECKSUMS:
|
||||
SwiftEntryKit: 61b5fa36f34a97dd8013e48a7345bc4c4720be9a
|
||||
ZLPhotoBrowser: 0563c2bfc7b247b65d023d646012f46cba94101b
|
||||
|
||||
PODFILE CHECKSUM: 4a6b876956d7d3482deecd88ffe2bf250614e00b
|
||||
PODFILE CHECKSUM: 8b73e7b8269156e4fa26d46c40f768817fa76230
|
||||
|
||||
COCOAPODS: 1.11.3
|
||||
|
||||
@@ -7,75 +7,124 @@
|
||||
|
||||
import Foundation
|
||||
import AVFoundation
|
||||
//import DDLogKit_Private
|
||||
|
||||
public let DDAS = DDAudioService.default
|
||||
|
||||
open class DDAudioService {
|
||||
public static let `default` = DDAudioService()
|
||||
private var items : [DDAudioServiceItem] = []
|
||||
|
||||
private var audioSoundID : SystemSoundID = 0
|
||||
private var vibrateSoundID : SystemSoundID = 0
|
||||
private var audioNumberOfLoops : Int = 0
|
||||
private var vibrateNumberOfLoops : Int = 0
|
||||
private var endSound : Bool = false
|
||||
private var endVibrate : Bool = false
|
||||
public func playSoundWithVibrate(audioUrl:URL,name:String,numberOfLoops:Int = 1,timeInterval:TimeInterval = 0,eachLoopCompletionBlock: (() -> Void)? = nil,endCompletionBlock: (() -> Void)? = nil) {
|
||||
let item = DDAudioServiceItem(name: name)
|
||||
items.append(item)
|
||||
item.playSoundWithVibrate(audioUrl: audioUrl,numberOfLoops: numberOfLoops,timeInterval: timeInterval,eachLoopCompletionBlock: eachLoopCompletionBlock,endCompletionBlock: endCompletionBlock)
|
||||
}
|
||||
|
||||
public func playSoundWithVibrate(audioUrl:URL,numberOfLoops:Int = 1) {
|
||||
playVibrate(numberOfLoops: -1)
|
||||
playSound(audioUrl: audioUrl,numberOfLoops: numberOfLoops) {[weak self] in
|
||||
self?.stopSound()
|
||||
self?.stopVibrate()
|
||||
public func playSound(audioUrl:URL,name:String,numberOfLoops:Int = 1,timeInterval:TimeInterval = 0,eachLoopCompletionBlock: (() -> Void)? = nil,endCompletionBlock: (() -> Void)? = nil) {
|
||||
let item = DDAudioServiceItem(name: name)
|
||||
items.append(item)
|
||||
item.playSound(audioUrl: audioUrl,numberOfLoops: numberOfLoops,timeInterval: timeInterval,eachLoopCompletionBlock: eachLoopCompletionBlock,endCompletionBlock: endCompletionBlock)
|
||||
}
|
||||
|
||||
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() {
|
||||
stopSound()
|
||||
stopVibrate()
|
||||
public func stopSound(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.stopSound {[weak self] in
|
||||
self?.items.remove(at: index)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public func playSound(audioUrl:URL,numberOfLoops:Int = 1, endCompletionBlock: (() -> Void)? = nil) {
|
||||
self.audioNumberOfLoops = numberOfLoops
|
||||
public func stopVibrate(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.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
|
||||
AudioServicesCreateSystemSoundID(audioUrl as CFURL, &audioSoundID)
|
||||
self.audioSoundID = audioSoundID
|
||||
DispatchQueue.global().async {[weak self] in
|
||||
self?.playSound(audioSoundID: audioSoundID,leftNumberOfLoops: numberOfLoops,endCompletionBlock: {
|
||||
if endCompletionBlock != nil {
|
||||
endCompletionBlock!()
|
||||
}
|
||||
})
|
||||
self?.playSound(audioSoundID: audioSoundID,leftNumberOfLoops: numberOfLoops,timeInterval: timeInterval,eachLoopCompletionBlock: eachLoopCompletionBlock,endCompletionBlock: endCompletionBlock)
|
||||
}
|
||||
}
|
||||
|
||||
public func playVibrate(numberOfLoops:Int = 1, endCompletionBlock: (() -> Void)? = nil) {
|
||||
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) {
|
||||
private func playSound(audioSoundID:SystemSoundID,leftNumberOfLoops:Int,timeInterval:TimeInterval,eachLoopCompletionBlock: (() -> Void)?, endCompletionBlock: (() -> Void)?) {
|
||||
var changeLeftNumberOfLoops = leftNumberOfLoops
|
||||
AudioServicesPlaySystemSoundWithCompletion(audioSoundID) {[weak self] in
|
||||
// 每次loop后回调
|
||||
if eachLoopCompletionBlock != nil {
|
||||
eachLoopCompletionBlock!()
|
||||
}
|
||||
@@ -83,22 +132,61 @@ open class DDAudioService {
|
||||
// 当前的剩余为0就结束
|
||||
changeLeftNumberOfLoops-=1
|
||||
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!()
|
||||
}
|
||||
print("sound播放结束")
|
||||
}else{
|
||||
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
|
||||
AudioServicesPlayAlertSoundWithCompletion(vibrateSoundID) {[weak self] in
|
||||
// 每次loop后回调
|
||||
if eachLoopCompletionBlock != nil {
|
||||
eachLoopCompletionBlock!()
|
||||
}
|
||||
@@ -106,17 +194,43 @@ open class DDAudioService {
|
||||
// 当前的剩余为0就结束
|
||||
changeLeftNumberOfLoops-=1
|
||||
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!()
|
||||
}
|
||||
print("vibrate播放结束")
|
||||
}else{
|
||||
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/Base
|
||||
- CocoaDebug (1.7.7)
|
||||
- DDAudioPlayerKit_Private (0.1.0)
|
||||
- DDAudioPlayerKit_Private (0.1.3)
|
||||
- DDAutoUIKit_Private (0.1.3)
|
||||
- DDBasicControlsKit_Private/DDBaseAnimation/DDTransitionAnimation (0.3.2)
|
||||
- DDBasicControlsKit_Private/DDBaseAttributedString (0.3.2):
|
||||
@@ -374,7 +374,7 @@ SPEC CHECKSUMS:
|
||||
AMapTrack-NO-IDFA: 7109cf1867f5d6c407c8191492b1f73101e1682e
|
||||
BRPickerView: 2531a2d4d0fea0b57a1c738de215af0f88863a2f
|
||||
CocoaDebug: b38d31464b91a9775928f8667d114db07b136565
|
||||
DDAudioPlayerKit_Private: b18c9b8b4ee2d421227895edac27b2a799fcdb0d
|
||||
DDAudioPlayerKit_Private: b727c241c5cd06f09d64bb2b3d5682b6e9eb8165
|
||||
DDAutoUIKit_Private: 188066b4d13c8096676ddd9efa15974238f6dca3
|
||||
DDBasicControlsKit_Private: d3aebc505eaac273a8f6b85238662ad6e64a1a08
|
||||
DDCategoryKit_Private: 19d515c43d5e9c4ee80b8ccf3fb8ab40368b8668
|
||||
@@ -404,6 +404,6 @@ SPEC CHECKSUMS:
|
||||
SwiftEntryKit: 61b5fa36f34a97dd8013e48a7345bc4c4720be9a
|
||||
ZLPhotoBrowser: 0563c2bfc7b247b65d023d646012f46cba94101b
|
||||
|
||||
PODFILE CHECKSUM: 4a6b876956d7d3482deecd88ffe2bf250614e00b
|
||||
PODFILE CHECKSUM: 8b73e7b8269156e4fa26d46c40f768817fa76230
|
||||
|
||||
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
|
||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private
|
||||
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
APPLICATION_EXTENSION_API_ONLY = YES
|
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private
|
||||
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
|
||||
|
||||
@@ -1,6 +1,29 @@
|
||||
# Acknowledgements
|
||||
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
|
||||
|
||||
Copyright jpush.cn
|
||||
|
||||
@@ -12,6 +12,35 @@
|
||||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</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>
|
||||
<key>FooterText</key>
|
||||
<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"
|
||||
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"
|
||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension"
|
||||
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"
|
||||
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_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_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||
PODS_ROOT = ${SRCROOT}/Pods
|
||||
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
|
||||
|
||||
@@ -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"
|
||||
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"
|
||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension"
|
||||
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"
|
||||
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_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_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||
PODS_ROOT = ${SRCROOT}/Pods
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user