2025-06-04 05:02:57 +08:00

144 lines
3.7 KiB
Plaintext

local baseCell = autoImport("BaseCell")
PictureWallCell = class("PictureWallCell", baseCell)
PictureWallCell.PhotoStatus = {
DownloadFailure = 4,
Success = 5,
Downloading = 6,
}
function PictureWallCell:Init()
PictureWallCell.super.Init(self);
self:initView()
self:initData()
self:AddViewEvent();
self:AddCellClickEvent();
end
function PictureWallCell:AddViewEvent( )
-- body
end
function PictureWallCell:initData( )
-- body
end
function PictureWallCell:initView( )
-- body
self.errorCt = self:FindGO("errorCt")
self.errorTip = self:FindComponent("errorTip",UILabel)
self.errorTip.text = ZhString.PersonalPictureCell_PicLost
self.pictureDesLabel = self:FindComponent("pictureDesLabel",UILabel)
self.texture = self:FindGO("texture"):GetComponent(UITextureEx)
self.textureCt = self:FindGO("textureCt")
self.maskContainer = self:FindGO("maskContainer")
self.stateDes = self:FindComponent("stateDes",UILabel)
self.selectedBg = self:FindGO("selectedBg")
self.star = self:FindGO("star")
self.newTag = self:FindGO("newTag")
self:Hide(self.newTag)
end
function PictureWallCell:setMode( mode )
-- body
if(not self.data)then
return
end
self.mode = mode
self:RefreshStatus()
end
function PictureWallCell:RefreshStatus()
if(not self.data)then
return
end
if(self.status == PictureWallCell.PhotoStatus.Success)then
self:Hide(self.errorCt)
self:Hide(self.maskContainer)
elseif(self.status == PictureWallCell.PhotoStatus.Downloading)then
self:Show(self.maskContainer)
self.stateDes.text = ZhString.PersonalPictureCell_LoadingText
self:Hide(self.errorCt)
elseif(self.status == PictureWallCell.PhotoStatus.DownloadFailure)then
self:Hide(self.maskContainer)
self:Show(self.errorCt)
self:Show(self.errorTip.gameObject)
end
end
function PictureWallCell:setDownloadProgress(progress)
PersonalPictureManager.Instance():log("setDownloadProgress:",progress)
progress = progress >=1 and 1 or progress
local value = progress*100
value = math.floor(value)
self.stateDes.text = string.format(ZhString.PersonalPictureCell_Downloading,value)
end
function PictureWallCell:setDownloadFailure()
PersonalPictureManager.Instance():log("setDownloadFailure:")
self.status = PictureWallCell.PhotoStatus.DownloadFailure
self:RefreshStatus()
end
function PictureWallCell:SetData(data)
self.data = data
if(not data)then
self:Hide()
return
end
self:Show()
local timeStr = os.date("%Y.%m.%d",data.time)
if(data.time == 0)then
timeStr = ZhString.PersonalPictureCell_PictureDesNotime
end
local mapName = Table_Map[data.mapid] and Table_Map[data.mapid].NameZh or data.mapid
self.pictureDesLabel.text = mapName
-- self.pictureDesLabel.text = ""
self.status = PictureWallCell.PhotoStatus.Downloading
self:PassEvent(PictureDetailPanel.GetWallPicThumbnail,self)
-- self:PassEvent(PictureDetailPanel.PictureDetailPanel.CheckCurrentShowPhoto ,self)
if(self.data.isMyself)then
self:Show(self.star)
else
self:Hide(self.star)
end
self:RefreshStatus()
self:checkNewTag()
end
function PictureWallCell:IsCurrent( bRet )
if(bRet)then
self:Show(self.selectedBg)
else
self:Hide(self.selectedBg)
end
end
function PictureWallCell:setTexture( texture )
-- body
if(texture)then
self:Show(self.textureCt)
self.texture.mainTexture = texture
self.status = PictureWallCell.PhotoStatus.Success
else
self.status = PictureWallCell.PhotoStatus.DownloadFailure
end
self:RefreshStatus()
end
function PictureWallCell:OnExit( )
-- body
self.super.OnExit(self)
end
function PictureWallCell:checkNewTag( )
local key = string.format(PictureDetailPanel.NewKeyTag,self.data.source,self.data.sourceid)
local isNew = FunctionPlayerPrefs.Me():GetBool(key)
if(isNew)then
FunctionPlayerPrefs.Me():SetBool(key,false)
self:Show(self.newTag)
end
end