TSGeneralRintoneVC+Event.swift 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. //
  2. // TSGeneralRintoneVC+Event.swift
  3. // AIRingtone
  4. //
  5. // Created by 100Years on 2025/3/6.
  6. //
  7. extension UIViewController {
  8. // func findFirstTransitionView() -> UIView? {
  9. // var currentView = self.view
  10. // while currentView != nil {// 判断当前视图是否是 UITransitionView
  11. // if String(describing: type(of: currentView!)) == "UITransitionView" {
  12. // return currentView
  13. // }
  14. // currentView = currentView?.superview
  15. // }
  16. // return nil // 如果没有找到,返回 nil
  17. // }
  18. }
  19. extension TSGeneralRintoneVC {
  20. var resultIcon:UIImage?{
  21. return UIImage(named: "ai_rintone_icon")
  22. }
  23. func updateInfoModel(model:TSActionInfoModel?){
  24. if let model = model {
  25. infoModel = model
  26. complete(model)
  27. setRingViewData(model: model)
  28. }
  29. }
  30. // func hiddenSelfVC(hidden:Bool){
  31. // self.view.isHidden = hidden
  32. // findFirstTransitionView()?.isHidden = hidden
  33. // }
  34. }
  35. extension TSGeneralRintoneVC {
  36. func upDateView(state:TSProgressState,model:TSActionInfoModel?){
  37. updateInfoModel(model: model)
  38. switch state {
  39. case .failed(let errorStr):
  40. audioPlayer.stop()
  41. // hiddenSelfVC(hidden: false)
  42. showError(text: errorStr)
  43. case .success:
  44. audioPlayer.stop()
  45. // hiddenSelfVC(hidden: false)
  46. if let model = model {
  47. showSuccess(model: model)
  48. }else{
  49. showError(text: nil)
  50. }
  51. case .progressString(let string):
  52. showProgress(text: string)
  53. default:
  54. showLoading()
  55. }
  56. }
  57. func showProgress(text:String) {
  58. generateInView.isHidden = false
  59. generateInView.showLoading(text: text)
  60. generateInView.isRotating = true
  61. bottomView.isHidden = true
  62. isClickTheBlankClosePage = false
  63. }
  64. func showLoading(){
  65. generateInView.isHidden = false
  66. generateInView.showLoading(text: "Working on your ringtone...".localized)
  67. generateInView.isRotating = true
  68. bottomView.isHidden = true
  69. isClickTheBlankClosePage = false
  70. }
  71. func showError(text:String?){
  72. let msg = "Failed to Generate, please try later".localized
  73. generateInView.isHidden = true
  74. generateInView.isRotating = false
  75. bottomView.isHidden = false
  76. againBtn.isHidden = false//重试
  77. failView.isHidden = false
  78. // failLabel.text = msg
  79. saveBtn.isHidden = true
  80. successTopView.isHidden = true
  81. ringView.isHidden = true
  82. regenerateBtn.isHidden = true
  83. isClickTheBlankClosePage = true
  84. }
  85. func showSuccess(model:TSActionInfoModel){
  86. generateInView.isHidden = true
  87. generateInView.isRotating = false
  88. bottomView.isHidden = false
  89. againBtn.isHidden = true//重试
  90. failView.isHidden = true
  91. saveBtn.isHidden = false
  92. successTopView.isHidden = false
  93. infoModel = model
  94. isClickTheBlankClosePage = true
  95. ringView.isHidden = false
  96. regenerateBtn.isHidden = false
  97. }
  98. }