Quellcode durchsuchen

fix:修改一批问题3.6.20(6)

100Years vor 2 Wochen
Ursprung
Commit
d72f5b7500
40 geänderte Dateien mit 143 neuen und 76 gelöschten Zeilen
  1. 2 2
      AIEmoji.xcodeproj/project.pbxproj
  2. 22 0
      AIEmoji/Assets.xcassets/AIList/video_pause.imageset/Contents.json
  3. BIN
      AIEmoji/Assets.xcassets/AIList/video_pause.imageset/video_pause@2x.png
  4. BIN
      AIEmoji/Assets.xcassets/AIList/video_pause.imageset/video_pause@3x.png
  5. 0 0
      AIEmoji/Assets.xcassets/AIList/video_play.imageset/Contents.json
  6. 0 0
      AIEmoji/Assets.xcassets/AIList/video_play.imageset/play@2x.png
  7. 0 0
      AIEmoji/Assets.xcassets/AIList/video_play.imageset/play@3x.png
  8. BIN
      AIEmoji/Assets.xcassets/Discover/Style/discover_0_90sAnime.imageset/discover_0_90sAnime@2x.png
  9. BIN
      AIEmoji/Assets.xcassets/Discover/Style/discover_0_90sAnime.imageset/discover_0_90sAnime@3x.png
  10. BIN
      AIEmoji/Assets.xcassets/Discover/Style/discover_0_RecreatePhoto.imageset/discover_0_RecreatePhoto@2x.png
  11. BIN
      AIEmoji/Assets.xcassets/Discover/Style/discover_0_RecreatePhoto.imageset/discover_0_RecreatePhoto@3x.png
  12. BIN
      AIEmoji/Assets.xcassets/Discover/Style/discover_1_90sAnime.imageset/discover_1_90sAnime@2x.png
  13. BIN
      AIEmoji/Assets.xcassets/Discover/Style/discover_1_90sAnime.imageset/discover_1_90sAnime@3x.png
  14. BIN
      AIEmoji/Assets.xcassets/Discover/Style/discover_1_RecreatePhoto.imageset/discover_1_RecreatePhoto@2x.png
  15. BIN
      AIEmoji/Assets.xcassets/Discover/Style/discover_1_RecreatePhoto.imageset/discover_1_RecreatePhoto@3x.png
  16. BIN
      AIEmoji/Assets.xcassets/PTP/style/ptp_style_90sAnime.imageset/ptp_style_90sAnime@2x.png
  17. BIN
      AIEmoji/Assets.xcassets/PTP/style/ptp_style_90sAnime.imageset/ptp_style_90sAnime@3x.png
  18. 16 0
      AIEmoji/Business/Data/TSDBHistoryManager.swift
  19. 53 25
      AIEmoji/Business/TSAILIstVC/TSAIListVideoPlayerVC/TSAIListVideoPlayerVC.swift
  20. 1 0
      AIEmoji/Business/TSAILIstVC/TSAIPhotoGeneratorBaseVC/TSAIListPhotoGeneratorBaseVC.swift
  21. 3 6
      AIEmoji/Business/TSPTPGeneratorVC/TSAIPhotoGeneratorBaseVC/TSAIPhotoBrowseVC.swift
  22. 1 0
      AIEmoji/Business2/CommonVC/TSAppUpdateAlertVC/TSAppUpdateAlertVC.swift
  23. 1 1
      AIEmoji/Business2/DisCover/Data/TSDiscoverViewModel+Dic.swift
  24. 17 25
      AIEmoji/Business2/DisCover/Data/TSDiscoverViewModel.swift
  25. 1 1
      AIEmoji/Business2/DisCover/TSAIGenerateVC/TSAIGenerateBaseVC/TSAIGenerateBaseVC+Video.swift
  26. 1 0
      AIEmoji/Business2/DisCover/TSDiscoverVC/Cell/TSDiscoverHeaderView.swift
  27. 1 2
      AIEmoji/Business2/DisCover/TSDiscoverVC/Cell/TSDiscoverStyleMoreCell/TSDiscoverStyleMoreCell.swift
  28. 7 6
      AIEmoji/Business2/DisCover/TSDiscoverVC/TSDiscoverVC.swift
  29. 2 1
      AIEmoji/Business2/DisCover/TSGenerateHistoryVC/TSGenerateHistoryVC.swift
  30. 4 6
      AIEmoji/Business2/DisCover/TSGenerateHistoryVC/View/TSGenerateHistoryCell.swift
  31. 1 1
      AIEmoji/Common/View/TSImagesComparisonView.swift
  32. 1 0
      AIEmoji/de.lproj/Localizable.strings
  33. 2 0
      AIEmoji/en.lproj/Localizable.strings
  34. 1 0
      AIEmoji/es.lproj/Localizable.strings
  35. 1 0
      AIEmoji/ja.lproj/Localizable.strings
  36. 1 0
      AIEmoji/ko.lproj/Localizable.strings
  37. 1 0
      AIEmoji/pt-BR.lproj/Localizable.strings
  38. 1 0
      AIEmoji/pt-PT.lproj/Localizable.strings
  39. 1 0
      AIEmoji/zh-Hans.lproj/Localizable.strings
  40. 1 0
      AIEmoji/zh-Hant.lproj/Localizable.strings

