⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 peoplemessageselector.luac.lua

📁 htc manila 2 sourcecode
💻 LUA
字号:
-- Decompiled using luadec 0.6 by sztupy (http://winmo.sztupy.hu)
-- Command line was: -l ;18;;;;3,24;10;0,12,15,28;0,1;0,0,0,6;;0,0,81,84;0,3;0,1,2;;0,7;0,0,0,0,0,0,22;;0,9;;0,0,0,0,0,0,0,13,17,23,27;0,0,0,0,1,4,7,10,13,14,51;0,0,0,4,8,12,16,19,22,25,28,42;0,0,4,7,10,13,16;;;0,11,17,23; 0eafe6c6_manila.luac 

require("contacts_database_svc")
require("messaging_svc")
require("machine_status_svc")
require("transitions")
require("ScrollPhysics")
SelectorObject = class()
LvMessages = class()
DefaultMessageBodyHeight = 46
objMessages = nil
main = function()
   objs3D = {}
   objs3D[1] = Camera3D
   objs2D = {}
   local l_1_0 = _request.URL.Parameters:GetParameter("MODE")
   if l_1_0 == "" or l_1_0 == nil then
      l_1_0 = "FORWARD"
   end
   _request.NavigateOutTo:connect(OnNavigateOut)
   _request.NavigateInFrom:connect(OnNavigateIn)
   objMessages = SelectorObject(l_1_0)
   if _application.Store:GetStringValue(Lifetime_Permanent, "EnableLandscape") == "true" then
      trace("[peopleMessage] : EnableLandscape")
      require("people\\peopleMessageSelector_Landscape")
      PeopleMessageSelector_Landscape = PeopleMessageSelector_ScreenRotation(Camera2D, Camera3D, SelectorListView, SelectorGroup)
   end
end

OnNavigateOut = function(l_2_0)
   _request.NavigateOutTo:disconnect(OnNavigateOut)
   Transition(l_2_0, "Out")
   _application:EnableVelocityEngine(true)
   objMessages:Destroy()
end

OnNavigateIn = function(l_3_0)
   _request.NavigateInFrom:disconnect(OnNavigateIn)
   Transition(l_3_0, "In")
   _application:EnableVelocityEngine(false)
end

RSKFunction_Callback = function()
   BackToPreviousPage()
end

LSKFunction_Callback = function()
   local l_5_0 = URL("Manila://Confirmation.dialog")
   l_5_0.Parameters:AddParameter("Title", Locale:GetString("IDS_DELETE_TITLE"))
   l_5_0.Parameters:AddParameter("ContentString", Locale:GetString("IDS_DELETE_CONTENT"))
   local l_5_1 = _application.DialogManager:GetDialog(l_5_0)
   l_5_1.OnExit:connect(DialogMenu_Callback)
   l_5_1:Show()
end

BackToPreviousPage = function()
   _application.Navigation:NavigateBack()
   local l_6_0 = _application.Store:GetIntValue(Lifetime_Application, "People.PeopleDetail.LaunchVia")
   if l_6_0 ~= nil and l_6_0 ~= 0 then
      Shell_GoBackToLaunchingApplication()
   end
end

DialogMenu_Callback = function(l_7_0)
   l_7_0.OnExit:disconnect(DialogMenu_Callback)
   if l_7_0.Result.ExitType ~= DialogExitType_Cancel then
      local l_7_1 = objMessages.objLvMessages.Messages
      local l_7_2 = objMessages.objLvMessages.PIDB
      local l_7_3 = nil
      for i = 0, l_7_1:GetCount() - 1 do
         l_7_3 = l_7_2:GetMailMessagingInstance(l_7_1:GetItem(i))
         if l_7_3:GetSelectedState() then
            l_7_2:DeleteAMessage(l_7_3)
         end
      end
      BackToPreviousPage()
   end
end

GetFormatTime = function(l_8_0)
   local l_8_1 = ""
   if l_8_0:IsToday() then
      if objMessages.machinestatus.CurrentTime.Value.IsTwentyFourHour then
         l_8_1 = l_8_0:GetTimeString(TimeFormatOptions_Default)
      else
         l_8_1 = l_8_0:GetTimeString(TimeFormatOptions_ExcludeTimeMarker) .. l_8_0:GetTimeString("tt")
      end
   else
      l_8_1 = l_8_0:GetDateString(DateFormatOptions_Default)
   end
   return l_8_1
end

SetContactPicture = function(l_9_0, l_9_1, l_9_2)
   local l_9_3 = _request.URL.Parameters:GetParameter("Mode")
   if l_9_3 == "SIM" then
      l_9_1:SetTextureRef("contact_SIM")
      l_9_1.TextureCoords:set(0, 0, 1, 1)
      l_9_1._visible = true
   elseif l_9_3 == "UNKNOWN" then
      l_9_1:SetTextureRef("PeoplePlaceholder")
      l_9_1.TextureCoords:set(0, 0, 0.92578125, 0.92578125)
      l_9_1._visible = true
   elseif l_9_0 ~= nil and l_9_0:HasValue() then
      if l_9_1:SetTexture(l_9_0:GetValue().Texture) then
         l_9_1.TextureCoords.value = l_9_0:GetValue().UV
         l_9_1._visible = true
      else
         l_9_1._visible = false
      end
   else
      l_9_1:SetTextureRef("PeoplePlaceholder")
      l_9_1.TextureCoords:set(0, 0, 0.92578125, 0.92578125)
      l_9_1._visible = true
   end
end

SetUserPic = function(l_10_0, l_10_1)
   if l_10_0 ~= nil and not l_10_0:GetValue():IsEmpty() then
      if l_10_1:SetTexture(l_10_0:GetValue().Texture) then
         l_10_1.TextureCoords.value = l_10_0:GetValue().UV
         l_10_1._visible = true
      else
         l_10_1._visible = false
      end
   else
      l_10_1:SetTextureRef("PeoplePlaceholder")
      l_10_1.TextureCoords:set(0, 0, 0.92578125, 0.92578125)
      l_10_1._visible = true
   end
end

SelectorObject.__init = function(l_11_0, l_11_1)
   l_11_0.mode = l_11_1
   l_11_0.machinestatus = MachineStatus()
   l_11_0.machinestatus.ContactPictureFilePath.OnValueChanged:connect(l_11_0.Handle_MyPhotoChanged, l_11_0)
   l_11_0.ShowAMPM = not l_11_0.machinestatus.CurrentTime.Value.IsTwentyFourHour
   l_11_0.machinestatus.TwentyFourHourTime.OnValueChanged:connect(l_11_0.HandleTimeChange, l_11_0)
   l_11_0.PE = PeopleEngine_Instance()
   l_11_0.PI = PersonInfo()
   l_11_0.PE:GetPersonInfo(l_11_0.PI)
   if l_11_0.mode == "FORWARD" then
      _application:SetLeftSoftkey(Softkey(nil, nil))
      _application:SetRightSoftkey(Softkey(Locale:GetString("IDS_CANCEL"), RSKFunction_Callback))
   elseif l_11_0.mode == "DELETE" then
      _application:SetLeftSoftkey(Softkey(Locale:GetString("IDS_DONE"), LSKFunction_Callback))
      _application:SetRightSoftkey(Softkey(Locale:GetString("IDS_CANCEL"), RSKFunction_Callback))
   end
   local l_11_2 = PersonInfoDatabase(l_11_0.PI, PersonInfo_MESSAGE)
   local l_11_3 = l_11_2:Select(nil, nil)
   l_11_0.objLvMessages = LvMessages(l_11_0.mode, l_11_0.PI:GetName(), l_11_2, l_11_3, SelectorListView)
   l_11_0.objLvMessages:PrepareData()
end

SelectorObject.HandleTimeChange = function(l_12_0)
   local l_12_1 = l_12_0.machinestatus.CurrentTime.Value
   if l_12_0.ShowAMPM == l_12_1.IsTwentyFourHour then
      l_12_0.ShowAMPM = not l_12_1.IsTwentyFourHour
      l_12_0:ResetDateTimeFormate()
   end
   trace("HandleTimeChange end")
end

SelectorObject.Handle_MyPhotoChanged = function(l_13_0)
   trace("@@@###\t[SelectorObject:Handle_MyPhotoChanged]")
   local l_13_1 = nil
   local l_13_2 = nil
   l_13_0.objLvMessages:SetMyPic(l_13_0.PE:GetMyPicture())
end

SelectorObject.Destroy = function(l_14_0)
   l_14_0.machinestatus.ContactPictureFilePath.OnValueChanged:disconnect(l_14_0.Handle_MyPhotoChanged, l_14_0)
   l_14_0.machinestatus.TwentyFourHourTime.OnValueChanged:disconnect(l_14_0.HandleTimeChange, l_14_0)
   l_14_0.objLvMessages:Destroy()
end

SelectorObject.ResetDateTimeFormate = function(l_15_0)
   trace("ResetDateTimeFormate")
   local l_15_1 = l_15_0.objLvMessages.listview:GetGenerator()
   if l_15_1 ~= nil then
      local l_15_2 = l_15_1:GetCount() - 1
      local l_15_3 = nil
      local l_15_4 = nil
      for i = 0, l_15_2 do
         l_15_3 = l_15_1:GetItem(i)
         if l_15_3 ~= nil then
            local item = l_15_0.objLvMessages.Messages:GetItem(i)
            local gd = l_15_0.objLvMessages.PIDB:GetMailMessagingInstance(item)
            local gdt = gd:GetDeliverTime():ToLocal()
            l_15_4 = l_15_3.Namespace:FindName("NameTime")            
            local format = GetFormatTime(gdt)
            if gd:IsMine() then
               l_15_4.String = "Me (" .. format .. "):"
            else
               l_15_4.String = l_15_0.objLvMessages.ContactName .. " (" .. format .. "):"
            end
         end
      end
   end
   trace("ResetDateTimeFormate end")   
end

LvMessages.__init = function(l_16_0, l_16_1, l_16_2, l_16_3, l_16_4, l_16_5)
   trace(" LvMessages:__init")
   l_16_0.WindowW = 480
   l_16_0.WindowH = 696
   l_16_0.CHECKBOXDX = 50
   l_16_0.MESCONTECTDX = 80
   l_16_0.ITEMH = 81
   l_16_0.ITEMDH = 8
   l_16_0.mode = l_16_1
   l_16_0.PIDB = l_16_3
   l_16_0.ContactName = l_16_2
   l_16_0.listview = l_16_5
   l_16_0.Messages = l_16_4
   l_16_0.Messages.CollectionReset:connect(l_16_0.CollectionReset, l_16_0)
   local l_16_6 = SequentialLayout()
   l_16_0.listview:SetLayout(l_16_6)
   l_16_0:ResetListViewLayout(l_16_0.WindowW, l_16_0.WindowH)
   l_16_0.listview:ForceLayout()
   l_16_0.listview:Focus()
   l_16_0.ListPhysics = ScrollPhysics(l_16_0.listview, l_16_0.listview, HandleItemSelection)
end

LvMessages.ResetListViewLayout = function(l_17_0, l_17_1, l_17_2)
   l_17_0.WindowW = l_17_1
   l_17_0.WindowH = l_17_2
   l_17_0.contectSizeWidth = l_17_0.WindowW - l_17_0.MESCONTECTDX
   l_17_0.checkboxPosX = l_17_0.WindowW - l_17_0.CHECKBOXDX
   l_17_0.listview:GetLayout():SetItemSize(l_17_0.WindowW, l_17_0.ITEMH, 0)
end

LvMessages.PrepareData = function(l_18_0)
   l_18_0.ListPhysics:DisconnectMouseEvents()
   l_18_0:ResetGenerator()
   local l_18_1 = l_18_0.Messages:GetCount() - 1
   for i = 0, l_18_1 do
      l_18_0.collection:push_back(i)
   end
   l_18_0.ListPhysics:ConnectMouseEvents()
   trace("LvMessages:PrepareData.." .. tostring(l_18_0.collection:GetCount()))
end

LvMessages.ResetGenerator = function(l_19_0)
   l_19_0.listview:SetGenerator(nil)
   l_19_0.ListGenerator = nil
   l_19_0.collection = nil
   l_19_0.collection = VectorNotifyint()
   l_19_0.ListGenerator = SequentialLibraryGeneratorint(l_19_0.collection, l_19_0.listview:GetMovie(), l_19_0.listview.ComponentLibraryName, l_19_0.listview.ComponentLibraryID)
   l_19_0.ListGenerator.ItemCreated:connect(l_19_0.HandleItemCreated, l_19_0)
   l_19_0.ListGenerator.ItemDestroyed:connect(l_19_0.HandleItemDestroyed, l_19_0)
   l_19_0.ListGenerator.ExtendInternalGetItemSize:connect(l_19_0.HandleExtendInternalGetItemSize, l_19_0)
   l_19_0.ListGenerator.RecycleItems = true
   l_19_0.listview:SetGenerator(l_19_0.ListGenerator)
end

LvMessages.HandleExtendInternalGetItemSize = function(l_20_0, l_20_1, l_20_2, l_20_3, l_20_4, l_20_5, l_20_6)
   trace("HandleExtendInternalGetItemSize+++" .. tostring(l_20_4))
   local l_20_7 = l_20_0.listview:GetGenerator():GetDataByRealizedIndex(l_20_4)
   local l_20_8 = l_20_0.Messages:GetItem(l_20_7)
   local l_20_9 = l_20_0.listview:GetGenerator():GetItem(l_20_4)
   local l_20_10 = l_20_0.Messages:GetItem(l_20_7)
   l_20_0:AdjustItemHeight(l_20_9, l_20_0.PIDB:GetMailMessagingInstance(l_20_10), l_20_5)
   trace("HandleExtendInternalGetItemSize end")
   l_20_6.value = true
end

LvMessages.AdjustItemHeight = function(l_21_0, l_21_1, l_21_2, l_21_3)
   local l_21_4 = l_21_1.Namespace
   local l_21_5 = l_21_4:FindName("NameTime")
   local l_21_6 = l_21_4:FindName("dottedline")
   local l_21_7 = l_21_4:FindName("MessageBody")
   local l_21_8 = l_21_4:FindName("MessageCheckbox")
   local l_21_9 = 0
   l_21_7.Size.width = l_21_0.contectSizeWidth
   if l_21_2:GetSubject() ~= nil and l_21_2:GetSubject():len() > 0 then
      l_21_9 = TextHelper_GetStringHeight(l_21_7, l_21_2:GetSubject())
   end
   trace("height=" .. tostring(l_21_9))
   local l_21_10 = math.abs(l_21_5.Position.y) + l_21_5.Size.height + l_21_0.ITEMDH + l_21_9
   l_21_7.Size.height = l_21_9
   if l_21_10 <= l_21_0.ITEMH then
      l_21_3.value.y = l_21_0.ITEMH
   else
      l_21_3.value.y = l_21_10
   end
   l_21_3.value.x = l_21_0.WindowW
   l_21_3.value.z = 0
   l_21_6.Position.y = -l_21_3.value.y + 1
   l_21_8.Position.y = -(l_21_3.value.y - l_21_8.Size.height) / 2
end

LvMessages.HandleItemCreated = function(l_22_0, l_22_1, l_22_2)
   trace("$$$$$   HandleItemCreated ")
   local l_22_3 = l_22_2.Namespace
   local l_22_4 = l_22_0.Messages:GetItem(l_22_1)
   local l_22_5 = l_22_0.PIDB:GetMailMessagingInstance(l_22_4)
   local l_22_6 = l_22_5:GetDeliverTime():ToLocal()
   local l_22_7 = l_22_3:FindName("NameTime")
   local l_22_8 = l_22_3:FindName("dottedline")
   local l_22_9 = l_22_3:FindName("MessageBody")
   local l_22_10 = l_22_3:FindName("MessageCheckbox")
   l_22_8._visible = true
   l_22_9._visible = true
   l_22_7._visible = true
   l_22_8.Size.width = l_22_0.WindowW
   l_22_8.TextureCoords.width = l_22_0.WindowW / 2
   l_22_9.String = l_22_5:GetSubject()
   local l_22_11 = ""
   if l_22_6.IsValid == true then
      l_22_11 = GetFormatTime(l_22_6)
   end
   if l_22_5:IsMine() then
      l_22_7.String = "Me (" .. l_22_11 .. "):"
   else
      l_22_7.String = l_22_0.ContactName .. " (" .. l_22_11 .. "):"
   end
   l_22_10.Position.x = l_22_0.checkboxPosX
   if l_22_0.mode == "DELETE" then
      l_22_10._visible = true
      l_22_10:SetTextureRef("Check-box-empty")
   else
      l_22_10._visible = false
   end
   l_22_9.Bold = not l_22_5:IsRead()
   l_22_2.Focusable = true
   trace("$$$$$   HandleItemCreated end" .. tostring(not l_22_5:IsRead()))
end

LvMessages.HandleItemDestroyed = function(l_23_0, l_23_1)
   trace("#############   item destroyed")
   local l_23_2 = l_23_1.Namespace
   local l_23_3 = l_23_2:FindName("NameTime")
   local l_23_4 = l_23_2:FindName("dottedline")
   local l_23_5 = l_23_2:FindName("MessageCheckbox")
   local l_23_6 = l_23_2:FindName("MessageBody")
   l_23_4._visible = false
   l_23_6._visible = false
   l_23_3._visible = false
   l_23_5._visible = false
   l_23_4 = nil
   l_23_6 = nil
   l_23_3 = nil
   l_23_5 = nil
end

LvMessages.CollectionReset = function(l_24_0)
   l_24_0:PrepareData()
end

LvMessages.Destroy = function(l_25_0)
   l_25_0.ListGenerator.ItemCreated:disconnect(l_25_0.HandleItemCreated, l_25_0)
   l_25_0.ListGenerator.ItemDestroyed:disconnect(l_25_0.HandleItemDestroyed, l_25_0)
end

HandleItemSelection = function(l_26_0)
   trace("#############   HandleItemSelection")
   local l_26_1 = objMessages.objLvMessages.listview:GetGenerator():GetDataByRealizedIndex(l_26_0)
   local l_26_2 = objMessages.objLvMessages.Messages:GetItem(l_26_1)
   local l_26_3 = objMessages.objLvMessages.PIDB:GetMailMessagingInstance(l_26_2)
   if objMessages.objLvMessages.mode == "DELETE" then
      local mc = SelectorListView:GetGenerator():GetItem(l_26_0).Namespace:FindName("MessageCheckbox")
      if l_26_3:GetSelectedState() then
         l_26_3:SetSelectedState()
         mc:SetTextureRef("Check-box-empty")
      else
         l_26_3:SetSelectedState()
         mc:SetTextureRef("Check-box")
      end
   elseif objMessages.objLvMessages.mode == "FORWARD" then
      Shell_ForwardASMSMessage(l_26_3:GetSubject())
      _application.Navigation:NavigateBack()
   end
end

main()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -