Przeglądaj źródła

feat: 补充用户语言码上传

陈文艺 2 miesięcy temu
rodzic
commit
c4e2ea2a31

+ 7 - 0
Lanu/AppDelegate.swift

@@ -35,6 +35,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
         if let url = launchOptions?[.url] as? URL {
             LNDeeplinkManager.shared.handleDeepLink(url)
         }
+        reportLanguage()
         
         return true
     }
@@ -54,6 +55,12 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
     }
 }
 
+extension AppDelegate {
+    private func reportLanguage() {
+        LNProfileManager.shared.reportCurrentLanguage(code: LNAppConfig.shared.curLang.languageCode) { _ in }
+    }
+}
+
 extension AppDelegate {
     private func setupFirebase() {
 #if DEBUG

+ 8 - 0
Lanu/Common/Config/LNAppConfig.swift

@@ -41,6 +41,14 @@ enum LNAppLanguage: Codable {
         }
     }
     
+    var languageCode: String {
+        switch self {
+        case .chiness: "zh"
+        case .english: "en"
+        case .indonesian: "id"
+        }
+    }
+    
     var countryCode: String {
         switch self {
         case .chiness: "CN"

+ 12 - 0
Lanu/Manager/Profile/LNProfileManager.swift

@@ -198,6 +198,18 @@ extension LNProfileManager {
     }
 }
 
+extension LNProfileManager {
+    func reportCurrentLanguage(code: String,
+                               queue: DispatchQueue = .main,
+                               handler: @escaping (Bool) -> Void) {
+        LNHttpManager.shared.reportCurrentLanguage(code: code) { err in
+            queue.asyncIfNotGlobal {
+                handler(err == nil)
+            }
+        }
+    }
+}
+
 extension LNProfileManager: LNAccountManagerNotify {
     func onUserLogin() {
         reloadMyProfile()

+ 10 - 0
Lanu/Manager/Profile/Network/LNHttpManager+Profile.swift

@@ -21,6 +21,8 @@ private let kNetPath_Profile_Online = "/user/getUsersOnlineState"
 private let kNetPath_Profile_Bind_Captcha = "/user/bind/mobile/sendCode"
 private let kNetPath_Profile_Bind_Phone = "/user/bind/mobile"
 
+private let kNetPath_Report_Language = "/user/set/appLocaleLangSet"
+
 class LNProfileUpdateConfig {
     var avatar: String?
     var nickName: String?
@@ -112,3 +114,11 @@ extension LNHttpManager {
         ], completion: completion)
     }
 }
+
+extension LNHttpManager {
+    func reportCurrentLanguage(code: String, completion: @escaping (LNHttpError?) -> Void) {
+        post(path: kNetPath_Report_Language, params: [
+            "langCode": code
+        ], completion: completion)
+    }
+}

+ 2 - 0
Lanu/SceneDelegate.swift

@@ -94,6 +94,8 @@ extension SceneDelegate: LNAppMainEvent {
         let nav = LNNavigationController(rootViewController: LNMainViewController())
         window?.rootViewController = nav
         nav.viewControllers.append(LNSettingsViewController())
+        
+        LNProfileManager.shared.reportCurrentLanguage(code: newLanguage.languageCode) { _ in }
     }
 }