+ 2 - 2
AIEmoji.xcodeproj/project.pbxproj

@@ -2824,7 +2824,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 5;
+				CURRENT_PROJECT_VERSION = 6;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				ENABLE_USER_SCRIPT_SANDBOXING = NO;
 				GENERATE_INFOPLIST_FILE = YES;
@@ -2863,7 +2863,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 5;
+				CURRENT_PROJECT_VERSION = 6;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				ENABLE_USER_SCRIPT_SANDBOXING = NO;
 				GENERATE_INFOPLIST_FILE = YES;

+ 22 - 0
AIEmoji/Assets.xcassets/AIList/video_pause.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "video_pause@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "video_pause@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
AIEmoji/Assets.xcassets/AIList/video_pause.imageset/video_pause@2x.png


BIN
AIEmoji/Assets.xcassets/AIList/video_pause.imageset/video_pause@3x.png


+ 0 - 0
AIEmoji/Assets.xcassets/Common/play.imageset/Contents.json → AIEmoji/Assets.xcassets/AIList/video_play.imageset/Contents.json


+ 0 - 0
AIEmoji/Assets.xcassets/Common/play.imageset/play@2x.png → AIEmoji/Assets.xcassets/AIList/video_play.imageset/play@2x.png


+ 0 - 0
AIEmoji/Assets.xcassets/Common/play.imageset/play@3x.png → AIEmoji/Assets.xcassets/AIList/video_play.imageset/play@3x.png


BIN
AIEmoji/Assets.xcassets/Discover/Style/discover_0_90sAnime.imageset/discover_0_90sAnime@2x.png


BIN
AIEmoji/Assets.xcassets/Discover/Style/discover_0_90sAnime.imageset/discover_0_90sAnime@3x.png


BIN
AIEmoji/Assets.xcassets/Discover/Style/discover_0_RecreatePhoto.imageset/discover_0_RecreatePhoto@2x.png


BIN
AIEmoji/Assets.xcassets/Discover/Style/discover_0_RecreatePhoto.imageset/discover_0_RecreatePhoto@3x.png


BIN
AIEmoji/Assets.xcassets/Discover/Style/discover_1_90sAnime.imageset/discover_1_90sAnime@2x.png


BIN
AIEmoji/Assets.xcassets/Discover/Style/discover_1_90sAnime.imageset/discover_1_90sAnime@3x.png


BIN
AIEmoji/Assets.xcassets/Discover/Style/discover_1_RecreatePhoto.imageset/discover_1_RecreatePhoto@2x.png


BIN
AIEmoji/Assets.xcassets/Discover/Style/discover_1_RecreatePhoto.imageset/discover_1_RecreatePhoto@3x.png


BIN
AIEmoji/Assets.xcassets/PTP/style/ptp_style_90sAnime.imageset/ptp_style_90sAnime@2x.png


BIN
AIEmoji/Assets.xcassets/PTP/style/ptp_style_90sAnime.imageset/ptp_style_90sAnime@3x.png


