Bläddra i källkod

增加首页功能免费试用一次的功能

100Years 2 veckor sedan
förälder
incheckning
4fbcaa158c

+ 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 = 6;
+				CURRENT_PROJECT_VERSION = 7;
 				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 = 6;
+				CURRENT_PROJECT_VERSION = 7;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				ENABLE_USER_SCRIPT_SANDBOXING = NO;
 				GENERATE_INFOPLIST_FILE = YES;

+ 11 - 1
AIEmoji/Business/TSAILIstVC/TSAIExpandImageVC/TSAIExpandImageVC.swift

@@ -65,7 +65,6 @@ class TSAIExpandImageVC: TSBaseVC {
             generateImage()
         }
         submitBtn.cornerRadius = 24.0
-        kSetBtnVipIcon(btn: submitBtn, show: true)
         return submitBtn
     }()
     //###################################### createView ######################################
@@ -101,6 +100,17 @@ class TSAIExpandImageVC: TSBaseVC {
         upLoadImage = image
         updateExpandArea()
     }
+    
+    override func dealThings() {
+        NotificationCenter.default.addObserver(self, selector: #selector(updateVipView), name: .kPurchaseDidChanged, object: nil)
+        updateVipView()
+    }
+    
+    @objc func updateVipView() {
+        kMainAsync{
+            kSetBtnVipIcon(btn: self.submitBtn, show: kPurchaseDefault.generateVipShow(type: .aiGenerate))
+        }
+    }
 }
 
 extension TSAIExpandImageVC {

+ 9 - 26
AIEmoji/Business/TSAILIstVC/TSAIUploadPhotoBaseVC/TSAIUploadPhotoBaseVC.swift

@@ -210,11 +210,16 @@ class TSAIUploadPhotoBaseVC: TSBaseVC {
         subInfoLabel.isHidden = generatorStyle == .catTohuman ? false : true
     }
 
-    
     override func dealThings() {
-        kSetBtnVipIcon(btn: self.submitBtn, show: true)
+        NotificationCenter.default.addObserver(self, selector: #selector(updateVipView), name: .kPurchaseDidChanged, object: nil)
+        updateVipView()
     }
     
+    @objc func updateVipView() {
+        kMainAsync{
+            kSetBtnVipIcon(btn: self.submitBtn, show: kPurchaseDefault.generateVipShow(type: .aiGenerate))
+        }
+    }
 }
 
 extension TSAIUploadPhotoBaseVC {
@@ -302,14 +307,6 @@ extension TSAIUploadPhotoBaseVC {
     }
     
     func pickSinglePhoto()  {
-//        photoPickerManager.pickCustomSinglePhoto() { [weak self] image, errorString in
-//            guard let self = self else { return }
-//            if let errorString = errorString {
-//                TSToastShared.showToast(text: errorString)
-//            }else{
-//                upLoadImage = image
-//            }
-//        }
         enterSelectPhotos(userDefaultsKey: generatorStyle.userDefaultsKey, maxBitSize: generatorStyle.imageMaxBitSize, config: generatorStyle.config) { [weak self] image in
                 guard let self = self else { return }
             upLoadImage = image
@@ -319,23 +316,9 @@ extension TSAIUploadPhotoBaseVC {
 
 
 extension TSAIUploadPhotoBaseVC {
-    
-//    func generateImage() {
-//        if kJudgeVip(externalBool: true, vc: self){ return } //判断 vip
-//        guard let upLoadImage = upLoadImage else { return }
-//        if generatorStyle != .catTohuman {
-//            additionalPrompt = ""
-//        }
-//        let gennerateVC = TSAIListPhotoGeneratorBaseVC(generatorModel: TSAIGeneratorModel(upLoadImage: upLoadImage, generatorStyle: generatorStyle,additionalPrompt: additionalPrompt)){ [weak self] model in
-//            guard let self = self else { return }
-//            saveModel(model: model)
-//        }
-//        
-//        kPresentModalVC(target: self, modelVC: gennerateVC,transitionStyle: .crossDissolve)
-//    }
-    
+
     func generateImage() {
-        if kJudgeVip(externalBool: true, vc: self){ return } //判断 vip
+        if kJudgeVip(externalBool: kPurchaseDefault.freeNumAvailable(type: .aiGenerate) == false, vc: self) { return }
         guard let upLoadImage = upLoadImage else { return }
         if generatorStyle != .catTohuman {
             additionalPrompt = ""

+ 8 - 1
AIEmoji/Business/TSAILIstVC/TSPredictBabyVC/TSFutureBabyVC.swift

@@ -55,7 +55,6 @@ class TSFutureBabyVC: TSBaseVC{
             generateImage()
         }
         submitBtn.cornerRadius = 24.0
-        kSetBtnVipIcon(btn: submitBtn, show: true)
         return submitBtn
     }()
     override func createView() {
@@ -110,6 +109,14 @@ class TSFutureBabyVC: TSBaseVC{
             submitBtn.isEnabled = enble
         }.store(in: &cancellable)
         
+        NotificationCenter.default.addObserver(self, selector: #selector(updateVipView), name: .kPurchaseDidChanged, object: nil)
+        updateVipView()
+    }
+    
+    @objc func updateVipView() {
+        kMainAsync{
+            kSetBtnVipIcon(btn: self.submitBtn, show: kPurchaseDefault.generateVipShow(type: .aiGenerate))
+        }
     }
 }
 

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

@@ -143,7 +143,7 @@ class TSAIGenerateVC: TSAIGenerateBaseVC {
     //重新生成
     @objc override func clickRegenerateBtn(){
         //判断 vip
-        if kJudgeVip(externalBool: kPurchaseDefault.freeNumAvailable(type: .picToPic) == false, vc: self) { return }
+        if kJudgeVip(externalBool: kPurchaseDefault.freeNumAvailable(type: .aiGenerate) == false, vc: self) { return }
         self.infoModel?.actionStatus = .failed//状态设为失败,走generatorCreat
         self.uuidString = UUID().uuidString//设置新的uuid,新的储存数据
         generatorOperation()//开始生成

+ 1 - 1
AIEmoji/Business2/DisCover/TSGenerateHistoryVC/View/TSGenerateHistoryCell.swift

@@ -44,7 +44,7 @@ class TSGenerateHistoryCell: TSBaseCollectionCell {
             }else if dataModel.response.sensitiveError { //敏感内容
                 buttonTapped?("delete_task_sensitive")
             }else{
-//                if kJudgeVipFreeType(vipFreeNumType: .picToPic){ return }
+                if kJudgeVipFreeType(vipFreeNumType: .aiGenerate){ return }
                 if TSGenerateBasePhotoOperationQueue.shared.isAvailability {
                     let generatePTPOperation = TSGenerateBasePhotoOperationQueue.shared.creatOperation(uuid: dataModel.uuid)
                     generatePTPOperation.isSaveProcessToDB = true

+ 10 - 10
AIEmoji/Business2/DisCover/TSPTPUploadImageVC/TSPTPUploadImageVC+View.swift

@@ -33,25 +33,25 @@ extension TSPTPUploadImageVC {
     
     func creatCreatBtnView() -> TSAppBtnView {
         let creatBtnView = TSAppBtnView()
-        creatBtnView.setUpButton(style: .generate, vipFreeNumType: .picToPic) { [weak self] in
+        creatBtnView.setUpButton(style: .generate, vipFreeNumType: .aiGenerate) { [weak self] in
             guard let self = self else { return }
             generateImage()
         }
         creatBtnView.setBtnEnabled(isEnabled: false)
         creatBtnView.isIconVipBlock = { [weak self] in
             guard let self = self else { return false }
-            var showVip = kPurchaseDefault.generateVipShow(type: .picToPic)
-            if showVip == false {
-                showVip = self.viewModel.selectedPTPStyleModel.isVip
-            }
+            var showVip = kPurchaseDefault.generateVipShow(type: .aiGenerate)
+//            if showVip == false {
+//                showVip = self.viewModel.selectedPTPStyleModel.isVip
+//            }
             return showVip
         }
         creatBtnView.isClickVipBlock = { [weak self] in
             guard let self = self else { return false }
-            var isVip = kPurchaseDefault.freeNumAvailable(type: .picToPic) == false
-            if viewModel.selectedPTPStyleModel.isVip == true {
-                isVip = true
-            }
+            var isVip = kPurchaseDefault.freeNumAvailable(type: .aiGenerate) == false
+//            if viewModel.selectedPTPStyleModel.isVip == true {
+//                isVip = true
+//            }
             return isVip
         }
         return creatBtnView
@@ -67,7 +67,7 @@ extension TSPTPUploadImageVC {
         }
     }
 
-    func updateVipView() {
+    @objc func updateVipView() {
         kExecuteOnMainThread {
             self.creatBtnView.updateVipView()
         }

+ 1 - 0
AIEmoji/Business2/DisCover/TSPTPUploadImageVC/TSPTPUploadImageVC.swift

@@ -63,6 +63,7 @@ class TSPTPUploadImageVC: TSBaseVC {
     }
     
     override func dealThings() {
+        NotificationCenter.default.addObserver(self, selector: #selector(updateVipView), name: .kPurchaseDidChanged, object: nil)
         updateVipView()
     }
     

+ 3 - 1
AIEmoji/Common/Purchase/TSPurchaseManager.swift

@@ -70,6 +70,7 @@ public enum VipFreeNumType: String, CaseIterable {
     case aichat = "kAIChatFreeNum"
     case textGeneratePic = "kTextGeneratePicFreeNum"
     case picToPic = "kPicToPicFreeNum"
+    case aiGenerate = "kAIGenerateFreeNum"
 }
 
 public struct PurchaseProduct {
@@ -218,7 +219,7 @@ public class PurchaseManager: NSObject {
 
     public var vipType: PremiumPeriod {
 #if DEBUG
-        return PremiumPeriod.year
+        return PremiumPeriod.none
 #endif
         guard isVip, let type = vipInformation["type"] as? String else {
             return .none
@@ -754,6 +755,7 @@ extension PurchaseManager {
                 VipFreeNumType.aichat.rawValue: 1,
                 VipFreeNumType.textGeneratePic.rawValue: 1,
                 VipFreeNumType.picToPic.rawValue: 1,
+                VipFreeNumType.aiGenerate.rawValue: 1,
             ]
             saveForFree()
         }

+ 1 - 1
AIEmoji/Common/Tool/OperationQueue/V2/TSGenerateBasePhotoOperation.swift

@@ -63,7 +63,7 @@ class TSGenerateBasePhotoOperation: TSGenerateBaseOperation , @unchecked Sendabl
         TSRMShared.aiGenerateDB.updateData(currentActionInfoModel,uuid: uuid)
     }
     override func handleGenerateSuccess() {
-        kPurchaseDefault.useOnceForFree(type: .picToPic)
+        kPurchaseDefault.useOnceForFree(type: .aiGenerate)
         saveDataDB()
 
         //生成成功后,不再提示用户上传规则弹窗