|
@@ -38,11 +38,13 @@ class TSAIListPhotoGeneratorModel {
|
|
|
}
|
|
|
|
|
|
class TSAIListPhotoGeneratorVC: TSAIPhotoDetailsVC {
|
|
|
-
|
|
|
- init(generatorModel:TSAIListPhotoGeneratorModel,complete:@escaping ((TSActionInfoModel)->Void)) {
|
|
|
+ var generatorModel:TSAIListPhotoGeneratorModel
|
|
|
+ init(generatorModel:TSAIListPhotoGeneratorModel,infoModel:TSActionInfoModel? = nil,complete:@escaping ((TSActionInfoModel)->Void)) {
|
|
|
self.complete = complete
|
|
|
+ self.generatorModel = generatorModel
|
|
|
self.viewModel = TSAIListPhotoGeneratorBaseVM(generatorModel: generatorModel)
|
|
|
super.init()
|
|
|
+ self.infoModel = infoModel
|
|
|
}
|
|
|
@MainActor required init?(coder: NSCoder) {
|
|
|
fatalError("init(coder:) has not been implemented")
|
|
@@ -51,9 +53,12 @@ class TSAIListPhotoGeneratorVC: TSAIPhotoDetailsVC {
|
|
|
var complete:((TSActionInfoModel)->Void)
|
|
|
var progressState = TSProgressState.none
|
|
|
|
|
|
+ var uuidString:String = UUID().uuidString
|
|
|
+ var operation:TSGenerateBaseOperation?
|
|
|
+
|
|
|
var isSavePhotoMark:Bool = false
|
|
|
var isNeedSavePhoto:Bool {
|
|
|
- if isSavePhotoMark == false,let _ = imageModel {
|
|
|
+ if isSavePhotoMark == false,let _ = infoModel {
|
|
|
return true
|
|
|
}
|
|
|
return false
|
|
@@ -76,14 +81,16 @@ class TSAIListPhotoGeneratorVC: TSAIPhotoDetailsVC {
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ generateInView.clickBackstageBlock = { [weak self] in
|
|
|
+ guard let self = self else { return }
|
|
|
+ clickBackstageBtn()
|
|
|
+ }
|
|
|
generateInView.clickCloseBlock = { [weak self] in
|
|
|
guard let self = self else { return }
|
|
|
closePage()
|
|
|
}
|
|
|
return generateInView
|
|
|
}()
|
|
|
-
|
|
|
|
|
|
override func createView() {
|
|
|
|
|
@@ -95,6 +102,11 @@ class TSAIListPhotoGeneratorVC: TSAIPhotoDetailsVC {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @objc func clickBackstageBtn() {
|
|
|
+ self.operation?.backstageGeneration()
|
|
|
+ NotificationCenter.default.post(name: .kAIPhotoDataChanged, object: nil)
|
|
|
+ self.dismiss(animated: true, completion: nil)
|
|
|
+ }
|
|
|
|
|
|
func closePage() {
|
|
|
|
|
@@ -115,6 +127,12 @@ class TSAIListPhotoGeneratorVC: TSAIPhotoDetailsVC {
|
|
|
guard let self = self else { return }
|
|
|
print("用户点击了Leave")
|
|
|
viewModel.cancelAllRequest()
|
|
|
+
|
|
|
+ if let model = infoModel{
|
|
|
+ TSRMShared.aiListDB.deleteListModel(id: model.id)
|
|
|
+ NotificationCenter.default.post(name: .kAIPhotoDataChanged, object: nil)
|
|
|
+ }
|
|
|
+
|
|
|
self.dismiss(animated: true, completion: nil)
|
|
|
},
|
|
|
confirmAction: { [weak self] in
|
|
@@ -161,15 +179,63 @@ class TSAIListPhotoGeneratorVC: TSAIPhotoDetailsVC {
|
|
|
}
|
|
|
|
|
|
override func dealThings() {
|
|
|
- viewModel.uploadAndCreatImage()
|
|
|
- viewModel.$stateDatauPblished.receive(on: DispatchQueue.main).sink {[weak self] (state,model) in
|
|
|
+ self.uuidString = UUID().uuidString
|
|
|
+// viewModel.uploadAndCreatImage()
|
|
|
+// viewModel.$stateDatauPblished.receive(on: DispatchQueue.main).sink {[weak self] (state,model) in
|
|
|
+// guard let self = self else { return }
|
|
|
+// self.upDateView(state: state, model: model)
|
|
|
+// }.store(in: &cancellable)
|
|
|
+ generatorOperation()
|
|
|
+ }
|
|
|
+
|
|
|
+ func generatorOperation() {
|
|
|
+
|
|
|
+ if let model = self.infoModel{
|
|
|
+ if model.actionStatus == .failed{
|
|
|
+ generatorCreatRing(oldModel: model)
|
|
|
+ }else if model.response.resultUrl.count > 0 {
|
|
|
+ upDateView(state: .success(model), model: model)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ generatorNew()
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+extension TSAIListPhotoGeneratorVC{
|
|
|
+
|
|
|
+ func generatorNew() {
|
|
|
+ let operation:TSGenerateBasePhotoOperation = TSGenerateBasePhotoOperationQueue.shared.creatOperation(uuid: self.uuidString)
|
|
|
+ self.operation = operation
|
|
|
+ operation.$stateDatauPblished.receive(on: DispatchQueue.main).sink {[weak self] (state,model) in
|
|
|
guard let self = self else { return }
|
|
|
self.upDateView(state: state, model: model)
|
|
|
}.store(in: &cancellable)
|
|
|
+
|
|
|
+ operation.uploadImage(generateStyleModel: self.generatorModel) { [weak self] actionInfoModel in
|
|
|
+ guard let self = self else { return }
|
|
|
+ guard let oldModel = actionInfoModel else {return}
|
|
|
+ generatorCreatRing(oldModel: oldModel)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+ func generatorCreatRing(oldModel:TSActionInfoModel) {
|
|
|
+ let operation:TSGenerateBasePhotoOperation = TSGenerateBasePhotoOperationQueue.shared.creatOperation(uuid: self.uuidString)
|
|
|
+ self.operation = operation
|
|
|
+ operation.$stateDatauPblished.receive(on: DispatchQueue.main).sink {[weak self] (state,model) in
|
|
|
+ guard let self = self else { return }
|
|
|
+ self.upDateView(state: state, model: model)
|
|
|
+ }.store(in: &cancellable)
|
|
|
+
|
|
|
+ operation.creatImage(oldModel: oldModel){ [weak self] success in
|
|
|
+ guard let self = self else { return }
|
|
|
+ if success {
|
|
|
+ generateInView.setBackgroundGenerateBtnHidden(false)
|
|
|
+ navRightBtn.isHidden = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
extension TSAIListPhotoGeneratorVC {
|
|
|
func getSuccessImage()->UIImage?{
|
|
|
if let image = panComparisonView.newImageView.image {
|
|
@@ -204,7 +270,7 @@ extension TSAIListPhotoGeneratorVC {
|
|
|
}
|
|
|
|
|
|
func showLoading(){
|
|
|
- generateInView.updateShowLoading(text: "Processing".localized + " ...".localized)
|
|
|
+ generateInView.updateShowLoading(text: "Processing".localized + " 0%")
|
|
|
|
|
|
}
|
|
|
|
|
@@ -215,13 +281,13 @@ extension TSAIListPhotoGeneratorVC {
|
|
|
func showSuccess(model:TSActionInfoModel){
|
|
|
generateInView.updateShowSuccess()
|
|
|
|
|
|
- imageModel = model
|
|
|
+ infoModel = model
|
|
|
// if viewModel.generatorModel.generatorStyle == .futureBaby {
|
|
|
// rotatingPictureBtn.isHidden = false
|
|
|
// }else{
|
|
|
// switchOriginalPictureBtn.isHidden = false
|
|
|
// }
|
|
|
- if let model = imageModel {
|
|
|
+ if let model = infoModel {
|
|
|
complete(model)
|
|
|
}
|
|
|
|
|
@@ -240,7 +306,7 @@ extension TSAIListPhotoGeneratorVC {
|
|
|
|
|
|
func setVideoURL(){
|
|
|
// if viewModel.generatorModel.generatorStyle == .photoLive {
|
|
|
-// if let model = imageModel {
|
|
|
+// if let model = infoModel {
|
|
|
// switchOriginalPictureBtn.isHidden = true
|
|
|
// self.videoPlayerVC = TSAIListVideoPlayerVC(videoURL: model.videoURL)
|
|
|
// self.addChild(self.videoPlayerVC)
|
|
@@ -256,7 +322,7 @@ extension TSAIListPhotoGeneratorVC {
|
|
|
func setExpandAreaImage(){
|
|
|
// if viewModel.generatorModel.generatorStyle == .photoExpand {
|
|
|
// netWorkImageView.image = nil
|
|
|
-// expandAreaView.bgImageView.setAsyncImage(urlString: imageModel?.response.resultUrl,placeholder:kPlaceholderImage,backgroundColor:netWorkImageView.backgroundColor!)
|
|
|
+// expandAreaView.bgImageView.setAsyncImage(urlString: infoModel?.response.resultUrl,placeholder:kPlaceholderImage,backgroundColor:netWorkImageView.backgroundColor!)
|
|
|
// expandAreaView.showImageView.image = self.viewModel.generatorModel.upLoadImage
|
|
|
// }
|
|
|
}
|