398 lines
13 KiB
Plaintext
398 lines
13 KiB
Plaintext
SetViewSystemState = class("SetViewSystemState",SubView)
|
||
|
||
local tempBGM = 1
|
||
local tempSound = 1
|
||
|
||
function SetViewSystemState:Init ()
|
||
self:FindObj()
|
||
self:AddButtonEvt()
|
||
self:AddViewEvts()
|
||
self:Show()
|
||
end
|
||
|
||
function SetViewSystemState:FindObj ()
|
||
self.table = self:FindGO("Table"):GetComponent(UITable)
|
||
self.bgmSlider = GameObject.Find("BgmSet/BgmSlider"):GetComponent("UISlider")
|
||
self.soundSlider = GameObject.Find("SoundSet/SoundSlider"):GetComponent("UISlider")
|
||
self.speechTeamToggle = GameObject.Find("SpeechTeamSet/SpeechTeamToggle"):GetComponent("UIToggle")
|
||
self.speechGuildToggle = GameObject.Find("SpeechGuildSet/SpeechGuildToggle"):GetComponent("UIToggle")
|
||
self.speechChatZoneToggle = GameObject.Find("SpeechChatZoneSet/SpeechChatZoneToggle"):GetComponent("UIToggle")
|
||
self.speechPrivateChatToggle = GameObject.Find("SpeechPrivateChatSet/SpeechPrivateChatToggle"):GetComponent("UIToggle")
|
||
self.ChineseVoiceToggle = GameObject.Find("ChineseVoice/ChineseVoiceToggle"):GetComponent("UIToggle")
|
||
self.JapaneseVoiceToggle = GameObject.Find("JapaneseVoice/JapaneseVoiceToggle"):GetComponent("UIToggle")
|
||
self.showDetailToggleAll = GameObject.Find("ShowDetailAll/ShowDetailToggleAll"):GetComponent("UIToggle")
|
||
self.showDetailToggleFriend = GameObject.Find("ShowDetailFriend/ShowDetailToggleFriend"):GetComponent("UIToggle")
|
||
self.showDetailToggleClose = GameObject.Find("ShowDetailClose/ShowDetailToggleClose"):GetComponent("UIToggle")
|
||
self.SavingMode = GameObject.Find("SavingMode")
|
||
self.SavingModeToggle = GameObject.Find("SavingMode/SavingModeToggle"):GetComponent("UIToggle")
|
||
|
||
self.showExterior = {}
|
||
self.showExterior[0] = self:FindGO("ShowExteriorHeadToggle"):GetComponent("UIToggle")
|
||
self.showExterior[1] = self:FindGO("ShowExteriorBackToggle"):GetComponent("UIToggle")
|
||
self.showExterior[2] = self:FindGO("ShowExteriorFaceToggle"):GetComponent("UIToggle")
|
||
self.showExterior[3] = self:FindGO("ShowExteriorTailToggle"):GetComponent("UIToggle")
|
||
self.showExterior[4] = self:FindGO("ShowExteriorMouthToggle"):GetComponent("UIToggle")
|
||
|
||
self.weddingSet = self:FindGO("WeddingSet")
|
||
self.showWeddingToggleAll = self:FindGO("ShowWeddingToggleAll"):GetComponent(UIToggle)
|
||
self.showWeddingToggleFriend = self:FindGO("ShowWeddingToggleFriend"):GetComponent(UIToggle)
|
||
self.showWeddingToggleClose = self:FindGO("ShowWeddingToggleClose"):GetComponent(UIToggle)
|
||
|
||
self.pushSet = self:FindGO("PushSet")
|
||
self.pushToggle = {}
|
||
self.pushToggle[0] = self:FindGO("PushPoringToggle"):GetComponent(UIToggle)
|
||
self.pushToggle[1] = self:FindGO("PushGuildToggle"):GetComponent(UIToggle)
|
||
|
||
self.pushToggle[2] = self:FindGO("PushAuctionToggle"):GetComponent(UIToggle)
|
||
self.pushToggle[3] = self:FindGO("PushMonsterToggle"):GetComponent(UIToggle)
|
||
self.pushToggle[4] = self:FindGO("PushBigCatToggle"):GetComponent(UIToggle)
|
||
|
||
self.GVoiceSet = self:FindGO("GVoiceSet")
|
||
if self.GVoiceSet then
|
||
self.GVoiceSet.gameObject:SetActive(false)
|
||
end
|
||
self.TeamGVoice = self:FindGO("TeamGVoice",self.GVoiceSet)
|
||
self.GuildGVoice = self:FindGO("GuildGVoice",self.GVoiceSet)
|
||
self.OpenYang = self:FindGO("OpenYang",self.GVoiceSet)
|
||
self.OpenMai = self:FindGO("OpenMai",self.GVoiceSet)
|
||
|
||
self.OpenMai_UILabel = self:FindGO("OpenMai",self.GVoiceSet):GetComponent(UILabel)
|
||
self.OpenMai_UILabel.text = "開啟麥克風"
|
||
self.TeamGVoiceToggle_UIToggle = self:FindGO("Toggle",self.TeamGVoice):GetComponent(UIToggle)
|
||
self.GuildGVoiceToggle_UIToggle = self:FindGO("Toggle",self.GuildGVoice):GetComponent(UIToggle)
|
||
self.OpenYangToggle_UIToggle = self:FindGO("Toggle",self.OpenYang):GetComponent(UIToggle)
|
||
self.OpenMaiToggle_UIToggle = self:FindGO("Toggle",self.OpenMai):GetComponent(UIToggle)
|
||
|
||
self.TeamGVoiceToggle_UIToggle.optionCanBeNone = true
|
||
|
||
self.gvoiceToggle = {}
|
||
self.gvoiceToggle[0] = self.TeamGVoiceToggle_UIToggle
|
||
self.gvoiceToggle[1] = self.GuildGVoiceToggle_UIToggle
|
||
self.gvoiceToggle[2] = self.OpenYangToggle_UIToggle
|
||
self.gvoiceToggle[3] = self.OpenMaiToggle_UIToggle
|
||
|
||
if GuildProxy.Instance:IHaveGuild() then
|
||
self.GuildGVoice.gameObject:SetActive(true)
|
||
--TODO:這個group需要管理起來
|
||
self.GuildGVoiceToggle_UIToggle.group = 101
|
||
self.TeamGVoiceToggle_UIToggle.group = 101
|
||
else
|
||
|
||
end
|
||
|
||
self.TeamGVoiceToggle_UIToggle.optionCanBeNone = true
|
||
self.GuildGVoiceToggle_UIToggle.optionCanBeNone = true
|
||
|
||
self.gvoiceToggle[2].group = 102
|
||
self.gvoiceToggle[3].group = 103
|
||
|
||
end
|
||
|
||
--TODO:玩家給與語音授權后,全部為勾選狀態,
|
||
local function ChangeYuYinShouQuanToAllTrue()
|
||
|
||
end
|
||
|
||
local changeSetting = {}
|
||
local function ChangeBGMVolume (vol)
|
||
local setting = FunctionPerformanceSetting.Me()
|
||
changeSetting.bgmVolume = vol
|
||
setting:Apply(changeSetting)
|
||
end
|
||
|
||
local function ChangeSoundVolume (vol)
|
||
local setting = FunctionPerformanceSetting.Me()
|
||
changeSetting.soundVolume = vol
|
||
setting:Apply(changeSetting)
|
||
end
|
||
|
||
function SetViewSystemState:AddButtonEvt ()
|
||
EventDelegate.Set(self.bgmSlider.onChange , function ()
|
||
ChangeBGMVolume(self.bgmSlider.value)
|
||
end)
|
||
EventDelegate.Set(self.soundSlider.onChange , function ()
|
||
ChangeSoundVolume(self.soundSlider.value)
|
||
end)
|
||
|
||
for i=0,4 do
|
||
--IPHONE手機未開啟通知,進入遊戲后推送提醒
|
||
self:AddClickEvent(self.pushToggle[i].gameObject,function(obj)
|
||
if(self.pushToggle[i].value) then
|
||
if ExternalInterfaces.isUserNotificationEnable() then
|
||
|
||
else
|
||
ExternalInterfaces.ShowHintOpenPushView (ZhString.Push_title,ZhString.Push_message,ZhString.Push_cancelButtonTitle,ZhString.Push_otherButtonTitles)
|
||
end
|
||
else
|
||
|
||
end
|
||
end)
|
||
end
|
||
|
||
self:AddClickEvent(self.TeamGVoiceToggle_UIToggle.gameObject,function(obj)
|
||
if(self.TeamGVoiceToggle_UIToggle.value) then
|
||
GVoiceProxy.Instance:ActiveEnterChannel(ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_TEAM_ENUM.index )
|
||
if self.GuildGVoiceToggle_UIToggle.value then
|
||
self.GuildGVoiceToggle_UIToggle.value = false
|
||
GVoiceProxy.Instance:LeaveGVoiceRoomAtChannel(ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_GUILD_ENUM.index)
|
||
end
|
||
else
|
||
GVoiceProxy.Instance:LeaveGVoiceRoomAtChannel(ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_TEAM_ENUM.index)
|
||
end
|
||
end)
|
||
|
||
self:AddClickEvent(self.GuildGVoiceToggle_UIToggle.gameObject,function(obj)
|
||
if(self.GuildGVoiceToggle_UIToggle.value) then
|
||
if not GVoiceProxy.Instance:IsMySelfGongHuiJinYan() then
|
||
GVoiceProxy.Instance:SetPlayerChooseToJoinGuildVoice(true)
|
||
GVoiceProxy.Instance:ActiveEnterChannel(ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_GUILD_ENUM.index)
|
||
else
|
||
MsgManager.FloatMsg(nil, "目前已經被會長禁言,無法開啟麥克風")
|
||
end
|
||
|
||
if self.TeamGVoiceToggle_UIToggle.value then
|
||
--互斥
|
||
self.TeamGVoiceToggle_UIToggle =false
|
||
GVoiceProxy.Instance:LeaveGVoiceRoomAtChannel(ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_TEAM_ENUM.index)
|
||
end
|
||
else
|
||
GVoiceProxy.Instance:LeaveGVoiceRoomAtChannel(ChatCmd_pb.EGAMECHATCHANNEL_ECHAT_CHANNEL_GUILD_ENUM.index)
|
||
end
|
||
end)
|
||
|
||
|
||
self:AddClickEvent(self.OpenYangToggle_UIToggle.gameObject,function(obj)
|
||
if(self.OpenYangToggle_UIToggle.value) then
|
||
|
||
else
|
||
self.OpenMaiToggle_UIToggle.value = false
|
||
end
|
||
end)
|
||
|
||
self:AddClickEvent(self.OpenMaiToggle_UIToggle.gameObject,function(obj)
|
||
|
||
if GVoiceProxy.Instance:IsMySelfGongHuiJinYan() then
|
||
MsgManager.FloatMsg(nil, "目前已經被會長禁言,無法開啟麥克風")
|
||
self.OpenMaiToggle_UIToggle.value = false
|
||
do return end
|
||
end
|
||
|
||
if(self.OpenMaiToggle_UIToggle.value) then
|
||
|
||
else
|
||
|
||
end
|
||
end)
|
||
|
||
end
|
||
|
||
function SetViewSystemState:AddViewEvts()
|
||
self:AddListenEvt(PushEvent.OnJPushTagOperateResult, self.HandleJPushTagOperateResult)
|
||
|
||
|
||
end
|
||
|
||
function SetViewSystemState:Show ()
|
||
local setting = FunctionPerformanceSetting.Me()
|
||
|
||
self.bgmSlider.value = setting:GetSetting().bgmVolume
|
||
tempBGM = setting:GetSetting().bgmVolume
|
||
self.soundSlider.value = setting:GetSetting().soundVolume
|
||
tempSound = setting:GetSetting().soundVolume
|
||
self.speechTeamToggle.value = setting:IsAutoPlayChatChannel(ChatChannelEnum.Team)
|
||
self.speechGuildToggle.value = setting:IsAutoPlayChatChannel(ChatChannelEnum.Guild)
|
||
self.speechChatZoneToggle.value = setting:IsAutoPlayChatChannel(ChatChannelEnum.Zone)
|
||
self.speechPrivateChatToggle.value = setting:IsAutoPlayChatChannel(ChatChannelEnum.Private)
|
||
|
||
local showDetail = setting:GetSetting().showDetail
|
||
if showDetail == SettingEnum.ShowDetailFriend then
|
||
self.showDetailToggleFriend.value = true
|
||
self.showDetailToggleClose.value = false
|
||
self.showDetailToggleAll.value = false
|
||
elseif showDetail == SettingEnum.ShowDetailClose then
|
||
self.showDetailToggleFriend.value = false
|
||
self.showDetailToggleClose.value = true
|
||
self.showDetailToggleAll.value = false
|
||
else
|
||
self.showDetailToggleFriend.value = false
|
||
self.showDetailToggleClose.value = false
|
||
self.showDetailToggleAll.value = true
|
||
end
|
||
|
||
local voiceLanguage = setting:GetSetting().voiceLanguage
|
||
if voiceLanguage == LanguageVoice.Chinese then
|
||
self.ChineseVoiceToggle.value = true
|
||
self.JapaneseVoiceToggle.value = false
|
||
else
|
||
self.ChineseVoiceToggle.value = false
|
||
self.JapaneseVoiceToggle.value = true
|
||
end
|
||
|
||
self.SavingModeToggle.value = setting:GetSetting().powerMode
|
||
self.SavingMode:SetActive(not BackwardCompatibilityUtil.CompatibilityMode_V9)
|
||
|
||
local showExterior = MyselfProxy.Instance:GetFashionHide()
|
||
for i=0,#self.showExterior do
|
||
self.showExterior[i].value = self:GetBitByInt(showExterior, i)
|
||
end
|
||
|
||
if WeddingProxy.Instance:IsSelfSingle() then
|
||
self.weddingSet:SetActive(false)
|
||
else
|
||
self.weddingSet:SetActive(true)
|
||
|
||
local showWedding = Game.Myself and Game.Myself.data.userdata:Get(UDEnum.QUERYWEDDINGTYPE) or 0
|
||
if showWedding == SettingEnum.ShowWeddingFriend then
|
||
self.showWeddingToggleFriend.value = true
|
||
elseif showWedding == SettingEnum.ShowWeddingClose then
|
||
self.showWeddingToggleClose.value = true
|
||
else
|
||
self.showWeddingToggleAll.value = true
|
||
end
|
||
end
|
||
|
||
if BackwardCompatibilityUtil.CompatibilityMode_V19 then
|
||
self.pushSet:SetActive(false)
|
||
else
|
||
self.pushSet:SetActive(true)
|
||
|
||
local push = setting:GetSetting().push
|
||
for i=0,#self.pushToggle do
|
||
self.pushToggle[i].value = self:GetBitByInt(push, i)
|
||
end
|
||
end
|
||
|
||
if ExternalInterfaces.isUserNotificationEnable() then
|
||
Debug.Log("推送功能開啟 無需設定")
|
||
else
|
||
if (ApplicationInfo.GetRunPlatform() == RuntimePlatform.Android) then
|
||
|
||
else
|
||
for i=0,4 do
|
||
Debug.Log("推送功能關閉 全設定成false")
|
||
self.pushToggle[i].value = false
|
||
end
|
||
end
|
||
|
||
end
|
||
|
||
self.table:Reposition()
|
||
end
|
||
|
||
function SetViewSystemState:Save ()
|
||
local speech = {}
|
||
if self.speechTeamToggle.value then
|
||
table.insert(speech , ChatChannelEnum.Team)
|
||
end
|
||
if self.speechGuildToggle.value then
|
||
table.insert(speech , ChatChannelEnum.Guild)
|
||
end
|
||
if self.speechChatZoneToggle.value then
|
||
table.insert(speech , ChatChannelEnum.Zone)
|
||
end
|
||
if self.speechPrivateChatToggle.value then
|
||
table.insert(speech , ChatChannelEnum.Private)
|
||
end
|
||
|
||
local showDetail = 0
|
||
if self.showDetailToggleAll.value then
|
||
showDetail = SettingEnum.ShowDetailAll
|
||
elseif self.showDetailToggleFriend.value then
|
||
showDetail = SettingEnum.ShowDetailFriend
|
||
elseif self.showDetailToggleClose.value then
|
||
showDetail = SettingEnum.ShowDetailClose
|
||
end
|
||
|
||
local showWedding = 0
|
||
if self.showWeddingToggleAll.value then
|
||
showWedding = SettingEnum.ShowWeddingAll
|
||
elseif self.showWeddingToggleFriend.value then
|
||
showWedding = SettingEnum.ShowWeddingFriend
|
||
elseif self.showWeddingToggleClose.value then
|
||
showWedding = SettingEnum.ShowWeddingClose
|
||
end
|
||
|
||
local voiceLanguage = 0
|
||
if self.ChineseVoiceToggle.value then
|
||
voiceLanguage = LanguageVoice.Chinese
|
||
else
|
||
voiceLanguage = LanguageVoice.Jananese
|
||
end
|
||
|
||
tempBGM = self.bgmSlider.value
|
||
tempSound = self.soundSlider.value
|
||
|
||
local setting = FunctionPerformanceSetting.Me()
|
||
setting:SetBegin()
|
||
setting:SetBgmVolume(self.bgmSlider.value)
|
||
setting:SetSoundVolume(self.soundSlider.value)
|
||
setting:SetAutoPlayChatChannel(speech)
|
||
setting:SetShowDetail(showDetail)
|
||
setting:SetShowWedding(showWedding)
|
||
setting:SetVoiceLanguage(voiceLanguage)
|
||
if not BackwardCompatibilityUtil.CompatibilityMode_V9 then
|
||
setting:SetPowerMode(self.SavingModeToggle.value)
|
||
end
|
||
setting:SetShowExterior(self:SetShowExterior())
|
||
setting:SetPush(self:SetPush())
|
||
setting:SetGVoice(self:SetGVoice())
|
||
setting:SetEnd()
|
||
end
|
||
|
||
function SetViewSystemState:Exit ()
|
||
ChangeBGMVolume(tempBGM)
|
||
ChangeSoundVolume(tempSound)
|
||
end
|
||
|
||
function SetViewSystemState:SetShowExterior()
|
||
local showExterior = 0
|
||
for i=0,#self.showExterior do
|
||
showExterior = self:GetIntByBit(showExterior, i, not self.showExterior[i].value)
|
||
end
|
||
return showExterior
|
||
end
|
||
|
||
function SetViewSystemState:SetPush()
|
||
local push = 0
|
||
|
||
for i=0,#self.pushToggle do
|
||
push = self:GetIntByBit(push, i, not self.pushToggle[i].value)
|
||
end
|
||
|
||
return push
|
||
end
|
||
|
||
function SetViewSystemState:SetGVoice()
|
||
local gvoice = 0
|
||
for i=0,#self.gvoiceToggle do
|
||
gvoice = self:GetIntByBit(gvoice, i, not self.gvoiceToggle[i].value)
|
||
end
|
||
return gvoice
|
||
end
|
||
|
||
|
||
function SetViewSystemState:GetIntByBit(num, index, b)
|
||
if b then
|
||
num = num + (1<<index)
|
||
end
|
||
return num
|
||
end
|
||
|
||
function SetViewSystemState:GetBitByInt(num, index)
|
||
return ((num >> index) & 1) == 0
|
||
end
|
||
|
||
function SetViewSystemState:SwitchOn ()
|
||
|
||
end
|
||
|
||
function SetViewSystemState:SwitchOff ()
|
||
|
||
end
|
||
|
||
function SetViewSystemState:HandleJPushTagOperateResult(note)
|
||
local data = note.body
|
||
if data then
|
||
|
||
end
|
||
end |