local PreDownloadJP_Model = {} local private = {} local EventSystem = require('Event/EventSystem') local JSON = require("cjson") PreDownloadJP_Model.VersionGiftState = { NoOpen = 0, -- 未开启 Send = 2, -- 已领取 } private.DeviceType = { IOS = 1, -- IOS设备 Android = 2, -- Android设备 } function PreDownloadJP_Model.OnStartup() NetManager.RegisterMsgCB(MessageEnums.MessageJapanUpdateVersion, private.JapanUpdateVersionResp) private.JapanUpdate = nil private.PreHotfixState = PreDownloadJP_Model.VersionGiftState.NoOpen private.ServePreHotfixCode = "" end ---------- start 协议相关 start ---------- function PreDownloadJP_Model.SyncJapanUpdate(japanUpdate) private.JapanUpdate = japanUpdate -- 日本预下载设置(每次重新获取公告时 重置非wifi下载状态) CTL.PreDownloadJP.ReSetWifiCanHotFixState() end function PreDownloadJP_Model.JapanUpdateVersionReq(giftState, updateVer) local msg = NetManager.GetPB("japan_update_opt_pb").JapanUpdateVersionReq() msg.updateVer = updateVer msg.giftState = giftState if UNITY_IOS then msg.deviceType = private.DeviceType.IOS else msg.deviceType = private.DeviceType.Android end NetManager.SendMessage(MessageEnums.MessageJapanUpdateVersion, msg) end function private.JapanUpdateVersionResp(msgResp) if msgResp.Resp.Code == 0 then private.PreHotfixState = msgResp.giftState if UNITY_IOS then private.ServePreHotfixCode = msgResp.iosUpdateVer else private.ServePreHotfixCode = msgResp.androidUpdateVer end EventSystem.Dispatch(EventID.PreDownloadJP_ShowRedPoint) end end function PreDownloadJP_Model.SyncPreHotfixState(msg) if not GameAppInfo.IsJapanesePackage() then return end private.PreHotfixState = msg.giftState if UNITY_IOS then private.ServePreHotfixCode = msg.iosUpdateVer else private.ServePreHotfixCode = msg.androidUpdateVer end if CTL.PreDownloadJP.IsPreHotfixFinish() then local preHotfixCode = CTL.HotFix.GetPreHotfixCode() if preHotfixCode and preHotfixCode ~= "0" then if private.PreHotfixState == MDL.PreDownloadJP.VersionGiftState.NoOpen or PreDownloadJP_Model.GetServePreHotfixCode() ~= preHotfixCode then MDL.PreDownloadJP.JapanUpdateVersionReq(MDL.PreDownloadJP.VersionGiftState.Send, preHotfixCode) end end end EventSystem.Dispatch(EventID.PreDownloadJP_ShowRedPoint) end ---------- end 协议相关 end ---------- function PreDownloadJP_Model.IsShowRp() if CTL.PreDownloadJP.CanShowPreDownloadJP() then -- 未下载 if PersistentData.PlayerData then local curPreHotfixCode = CTL.HotFix.GetPreHotfixCode() if (not string.isNilOrEmpty(curPreHotfixCode)) and curPreHotfixCode ~= PersistentData.PlayerData:Get(CTL.PreDownloadJP.LastPreHotfixCode, "0") then return true end end end return false end function PreDownloadJP_Model.GetJapanUpdateContent() if private.JapanUpdate then local lua_value = JSON.decode(private.JapanUpdate.Body) return lua_value.Content end return nil end function PreDownloadJP_Model.GetPreHotfixState() return private.PreHotfixState end function PreDownloadJP_Model.GetServePreHotfixCode() return private.ServePreHotfixCode end return PreDownloadJP_Model