local VersionUpdate_Model = {} local private = {} local EventSystem = require("Event/EventSystem") local version_update_pb = require 'Proto.version_update_pb' function VersionUpdate_Model.OnStartup() NetManager.RegisterMsgCB(MessageEnums.MessageVersionUpdateGetReward, private.RewardResponse) private.state = version_update_pb.State_No private.version = nil private.rewardItems = nil end function VersionUpdate_Model.OnShutdown() private.version = nil private.rewardItems = nil end function VersionUpdate_Model.SetUpdateInfos(info) if IsServerDataNotNil(info) then local isLogin = private.version == nil private.state = info.state private.version = info.version private.rewardItems = info.rewardItems if not isLogin and private.state == version_update_pb.State_Need_Update then -- 清除当前时间戳 重新显示红点 CTL.VersionUpdate.ClearRpTimestamp() end EventSystem.Dispatch(EventID.VersionUpdate) end end function VersionUpdate_Model.RewardRequest() local msg = version_update_pb.VersionUpdateGetRewardReq() NetManager.SendMessage(MessageEnums.MessageVersionUpdateGetReward, msg) end function private.RewardResponse(msgResp) if msgResp.success then private.state = version_update_pb.State_Get EventSystem.Dispatch(EventID.VersionUpdate) end end function VersionUpdate_Model.GetItemByIndex(index) return private.rewardItems and private.rewardItems[index] or nil end function VersionUpdate_Model.GetState() return private.state end function VersionUpdate_Model.IsOpen() return private.state == version_update_pb.State_Updated or private.state == version_update_pb.State_Need_Update end function VersionUpdate_Model.IsHasAvailableRewards() return private.state == version_update_pb.State_Updated end return VersionUpdate_Model