|
@@ -1,249 +0,0 @@
|
|
|
-//
|
|
|
-// TSAIPhotoDetailsVC.swift
|
|
|
-// TSLiveWallpaper
|
|
|
-//
|
|
|
-// Created by 100Years on 2025/6/11.
|
|
|
-//
|
|
|
-
|
|
|
-class TSAIPhotoDetailsVC: TSBaseVC {
|
|
|
- var deleteBlock:(()->Void)?
|
|
|
- var infoModel:TSActionInfoModel?{
|
|
|
- didSet{
|
|
|
- updateImageView()
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- lazy var bottomViewH = 60+k_Height_safeAreaInsetsBottom()
|
|
|
- lazy var panComparisonView : TSImageIPanComparisonView = {
|
|
|
- let panComparisonView = TSImageIPanComparisonView()
|
|
|
- return panComparisonView
|
|
|
- }()
|
|
|
-
|
|
|
- lazy var expandAreaView: TSAIExpandChangeView = {
|
|
|
- let view = TSAIExpandChangeView()
|
|
|
- return view
|
|
|
- }()
|
|
|
-
|
|
|
- lazy var switchOriginalPictureBtn: TSUIExpandedTouchButton = {
|
|
|
- let switchOriginalPictureBtn = TSUIExpandedTouchButton()
|
|
|
- switchOriginalPictureBtn.setUpButton(image:UIImage(named: "switch_original_picture"))
|
|
|
- switchOriginalPictureBtn.addTarget(self, action: #selector(switchOriginalPictureTouchDown), for: .touchDown)
|
|
|
- switchOriginalPictureBtn.addTarget(self, action: #selector(switchOriginalPictureTouchUp), for: [.touchUpInside, .touchUpOutside, .touchCancel])
|
|
|
- switchOriginalPictureBtn.isHidden = true
|
|
|
- return switchOriginalPictureBtn
|
|
|
- }()
|
|
|
-
|
|
|
-// lazy var rotatingPictureBtn: TSUIExpandedTouchButton = {
|
|
|
-// let rotatingPictureBtn = TSUIExpandedTouchButton()
|
|
|
-// rotatingPictureBtn.setUpButton(image:UIImage(named: "rotating_picture")){ [weak self] in
|
|
|
-// guard let self = self else { return }
|
|
|
-// //旋转图片并储存
|
|
|
-// if let image = netWorkImageView.image?.rotated(by: .degrees90) {
|
|
|
-// netWorkImageView.image = image
|
|
|
-// if let resultUrl = self.infoModel?.response.resultUrl,
|
|
|
-// let url = URL(string: resultUrl){
|
|
|
-// ImageCache.default.store(image, forKey: url.cacheKey)
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// rotatingPictureBtn.isHidden = true
|
|
|
-// return rotatingPictureBtn
|
|
|
-// }()
|
|
|
-
|
|
|
-
|
|
|
- lazy var saveBtn: UIButton = {
|
|
|
- let saveBtn = kCreateNormalSubmitBtn(title: "Save".localized) { [weak self] in
|
|
|
- guard let self = self else { return }
|
|
|
- clickSaveBtn()
|
|
|
- }
|
|
|
- return saveBtn
|
|
|
- }()
|
|
|
-
|
|
|
- var navRightBtn:UIButton = UIButton()
|
|
|
- override func createView() {
|
|
|
-
|
|
|
- let imageView = UIImageView.createImageView(image: .navShadow,contentMode: .scaleToFill)
|
|
|
- navBarContentView.addSubview(imageView)
|
|
|
- imageView.snp.makeConstraints { make in
|
|
|
- make.edges.equalToSuperview()
|
|
|
- }
|
|
|
-
|
|
|
- addNormalNavBarView()
|
|
|
- setPageTitle("Result".localized)
|
|
|
- navRightBtn = setNavigationItem("", imageName: "ai_delete", direction: .right, action: #selector(clickNavRight))
|
|
|
- contentView.snp.updateConstraints { make in
|
|
|
- make.top.equalTo(0)
|
|
|
- }
|
|
|
-
|
|
|
- contentView.addSubview(panComparisonView)
|
|
|
- panComparisonView.snp.makeConstraints { make in
|
|
|
- make.height.equalTo(k_ScreenHeight)
|
|
|
- make.leading.trailing.equalTo(0)
|
|
|
- make.centerY.equalToSuperview()
|
|
|
- }
|
|
|
-
|
|
|
- contentView.addSubview(saveBtn)
|
|
|
- saveBtn.snp.makeConstraints { make in
|
|
|
- make.centerX.equalToSuperview()
|
|
|
- make.width.equalTo(250*kDesignScale)
|
|
|
- make.height.equalTo(48)
|
|
|
- make.bottom.equalTo(-12-k_Height_safeAreaInsetsBottom())
|
|
|
- }
|
|
|
-
|
|
|
- contentView.addSubview(switchOriginalPictureBtn)
|
|
|
- switchOriginalPictureBtn.snp.makeConstraints { make in
|
|
|
- make.bottom.equalTo(-k_Height_safeAreaInsetsBottom() - 76)
|
|
|
- make.trailing.equalTo(-16)
|
|
|
- make.width.equalTo(40)
|
|
|
- make.height.equalTo(40)
|
|
|
- }
|
|
|
-
|
|
|
-// contentView.addSubview(rotatingPictureBtn)
|
|
|
-// rotatingPictureBtn.snp.makeConstraints { make in
|
|
|
-// make.bottom.equalTo(-k_Height_safeAreaInsetsBottom() - 76)
|
|
|
-// make.trailing.equalTo(-16)
|
|
|
-// make.width.equalTo(40)
|
|
|
-// make.height.equalTo(40)
|
|
|
-// }
|
|
|
-
|
|
|
- saveBtn.setTitleImageSpace(spacing: 0)
|
|
|
-
|
|
|
-// if viewModel.generatorModel.generatorStyle == .photoExpand {
|
|
|
-// setUpExpandAreaView()
|
|
|
-// }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-// func setUpExpandAreaView(){
|
|
|
-// netWorkImageView.addSubview(expandAreaView)
|
|
|
-// expandAreaView.snp.makeConstraints { make in
|
|
|
-// make.top.leading.trailing.bottom.equalTo(0)
|
|
|
-// }
|
|
|
-//
|
|
|
-// expandAreaView.showImageView.isHidden = true
|
|
|
-// expandAreaView.boardView.isHidden = true
|
|
|
-//
|
|
|
-// if let sizes = self.viewModel.generatorModel.expandViewSizes {
|
|
|
-// expandAreaView.updateExpandAreaView(width: sizes.0.width, height: sizes.0.height)
|
|
|
-// expandAreaView.updateImageView(width: sizes.1.width, height: sizes.1.height)
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
- //保存功能
|
|
|
- @objc func clickSaveBtn(){
|
|
|
- guard let infoModel = infoModel else { return }
|
|
|
-// if viewModel.generatorModel.generatorStyle == .photoLive{
|
|
|
-// TSDownloadManager.getDownLoadVideo(urlString: infoModel.response.resultUrl) { url, success in
|
|
|
-// if let url = url {
|
|
|
-// PhotoManagerShared.saveVideoToAlbum(videoURL: url) { [weak self] success, error in
|
|
|
-// guard let self = self else { return }
|
|
|
-// if success {
|
|
|
-// isSavePhotoMark = true
|
|
|
-// kSaveSuccesswShared.show(atView:self.view)
|
|
|
-// }else{
|
|
|
-// debugPrint(error)
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }else{
|
|
|
- TSImageStoreTool.downloadImageWithProgress(urlString: infoModel.response.resultUrl) { image in
|
|
|
- if let image = image {
|
|
|
- PhotoManagerShared.saveImageToAlbum(image) { [weak self] success, error in
|
|
|
- guard let self = self else { return }
|
|
|
- if success {
|
|
|
- kSaveSuccesswShared.show(atView:self.view)
|
|
|
- }else{
|
|
|
- debugPrint(error)
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-// }
|
|
|
- }
|
|
|
-
|
|
|
- override func navBarClickLeftAction() {
|
|
|
- dismiss(animated: true)
|
|
|
- }
|
|
|
-
|
|
|
- @objc func clickNavRight() {
|
|
|
-
|
|
|
- TSCustomAlertController.show(in: self, config: TSCustomAlertController.AlertConfig(
|
|
|
- message: "Are you sure to delete?".localized,
|
|
|
- cancelTitle: "Delete".localized,
|
|
|
- cancelColor: .red,
|
|
|
- confirmTitle: "Retain".localized,
|
|
|
- confirmColor: .white,
|
|
|
- cancelAction: { [weak self] in
|
|
|
- guard let self = self else { return }
|
|
|
- self.deleteBlock?()
|
|
|
- self.navBarClickLeftAction()
|
|
|
- }
|
|
|
- ))
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-extension TSAIPhotoDetailsVC {
|
|
|
-
|
|
|
-
|
|
|
- func updateImageView(){
|
|
|
-
|
|
|
- kMainAsync {
|
|
|
- self.uploadPanComparisonView()
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-// self.netWorkImageView.setAsyncImage(urlString:infoModel.response.resultUrl,placeholder:kPlaceholderImage)
|
|
|
- }
|
|
|
-
|
|
|
- func uploadPanComparisonView(){
|
|
|
- guard let infoModel = infoModel else { return }
|
|
|
- DispatchQueue.global(qos: .userInitiated).async {
|
|
|
- var oldImage:UIImage?
|
|
|
- var newImage:UIImage?
|
|
|
- let grounp = DispatchGroup()
|
|
|
- grounp.enter()
|
|
|
- TSImageStoreTool.downloadImageWithProgress(urlString: infoModel.request.imageUrl) { image in
|
|
|
- grounp.leave()
|
|
|
- oldImage = image
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- grounp.enter()
|
|
|
- TSImageStoreTool.downloadImageWithProgress(urlString: infoModel.response.resultUrl) { image in
|
|
|
- grounp.leave()
|
|
|
- newImage = image
|
|
|
- }
|
|
|
-
|
|
|
- grounp.notify(queue: .main) {
|
|
|
- if let oldImage = oldImage,let newImage = newImage {
|
|
|
- let size = oldImage.size.height > newImage.size.height ? oldImage.size : newImage.size
|
|
|
- self.panComparisonView.snp.updateConstraints { make in
|
|
|
- make.height.equalTo(kGetUIWdith(designSize: size, currentW: k_ScreenWidth))
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- self.panComparisonView.configure(oldImage: oldImage, newImage: newImage)
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- @objc func switchOriginalPictureTouchDown() {
|
|
|
-// if viewModel.generatorModel.generatorStyle == .photoExpand {
|
|
|
-// expandAreaView.onlyBgImage(only: false)
|
|
|
-// }else{
|
|
|
-// guard let infoModel = infoModel else { return }
|
|
|
-// self.netWorkImageView.setAsyncImage(urlString: infoModel.request.imageUrl,placeholder:kPlaceholderImage)
|
|
|
-// }
|
|
|
- }
|
|
|
-
|
|
|
- @objc func switchOriginalPictureTouchUp() {
|
|
|
- guard let infoModel = infoModel else { return }
|
|
|
-
|
|
|
-// if viewModel.generatorModel.generatorStyle == .photoExpand {
|
|
|
-// expandAreaView.onlyBgImage(only: true)
|
|
|
-// }else{
|
|
|
-// self.netWorkImageView.setAsyncImage(urlString:infoModel.response.resultUrl,placeholder:kPlaceholderImage)
|
|
|
-// }
|
|
|
- }
|
|
|
-}
|