|
@@ -10,27 +10,19 @@ class TSAIListPhotoGeneratorBaseVC: TSAIPhotoGeneratorBaseVC {
|
|
|
var imageModel:TSActionInfoModel?
|
|
|
var complete:((TSActionInfoModel)->Void)
|
|
|
|
|
|
-// var prompt:String
|
|
|
-// var promptSort:String
|
|
|
-
|
|
|
-// var style:String
|
|
|
var imageUrl:String?
|
|
|
var upLoadImage:UIImage
|
|
|
var generatorStyle:TSGeneratorImageStyle
|
|
|
|
|
|
var progressState = TSProgressState.none
|
|
|
-// init(prompt:String,promptSort:String,imageUrl:String,upLoadImage:UIImage,style:String,generatorStyle:TSGeneratorImageStyle,complete:@escaping ((TSActionInfoModel)->Void)) {
|
|
|
-// self.prompt = prompt
|
|
|
-// self.promptSort = promptSort
|
|
|
-// self.imageUrl = imageUrl
|
|
|
-// self.upLoadImage = upLoadImage
|
|
|
-// self.style = style
|
|
|
-// self.generatorStyle = generatorStyle
|
|
|
-// self.complete = complete
|
|
|
-//
|
|
|
-// super.init()
|
|
|
-// }
|
|
|
|
|
|
+ var isSavePhotoMark:Bool = false
|
|
|
+ var isNeedSavePhoto:Bool {
|
|
|
+ if isSavePhotoMark == false,let _ = imageModel {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ return false
|
|
|
+ }
|
|
|
|
|
|
init(upLoadImage:UIImage,generatorStyle:TSGeneratorImageStyle,complete:@escaping ((TSActionInfoModel)->Void)) {
|
|
|
self.upLoadImage = upLoadImage
|
|
@@ -41,7 +33,6 @@ class TSAIListPhotoGeneratorBaseVC: TSAIPhotoGeneratorBaseVC {
|
|
|
}
|
|
|
|
|
|
lazy var viewModel: TSAIListPhotoGeneratorBaseVM = {
|
|
|
-// let viewModel:TSAIListPhotoGeneratorBaseVM = TSAIListPhotoGeneratorBaseVM(prompt: prompt,upLoadImage:upLoadImage,style: style, generatorStyle: generatorStyle)
|
|
|
let viewModel:TSAIListPhotoGeneratorBaseVM = TSAIListPhotoGeneratorBaseVM(upLoadImage: upLoadImage, generatorStyle: generatorStyle)
|
|
|
return viewModel
|
|
|
}()
|
|
@@ -49,14 +40,12 @@ class TSAIListPhotoGeneratorBaseVC: TSAIPhotoGeneratorBaseVC {
|
|
|
@MainActor required init?(coder: NSCoder) {
|
|
|
fatalError("init(coder:) has not been implemented")
|
|
|
}
|
|
|
-
|
|
|
|
|
|
lazy var generateInView : TSGeneratorloadingView = {
|
|
|
let generateInView = TSGeneratorloadingView()
|
|
|
return generateInView
|
|
|
}()
|
|
|
|
|
|
-
|
|
|
lazy var switchOriginalPictureBtn: UIButton = {
|
|
|
let switchOriginalPictureBtn = UIButton.createButton(image:UIImage(named: "switch_original_picture"))
|
|
|
switchOriginalPictureBtn.addTarget(self, action: #selector(switchOriginalPictureTouchDown), for: .touchDown)
|
|
@@ -65,7 +54,6 @@ class TSAIListPhotoGeneratorBaseVC: TSAIPhotoGeneratorBaseVC {
|
|
|
return switchOriginalPictureBtn
|
|
|
}()
|
|
|
|
|
|
-
|
|
|
override func createView() {
|
|
|
|
|
|
contentView.addSubview(generateInView)
|
|
@@ -75,7 +63,6 @@ class TSAIListPhotoGeneratorBaseVC: TSAIPhotoGeneratorBaseVC {
|
|
|
|
|
|
super.createView()
|
|
|
|
|
|
-
|
|
|
contentView.addSubview(switchOriginalPictureBtn)
|
|
|
switchOriginalPictureBtn.snp.makeConstraints { make in
|
|
|
make.bottom.equalTo(-k_Height_safeAreaInsetsBottom() - 76)
|
|
@@ -84,12 +71,40 @@ class TSAIListPhotoGeneratorBaseVC: TSAIPhotoGeneratorBaseVC {
|
|
|
make.height.equalTo(40)
|
|
|
}
|
|
|
|
|
|
+ bigSaveBtn.setTitleImageSpace(spacing: 0)
|
|
|
}
|
|
|
|
|
|
override func closePage() {
|
|
|
+
|
|
|
if progressState.isResult {
|
|
|
- viewModel.cancelAllRequest()
|
|
|
- self.dismiss(animated: true, completion: nil)
|
|
|
+ if isNeedSavePhoto{
|
|
|
+ TSCustomAlertController.show(in: self, config: TSCustomAlertController.AlertConfig(
|
|
|
+ message: "You haven't saved the photo yet. Are you sure to quit?".localized,
|
|
|
+ messageColor: .white,
|
|
|
+ messageFont: .systemFont(ofSize: 16),
|
|
|
+
|
|
|
+ cancelTitle: "Quit".localized,
|
|
|
+ cancelColor: .white,
|
|
|
+
|
|
|
+ confirmTitle: "Save".localized,
|
|
|
+ confirmColor: .themeColor,
|
|
|
+
|
|
|
+ cancelAction: { [weak self] in
|
|
|
+ guard let self = self else { return }
|
|
|
+ print("用户点击了Leave")
|
|
|
+ viewModel.cancelAllRequest()
|
|
|
+ self.dismiss(animated: true, completion: nil)
|
|
|
+ },
|
|
|
+ confirmAction: { [weak self] in
|
|
|
+ guard let self = self else { return }
|
|
|
+ print("用户点击了Stay")
|
|
|
+ clickSaveBtn()
|
|
|
+ }
|
|
|
+ ))
|
|
|
+ }else{
|
|
|
+ viewModel.cancelAllRequest()
|
|
|
+ self.dismiss(animated: true, completion: nil)
|
|
|
+ }
|
|
|
}else{
|
|
|
TSCustomAlertController.show(in: self, config: TSCustomAlertController.AlertConfig(
|
|
|
message: "As you leave, your generation will be interrupted and no result.".localized,
|
|
@@ -131,8 +146,10 @@ class TSAIListPhotoGeneratorBaseVC: TSAIPhotoGeneratorBaseVC {
|
|
|
//保存功能
|
|
|
@objc override func clickSaveBtn(){
|
|
|
if let image = getSuccessImage() {
|
|
|
- PhotoManagerShared.saveImageToAlbum(image) { success, error in
|
|
|
+ PhotoManagerShared.saveImageToAlbum(image) { [weak self] success, error in
|
|
|
+ guard let self = self else { return }
|
|
|
if success {
|
|
|
+ isSavePhotoMark = true
|
|
|
kSavePhotoSuccesswShared.show(atView:self.view)
|
|
|
}else{
|
|
|
debugPrint(error)
|
|
@@ -153,7 +170,6 @@ class TSAIListPhotoGeneratorBaseVC: TSAIPhotoGeneratorBaseVC {
|
|
|
|
|
|
extension TSAIListPhotoGeneratorBaseVC {
|
|
|
|
|
|
-
|
|
|
func getSuccessImage()->UIImage?{
|
|
|
if let image = netWorkImageView.image {
|
|
|
return image.pngImage
|
|
@@ -231,12 +247,8 @@ extension TSAIListPhotoGeneratorBaseVC {
|
|
|
bottomView.isHidden = false
|
|
|
netWorkImageView.isHidden = false
|
|
|
switchOriginalPictureBtn.isHidden = false
|
|
|
-
|
|
|
- self.netWorkImageView.setAsyncImage(urlString: model.response.resultUrl,placeholder:kPlaceholderImage,backgroundColor:netWorkImageView.backgroundColor!){ [weak self] image in
|
|
|
- guard let self = self else { return }
|
|
|
-
|
|
|
- netWorkImageView.adaptiveScale()
|
|
|
- }
|
|
|
+ isSavePhotoMark = false
|
|
|
+ self.netWorkImageView.setAsyncImage(urlString: model.response.resultUrl,placeholder:kPlaceholderImage,backgroundColor:netWorkImageView.backgroundColor!)
|
|
|
|
|
|
kPurchaseDefault.useOnceForFree(type: .picToPic)
|
|
|
if let model = imageModel {
|
|
@@ -250,8 +262,6 @@ extension TSAIListPhotoGeneratorBaseVC {
|
|
|
|
|
|
@objc func switchOriginalPictureTouchUp() {
|
|
|
guard let imageModel = imageModel else { return }
|
|
|
- self.netWorkImageView.setAsyncImage(urlString: imageModel.response.resultUrl,placeholder:kPlaceholderImage,backgroundColor:netWorkImageView.backgroundColor!){ [weak self] image in
|
|
|
- guard let self = self else { return }
|
|
|
- }
|
|
|
+ self.netWorkImageView.setAsyncImage(urlString: imageModel.response.resultUrl,placeholder:kPlaceholderImage,backgroundColor:netWorkImageView.backgroundColor!)
|
|
|
}
|
|
|
}
|