162 lines
4.0 KiB
Plaintext
162 lines
4.0 KiB
Plaintext
StarView = class("StarView",ContainerView)
|
|
|
|
StarView.ViewType = UIViewType.NormalLayer
|
|
|
|
local TYPE = LoveLetterData.Type
|
|
|
|
local screenShotWidth = -1
|
|
local screenShotHeight = 1080
|
|
local textureFormat = TextureFormat.RGB24
|
|
local texDepth = 24
|
|
local antiAliasing = ScreenShot.AntiAliasing.None
|
|
local shotName = "RO_ShareTemp"
|
|
|
|
function StarView:OnExit()
|
|
PictureManager.Instance:UnLoadStar()
|
|
StarView.super.OnExit(self)
|
|
end
|
|
|
|
function StarView:Init()
|
|
self:FindObj()
|
|
self:AddEvt()
|
|
self:AddViewEvt()
|
|
self:InitShow()
|
|
end
|
|
|
|
function StarView:FindObj()
|
|
self.content = self:FindGO("Content"):GetComponent(UILabel)
|
|
self.from = self:FindGO("From"):GetComponent(UILabel)
|
|
self.star = self:FindGO("Star"):GetComponent(UITexture)
|
|
self.btnRoot = self:FindGO("BtnRoot")
|
|
self.screenShotHelper = self.gameObject:GetComponent(ScreenShotHelper)
|
|
self.share = self:FindGO("Share")
|
|
self.save = self:FindGO("Save")
|
|
end
|
|
|
|
function StarView:AddEvt()
|
|
self:AddClickEvent(self.save, function ()
|
|
self:ClickSave()
|
|
end)
|
|
|
|
self:AddClickEvent(self.share, function ()
|
|
self:ClickShare()
|
|
end)
|
|
|
|
local closeButton = self:FindGO("CloseButton")
|
|
self:AddClickEvent(closeButton, function ()
|
|
self:CloseView()
|
|
end)
|
|
end
|
|
|
|
function StarView:AddViewEvt()
|
|
self:AddListenEvt(ServiceEvent.ItemSaveLoveLetterCmd , self.CloseView)
|
|
self:AddListenEvt(ShareEvent.ClickPlatform , self.ClickPlatform)
|
|
end
|
|
|
|
function StarView:InitShow()
|
|
self.isQueue = self.viewdata.viewdata == nil
|
|
|
|
local isOpen = StarProxy.Instance:CheckShareOpen()
|
|
self.share:SetActive(isOpen)
|
|
|
|
self:UpdateView()
|
|
end
|
|
|
|
function StarView:UpdateView()
|
|
local data
|
|
if self.isQueue then
|
|
data = StarProxy.Instance:GetFrontData()
|
|
else
|
|
data = self.viewdata.viewdata
|
|
end
|
|
if data then
|
|
self:SetData(data)
|
|
end
|
|
end
|
|
|
|
function StarView:SetData(data)
|
|
if data then
|
|
self.id = data.id
|
|
|
|
local content = ""
|
|
local letter = Table_LoveLetter[data.staticId]
|
|
if letter and letter.Letter then
|
|
content = letter.Letter
|
|
end
|
|
self.content.text = string.format(ZhString.Star_Content, Game.Myself.data.name, content)
|
|
self.from.text = data.name
|
|
PictureManager.Instance:SetStar(data.bg, self.star)
|
|
|
|
self.save:SetActive(data.type == TYPE.Star)
|
|
end
|
|
end
|
|
|
|
function StarView:ClickSave()
|
|
if self.id then
|
|
helplog("CallSaveLoveLetterCmd", self.id)
|
|
ServiceItemProxy.Instance:CallSaveLoveLetterCmd(self.id)
|
|
end
|
|
end
|
|
|
|
function StarView:ClickShare()
|
|
self:sendNotification(UIEvent.JumpPanel, {view = PanelConfig.GeneralShareView})
|
|
end
|
|
|
|
function StarView:ClickPlatform(note)
|
|
local data = note.body
|
|
if data then
|
|
self:SharePicture(data, "", "")
|
|
end
|
|
end
|
|
|
|
function StarView:CloseView()
|
|
if self.isQueue then
|
|
local isNext = StarProxy.Instance:ShowNext()
|
|
if not isNext then
|
|
self:UpdateView()
|
|
return
|
|
end
|
|
end
|
|
|
|
self:CloseSelf()
|
|
end
|
|
|
|
--分享
|
|
function StarView:SharePicture(platform_type, content_title, content_body)
|
|
helplog("StarView SharePicture", platform_type)
|
|
|
|
local gmCm = NGUIUtil:GetCameraByLayername("Default")
|
|
local ui = NGUIUtil:GetCameraByLayername("UI")
|
|
self.btnRoot:SetActive(false)
|
|
self.screenShotHelper:Setting(screenShotWidth, screenShotHeight, textureFormat, texDepth, antiAliasing)
|
|
self.screenShotHelper:GetScreenShot(function (texture)
|
|
self.btnRoot:SetActive(true)
|
|
|
|
local picName = shotName..tostring(os.time())
|
|
local path = PathUtil.GetSavePath(PathConfig.TempShare).."/"..picName
|
|
ScreenShot.SaveJPG(texture, path, 100)
|
|
path = path..".jpg"
|
|
helplog("StarView Share path", path)
|
|
|
|
SocialShare.Instance:ShareImage(path, content_title, content_body, platform_type, function (succMsg)
|
|
helplog("StarView Share success")
|
|
ROFileUtils.FileDelete(path)
|
|
|
|
if platform_type == E_PlatformType.Sina then
|
|
MsgManager.ShowMsgByIDTable(566)
|
|
end
|
|
end,function (failCode, failMsg)
|
|
helplog("StarView Share failure")
|
|
ROFileUtils.FileDelete(path)
|
|
|
|
local errorMessage = failMsg or 'error'
|
|
if failCode ~= nil then
|
|
errorMessage = failCode .. ', ' .. errorMessage
|
|
end
|
|
MsgManager.ShowMsg('', errorMessage, MsgManager.MsgType.Float)
|
|
end,function ()
|
|
helplog("StarView Share cancel")
|
|
ROFileUtils.FileDelete(path)
|
|
end)
|
|
end, gmCm, ui)
|
|
end |