peopleemailpicker.luac.lua

来自「htc manila 2 sourcecode」· LUA 代码 · 共 256 行

LUA
256
字号
-- Decompiled using luadec 0.6 by sztupy (http://winmo.sztupy.hu)
-- Command line was: -l ;;;;6;;;;0,29,58;0,0,0,4,7,10,13,16,19,23,27;0,0,1,4,7,10,13,16;0,14;0,0,1;0,5,17,21;0,3;0,14,19,24,28; 66d8a646_manila.luac 

trace("people email select sctipt")
require("contacts_database_svc")
require("machine_status_svc")
require("transitions")
require("ScrollPhysics")
require("CheckboxControl")
PickerControl = nil
SingleSelect = false
machineStatus = nil
OnNavigateOut = function(l_1_0)
   _request.NavigateOutTo:disconnect(OnNavigateOut)
   machineStatus.TwentyFourHourTime.OnValueChanged:disconnect(HandleTimeChange)
   machineStatus = nil
   Transition(l_1_0, "Out")
end

OnNavigateIn = function(l_2_0)
   _request.NavigateInFrom:disconnect(OnNavigateIn)
   Transition(l_2_0, "In")
end

main = function()
   trace("[PeopleEmail] main")
   objs3D = {}
   objs3D[1] = Camera3D
   _request.NavigateOutTo:connect(OnNavigateOut)
   _request.NavigateInFrom:connect(OnNavigateIn)
   SingleSelect = _request.URL.Parameters:GetParameter("singleselect") == "true"
   machineStatus = MachineStatus()
   machineStatus.TwentyFourHourTime.OnValueChanged:connect(HandleTimeChange)
   PickerControl = PeopleEmailPicker(not machineStatus.CurrentTime.Value.IsTwentyFourHour)
   _application:SetLeftSoftkey(Softkey(Locale:GetString("IDS_DONE"), LSKFunction_Callback))
   _application:SetRightSoftkey(Softkey(Locale:GetString("IDS_BACK"), RSKFunction_Callback))
   if _application.Store:GetStringValue(Lifetime_Permanent, "EnableLandscape") == "true" then
      trace("[peopleEmail] : EnableLandscape")
      require("people\\peopleEmail_Landscape")
      PeopleEmail_Landscape = PeopleEmail_ScreenRotation(ResetScreenLayout)
   end
   trace("PeopleEmailObj.ShowAMPM=======" .. tostring(PickerControl.ShowAMPM))
end

HandleTimeChange = function()
   trace("HandleTimeChange")
   local l_4_0 = machineStatus.CurrentTime.Value
   if PickerControl.ShowAMPM == l_4_0.IsTwentyFourHour then
      PickerControl.ShowAMPM = not l_4_0.IsTwentyFourHour
      PickerControl:ResetDateTimeFormate()
   end
   trace("HandleTimeChange end")
end

RSKFunction_Callback = function()
   trace("[PeopleEmail] RSKFunction_Callback")
   _application.Navigation:NavigateBack()
end

LSKFunction_Callback = function()
   trace("[EmailPicker] LSKFunction_Callback")
   PickerControl:DoDeleteMail()
   _application.Navigation:NavigateBack()
end

ResetScreenLayout = function(l_7_0, l_7_1)
   PickerControl.WindowW = l_7_0
   PickerControl.WindowH = l_7_1
   PickerControl.ListView.Position.y = l_7_1 / 2 - PickerControl.TitleBarH
   PickerControl.ListView.Position.x = -l_7_0 / 2
   PickerControl.ListView.Viewport.x = l_7_0
   PickerControl.ListView.Viewport.y = l_7_1 - PickerControl.TitleBarH
   PickerControl.TimePosX = l_7_0 - PickerControl.EMAILTIMEDX
   PickerControl.SelectPosX = l_7_0 - PickerControl.SELECTDX
   PickerControl:ResetListViewLayout()
end

PeopleEmailPicker = class()
PeopleEmailPicker.__init = function(l_8_0)
   trace("[PeopleEmail] PeopleEmailPicker:__init")
   l_8_0.WindowW = 480
   l_8_0.WindowH = 696
   l_8_0.LISTVIEWITEMH = 80
   l_8_0.TitleBarH = 60
   l_8_0.EMAILTIMEDX = 198
   l_8_0.SELECTDX = 50
   l_8_0.TimePosX = 282
   l_8_0.SelectPosX = 430
   l_8_0.ShowAMPM = false
   l_8_0.PeopleEngine = PeopleEngine_Instance()
   l_8_0.PerInfo = PersonInfo()
   l_8_0.PeopleEngine:GetPersonInfo(l_8_0.PerInfo)
   l_8_0.ListView = SelectEmailList
   trace("++++++++++++")
   local l_8_1 = TileLayout()
   l_8_1:SetItemSize(l_8_0.WindowW, l_8_0.LISTVIEWITEMH, 0)
   l_8_0.ListView:SetLayout(l_8_1)
   l_8_0.PIDatabase = PersonInfoDatabase(l_8_0.PerInfo, PersonInfo_EMAIL)
   l_8_0.Emails = l_8_0.PIDatabase:Select(nil, nil)
   local l_8_2 = LibraryGeneratorPersonInfoBase(l_8_0.Emails, l_8_0.ListView:GetMovie(), l_8_0.ListView.ComponentLibraryName, l_8_0.ListView.ComponentLibraryID)
   l_8_2.RecycleItems = true
   l_8_2.ItemCreated:connect(l_8_0.HandleItemCreated, l_8_0)
   l_8_2.ItemDestroyed:connect(l_8_0.HandleItemDestroyed, l_8_0)
   if SingleSelect then
      l_8_2.SelectedIndexChanged:connect(l_8_0.OnSelectedIndexChanged, l_8_0)
      l_8_0.ListPhysics = ScrollPhysics(l_8_0.ListView, l_8_0.ListView, nil, true)
   else
      l_8_0.ListPhysics = ScrollPhysics(l_8_0.ListView, l_8_0.ListView, HandleSelection, true)
   end
   l_8_0.ListView:SetGenerator(l_8_2)
   l_8_0.ListView:ForceLayout()
   l_8_0.ListView:Focus()
   l_8_0.ListPhysics:ConnectMouseEvents()
end

PeopleEmailPicker.HandleItemCreated = function(l_9_0, l_9_1, l_9_2)
   trace("PeopleEmailPicker:HandleItemCreated")
   local l_9_3 = l_9_2.Namespace
   local l_9_4 = l_9_3:FindName("EmailSubject")
   local l_9_5 = l_9_3:FindName("EmailAccountName")
   local l_9_6 = l_9_3:FindName("dottedline")
   local l_9_7 = l_9_3:FindName("EmailTime")
   local l_9_8 = l_9_3:FindName("Select")
   local l_9_9 = l_9_0.PIDatabase:GetMailMessagingInstance(l_9_1)
   local l_9_10 = l_9_9:GetDeliverTime():ToLocal()
   l_9_4._visible = true
   l_9_5._visible = true
   l_9_6._visible = true
   l_9_7._visible = true
   l_9_6.Size.width = l_9_0.WindowW
   l_9_6.TextureCoords.width = l_9_6.Size.width / 2
   l_9_7.Position.x = l_9_0.TimePosX
   l_9_4.Size.width = l_9_0.WindowW - l_9_0.SELECTDX
   l_9_4.String = l_9_9:GetSubject()
   local name = l_9_9:GetAccountName()
   if name == "ActiveSync" then
      name = "Outlook"
   end
   l_9_5.String = name
   l_9_8.Position.x = l_9_0.SelectPosX
   if SingleSelect then
      l_9_8._visible = false
   else
      InitializeCheckbox(l_9_8, l_9_9:GetSelectedState())
      l_9_8._visible = true
   end
   l_9_2.Focusable = true
   l_9_7.String = l_9_0:GetFormatTime(l_9_10)
end

PeopleEmailPicker.HandleItemDestroyed = function(l_10_0, l_10_1)
   local l_10_2 = l_10_1.Namespace
   local l_10_3 = l_10_2:FindName("EmailSubject")
   local l_10_4 = l_10_2:FindName("EmailAccountName")
   local l_10_5 = l_10_2:FindName("dottedline")
   local l_10_6 = l_10_2:FindName("EmailTime")
   local l_10_7 = l_10_2:FindName("Select")
   l_10_3._visible = false
   l_10_4._visible = false
   l_10_5._visible = false
   l_10_6._visible = false
   l_10_7._visible = false
   l_10_3 = nil
   l_10_4 = nil
   l_10_5._visible = nil
   l_10_6 = nil
   l_10_7._visible = nil
end

PeopleEmailPicker.ResetDateTimeFormate = function(l_11_0)
   trace("ResetDateTimeFormate")
   if l_11_0.ListView:GetGenerator() ~= nil then
      local l_11_1 = l_11_0.ListView:GetGenerator():GetCount() - 1
      local l_11_2 = nil
      local l_11_3 = nil
      for i = 0, l_11_1 do
         l_11_2 = l_11_0.ListView:GetGenerator():GetItem(i)
         if l_11_2 ~= nil then
            local emails = l_11_0.Emails:GetItem(i)
            local pid = l_11_0.PIDatabase:GetMailMessagingInstance(emails)
            local gdt = pid:GetDeliverTime():ToLocal()
            l_11_3 = l_11_2.Namespace:FindName("EmailTime")
            l_11_3.String = l_11_0:GetFormatTime(gdt)
         end
      end
   end
   trace("ResetDateTimeFormate end")
end

PeopleEmailPicker.GetFormatTime = function(l_12_0, l_12_1)
   local l_12_2 = ""
   if l_12_1:IsToday() then
      if machineStatus.CurrentTime.Value.IsTwentyFourHour then
         l_12_2 = l_12_1:GetTimeString(TimeFormatOptions_Default)
      else
         l_12_2 = l_12_1:GetTimeString(TimeFormatOptions_ExcludeTimeMarker) .. l_12_1:GetTimeString("tt")
      end
   else
      l_12_2 = l_12_1:GetDateString(DateFormatOptions_Default)
   end
   return l_12_2
end

PeopleEmailPicker.DoDeleteMail = function(l_13_0)
   local l_13_1 = l_13_0.ListView:GetGenerator():GetCount()
   trace("do delete mail" .. l_13_1)
   while l_13_1 > 0 do
         l_13_1 = l_13_1 - 1
         local l_13_2 = l_13_0.Emails:GetItem(l_13_1)
         local l_13_3 = l_13_0.PIDatabase:GetMailMessagingInstance(l_13_2)
         trace("mail " .. l_13_1 .. " state=" .. tostring(l_13_3:GetSelectedState()))
         if l_13_3:GetSelectedState() then
           l_13_0.PIDatabase:DeleteAnEmail(l_13_3)
           trace("delete mail " .. l_13_1)
         end
   end
end

PeopleEmailPicker.ResetListViewLayout = function(l_14_0)
   local l_14_1 = l_14_0.ListView:GetGenerator()
   if l_14_1 ~= nil then
      local l_14_2 = nil
      local l_14_3 = nil
      local l_14_4 = nil
      local l_14_5 = l_14_1:GetCount() - 1
      for i = 0, l_14_5 do
         l_14_3 = l_14_1:GetItem(i)
         if l_14_3 ~= nil then
            l_14_2 = l_14_3.Namespace
            l_14_2:FindName("EmailTime").Position.x = l_14_0.TimePosX
            l_14_2:FindName("EmailSubject").Size.width = l_14_0.WindowW - l_14_0.SELECTDX
            l_14_2:FindName("Select").Position.x = l_14_0.SelectPosX
            l_14_4 = l_14_2:FindName("dottedline")
            l_14_4.Size.width = l_14_0.WindowW
            l_14_4.TextureCoords.width = l_14_4.Size.width / 2
         end
      end
   end
end

HandleSelection = function(l_15_0)
   if l_15_0 >= 0 then
      trace("HandleSelection" .. l_15_0)
      local l_15_1 = PickerControl.ListView:GetGenerator():GetItem(l_15_0)
      local l_15_2 = PickerControl.Emails:GetItem(l_15_0)
      local l_15_3 = PickerControl.PIDatabase:GetMailMessagingInstance(l_15_2)
      local l_15_4 = l_15_1.Namespace:FindName("Select")
      l_15_3:SetSelectedState()
      ToggleCheckbox(l_15_4, l_15_3:GetSelectedState())
      trace("select" .. tostring(l_15_3:GetSelectedState()))
   end
end

main()

⌨️ 快捷键说明

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