+ 16 - 0
AIEmoji/Business/Data/TSDBHistoryManager.swift

@@ -128,6 +128,22 @@ class TSDBHistory: Object {
         }
     }
     
+    //删除有结果的数据
+    func deleteResultModels() {
+        TSRMShared.writeThread {
+        // 创建需要删除的对象的引用数组
+           let objectsToDelete = listModels.filter { $0.status != "running" && $0.status != "pending"}
+           // 从列表中移除
+           objectsToDelete.forEach { object in
+               if let index = listModels.index(of: object) {
+                   deleteResources(index: index)
+                   listModels.remove(at: index)
+                   TSRMShared.realm.delete(object)
+               }
+           }
+        }
+    }
+    
     func updateData(_ actionInfoModel:TSActionInfoModel,uuid:String? = nil){
         let dbModel = TSDBActionInfoModel.createDBModel(actionInfoModel: actionInfoModel)
             let replaceUUID = uuid ?? dbModel.uuid

+ 53 - 25
AIEmoji/Business/TSAILIstVC/TSAIListVideoPlayerVC/TSAIListVideoPlayerVC.swift

@@ -16,10 +16,17 @@ class TSAIListVideoPlayerVC: UIViewController {
     private var player: AVPlayer?
     private var playerLayer: AVPlayerLayer?
     private var timeObserverToken: Any?
-    private var isPlaying = false
+    private var isPlaying = false{
+        didSet{
+            playPauseButton.setImage(isPlaying ? .videoPause : .videoPlay, for: .normal)
+        }
+    }
     
     private let videoURL: URL
     
+    
+    public var isRunloppPlay:Bool = false
+    
     // MARK: - UI Components
     private lazy var playerContainerView: UIView = {
         let view = UIView()
@@ -27,24 +34,20 @@ class TSAIListVideoPlayerVC: UIViewController {
         return view
     }()
     
-    private lazy var playPauseButton: UIButton = {
-        let button = UIButton()
-        button.setImage(UIImage(named: "play"), for: .normal)
+    private lazy var playPauseButton: TSUIExpandedTouchButton = {
+        let button = TSUIExpandedTouchButton()
+        button.setImage(.videoPlay, for: .normal)
         button.tintColor = .white
-//        button.addTarget(self, action: #selector(playPauseTapped), for: .touchUpInside)
-        button.isUserInteractionEnabled = false
+        button.addTarget(self, action: #selector(playPauseTapped), for: .touchUpInside)
         return button
     }()
     
+
     private lazy var progressSlider: TSProgressSlider = {
         let slider = TSProgressSlider()
         slider.minimumTrackTintColor = UIColor.themeColor
         slider.maximumTrackTintColor = .white.withAlphaComponent(0.2)
-//        slider.thumbTintColor = UIColor.white
-//        slider.setMinimumTrackImage(UIImage(color: UIColor.themeColor, size: CGSize(width: 1, height: 3)), for: .normal)
-//        slider.setMaximumTrackImage(UIImage(color: .white.withAlphaComponent(0.2), size: CGSize(width: 1, height: 3)), for: .normal)
         slider.setThumbImage(UIImage.circle(diameter: 10, color: .white), for: .normal)
-        
         slider.addTarget(self, action: #selector(sliderValueChanged(_:)), for: .valueChanged)
         slider.addTarget(self, action: #selector(sliderTouchEnded(_:)), for: .touchUpInside)
         slider.addTarget(self, action: #selector(sliderTouchEnded(_:)), for: .touchUpOutside)
@@ -81,6 +84,18 @@ class TSAIListVideoPlayerVC: UIViewController {
         super.viewDidLoad()
         setupUI()
         setupPlayer()
+        
+        
+        dealThings()
+    }
+    
+    func dealThings() {
+        // 监听应用生命周期事件
+        NotificationCenter.default.addObserver(forName: UIApplication.didEnterBackgroundNotification, object: nil, queue: .main) { _ in
+            self.playPause()
+            self.setControlsView(isHidden: false)
+        }
+        NotificationCenter.default.addObserver(forName: UIApplication.willEnterForegroundNotification, object: nil, queue: .main) { _ in }
     }
     
     override func viewDidLayoutSubviews() {
@@ -92,18 +107,28 @@ class TSAIListVideoPlayerVC: UIViewController {
         removePeriodicTimeObserver()
     }
     
+    @objc private func clickBgView() {
+        setControlsView(isHidden: !controlsContainerView.isHidden)
+    }
+    
+    func setControlsView(isHidden:Bool) {
+        playPauseButton.isHidden = isHidden
+        controlsContainerView.isHidden = isHidden
+    }
+    
     // MARK: - Setup
     private func setupUI() {
-//        view.backgroundColor = "#111111".uiColor
         view.backgroundColor = .clear
-        playerContainerView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(playPauseTapped)))
+        playerContainerView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(clickBgView)))
         view.addSubview(playerContainerView)
-        playerContainerView.addSubview(playPauseButton)
+    
 
         playerContainerView.snp.makeConstraints { make in
             make.edges.equalToSuperview()
         }
-
+        
+        
+        playerContainerView.addSubview(playPauseButton)
         playPauseButton.snp.makeConstraints { make in
             make.centerX.equalToSuperview()
             make.centerY.equalToSuperview()//.offset(-50)
@@ -121,8 +146,8 @@ class TSAIListVideoPlayerVC: UIViewController {
         controlsContainerView.addSubview(durationLabel)
         
         progressSlider.snp.makeConstraints { make in
-            make.leading.equalTo(16)
-            make.trailing.equalTo(-16)
+            make.left.equalTo(16)
+            make.right.equalTo(-16)
             make.top.equalTo(0)
             make.height.equalTo(10)
         }
@@ -139,13 +164,13 @@ class TSAIListVideoPlayerVC: UIViewController {
         currentTimeLabel.snp.makeConstraints { make in
             make.height.equalTo(13)
             make.centerY.equalTo(label)
-            make.trailing.equalTo(label.snp.leading)
+            make.right.equalTo(label.snp.left)
         }
         
         durationLabel.snp.makeConstraints { make in
             make.height.equalTo(13)
             make.centerY.equalTo(label)
-            make.leading.equalTo(label.snp.trailing)
+            make.left.equalTo(label.snp.right)
         }
     }
 
@@ -180,6 +205,11 @@ class TSAIListVideoPlayerVC: UIViewController {
         }
     }
     
+    func runloppPlay() {
+        self.isRunloppPlay = true
+        setControlsView(isHidden: true)
+        playPlay()
+    }
     // MARK: - Player Controls
     @objc private func playPauseTapped() {
         if isPlaying {
@@ -189,17 +219,13 @@ class TSAIListVideoPlayerVC: UIViewController {
         }
     }
     
-    @objc private func playPlay() {
+    @objc func playPlay() {
         player?.play()
-        playPauseButton.isHidden = true
-//        playPauseButton.setImage(UIImage(named: "pause"), for: .normal)
         isPlaying = true
     }
     
     @objc func playPause() {
         player?.pause()
-        playPauseButton.isHidden = false
-//        playPauseButton.setImage(UIImage(named: "play"), for: .normal)
         isPlaying = false
     }
     
@@ -211,11 +237,13 @@ class TSAIListVideoPlayerVC: UIViewController {
     
     func playerDidFinish() {
         player?.seek(to: CMTime.zero)
-        playPauseButton.isHidden = false
-//        playPauseButton.setImage(UIImage(named: "play"), for: .normal)
         isPlaying = false
         progressSlider.value = 0
         currentTimeLabel.text = "00:00"
+        
+        if isRunloppPlay {
+            playPlay()
+        }
     }
     // MARK: - Progress Slider
     @objc private func sliderValueChanged(_ sender: UISlider) {

+ 1 - 0
AIEmoji/Business/TSAILIstVC/TSAIPhotoGeneratorBaseVC/TSAIListPhotoGeneratorBaseVC.swift

@@ -396,6 +396,7 @@ extension TSAIListPhotoGeneratorBaseVC {
                 self.videoPlayerVC.view.frame = self.netWorkImageView.bounds
                 self.netWorkImageView.addSubview(self.videoPlayerVC.view)
                 self.videoPlayerVC.setControlsBottom(bottem: -20)
+                self.videoPlayerVC.runloppPlay()
             }
         }
     }

+ 3 - 6
AIEmoji/Business/TSPTPGeneratorVC/TSAIPhotoGeneratorBaseVC/TSAIPhotoBrowseVC.swift

@@ -37,7 +37,7 @@ class TSAIPhotoBrowseVC: TSBaseVC {
         let layout = UICollectionViewFlowLayout()
         layout.scrollDirection = .vertical
         
-        let collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout)
+        let collectionView = UICollectionView(frame: CGRectMake(0, 0, k_ScreenWidth, k_ScreenHeight), collectionViewLayout: layout)
         collectionView.delegate = self
         collectionView.dataSource = self
         collectionView.showsVerticalScrollIndicator = false
@@ -135,11 +135,7 @@ class TSAIPhotoBrowseVC: TSBaseVC {
         super.createView()
         
         setNavBarViewHidden(true)
-        
         contentView.addSubview(collectionView)
-        collectionView.snp.makeConstraints { make in
-            make.edges.equalTo(0)
-        }
 
         DispatchQueue.main.async {
             self.collectionView.isHidden = false
@@ -389,7 +385,7 @@ class TSAIPhotoBrowseCell : TSBaseCollectionCell{
     }()
     
     lazy var netWorkImageView : UIImageView = {
-        let netWorkImageView = UIImageView.createImageView(imageName: "",contentMode: .scaleAspectFit,corner: 24.0)
+        let netWorkImageView = UIImageView.createImageView(imageName: "",contentMode: .scaleAspectFit)
         return netWorkImageView
     }()
 
@@ -454,6 +450,7 @@ class TSAIVideoBrowseCell : TSBaseCollectionCell{
                 make.width.equalTo(k_ScreenWidth)
                 make.height.equalTo(k_ScreenHeight)
             }
+            self.videoPlayerVC?.runloppPlay()
         }
     }
 }

+ 1 - 0
AIEmoji/Business2/CommonVC/TSAppUpdateAlertVC/TSAppUpdateAlertVC.swift

@@ -98,6 +98,7 @@ extension TSAppUpdateAlertVC {
             if let url = URL(string: "https://apps.apple.com/app/id\(appid)"),
                 UIApplication.shared.canOpenURL(url) {
                 UIApplication.shared.open(url)
+                self.dismiss(animated: true)
             }
         }
         alertContent.addSubview(updateBtn)

+ 1 - 1
AIEmoji/Business2/DisCover/Data/TSDiscoverViewModel+Dic.swift

@@ -1047,7 +1047,7 @@ extension TSDiscoverViewModel {
            imageText: "90s Anime",
            prompt:"A 90s anime style portrait of upload photo, cel-shaded animation, bold black outlines, high contrast shading, limited color palette, expressive angular eyes, retro anime aesthetic, soft film grain, dynamic pose, nostalgic vintage vibe.",
             isVip: false,
-            model:volcengine,
+            model:kie,
             unionType: 1,
         ]
     }

+ 17 - 25
AIEmoji/Business2/DisCover/Data/TSDiscoverViewModel.swift

@@ -38,23 +38,16 @@ enum TSDiscoverViewStyle:CaseIterable {
         }
     }
     
-    var headerSize:CGSize {
-        if self ==  .styleMore{
-            return CGSize(width: k_ScreenWidth, height: kDiscoverSectionH)
-        }
-        return .zero
-    }
-    
-    var sectionEdge:UIEdgeInsets {
-        switch self {
-        case .funcItems:
-            return UIEdgeInsets(top: 0, left: kDiscoverSection.left, bottom: 0, right: kDiscoverSection.right)
-        case .styleMore:
-            return UIEdgeInsets(top: 0, left: kDiscoverSection.left, bottom: 0, right: kDiscoverSection.right)
-        case .fullCard:
-            return UIEdgeInsets(top: 24, left: kDiscoverSection.left, bottom: 0, right: kDiscoverSection.right)
-        }
-    }
+//    var sectionEdge:UIEdgeInsets {
+//        switch self {
+//        case .funcItems:
+//            return UIEdgeInsets(top: 0, left: kDiscoverSection.left, bottom: 0, right: kDiscoverSection.right)
+//        case .styleMore:
+//            return UIEdgeInsets(top: 0, left: kDiscoverSection.left, bottom: 0, right: kDiscoverSection.right)
+//        case .fullCard:
+//            return UIEdgeInsets(top: 24, left: kDiscoverSection.left, bottom: 0, right: kDiscoverSection.right)
+//        }
+//    }
     
     var cell:TSDiscoverBaseCell.Type {
         switch self {
@@ -372,7 +365,7 @@ class TSDiscoverViewModel {
         section.items = [
             TSDiscoverItemModel(style: .ttp,
                                 viewModel: TSDiscoverBaseItemVM(
-                                    title: "Text ➡️ Photo".localized,
+                                    title: "Text to Image".localized,
                                     imageNamed: "discover_ttp",
                                     info: "Turn words into visually stunning artwork".localized
                                 ),
@@ -428,6 +421,10 @@ class TSDiscoverViewModel {
                                 viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_EnhancerPhoto","discover_1_EnhancerPhoto"]),
                                 generateModel: TSGenerateModel(json: photoQuality)),
             
+            TSDiscoverItemModel(style: .process,
+                                viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_RecreatePhoto","discover_1_RecreatePhoto"]),
+                                generateModel: TSGenerateModel(json: recreatePhoto)),
+            
             TSDiscoverItemModel(style: .oldPhoto,
                                 viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_RestorPhoto","discover_1_RestorPhoto"]),
                                 generateModel: TSGenerateModel(json: oldPhoto)),
@@ -435,16 +432,10 @@ class TSDiscoverViewModel {
             TSDiscoverItemModel(style: .process,
                                 viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_Colorize","discover_1_Colorize"]),
                                 generateModel: TSGenerateModel(json: colorize)),
-            
-            TSDiscoverItemModel(style: .process,
-                                viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_RecreatePhoto","discover_1_RecreatePhoto"]),
-                                generateModel: TSGenerateModel(json: recreatePhoto)),
- 
+
             TSDiscoverItemModel(style: .photoExpand,
                                 viewModel: TSDiscoverBaseItemVM(title: "", imageNamed: "discover_0_ExpandPhoto"),
                                 generateModel: TSGenerateModel(json: photoExpand)),
-
-
         ]]
         
         return section
@@ -538,6 +529,7 @@ class TSDiscoverViewModel {
     lazy var oldAgeCardSection: TSDiscoverSectionModel = {
         let section = TSDiscoverSectionModel()
         section.style = .fullCard
+        section.setTitle(title: "More AI Tools")
         section.items = [
             TSDiscoverItemModel(style: .ageOld,
                                 viewModel: TSDiscoverBaseItemVM(

+ 1 - 1
AIEmoji/Business2/DisCover/TSAIGenerateVC/TSAIGenerateBaseVC/TSAIGenerateBaseVC+Video.swift

@@ -19,7 +19,7 @@ extension TSAIGenerateBaseVC {
         self.videoPlayerVC.view.frame = self.netWorkImageView.bounds
         self.netWorkImageView.addSubview(self.videoPlayerVC.view)
         self.videoPlayerVC.setControlsBottom(bottem: -80-k_Height_safeAreaInsetsBottom())
-//        self.videoPlayerVC.runloppPlay()
+        self.videoPlayerVC.runloppPlay()
     }
 }
 

+ 1 - 0
AIEmoji/Business2/DisCover/TSDiscoverVC/Cell/TSDiscoverHeaderView.swift

@@ -11,6 +11,7 @@ class TSDiscoverHeaderView: UICollectionReusableView {
     var sectionModel:TSDiscoverSectionModel = TSDiscoverSectionModel(){
         didSet{
             moreView.titleLab.text = sectionModel.title.localized
+            moreView.moreView.isHidden = sectionModel.style != .styleMore
         }
     }
     

+ 1 - 2
AIEmoji/Business2/DisCover/TSDiscoverVC/Cell/TSDiscoverStyleMoreCell/TSDiscoverStyleMoreCell.swift

@@ -138,7 +138,6 @@ class TSDiscoverStyleMoreAnimationCellCell: TSDiscoverStyleMoreBaseCell {
                     }
                 }
                 comparisonView.images = images
-                
 //                comparisonView.startAnimation(direction: .rightToLeft)
             }
         }
@@ -176,7 +175,7 @@ class TSDiscoverStyleMoreAnimationGifCell: TSDiscoverStyleMoreBaseCell {
                 if let gifURL = Bundle.main.url(forResource: imageNamed, withExtension: "gif") {
                     animatedImageView.kf.setImage(with: gifURL, options: [.cacheOriginalImage]){ result in
                         switch result {
-                        case .success(let value):
+                        case .success(let _):
                             self.animatedImageView.startAnimating()
                         case .failure(let error):
                             print("GIF 加载失败: \(error.localizedDescription)")

+ 7 - 6
AIEmoji/Business2/DisCover/TSDiscoverVC/TSDiscoverVC.swift

@@ -102,11 +102,9 @@ extension TSDiscoverVC: UICollectionViewDataSource ,UICollectionViewDelegate,UIC
             cell.items = item
             cell.clickBlock = { [weak self] model  in
                 guard let self = self else { return }
-                
                 if let secModel = viewModel.discoverDatas.safeObj(At:indexPath.section) {
                     TSDiscoverVC.clickCell(target: self,indexPath: indexPath, itemModel:model,secModel: secModel)
                 }
-                
             }
             return cell
         }
@@ -136,9 +134,12 @@ extension TSDiscoverVC: UICollectionViewDataSource ,UICollectionViewDelegate,UIC
 
     func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets{
         if let secModel = viewModel.discoverDatas.safeObj(At:section) {
-            let sectionEdge = secModel.style.sectionEdge
+            var sectionEdge = UIEdgeInsets(top: 0, left: kDiscoverSection.left, bottom: 0, right: kDiscoverSection.right)
+            if secModel.title.isEmpty {
+                sectionEdge = UIEdgeInsets(top: 20, left: kDiscoverSection.left, bottom: 0, right: kDiscoverSection.right)
+            }
             if section == viewModel.discoverDatas.count-1 {
-                return UIEdgeInsets(top: sectionEdge.top, left: sectionEdge.left, bottom: sectionEdge.bottom+20, right: sectionEdge.right)
+                sectionEdge = UIEdgeInsets(top: sectionEdge.top, left: sectionEdge.left, bottom: sectionEdge.bottom+20, right: sectionEdge.right)
             }
             return sectionEdge
         }
@@ -146,8 +147,8 @@ extension TSDiscoverVC: UICollectionViewDataSource ,UICollectionViewDelegate,UIC
     }
 
     func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
-        if let secModel = viewModel.discoverDatas.safeObj(At:section) {
-            return secModel.style.headerSize
+        if let secModel = viewModel.discoverDatas.safeObj(At:section),secModel.title.count > 0 {
+            return CGSize(width: k_ScreenWidth, height: kDiscoverSectionH)
         }
         return .zero
     }

+ 2 - 1
AIEmoji/Business2/DisCover/TSGenerateHistoryVC/TSGenerateHistoryVC.swift

@@ -229,7 +229,8 @@ extension TSGenerateHistoryVC{
     }
     
     func removeAllHistoryList(){
-        dbHistory.deleteAll()
+        dbHistory.deleteResultModels()
+//        dbHistory.deleteAll()
         updateDataView()
     }
     

+ 4 - 6
AIEmoji/Business2/DisCover/TSGenerateHistoryVC/View/TSGenerateHistoryCell.swift

@@ -20,12 +20,10 @@ class TSGenerateHistoryCell: TSBaseCollectionCell {
                             self.updataActionInfoModelView(model: actionInfoModel)
                         }
                     }
-//                    operation.stateDataPblishedChanged = { [weak self] progress,actionInfoModel in
-//                        guard let self = self else { return }
-//                        DispatchQueue.main.async {
-//                            self.updataActionInfoModelView(model: actionInfoModel)
-//                        }
-//                    }
+                    operation.processProgressChanged = { [weak self] progress in
+                        guard let self = self else { return }
+                        generateView.setProgress(progress: progress)
+                    }
                     self.operation = operation
                 }
             }else{

+ 1 - 1
AIEmoji/Common/View/TSImagesComparisonView.swift

@@ -158,7 +158,7 @@ class TSImagesComparisonView: UIView {
             progress = 1.0 - progress
         }
         
-        var x = bounds.width * progress - lineView.frame.size.width
+        var x = bounds.width * progress - lineView.frame.size.width + 1.0 //加 1.0 是为了让他到边界外
         var path = UIBezierPath(rect: CGRect(
             x: 0,
             y: 0,

+ 1 - 0
AIEmoji/de.lproj/Localizable.strings

@@ -478,3 +478,4 @@
 "⚡ Even faster speed" = "⚡ Noch schnellere Geschwindigkeit";
 "Update now to unlock the best experience" = "Jetzt aktualisieren, um das beste Erlebnis freizuschalten";
 "Update" = "Aktualisieren";
+"More AI Tools" = "Weitere KI-Tools";

+ 2 - 0
AIEmoji/en.lproj/Localizable.strings

@@ -475,3 +475,5 @@
 "⚡ Even faster speed" = "⚡ Even faster speed";
 "Update now to unlock the best experience" = "Update now to unlock the best experience";
 "Update" = "Update";
+"More AI Tools" = "More AI Tools";
+

+ 1 - 0
AIEmoji/es.lproj/Localizable.strings

@@ -476,3 +476,4 @@
 "⚡ Even faster speed" = "⚡ Velocidad aún más rápida";
 "Update now to unlock the best experience" = "Actualiza ahora para disfrutar de la mejor experiencia";
 "Update" = "Actualizar";
+"More AI Tools" = "Más herramientas de IA";

+ 1 - 0
AIEmoji/ja.lproj/Localizable.strings

@@ -475,3 +475,4 @@
 "⚡ Even faster speed" = "⚡ さらに高速な処理速度";
 "Update now to unlock the best experience" = "今すぐアップデートして最高の体験を解錠";
 "Update" = "アップデート";
+"More AI Tools" = "その他のAIツール";

+ 1 - 0
AIEmoji/ko.lproj/Localizable.strings

@@ -480,3 +480,4 @@
 "⚡ Even faster speed" = "⚡ 더욱 빠른 속도";
 "Update now to unlock the best experience" = "지금 업데이트하여 최고의 경험을 경험하세요";
 "Update" = "업데이트";
+"More AI Tools" = "더 많은 AI 도구";

+ 1 - 0
AIEmoji/pt-BR.lproj/Localizable.strings

@@ -475,3 +475,4 @@
 "⚡ Even faster speed" = "⚡ Velocidade ainda mais rápida";
 "Update now to unlock the best experience" = "Atualize agora para desbloquear a melhor experiência";
 "Update" = "Atualizar";
+"More AI Tools" = "Mais ferramentas de IA";

+ 1 - 0
AIEmoji/pt-PT.lproj/Localizable.strings

@@ -474,3 +474,4 @@
 "⚡ Even faster speed" = "⚡ Velocidade ainda mais rápida";
 "Update now to unlock the best experience" = "Atualize agora para desbloquear a melhor experiência";
 "Update" = "Atualizar";
+"More AI Tools" = "Mais ferramentas de IA";

+ 1 - 0
AIEmoji/zh-Hans.lproj/Localizable.strings

@@ -476,3 +476,4 @@
 "⚡ Even faster speed" = "⚡ 生成速度更快";
 "Update now to unlock the best experience" = "立即更新,解锁最佳体验";
 "Update" = "更新";
+"More AI Tools" = "更多 AI 工具";

+ 1 - 0
AIEmoji/zh-Hant.lproj/Localizable.strings

@@ -465,3 +465,4 @@
 "⚡ Even faster speed" = "⚡ 速度更快";
 "Update now to unlock the best experience" = "立即更新,解鎖最佳體驗";
 "Update" = "更新";
+"More AI Tools" = "更多 AI 工具";