100Years пре 1 месец
родитељ
комит
4b65a26859
32 измењених фајлова са 106 додато и 73 уклоњено
  1. 2 2
      AIRingtone.xcodeproj/project.pbxproj
  2. 1 2
      AIRingtone/Assets.xcassets/AIPhoto/nav_title_aiAvatar.imageset/Contents.json
  3. BIN
      AIRingtone/Assets.xcassets/AIPhoto/nav_title_aiAvatar.imageset/nav_title_aiAvatar.png
  4. BIN
      AIRingtone/Assets.xcassets/AIPhoto/nav_title_aiAvatar.imageset/nav_title_aiAvatar@2x.png
  5. BIN
      AIRingtone/Assets.xcassets/AIPhoto/nav_title_aiAvatar.imageset/nav_title_aiAvatar@3x.png
  6. 1 2
      AIRingtone/Assets.xcassets/AIRing/nav_title_aiRing.imageset/Contents.json
  7. BIN
      AIRingtone/Assets.xcassets/AIRing/nav_title_aiRing.imageset/nav_title_aiRing.png
  8. BIN
      AIRingtone/Assets.xcassets/AIRing/nav_title_aiRing.imageset/nav_title_aiRing@2x.png
  9. BIN
      AIRingtone/Assets.xcassets/AIRing/nav_title_aiRing.imageset/nav_title_aiRing@3x.png
  10. BIN
      AIRingtone/Assets.xcassets/AIRing/style/ttr_style_4.imageset/ttr_style_4@2x.png
  11. BIN
      AIRingtone/Assets.xcassets/AIRing/style/ttr_style_4.imageset/ttr_style_4@3x.png
  12. 1 2
      AIRingtone/Assets.xcassets/Setting/nav_title_setting.imageset/Contents.json
  13. BIN
      AIRingtone/Assets.xcassets/Setting/nav_title_setting.imageset/nav_title_setting.png
  14. BIN
      AIRingtone/Assets.xcassets/Setting/nav_title_setting.imageset/nav_title_setting@2x.png
  15. BIN
      AIRingtone/Assets.xcassets/Setting/nav_title_setting.imageset/nav_title_setting@3x.png
  16. 1 2
      AIRingtone/Assets.xcassets/Theme/nav_title_theme.imageset/Contents.json
  17. BIN
      AIRingtone/Assets.xcassets/Theme/nav_title_theme.imageset/nav_title_theme.png
  18. BIN
      AIRingtone/Assets.xcassets/Theme/nav_title_theme.imageset/nav_title_theme@2x.png
  19. BIN
      AIRingtone/Assets.xcassets/Theme/nav_title_theme.imageset/nav_title_theme@3x.png
  20. 2 0
      AIRingtone/Business/TSAIPhotoVC/TSAIPhotoVC.swift
  21. 1 0
      AIRingtone/Business/TSAIPhotoVC/TSTextGeneralPicVC/TSTextGeneralPicVC.swift
  22. 4 15
      AIRingtone/Business/TSAIPhotoVC/TSTextGeneralPicVC/View/TSPromptTextView.swift
  23. 2 0
      AIRingtone/Business/TSAIRintoneVC/TSAIRintoneVC/TSAIRintoneVC.swift
  24. 33 3
      AIRingtone/Business/TSAIRintoneVC/TSAIRintoneVC/View/TSAIRintoneHistoryCell.swift
  25. 31 31
      AIRingtone/Business/TSAIRintoneVC/TSGeneralRintoneVC/TSGeneralRintoneVM.swift
  26. 2 0
      AIRingtone/Business/TSSetingVC/SetingVC/TSSetingVC.swift
  27. 4 3
      AIRingtone/Business/TSThemeVC/TSThemeBrowseVC/View/TSTBBtnView.swift
  28. 1 1
      AIRingtone/Business/TSThemeVC/TSThemeCopyrightVC/TSThemeCopyrightVC.swift
  29. 5 0
      AIRingtone/Business/TSThemeVC/TSThemeSetVC/TSThemeSetVC.swift
  30. 5 1
      AIRingtone/Business/TSThemeVC/TSThemeVC/TSThemeVC.swift
  31. 1 1
      AIRingtone/Common/Tool/TSBandRingTool/TSBandRingTool.swift
  32. 9 8
      AIRingtone/Common/Tool/TSContactsTool.swift

+ 2 - 2
AIRingtone.xcodeproj/project.pbxproj

@@ -1068,7 +1068,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 4;
+				CURRENT_PROJECT_VERSION = 7;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				GENERATE_INFOPLIST_FILE = YES;
 				INFOPLIST_FILE = AIRingtone/Info.plist;
