|
FuliDownloadView = FuliDownloadView or BaseClass(BaseItem)
|
|
local FuliDownloadView = FuliDownloadView
|
|
|
|
function FuliDownloadView:__init()
|
|
self.base_file = "fuli"
|
|
self.layout_file = "FuliDownloadView"
|
|
self.model = FuliModel:GetInstance()
|
|
self.stepPackModule = StepPackModule:getInstance()
|
|
self.Progress_width = 300
|
|
self.download_state = 0
|
|
|
|
self:Load()
|
|
end
|
|
|
|
function FuliDownloadView:Load_callback()
|
|
self.nodes = {
|
|
"text1:tmp","text3:tmp","progress_text:tmp","reward_scroll","reward_scroll/Viewport/reward_con",
|
|
"download_btn_text:tmp","get_btn_red:obj","progress_image/proEndImg",
|
|
"get_btn/get_btn_text:tmp","text2:tmp","download_btn:obj:img","progress_image:img","get_btn:obj:img",
|
|
}
|
|
self:GetChildren(self.nodes)
|
|
self.text1_tmp.text = "未更新资源显示为小黑影,下载后自动更新"
|
|
self.text2_tmp.text = "下载资源过大,建议在WIFI环境下进行"
|
|
self.text3_tmp.text = "资源下载完毕后,可领取<color=#fdffc2>丰厚奖励</color>"
|
|
self.progress_image_img.fillAmount = 0
|
|
|
|
self:UpdateProDesc()--初始化
|
|
self:AddEvents()
|
|
if self.need_refreshData then
|
|
self:UpdateView()
|
|
end
|
|
end
|
|
|
|
function FuliDownloadView:UpdateProDesc( state )
|
|
-- 状态: 0 未开始 1 暂停 2 下载中 3 已下载完成
|
|
local state = state or self.stepPackModule:CurrentPackState()
|
|
local progress_text = "未开始"
|
|
if state == 1 then
|
|
progress_text = "暂停"
|
|
elseif state == 2 then
|
|
progress_text = "下载中"
|
|
elseif state == 3 then
|
|
progress_text = "已下载完成"
|
|
self.progress_image_img.fillAmount = 1
|
|
end
|
|
self.progress_text_tmp.text = progress_text
|
|
end
|
|
|
|
function FuliDownloadView:AddEvents( )
|
|
local function click_receive( )
|
|
if self.download_state == 3 then
|
|
self.model:Fire(FuliConst.REQ_FULI_SCMD, 16008)
|
|
else
|
|
Message.show("请先等待资源下载完成哦~")
|
|
end
|
|
end
|
|
AddClickEvent(self.get_btn_obj,click_receive)
|
|
|
|
local function click_down()
|
|
if self.download_state == 0 then
|
|
if not StepPackModule:getInstance():IsSupport() then
|
|
Message.show("没有资源可下载喔")
|
|
return
|
|
end
|
|
self.stepPackModule:Start()
|
|
if self.stepPackModule:IsResCheckState() then
|
|
Message.show("资源更新检测中,请稍后")
|
|
end
|
|
elseif self.download_state == 1 then
|
|
self.stepPackModule:SetPauseState(false)
|
|
elseif self.download_state == 2 then
|
|
self.stepPackModule:SetPauseState(true)
|
|
end
|
|
self:UpdateProDesc()
|
|
self:SetDownState(self.stepPackModule:CurrentPackState())
|
|
end
|
|
AddClickEvent(self.download_btn_obj,click_down)
|
|
|
|
local function update_resourse_state(now_size,all_size,speed,isdone)
|
|
self:UpdateProgressBar(speed,now_size,all_size,isdone)
|
|
end
|
|
self.speed_event = self.model:Bind(FuliConst.SHOW_FULI_DOWN_RES_NUM, update_resourse_state)
|
|
|
|
local function on_update_view( )
|
|
self:UpdateView()
|
|
end
|
|
self.on_update_view_id = self.model:BindOne("fuli_download_state", on_update_view)
|
|
end
|
|
|
|
function FuliDownloadView:UpdateView( )
|
|
local ret = self.model.cur_down_load or 0
|
|
self.progress_image_img.fillAmount = ret
|
|
SetAnchoredPositionX(self.proEndImg,ret*436)
|
|
self:UpdateProDesc()
|
|
|
|
self:SetDownState(self.stepPackModule:CurrentPackState())
|
|
local get_state = self.model:GetFuliDownState()
|
|
if get_state == 0 and self.download_state == 3 then
|
|
get_state = 2
|
|
end
|
|
self:SetReceiveState(get_state)--0没领 1已领 2可领
|
|
self:ShowReward()
|
|
end
|
|
|
|
function FuliDownloadView:ShowReward( )
|
|
if not self.item_list_com then
|
|
self.item_list_com = self:AddUIComponent(UI.ItemListCreator)
|
|
end
|
|
self.item_list_com:Reset()
|
|
local reward = stringtotable(Config.Welfarekv["download_award"].value_content)
|
|
local info = {
|
|
data_list = reward,
|
|
item_con = self.reward_con,
|
|
scroll_view = self.reward_scroll,
|
|
obj_pool_type = UIObjPool.UIType.AwardItem,
|
|
item_width = 84,
|
|
space_x = 8,
|
|
space_y = 4,
|
|
-- start_x = 20,
|
|
create_frequency = 0,
|
|
on_update_item = function(item, i, v)
|
|
item:SetData(v[2], v[3], nil, nil)
|
|
item:SetItemSize(84, 84)
|
|
end,
|
|
}
|
|
self.item_list_com:UpdateItems(info)
|
|
end
|
|
|
|
-- 状态: 0 未开始 1 暂停 2 下载中 3 已下载完成
|
|
function FuliDownloadView:SetDownState(state)
|
|
self.download_state = state
|
|
if state == 0 then
|
|
self.download_btn_text_tmp.text = "点击下载"
|
|
elseif state == 1 then
|
|
self.download_btn_text_tmp.text = "继续下载"
|
|
elseif state == 2 then
|
|
self.download_btn_text_tmp.text = "暂停下载"
|
|
elseif state == 3 then
|
|
self.download_btn_text_tmp.text = HtmlColorTxt("下载完成",ColorUtil.GRAY_DARK)
|
|
end
|
|
SetImageGray(self.download_btn_img,(state == 3 or not StepPackModule:getInstance():IsSupport()))
|
|
end
|
|
|
|
function FuliDownloadView:SetData( data )
|
|
self.data = data
|
|
if self.is_loaded then
|
|
self.need_refreshData = false
|
|
self:UpdateView()
|
|
else
|
|
self.need_refreshData = true
|
|
end
|
|
end
|
|
|
|
function FuliDownloadView:UpdateProgressBar(speed,now_size,all_size,isdone)--进度条系数,速度,当前下载量,总下载量
|
|
if isdone then
|
|
self.progress_image_img.fillAmount = 1
|
|
self:SetDownState(3)
|
|
self:SetReceiveState(2)
|
|
self:UpdateProDesc(3)
|
|
return
|
|
end
|
|
|
|
if self.download_state == 2 then
|
|
local speed_str = "0 Kb/s"
|
|
if tonumber(speed) > 1024 then
|
|
speed_str = self:ByteKilo2Mega(speed,1) .. "M/s"
|
|
else
|
|
speed_str = speed .. "Kb/s"
|
|
end
|
|
local value = now_size/all_size
|
|
self.progress_image_img.fillAmount = value
|
|
self.model.cur_down_load = value
|
|
now_size = self:ByteKilo2Mega(now_size,0) .. "M"
|
|
all_size = self:ByteKilo2Mega(all_size,0) .. "M"
|
|
self.progress_text_tmp.text = string.format("%s / %s <color=#a9c1e1>(%s)</color>",now_size,all_size,speed_str)
|
|
SetAnchoredPositionX(self.proEndImg,value*436)
|
|
else
|
|
self:UpdateProDesc()
|
|
end
|
|
end
|
|
|
|
function FuliDownloadView:ByteKilo2Mega(nNum,n)
|
|
nNum = tonumber(nNum)
|
|
nNum = nNum/1024
|
|
local fmt = "%." .. n .. "f"
|
|
local nRet = string.format(fmt, nNum)
|
|
return nRet
|
|
end
|
|
|
|
function FuliDownloadView:SetReceiveState( get_state )
|
|
SetImageGray(self.get_btn_img,true)
|
|
if get_state == 0 then
|
|
self.get_btn_red_obj:SetActive(false)
|
|
self.get_btn_text_tmp.text = "未达到"
|
|
SetTMPSharedMaterial(self.get_btn_text_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
|
|
elseif get_state == 1 then
|
|
self.get_btn_red_obj:SetActive(false)
|
|
self.get_btn_text_tmp.text = "已领取"
|
|
SetTMPSharedMaterial(self.get_btn_text_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
|
|
elseif get_state == 2 then
|
|
SetImageGray(self.get_btn_img,false)
|
|
self.get_btn_text_tmp.text = "领取"
|
|
self.get_btn_red_obj:SetActive(true)
|
|
SetTMPSharedMaterial(self.get_btn_text_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
|
|
end
|
|
end
|
|
|
|
function FuliDownloadView:__delete( )
|
|
if self.speed_event then
|
|
self.model:UnBind(self.speed_event)
|
|
self.speed_event = nil
|
|
end
|
|
if self.on_update_view_id then
|
|
self.model:UnBind(self.on_update_view_id)
|
|
self.on_update_view_id = nil
|
|
end
|
|
end
|