Browse Source

aistroe 选择图片是,提示弹窗开发完毕

100Years 3 weeks ago
parent
commit
2d3d9e495f

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

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

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


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


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

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

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


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


+ 12 - 0
AIEmoji/Business/TSAILIstVC/TSAIAgeImageHintVC/TSAIListHintBaseVC.swift

@@ -65,6 +65,18 @@ class TSAIListHintBaseVC: TSBaseVC {
                           badText: "Bad photo examples".localized,
                           badInfoText: "Group photos, covered faces, skinhead".localized)
         }
+        
+        static var catTohumanConfig:Config {
+            return Config(imageMaxBitSize: kUploadImageMaxBit10Size,
+                          goodImageNamed: "ptp_catTohuman_goodImage",
+                          badImageNamed: "ptp_catTohuman_badImage",
+                          titleText: "Upload your photos".localized,
+                          titleSubText: "",
+                          goodText: "Good photo examples".localized,
+                          goodInfoText: "Select an image that features only one pet".localized,
+                          badText: "Bad photo examples".localized,
+                          badInfoText: "Rotated or Upside- down Photo".localized)
+        }
     }
     
     var config:Config = Config.defaultConfig

+ 5 - 5
AIEmoji/Business/TSAILIstVC/TSAILIstVC/TSAILIstVC.swift

