123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- //
- // KMNBetaFeedbackManager.swift
- // PDF Reader Pro Beta
- //
- // Created by kdanmobile on 2025/3/3.
- //
- import Cocoa
- class KMNBetaFeedbackManager: NSObject {
- static let defalutManager = KMNBetaFeedbackManager()
-
- public var isSupportOpenApp = false
-
- private var _isHaveFeedback: Bool = false
-
- public var isHaveFeedback: Bool {
- get {
- if KMMemberInfo.shared.isLogin {
- return _isHaveFeedback
- } else {
- return false
- }
- }
- set {
- _isHaveFeedback = newValue
- }
- }
-
- private var isHaveFeedbackRequested = false
-
- func betaConfigAction(complete: @escaping KMMemberCenterComplete) {
- if KMMemberCenterManager.manager.isConnectionAvailable() == false {
- let alert = NSAlert()
- alert.alertStyle = .critical
- alert.messageText = KMLocalizedString("Error Information", comment: "")
- alert.informativeText = KMLocalizedString("Please make sure your internet connection is available.", comment: "")
- alert.addButton(withTitle: KMLocalizedString("OK", comment: ""))
- alert.runModal()
- complete(false, nil)
- return
- }
-
-
- let urlString = KMMemberCenterConfig().activityBaseURL() + kURLAPI_memberSystem_beta_settings
- KMRequestServer.requestServer.request(urlString: urlString, method: .get, params: nil) { requestSerializer in
-
- } completion: { task, responseObject, error in
- var dic: NSDictionary = [:]
- if error == nil, let responseObject = responseObject as? NSDictionary {
- dic = responseObject
- } else {
- var info = responseObject
- if let error = error {
- if let data = error.userInfo["com.alamofire.serialization.response.error.data"] as? Data {
- info = try? JSONSerialization.jsonObject(with: data, options: .mutableLeaves) as? NSDictionary
- }
- }
- dic = (info as? NSDictionary) ?? [:]
- }
-
- let code: Int = dic["code"] as? Int ?? 0
- var isValid: Bool = false
- if let result = dic["result"] as? NSDictionary {
- isValid = result["isValid"] as? Bool ?? false
- }
- let message: String = dic["msg"] as? String ?? ""
-
- self.isSupportOpenApp = isValid
-
- let result = KMMemberCenterResult(code: code, msg: message, result: isValid)
- if code == 200 {
- complete(true, result)
- } else {
- complete(false, result)
-
- }
- }
- }
-
- func havingFeekbackAction(complete: @escaping KMMemberCenterComplete) {
- if KMMemberCenterManager.manager.isConnectionAvailable() == false {
- let alert = NSAlert()
- alert.alertStyle = .critical
- alert.messageText = KMLocalizedString("Error Information", comment: "")
- alert.informativeText = KMLocalizedString("Please make sure your internet connection is available.", comment: "")
- alert.addButton(withTitle: KMLocalizedString("OK", comment: ""))
- alert.runModal()
- complete(false, nil)
- return
- }
-
- if(isHaveFeedbackRequested) {
- complete(true,nil)
- }
-
- KMRequestServer.Member_POST(url: kURLAPI_memberSystem_beta_haveFeedback, params: nil) { success, resultModel, error in
- if(success) {
- self._isHaveFeedback = resultModel?.result ?? false
- self.isHaveFeedbackRequested = true
- complete(true, nil)
- } else {
- complete(false, nil)
- }
-
- }
- }
-
-
- func feekbackAction(filePaths: [String],content:String,complete: @escaping KMMemberCenterComplete) {
-
- if filePaths.count <= 0 || content.isEmpty == true {
- return
- }
-
- if KMMemberCenterManager.manager.isConnectionAvailable() == false {
- let alert = NSAlert()
- alert.alertStyle = .critical
- alert.messageText = KMLocalizedString("Error Information", comment: "")
- alert.informativeText = KMLocalizedString("Please make sure your internet connection is available.", comment: "")
- alert.addButton(withTitle: KMLocalizedString("OK", comment: ""))
- alert.runModal()
- return
- }
-
- var fileDatas: [Data] = []
- for filePath in filePaths {
- if let fileData = FileManager.default.contents(atPath: filePath) {
- fileDatas.append(fileData)
- }
- }
-
- let (major, minor, bugFix) = KMTools.getSystemVersion()
- let versionInfoString = "\(KMTools.getRawSystemInfo()) - \(major).\(minor).\(bugFix)"
-
- let params: [String : Any] = [
- "version" : versionInfoString,
- "content" : content,
- "files[]" : fileDatas,
- "email" : KMMemberInfo.shared.userEmail]
- KMRequestServer.Member_POST(url: kURLAPI_memberSystem_beta_feedbackSubmit, params: params) { success, resultModel, error in
-
-
- }
- }
- }
|