local baseCell = autoImport("BaseCell")
ActivityButtonCell = class("ActivityButtonCell",baseCell)

function ActivityButtonCell:Init()
	self:initView()
	self.iconWidth = 80
	self.iconHeight = 80
end

function ActivityButtonCell:initView(  )
	-- body
	self.activity_texture = self:FindComponent("activity_texture",UITexture)
	self.activity_label = self:FindComponent("activity_label",UILabel)
	self.holderSp = self:FindGO("holderSp")
	self:AddCellClickEvent();
end

function ActivityButtonCell:SetData( data )
	-- body
	self:Show(self.holderSp)

	local texture = self.activity_texture.mainTexture
	self.activity_texture.mainTexture = nil
	Object.DestroyImmediate(texture)
	self.data = data
	self:updateTime()
	-- self:PassEvent(MainviewActivityPage.GetIconTexture, self)
end

function ActivityButtonCell:updateTime(  )
	-- body
	local data = self.data
	if(data.countdown)then		
		local subActs = data.sub_activity
		if(subActs and #subActs>0)then
			local subActs = data.sub_activity
			local currentTime = ServerTime.CurServerTime()
			currentTime = math.floor(currentTime / 1000)
			local time = subActs[1].begintime
			local leftTime = time - currentTime

			-- local timeStr1 = os.date("%Y-%m-%d %H:%M:%S",time)
			-- local timeStr2 = os.date("%Y-%m-%d %H:%M:%S",subActs[1].endtime)
			-- local timeStr3 = os.date("%Y-%m-%d %H:%M:%S",currentTime)
			-- LogUtility.InfoFormat("ActivityButtonCell updateTime startT:{0},endT:{1},curTime:{2}",timeStr1,timeStr2,timeStr3)

			local preText = ZhString.ActivityData_Start
			if(leftTime < 0)then
				leftTime = subActs[1].endtime - currentTime
				preText = ZhString.ActivityData_Finish
			end
			if(leftTime >= 3600*24)then
				local day = math.floor(leftTime/(3600*24))
				local h = math.floor((leftTime - day*3600*24)/3600)
				self.activity_label.text = string.format(ZhString.ActivityData_HourDes,data.name,day,h,preText)
			else
				local h = math.floor(leftTime / 3600)
				local m = math.floor((leftTime - h*3600) / 60)
				local s = leftTime - h*3600 - m*60
				self.activity_label.text = string.format(ZhString.ActivityData_TimeLineDes,data.name,h,m,s,preText)
			end
		else
			self.activity_label.text = data.name
		end
	else
		self.activity_label.text = data.name
	end
end

function ActivityButtonCell:OnRemove(  )
	Object.DestroyImmediate(self.activity_texture.mainTexture)
end

function ActivityButtonCell:setTextureByBytes( bytes )
	local texture = Texture2D(2,2,TextureFormat.RGB24,false)
	local bRet = ImageConversion.LoadImage(texture, bytes)
	if(bRet)then
		self:setTexture(texture)
	else
		Object.DestroyImmediate(texture)
	end
end

function ActivityButtonCell:setTexture( texture )
	-- body
	if(texture)then
		self:Hide(self.holderSp)
		Object.DestroyImmediate(self.activity_texture.mainTexture)
		self.activity_texture.mainTexture = texture
		self.activity_texture:MakePixelPerfect()
	end
end