@@ -22,7 +22,7 @@ class TSAILIstVC: TSBaseVC {
                 tapBlock: { [weak self] model, _, _ in
                    guard let self = self else { return }
 //                    enterSelectPhotos(
-//                        userDefaultsKey: "",
+//                        userDefaultsKey: "isFirstAIMotherDay",
 //                        maxBitSize: kUploadImageMaxBit10Size,
 //                         config:.getDefaultConfig(imageMaxBitSize: kUploadImageMaxBit10Size)
 //                    ) { image in
@@ -40,7 +40,7 @@ class TSAILIstVC: TSBaseVC {
             tapBlock: { [weak self] model, _, _ in
                guard let self = self else { return }
 //                    enterSelectPhotos(
-//                        userDefaultsKey: "",
+//                        userDefaultsKey: "isFirstAICatTohuman",
 //                        maxBitSize: kUploadImageMaxBit10Size,
 //                         config:.getDefaultConfig(imageMaxBitSize: kUploadImageMaxBit10Size)
 //                    ) { image in
@@ -99,7 +99,7 @@ class TSAILIstVC: TSBaseVC {
                 tapBlock: { [weak self] model, _, _ in
                    guard let self = self else { return }
 //                    enterSelectPhotos(
-//                        userDefaultsKey: "",//"isFirstAIListQualityHintVC",
+//                        userDefaultsKey: "",,
 //                        maxBitSize: kUploadImageMaxBit10Size,
 //                        config:.defaultConfig
 //                    ) { image in
@@ -152,8 +152,8 @@ class TSAILIstVC: TSBaseVC {
                 rightViewStyle: 0,
                 tapBlock: { [weak self] model, _, _ in
                    guard let self = self else { return }
-                    let vc = TSChatViewController()//(uiStyle: .perfectHint)
-                    vc.viewModel.uiStyle = .perfectHint
+                    let vc = TSChatViewController()
+                    vc.viewModel.uiStyle = .chat
                     kPushVC(target: self, modelVC: vc)
         }))
         //预测老年

+ 1 - 26
AIEmoji/Business/TSAILIstVC/TSAIPhotoGeneratorBaseVC/TSAIPhotoGeneratorBaseVM/TSAIListPhotoGeneratorBaseVM.swift

@@ -78,7 +78,7 @@ class TSAIListPhotoGeneratorBaseVM {
         stateDatauPblished = (.start,nil)
         
         stateDatauPblished = (.progressString(uploadingPhoto(progress: 0.0)),nil)
-        uploadRequest = TSNetworkShared.uploadImage(upLoadImage: generatorModel.upLoadImage, maxKb: imageMaxKb) { [weak self]  progress in
+        uploadRequest = TSNetworkShared.uploadImage(upLoadImage: generatorModel.upLoadImage, maxKb: generatorModel.generatorStyle.imageMaxKb) { [weak self]  progress in
             guard let self = self else { return }
             if generatingProgress == 0 {
                 stateDatauPblished = (.progressString(uploadingPhoto(progress: progress)),nil)
@@ -270,31 +270,6 @@ class TSAIListPhotoGeneratorBaseVM {
         stopNetwork = true
     }
  
-    var imageMaxKb:Int{
-        switch generatorModel.generatorStyle {
-        case .ageOld:
-            return 10*1024
-        case .ageChild:
-            return 10*1024
-        case .oldPhoto:
-            return 5*1024
-        case .eyeOpen:
-            return 5*1024
-        case .pretty:
-            return 5*1024
-        case .photoLive:
-            return 10*1024
-        case .photoExpand:
-            return 10*1024
-        case .photoQuality:
-            return 10*1024
-        case .motherDay:
-            return 10*1024
-        case .catTohuman:
-            return 10*1024
-        }
-    }
-    
     func uploadingPhoto(progress:Float) -> String {
         //Uploading Photo 0%-100%
         var progressInt = Int(progress*100)

+ 168 - 8
AIEmoji/Business/TSAILIstVC/TSAIUploadPhotoBaseVC/TSAIUploadPhotoBaseVC.swift

@@ -18,6 +18,108 @@ enum TSGeneratorImageStyle {
     case photoQuality    //照片变高清
     case motherDay    //母亲节
     case catTohuman    //猫变人
+    
+    
+    
+    var imageMaxKb:Int{
+        switch self {
+        case .ageOld:
+            return 10*1024
+        case .ageChild:
+            return 10*1024
+        case .oldPhoto:
+            return 5*1024
+        case .eyeOpen:
+            return 5*1024
+        case .pretty:
+            return 5*1024
+        case .photoLive:
+            return 10*1024
+        case .photoExpand:
+            return 10*1024
+        case .photoQuality:
+            return 10*1024
+        case .motherDay:
+            return 10*1024
+        case .catTohuman:
+            return 10*1024
+        }
+    }
+    
+    var imageMaxBitSize:Int{
+        switch self {
+        case .ageOld:
+            return kUploadImageMaxBit10Size
+        case .ageChild:
+            return kUploadImageMaxBit10Size
+        case .oldPhoto:
+            return kUploadImageMaxBit5Size
+        case .eyeOpen:
+            return kUploadImageMaxBit5Size
+        case .pretty:
+            return kUploadImageMaxBit5Size
+        case .photoLive:
+            return kUploadImageMaxBit10Size
+        case .photoExpand:
+            return kUploadImageMaxBit10Size
+        case .photoQuality:
+            return kUploadImageMaxBit10Size
+        case .motherDay:
+            return kUploadImageMaxBit10Size
+        case .catTohuman:
+            return kUploadImageMaxBit10Size
+        }
+    }
+    
+    var userDefaultsKey:String{
+        switch self {
+        case .ageOld:
+            return "isFirstAIListAgeOldHintVC"
+        case .ageChild:
+            return "isFirstAIListAgeChildHintVC"
+        case .oldPhoto:
+            return "isFirstAIChangeRestOldPhoto"
+        case .eyeOpen:
+            return "isFirstAIEyeOpenPhoto"
+        case .pretty:
+            return "isFirstAIPrettyPhoto"
+        case .photoLive:
+            return "isFirstAILivePhoto"
+        case .photoExpand:
+            return ""
+        case .photoQuality:
+            return ""
+        case .motherDay:
+            return "isFirstAIMotherDay"
+        case .catTohuman:
+            return "isFirstAICatTohuman"
+        }
+    }
+    
+    var config:TSAIListHintBaseVC.Config{
+        switch self {
+        case .ageOld:
+            return .defaultConfig
+        case .ageChild:
+            return .defaultConfig
+        case .oldPhoto:
+            return .getDefaultConfig(imageMaxBitSize: imageMaxBitSize)
+        case .eyeOpen:
+            return .getDefaultConfig(imageMaxBitSize: imageMaxBitSize)
+        case .pretty:
+            return .getDefaultConfig(imageMaxBitSize:imageMaxBitSize)
+        case .photoLive:
+            return .getDefaultConfig(imageMaxBitSize: imageMaxBitSize)
+        case .photoExpand:
+            return .getDefaultConfig(imageMaxBitSize:imageMaxBitSize)
+        case .photoQuality:
+            return .defaultConfig
+        case .motherDay:
+            return .getDefaultConfig(imageMaxBitSize: imageMaxBitSize)
+        case .catTohuman:
+            return .catTohumanConfig
+        }
+    }
 }
 
 class TSAIUploadPhotoBaseVC: TSBaseVC {
@@ -42,6 +144,8 @@ class TSAIUploadPhotoBaseVC: TSBaseVC {
         let photoPickerManager = TSPhotoPickerManager(viewController: self)
         return photoPickerManager
     }()
+    
+    var hintBaseVC:TSAIListHintBaseVC = TSAIListHintBaseVC(config: .defaultConfig)
     //#####################################底部基础#####################################
     lazy var cusStackView: TSCustomStackView = {
         let cusStackView = TSCustomStackView(axis: .vertical,spacing: 0)
@@ -232,6 +336,7 @@ extension TSAIUploadPhotoBaseVC {
         }
         
         if generatorStyle == .catTohuman {
+            cusStackView.addSpacing(length: 24)
             cusStackView.addSubviewToStackWhiteBoard(segmentedView, length: 46)
             segmentedView.snp.makeConstraints { make in
                 make.width.equalTo(k_ScreenWidth-70)
@@ -292,14 +397,17 @@ extension TSAIUploadPhotoBaseVC {
     }
     
     func pickSinglePhoto()  {
-//        photoPickerManager.pickSinglePhoto(maxBitSize: imageMaxBitSize) { [weak self] image, errorString in
-        photoPickerManager.pickCustomSinglePhoto() { [weak self] image, errorString in
-            guard let self = self else { return }
-            if let errorString = errorString {
-                TSToastShared.showToast(text: errorString)
-            }else{
-                upLoadImage = image
-            }
+//        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
         }
     }
 }
@@ -347,3 +455,55 @@ extension TSAIUploadPhotoBaseVC {
     }
 
 }
+
+
+extension TSAIUploadPhotoBaseVC{
+    
+    func enterSelectPhotos(userDefaultsKey:String,maxBitSize:Int,config:TSAIListHintBaseVC.Config,complete: @escaping (UIImage)->Void){
+        if userDefaultsKey.count == 0 {
+            self.pickSinglePhoto(maxBitSize:maxBitSize,complete:complete)
+        }else{
+            TSAIListHintBaseVC.userDefaultsKey = userDefaultsKey
+            if TSAIListHintBaseVC.isShowUploadImageHint{
+                TSAIListHintBaseVC.isShowUploadImageHint = false
+                self.presentModalHintVC(config:config,complete:complete)
+            }else {
+                self.pickSinglePhoto(maxBitSize:maxBitSize,complete:complete)
+            }
+        }
+    }
+    
+    
+    func presentModalHintVC(config:TSAIListHintBaseVC.Config,complete:@escaping (UIImage)->Void){
+        hintBaseVC = TSAIListHintBaseVC(config: config) { [weak self] image in
+            guard let self = self else { return }
+            if let image = image {
+                complete(image)
+            }else{
+                dePrint("图片异常")
+            }
+            kDelayMainShort {
+                self.hintBaseVC.dismissPageVC()
+            }
+        }
+        kPresentModalVC(target: self, modelVC: hintBaseVC,transitionStyle: .crossDissolve)
+    }
+    
+    func pickSinglePhoto(maxBitSize:Int,complete: @escaping (UIImage)->Void)  {
+//        photoPickerManager.pickSinglePhoto(maxBitSize: maxBitSize) { [weak self] image, errorString in
+        photoPickerManager.pickCustomSinglePhoto() { [weak self] image, errorString in
+            guard let self = self else { return }
+            if let errorString = errorString {
+                TSToastShared.showToast(text: errorString)
+            }else if let image = image {
+                complete(image)
+            }else{
+                dePrint("图片异常")
+            }
+            kDelayMainShort {
+                self.photoPickerManager.dismissPageVC()
+            }
+            
+        }
+    }
+}