@@ -1110,7 +1110,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 4;
+				CURRENT_PROJECT_VERSION = 7;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				GENERATE_INFOPLIST_FILE = YES;
 				INFOPLIST_FILE = AIRingtone/Info.plist;

+ 1 - 2
AIRingtone/Assets.xcassets/AIPhoto/nav_title_aiAvatar.imageset/Contents.json

@@ -5,12 +5,11 @@
       "scale" : "1x"
     },
     {
-      "filename" : "nav_title_aiAvatar@2x.png",
+      "filename" : "nav_title_aiAvatar.png",
       "idiom" : "universal",
       "scale" : "2x"
     },
     {
-      "filename" : "nav_title_aiAvatar@3x.png",
       "idiom" : "universal",
       "scale" : "3x"
     }

BIN
AIRingtone/Assets.xcassets/AIPhoto/nav_title_aiAvatar.imageset/nav_title_aiAvatar.png


BIN
AIRingtone/Assets.xcassets/AIPhoto/nav_title_aiAvatar.imageset/nav_title_aiAvatar@2x.png


BIN
AIRingtone/Assets.xcassets/AIPhoto/nav_title_aiAvatar.imageset/nav_title_aiAvatar@3x.png


+ 1 - 2
AIRingtone/Assets.xcassets/AIRing/nav_title_aiRing.imageset/Contents.json

@@ -5,12 +5,11 @@
       "scale" : "1x"
     },
     {
-      "filename" : "nav_title_aiRing@2x.png",
+      "filename" : "nav_title_aiRing.png",
       "idiom" : "universal",
       "scale" : "2x"
     },
     {
-      "filename" : "nav_title_aiRing@3x.png",
       "idiom" : "universal",
       "scale" : "3x"
     }

BIN
AIRingtone/Assets.xcassets/AIRing/nav_title_aiRing.imageset/nav_title_aiRing.png


BIN
AIRingtone/Assets.xcassets/AIRing/nav_title_aiRing.imageset/nav_title_aiRing@2x.png


BIN
AIRingtone/Assets.xcassets/AIRing/nav_title_aiRing.imageset/nav_title_aiRing@3x.png


BIN
AIRingtone/Assets.xcassets/AIRing/style/ttr_style_4.imageset/ttr_style_4@2x.png


BIN
AIRingtone/Assets.xcassets/AIRing/style/ttr_style_4.imageset/ttr_style_4@3x.png


+ 1 - 2
AIRingtone/Assets.xcassets/Setting/nav_title_setting.imageset/Contents.json

@@ -5,12 +5,11 @@
       "scale" : "1x"
     },
     {
-      "filename" : "nav_title_setting@2x.png",
+      "filename" : "nav_title_setting.png",
       "idiom" : "universal",
       "scale" : "2x"
     },
     {
-      "filename" : "nav_title_setting@3x.png",
       "idiom" : "universal",
       "scale" : "3x"
     }

BIN
AIRingtone/Assets.xcassets/Setting/nav_title_setting.imageset/nav_title_setting.png


BIN
AIRingtone/Assets.xcassets/Setting/nav_title_setting.imageset/nav_title_setting@2x.png


BIN
AIRingtone/Assets.xcassets/Setting/nav_title_setting.imageset/nav_title_setting@3x.png


+ 1 - 2
AIRingtone/Assets.xcassets/Theme/nav_title_theme.imageset/Contents.json

@@ -5,12 +5,11 @@
       "scale" : "1x"
     },
     {
-      "filename" : "nav_title_theme@2x.png",
+      "filename" : "nav_title_theme.png",
       "idiom" : "universal",
       "scale" : "2x"
     },
     {
-      "filename" : "nav_title_theme@3x.png",
       "idiom" : "universal",
       "scale" : "3x"
     }

BIN
AIRingtone/Assets.xcassets/Theme/nav_title_theme.imageset/nav_title_theme.png


BIN
AIRingtone/Assets.xcassets/Theme/nav_title_theme.imageset/nav_title_theme@2x.png


BIN
AIRingtone/Assets.xcassets/Theme/nav_title_theme.imageset/nav_title_theme@3x.png


+ 2 - 0
AIRingtone/Business/TSAIPhotoVC/TSAIPhotoVC.swift

