对话翻译加了断开蓝牙禁用
authorliangzhenying <867174124@qq.com>
Wed, 1 Apr 2026 09:56:07 +0000 (17:56 +0800)
committerliangzhenying <867174124@qq.com>
Wed, 1 Apr 2026 09:56:07 +0000 (17:56 +0800)
ShenYin/ShenYin.xcodeproj/project.pbxproj
ShenYin/ShenYin/Channel/DeepChords/Channel/Config/CCBleManager.swift
ShenYin/ShenYin/Channel/DeepChords/Channel/UI/JoyDialogTranslateVC.swift
ShenYin/ShenYin/Channel/PLAYBOY/Channel/Config/CCBleManager.swift
ShenYin/ShenYin/Channel/PLAYBOY/Channel/UI/PbDialogTranslateVC.swift
ShenYin/ShenYin/Channel/PLAYBOY/Channel/UI/PbSubTitleVC.swift
ShenYin/ShenYin/UI/Home/Dialog/DialogRecordBar.swift

index 988c981..33dac71 100644 (file)
@@ -17,7 +17,7 @@
                644D1BB5EDD3EA1D77C57786 /* Pods_DeepChordsSdk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 248D8B53B5A178ACA5867275 /* Pods_DeepChordsSdk.framework */; };
                7666589AAA94A323B6090425 /* Pods_playboy.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4F1BB919D567C3B6B0EBAA7 /* Pods_playboy.framework */; };
                7BF71F6F6455A7A5A0EBA77D /* Pods_PaXa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3755188AEEAC55CE96C820DE /* Pods_PaXa.framework */; };
-               817510A595D00CAD05E3772C /* BuildFile in Frameworks */ = {isa = PBXBuildFile; };
+               817510A595D00CAD05E3772C /* (null) in Frameworks */ = {isa = PBXBuildFile; };
                D7F1AC2CACDFEAEEFFA02AB4 /* Pods_ShenYin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0676888E06B3E1399E5E62D1 /* Pods_ShenYin.framework */; };
 /* End PBXBuildFile section */
 
 /* End PBXFileSystemSynchronizedBuildFileExceptionSet section */
 
 /* Begin PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet section */