@@ -17,6 +17,8 @@ class TSAIPhotoVC: TSBaseVC {
         navBarView.barView.addSubview(titleImageView)
         titleImageView.snp.makeConstraints { make in
             make.center.equalToSuperview()
+            make.width.equalTo(375)
+            make.height.equalTo(48)
         }
 
         return navBarView

+ 1 - 0
AIRingtone/Business/TSAIPhotoVC/TSTextGeneralPicVC/TSTextGeneralPicVC.swift

@@ -50,6 +50,7 @@ class TSTextGeneralPicVC: TSBaseVC {
     //###################################### Prompt类型 ######################################
     lazy var promptStyleView: TSPromptStyleView = {
         let promptStyleView = TSPromptStyleView()
+        promptStyleView.titleView.titleLab.text = "Style".localized
         promptStyleView.dataArray = viewModel.ptpStyleModels
         promptStyleView.selectedValueBlock = { [weak self] model in
             guard let self = self else { return }

+ 4 - 15
AIRingtone/Business/TSAIPhotoVC/TSTextGeneralPicVC/View/TSPromptTextView.swift

@@ -34,27 +34,16 @@ class TSPromptTextView : TSBaseView{
     
     lazy var textBgView: UIView = {
         let textBgView = UIView()
-
-        let bgImageView = UIImageView.createImageView(imageName: "textView_bg",contentMode: .scaleToFill)
-//        let lbImageView = UIImageView.createImageView(imageName: "textView_lb",contentMode: .scaleToFill)
         
+        let bgImageView = UIImageView.createImageView(imageName: "textView_bg",contentMode: .scaleToFill)
         textBgView.addSubview(bgImageView)
-//        textBgView.addSubview(lbImageView)
-        
         bgImageView.snp.makeConstraints { make in
             make.top.equalTo(0)
             make.centerX.equalToSuperview()
             make.width.equalTo(343*kDesignScale)
             make.height.equalTo(160*kDesignScale)
         }
-        
-//        lbImageView.snp.makeConstraints { make in
-//            make.bottom.equalTo(0)
-//            make.leading.equalTo(0)
-//            make.width.equalTo(206*kDesignScale)
-//            make.height.equalTo(32*kDesignScale)
-//        }
-//        lbImageView.isHidden = true
+
         return textBgView
     }()
     
@@ -83,8 +72,8 @@ class TSPromptTextView : TSBaseView{
             customTextView.text = randomTextPicker.getRandomText()
             textViewDidChange(customTextView)
         }
-        inspirationBtn.contentEdgeInsets = UIEdgeInsets(top: 4, left: 24, bottom: 4, right: 50)
-        inspirationBtn.imageEdgeInsets = UIEdgeInsets(top: 0, left: -8, bottom: 0, right: 0)
+        inspirationBtn.contentEdgeInsets = UIEdgeInsets(top: 4, left: 40, bottom: 4, right: 50)
+        inspirationBtn.imageEdgeInsets = UIEdgeInsets(top: 0, left: -10, bottom: 0, right: 0)
         return inspirationBtn
     }()
     

+ 2 - 0
AIRingtone/Business/TSAIRintoneVC/TSAIRintoneVC/TSAIRintoneVC.swift

@@ -25,6 +25,8 @@ class TSAIRintoneVC: TSBaseVC {
         navBarView.barView.addSubview(titleImageView)
         titleImageView.snp.makeConstraints { make in
             make.center.equalToSuperview()
+            make.width.equalTo(375)
+            make.height.equalTo(48)
         }
 
         return navBarView

+ 33 - 3
AIRingtone/Business/TSAIRintoneVC/TSAIRintoneVC/View/TSAIRintoneHistoryCell.swift

@@ -31,12 +31,36 @@ class TSAIRintoneHistoryCell: SwipeCollectionViewCell {
         return ringToneView
     }()
     
+    
+    lazy var exampleView: UIView = {
+        let exampleView = UIView()
+        exampleView.backgroundColor = "#7E57F4".uiColor
+        
+        let textLabel = UILabel.createLabel(
+            text: "Example".localized,
+            font: .font(size: 12),
+            textColor: .white
+        )
+        
+        exampleView.addSubview(textLabel)
+        textLabel.snp.makeConstraints { make in
+            make.top.edges.equalTo(UIEdgeInsets(top: 4, left: 6, bottom: 4, right: 6))
+        }
+        
+        kDelayMainShort {
+            exampleView.makeCorner([.topLeft,.bottomLeft], radius: 10)
+        }
+//        exampleView.isHidden = true
+        return exampleView
+    }()
+    
     var model:TSActionInfoModel?{
         didSet{
             guard let model = model else { return }
             ringView.timeLab.text = Float(model.request.duration).floatToMinuteSecond()
             ringView.nameLab.text = model.response.title
             ringView.setCoverImageView(urlString: model.response.coverUrl)
+            exampleView.isHidden = model.modelType != .example
         }
     }
     
@@ -53,10 +77,16 @@ class TSAIRintoneHistoryCell: SwipeCollectionViewCell {
     }
     
     func creatUI() {
-
-        backgroundColor = .cardColor
         cornerRadius = 16.0
-        
+        backgroundColor = .cardColor
+  
+        contentView.addSubview(exampleView)
+        exampleView.snp.makeConstraints { make in
+            make.trailing.equalToSuperview()
+            make.top.equalTo(0)
+            make.height.equalTo(20)
+        }
+  
         contentView.addSubview(ringView)
         ringView.snp.makeConstraints { make in
             make.edges.equalToSuperview()

+ 31 - 31
AIRingtone/Business/TSAIRintoneVC/TSGeneralRintoneVC/TSGeneralRintoneVM.swift

@@ -30,39 +30,39 @@ class TSGeneralRintoneVM {
     var aiText:String = ""
     var generatingProgress = 0
     
-    func creatRintone(text:String) {
-
-        stateDatauPblished = (.start,nil)
-        stateDatauPblished = (.progressString(generating(progress: 0.0)),nil)
-
-        kDelayOnMainThread(0.2) {
-            self.stateDatauPblished = (.progressString(self.generating(progress: 0.2)),nil)
-        }
-        
-        kDelayOnMainThread(0.4) {
-            self.stateDatauPblished = (.progressString(self.generating(progress: 0.4)),nil)
-        }
-        
-        kDelayOnMainThread(0.6) {
-            self.stateDatauPblished = (.progressString(self.generating(progress: 0.6)),nil)
-        }
-        
-        kDelayOnMainThread(0.8) {
-            self.stateDatauPblished = (.progressString(self.generating(progress: 0.8)),nil)
-        }
-        
-        kDelayOnMainThread(1.0) {
-            if Bool.random() {
-                let infoModel = TSActionInfoModel(JSON: actionInfoDict)
-                self.stateDatauPblished = (.success(nil),infoModel)
-            }else{
-                self.stateDatauPblished = (.failed("error?.localizedDescription"),nil)
-            }
-        }
-    }
+//    func creatRintone(text:String) {
+//
+//        stateDatauPblished = (.start,nil)
+//        stateDatauPblished = (.progressString(generating(progress: 0.0)),nil)
+//
+//        kDelayOnMainThread(0.2) {
+//            self.stateDatauPblished = (.progressString(self.generating(progress: 0.2)),nil)
+//        }
+//        
+//        kDelayOnMainThread(0.4) {
+//            self.stateDatauPblished = (.progressString(self.generating(progress: 0.4)),nil)
+//        }
+//        
+//        kDelayOnMainThread(0.6) {
+//            self.stateDatauPblished = (.progressString(self.generating(progress: 0.6)),nil)
+//        }
+//        
+//        kDelayOnMainThread(0.8) {
+//            self.stateDatauPblished = (.progressString(self.generating(progress: 0.8)),nil)
+//        }
+//        
+//        kDelayOnMainThread(1.0) {
+//            if Bool.random() {
+//                let infoModel = TSActionInfoModel(JSON: actionInfoDict)
+//                self.stateDatauPblished = (.success(nil),infoModel)
+//            }else{
+//                self.stateDatauPblished = (.failed("error?.localizedDescription"),nil)
+//            }
+//        }
+//    }
     
  
-    func creatRintone1(text:String) {
+    func creatRintone(text:String) {
         generatingProgress = 0
         aiText = text
         let postDict:[String : Any] = [

+ 2 - 0
AIRingtone/Business/TSSetingVC/SetingVC/TSSetingVC.swift

@@ -29,6 +29,8 @@ class TSSetingVC: TSBaseVC {
         navBarView.barView.addSubview(titleImageView)
         titleImageView.snp.makeConstraints { make in
             make.center.equalToSuperview()
+            make.width.equalTo(375)
+            make.height.equalTo(48)
         }
 
         return navBarView

+ 4 - 3
AIRingtone/Business/TSThemeVC/TSThemeBrowseVC/View/TSTBBtnView.swift

@@ -39,7 +39,9 @@ class TSTBBtnView: TSBaseView {
     var soundVolume:Float = 1.0{
         didSet{
             DispatchQueue.main.async {
-                self.soundBtn.setImage(UIImage(named: self.soundVolume == 0 ? "sound_off_icon" : "sound_on_icon"), for: .normal)
+                if self.isSoundloadling == false {
+                    self.soundBtn.setImage(UIImage(named: self.soundVolume == 0 ? "sound_off_icon" : "sound_on_icon"), for: .normal)
+                }
             }
         }
     }
@@ -148,8 +150,7 @@ class TSTBBtnView: TSBaseView {
         doneBtn.snp.makeConstraints { make in
             make.bottom.equalTo(-k_Height_safeAreaInsetsBottom()-10)
             make.centerX.equalToSuperview()
-            make.leading.equalTo(16)
-            make.trailing.equalTo(-16)
+            make.width.equalTo(doneBtn.width)
             make.height.equalTo(doneBtn.height)
         }
     }

+ 1 - 1
AIRingtone/Business/TSThemeVC/TSThemeCopyrightVC/TSThemeCopyrightVC.swift

@@ -19,7 +19,7 @@ class TSThemeCopyrightVC: TSBaseVC {
     }()
     
     lazy var emailLabel: UILabel = {
-        let view = UILabel.createLabel(text: "Email: snapmusic6688@gmail.com",font: .font(size: 16,weight: .regular),textColor: UIColor.fromHex("FFFFFF"),numberOfLines: 0)
+        let view = UILabel.createLabel(text: "Email: makebest6688@163.com",font: .font(size: 16,weight: .regular),textColor: UIColor.fromHex("FFFFFF"),numberOfLines: 0)
         return view
     }()
     

+ 5 - 0
AIRingtone/Business/TSThemeVC/TSThemeSetVC/TSThemeSetVC.swift

@@ -116,6 +116,11 @@ class TSThemeSetVC: TSBaseVC {
         let browseVC = TSThemeTutorialsVC()
         kPushVC(target: self, modelVC: browseVC)
     }
+    
+    override func viewDidDisappear(_ animated: Bool) {
+        super.viewDidDisappear(animated)
+        audioPlayer.stop()
+    }
 
 }
 

+ 5 - 1
AIRingtone/Business/TSThemeVC/TSThemeVC/TSThemeVC.swift

@@ -21,6 +21,8 @@ class TSThemeVC: TSBaseVC {
         navBarView.barView.addSubview(titleImageView)
         titleImageView.snp.makeConstraints { make in
             make.center.equalToSuperview()
+            make.width.equalTo(375)
+            make.height.equalTo(48)
         }
 
         return navBarView
@@ -66,7 +68,9 @@ class TSThemeVC: TSBaseVC {
             viewModel.reloadAllData { [weak self] success  in
                 guard let self = self else { return }
                 if success {
-                    collectionComponent.reloadData()
+                    collectionComponent.clear()
+                    collectionComponent.reloadView(with:viewModel.colDataArray)
+//                    collectionComponent.reloadData()
                 }
                 collectionComponent.collectionView.endRefreshing()
             }

+ 1 - 1
AIRingtone/Common/Tool/TSBandRingTool/TSBandRingTool.swift

@@ -99,7 +99,7 @@ class TSBandRingTool:NSObject {
     
     func shareRing(fileUrl: URL) {
         DispatchQueue.main.async {
-//            self.showTutorialVideo()
+            self.showTutorialVideo()
             
             let vc = UIActivityViewController(activityItems: [fileUrl], applicationActivities: nil)
             self.targetVC?.present(vc, animated: true, completion: {

+ 9 - 8
AIRingtone/Common/Tool/TSContactsTool.swift

@@ -51,13 +51,14 @@ class TSContactsTool : NSObject, CNContactPickerDelegate{
     func setContactsAvatar(avatarImage:UIImage,complate:((Any?,Error?)->Void)?){
         self.complate = complate
         checkContactsPermission { isAllow in
-            if isAllow {
-                self.avatarImage = avatarImage
-                let contactPicker = CNContactPickerViewController()
-                 contactPicker.delegate = self
-                self.targetVC?.present(contactPicker, animated: true, completion: nil)
-            }else{
-                DispatchQueue.main.async {
+            DispatchQueue.main.async {
+                if isAllow {
+                    self.avatarImage = avatarImage
+                    let contactPicker = CNContactPickerViewController()
+                     contactPicker.delegate = self
+                    self.targetVC?.present(contactPicker, animated: true, completion: nil)
+                }else{
+                    
                     let ac = UIAlertController(title: nil,
                                                message: "Allow \"Contacts\" permission to set contact photo".localized, preferredStyle: .alert)
                     ac.addAction(UIAlertAction(title: "Cancel".localized, style: .cancel))
@@ -86,7 +87,7 @@ class TSContactsTool : NSObject, CNContactPickerDelegate{
     // 设置选中联系人的头像
     private func setContactAvatar(_ contact: CNContact, callBack:(Error?)->Void) {
            
-        guard var photo = avatarImage else {
+        guard let photo = avatarImage else {
             callBack(NSError(domain: "avatarImage nil", code: 0))
             return
         }