-               3F131F812F75162900B9B4F5 /* Exceptions for "ShenYin" folder in "Embed Frameworks" build phase */ = {
+               3F131F812F75162900B9B4F5 /* Exceptions for "ShenYin" folder in "Embed Frameworks" phase from "PaXa" target */ = {
                        isa = PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet;
+                       attributesByRelativePath = {
+                               Channel/DeepChords/Sdk/JoyGemAI.framework = (CodeSignOnCopy, RemoveHeadersOnCopy, );
+                               Channel/PLAYBOY/Sdk/JLAudioUnitKit.xcframework = (CodeSignOnCopy, RemoveHeadersOnCopy, );
+                       };
                        buildPhase = 3F1301E02F750E7400B9B4F5 /* Embed Frameworks */;
                        membershipExceptions = (
                                Channel/DeepChords/Sdk/JoyGemAI.framework,
                                Channel/PLAYBOY/Sdk/JLAudioUnitKit.xcframework,
                        );
                };
-               3F131F872F75164300B9B4F5 /* Exceptions for "DeepChordsSdk" folder in "Embed Frameworks" build phase */ = {
+               3F131F872F75164300B9B4F5 /* Exceptions for "DeepChordsSdk" folder in "Embed Frameworks" phase from "PaXa" target */ = {
                        isa = PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet;
+                       attributesByRelativePath = {
+                               StarburstSdkDirect.xcframework = (CodeSignOnCopy, RemoveHeadersOnCopy, );
+                       };
                        buildPhase = 3F1301E02F750E7400B9B4F5 /* Embed Frameworks */;
                        membershipExceptions = (
                                StarburstSdkDirect.xcframework,
                        );
                };
-               3F372ED32F6BF6A100E5C3B2 /* Exceptions for "DeepChordsSdk" folder in "Embed Frameworks" build phase */ = {
+               3F372ED32F6BF6A100E5C3B2 /* Exceptions for "DeepChordsSdk" folder in "Embed Frameworks" phase from "ShenYin" target */ = {
                        isa = PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet;
+                       attributesByRelativePath = {
+                               StarburstSdkDirect.xcframework = (CodeSignOnCopy, RemoveHeadersOnCopy, );
+                       };
                        buildPhase = 3FEFE9092F1B252000D82F17 /* Embed Frameworks */;
                        membershipExceptions = (
                                StarburstSdkDirect.xcframework,
                        );
                };
-               3F372EF42F6CE3CE00E5C3B2 /* Exceptions for "ShenYin" folder in "Embed Frameworks" build phase */ = {
+               3F372EF42F6CE3CE00E5C3B2 /* Exceptions for "ShenYin" folder in "Embed Frameworks" phase from "ShenYin" target */ = {
                        isa = PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet;
+                       attributesByRelativePath = {
+                               Channel/DeepChords/Sdk/JoyGemAI.framework = (CodeSignOnCopy, RemoveHeadersOnCopy, );
+                               Channel/PLAYBOY/Sdk/JLAudioUnitKit.xcframework = (CodeSignOnCopy, RemoveHeadersOnCopy, );
+                       };
                        buildPhase = 3FEFE9092F1B252000D82F17 /* Embed Frameworks */;
                        membershipExceptions = (
                                Channel/DeepChords/Sdk/JoyGemAI.framework,
                                Channel/PLAYBOY/Sdk/JLAudioUnitKit.xcframework,
                        );
                };
-               3FCB29902F6A7DAD007AB47F /* Exceptions for "ShenYin" folder in "Embed Frameworks" build phase */ = {
+               3FCB29902F6A7DAD007AB47F /* Exceptions for "ShenYin" folder in "Embed Frameworks" phase from "playboy" target */ = {
                        isa = PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet;
+                       attributesByRelativePath = {
+                               Channel/PLAYBOY/Sdk/JLAudioUnitKit.xcframework = (CodeSignOnCopy, RemoveHeadersOnCopy, );
+                       };
                        buildPhase = 3FD1DFEF2F0E00BF00A62733 /* Embed Frameworks */;
                        membershipExceptions = (
                                Channel/PLAYBOY/Sdk/JLAudioUnitKit.xcframework,
                        );
                };
-               3FCB2E832F6AAEC8007AB47F /* Exceptions for "DeepChordsSdk" folder in "Embed Frameworks" build phase */ = {
+               3FCB2E832F6AAEC8007AB47F /* Exceptions for "DeepChordsSdk" folder in "Embed Frameworks" phase from "DeepChordsSdk" target */ = {
                        isa = PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet;
+                       attributesByRelativePath = {
+                               StarburstSdkDirect.xcframework = (CodeSignOnCopy, RemoveHeadersOnCopy, );
+                       };
                        buildPhase = 3FFB77C52F17A11100EF9A60 /* Embed Frameworks */;
                        membershipExceptions = (
                                StarburstSdkDirect.xcframework,
                        );
                };
-               3FCB2E862F6AAEEE007AB47F /* Exceptions for "DeepChordsSdk" folder in "Embed Frameworks" build phase */ = {
+               3FCB2E862F6AAEEE007AB47F /* Exceptions for "DeepChordsSdk" folder in "Embed Frameworks" phase from "playboy" target */ = {
                        isa = PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet;
+                       attributesByRelativePath = {
+                               StarburstSdkDirect.xcframework = (CodeSignOnCopy, RemoveHeadersOnCopy, );
+                       };
                        buildPhase = 3FD1DFEF2F0E00BF00A62733 /* Embed Frameworks */;
                        membershipExceptions = (
                                StarburstSdkDirect.xcframework,
                        isa = PBXFileSystemSynchronizedRootGroup;
                        exceptions = (
                                3F372ED22F6BF6A100E5C3B2 /* Exceptions for "DeepChordsSdk" folder in "ShenYin" target */,
-                               3F372ED32F6BF6A100E5C3B2 /* Exceptions for "DeepChordsSdk" folder in "Embed Frameworks" build phase */,
-                               3FCB2E832F6AAEC8007AB47F /* Exceptions for "DeepChordsSdk" folder in "Embed Frameworks" build phase */,
+                               3F372ED32F6BF6A100E5C3B2 /* Exceptions for "DeepChordsSdk" folder in "Embed Frameworks" phase from "ShenYin" target */,
+                               3FCB2E832F6AAEC8007AB47F /* Exceptions for "DeepChordsSdk" folder in "Embed Frameworks" phase from "DeepChordsSdk" target */,
                                3FCB2E7F2F6AAE8C007AB47F /* Exceptions for "DeepChordsSdk" folder in "playboy" target */,
-                               3FCB2E862F6AAEEE007AB47F /* Exceptions for "DeepChordsSdk" folder in "Embed Frameworks" build phase */,
+                               3FCB2E862F6AAEEE007AB47F /* Exceptions for "DeepChordsSdk" folder in "Embed Frameworks" phase from "playboy" target */,
                                3F131F862F75164300B9B4F5 /* Exceptions for "DeepChordsSdk" folder in "PaXa" target */,
-                               3F131F872F75164300B9B4F5 /* Exceptions for "DeepChordsSdk" folder in "Embed Frameworks" build phase */,
+                               3F131F872F75164300B9B4F5 /* Exceptions for "DeepChordsSdk" folder in "Embed Frameworks" phase from "PaXa" target */,
                        );
                        path = DeepChordsSdk;
                        sourceTree = "<group>";
                        isa = PBXFileSystemSynchronizedRootGroup;
                        exceptions = (
                                3F887BAE2E38D8DD00C98658 /* Exceptions for "ShenYin" folder in "ShenYin" target */,
-                               3F372EF42F6CE3CE00E5C3B2 /* Exceptions for "ShenYin" folder in "Embed Frameworks" build phase */,
+                               3F372EF42F6CE3CE00E5C3B2 /* Exceptions for "ShenYin" folder in "Embed Frameworks" phase from "ShenYin" target */,
                                3FD1DFF52F0E00BF00A62733 /* Exceptions for "ShenYin" folder in "playboy" target */,
-                               3FCB29902F6A7DAD007AB47F /* Exceptions for "ShenYin" folder in "Embed Frameworks" build phase */,
+                               3FCB29902F6A7DAD007AB47F /* Exceptions for "ShenYin" folder in "Embed Frameworks" phase from "playboy" target */,
                                3F1301E62F750E7400B9B4F5 /* Exceptions for "ShenYin" folder in "PaXa" target */,
-                               3F131F812F75162900B9B4F5 /* Exceptions for "ShenYin" folder in "Embed Frameworks" build phase */,
+                               3F131F812F75162900B9B4F5 /* Exceptions for "ShenYin" folder in "Embed Frameworks" phase from "PaXa" target */,
                        );
                        path = ShenYin;
                        sourceTree = "<group>";
                        buildActionMask = 2147483647;
                        files = (
                                3FFB77C12F179F3100EF9A60 /* DeepChordsSdk.framework in Frameworks */,
-                               817510A595D00CAD05E3772C /* BuildFile in Frameworks */,
+                               817510A595D00CAD05E3772C /* (null) in Frameworks */,
                                30B13DEF1AA0E4C54D873276 /* Pods_playboy.framework in Frameworks */,
                                7666589AAA94A323B6090425 /* Pods_playboy.framework in Frameworks */,
                        );
                        inputFileListPaths = (
                                "${PODS_ROOT}/Target Support Files/Pods-ShenYin/Pods-ShenYin-resources-${CONFIGURATION}-input-files.xcfilelist",
                        );
+                       inputPaths = (
+                       );
                        name = "[CP] Copy Pods Resources";
                        outputFileListPaths = (
                                "${PODS_ROOT}/Target Support Files/Pods-ShenYin/Pods-ShenYin-resources-${CONFIGURATION}-output-files.xcfilelist",
                        );
+                       outputPaths = (
+                       );
                        runOnlyForDeploymentPostprocessing = 0;
                        shellPath = /bin/sh;
                        shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ShenYin/Pods-ShenYin-resources.sh\"\n";
                        inputFileListPaths = (
                                "${PODS_ROOT}/Target Support Files/Pods-PaXa/Pods-PaXa-frameworks-${CONFIGURATION}-input-files.xcfilelist",
                        );
+                       inputPaths = (
+                       );
                        name = "[CP] Embed Pods Frameworks";
                        outputFileListPaths = (
                                "${PODS_ROOT}/Target Support Files/Pods-PaXa/Pods-PaXa-frameworks-${CONFIGURATION}-output-files.xcfilelist",
                        );
+                       outputPaths = (
+                       );
                        runOnlyForDeploymentPostprocessing = 0;
                        shellPath = /bin/sh;
                        shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-PaXa/Pods-PaXa-frameworks.sh\"\n";
                        inputFileListPaths = (
                                "${PODS_ROOT}/Target Support Files/Pods-PaXa/Pods-PaXa-resources-${CONFIGURATION}-input-files.xcfilelist",
                        );
+                       inputPaths = (
+                       );
                        name = "[CP] Copy Pods Resources";
                        outputFileListPaths = (
                                "${PODS_ROOT}/Target Support Files/Pods-PaXa/Pods-PaXa-resources-${CONFIGURATION}-output-files.xcfilelist",
                        );
+                       outputPaths = (
+                       );
                        runOnlyForDeploymentPostprocessing = 0;
                        shellPath = /bin/sh;
                        shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-PaXa/Pods-PaXa-resources.sh\"\n";
                        inputFileListPaths = (
                                "${PODS_ROOT}/Target Support Files/Pods-playboy/Pods-playboy-frameworks-${CONFIGURATION}-input-files.xcfilelist",
                        );
+                       inputPaths = (
+                       );
                        name = "[CP] Embed Pods Frameworks";
                        outputFileListPaths = (
                                "${PODS_ROOT}/Target Support Files/Pods-playboy/Pods-playboy-frameworks-${CONFIGURATION}-output-files.xcfilelist",
                        );
+                       outputPaths = (
+                       );
                        runOnlyForDeploymentPostprocessing = 0;
                        shellPath = /bin/sh;
                        shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-playboy/Pods-playboy-frameworks.sh\"\n";
                        inputFileListPaths = (
                                "${PODS_ROOT}/Target Support Files/Pods-ShenYin/Pods-ShenYin-frameworks-${CONFIGURATION}-input-files.xcfilelist",
                        );
+                       inputPaths = (
+                       );
                        name = "[CP] Embed Pods Frameworks";
                        outputFileListPaths = (
                                "${PODS_ROOT}/Target Support Files/Pods-ShenYin/Pods-ShenYin-frameworks-${CONFIGURATION}-output-files.xcfilelist",
                        );
+                       outputPaths = (
+                       );
                        runOnlyForDeploymentPostprocessing = 0;
                        shellPath = /bin/sh;
                        shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ShenYin/Pods-ShenYin-frameworks.sh\"\n";
                                CODE_SIGN_ENTITLEMENTS = ShenYin/Channel/DeepChords/DeepChords.entitlements;
                                CODE_SIGN_IDENTITY = "Apple Development";
                                CODE_SIGN_STYLE = Automatic;
-                               CURRENT_PROJECT_VERSION = 202603311815;
+                               CURRENT_PROJECT_VERSION = 202604011815;
                                DEVELOPMENT_TEAM = MAC46RQ4KH;
                                FRAMEWORK_SEARCH_PATHS = (
                                        "$(inherited)",
                                CODE_SIGN_ENTITLEMENTS = ShenYin/Channel/DeepChords/DeepChords.entitlements;
                                CODE_SIGN_IDENTITY = "Apple Development";
                                CODE_SIGN_STYLE = Automatic;
-                               CURRENT_PROJECT_VERSION = 202603311815;
+                               CURRENT_PROJECT_VERSION = 202604011815;
                                DEVELOPMENT_TEAM = MAC46RQ4KH;
                                FRAMEWORK_SEARCH_PATHS = (
                                        "$(inherited)",
index b4da580..c2288e1 100644 (file)
@@ -274,6 +274,7 @@ extension CCBleManager{
 
 extension CCBleManager{
     func checkConectState(){
+        Logger.debug("检测连接情况...")
         guard let mac = connectPeripheral?.mac else {
             return
         }
index ee0923e..1bb3271 100644 (file)
@@ -61,7 +61,7 @@ class JoyDialogTranslateVC:BaseVC{
             make.bottom.equalTo(toolBar.snp.top)
         }
         splitView.snp.makeConstraints { make in
-            make.top.equalToSuperview().inset(kNavBtm + 10)
+            make.top.equalToSuperview().inset(kNavBtm + 15)
             make.left.equalToSuperview()
             make.width.equalTo(kScreenWid)
             make.bottom.equalTo(toolBar.snp.top)
index 9cb5766..9a59662 100644 (file)
@@ -202,6 +202,7 @@ extension CCBleManager{
 
 extension CCBleManager{
     func checkConectState(){
+        Logger.debug("检测连接情况...")
         guard let mac = connectPeripheral?.mac else {
             return
         }
index 3287b1a..5a48cf2 100644 (file)
@@ -60,7 +60,7 @@ class PbDialogTranslateVC:BaseVC{
             make.bottom.equalTo(toolBar.snp.top)
         }
         splitView.snp.makeConstraints { make in
-            make.top.equalToSuperview().inset(kNavBtm + 10)
+            make.top.equalToSuperview().inset(kNavBtm + 15)
             make.left.equalToSuperview()
             make.width.equalTo(kScreenWid)
             make.bottom.equalTo(toolBar.snp.top)
index fd733bc..92640b8 100644 (file)
@@ -121,7 +121,19 @@ class PbSubTitleVC: BaseVC {
             name: UIApplication.didBecomeActiveNotification,
             object: nil
         )
-        
+        NotificationManager.add(self, selector: #selector(deviceChange), forName: .deviceValidChange)
+    }
+    @objc func deviceChange(){
+        if CCBleManager.shared.isConneted{
+            
+        }
+        else{
+            pipManager.contentVC.updateRaw("蓝牙已断开".l10n)
+            pipManager.contentVC.updateTrans("蓝牙已断开".l10n)
+            if toolBar.recordBtn.isSelected {
+                toolBar.recordBtnAction()
+            }
+        }
     }
     override func navRightViewTapped() {
         let vc = SubTitleSetVC()
index 2cc581c..a0fd3e0 100644 (file)
@@ -22,11 +22,34 @@ protocol DialogRecordBarDelegate:NSObject {
     func recordBar(_ bar:DialogRecordBar, device:DialogRecordDeviceType,stateChange state:RecordBarSate)
 }
 
+extension UIView{
+    static let converView = UIView()
+    func updateConnectState(_ state:Bool) {
+        if state {
+            if UIView.converView.superview == nil {
+                return
+            }
+            self.alpha = 1
+            UIView.converView.removeFromSuperview()
+        }
+        else{
+            if UIView.converView.superview != nil {
+                return
+            }
+            self.alpha = 0.3
+            UIView.converView.backgroundColor = .clear
+            self.addSubview(UIView.converView)
+            UIView.converView.snp.makeConstraints { make in
+                make.edges.equalToSuperview()
+            }
+        }
+    }
+}
+
 class DialogRecordBar: BaseView {
     let leftItem = DialogItem()
     let rightItem = DialogItem()
     let switchBtn = UIButton()
-
     
     weak var delegate:DialogRecordBarDelegate?
     var navBar:BaseNavigationBar = BaseNavigationBar()
@@ -124,6 +147,12 @@ class DialogRecordBar: BaseView {
             })
         }
     }
+    override func setupData() {
+        NotificationManager.add(self, selector: #selector(deviceChange), forName: .deviceValidChange)
+    }
+    @objc func deviceChange(){
+        self.updateConnectState(CCBleManager.shared.isConneted)
+    }
 
     @objc func switchBtnAction(){
         switchBtn.isSelected = !switchBtn.isSelected
@@ -145,7 +174,7 @@ class DialogRecordBar: BaseView {
             
             navBar.titleLabel.isHidden = true
             navBar.addSubview(rightItem)
-            navBar.frame = CGRectMake(0, 0, kScreenWid, kNavBtm + 10)
+            navBar.frame = CGRectMake(0, 0, kScreenWid, kNavBtm + 15)
             navBar.superview?.bringSubviewToFront(navBar)
             rightItem.snp.remakeConstraints { make in
                 make.centerX.equalToSuperview()