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 + -
显示快捷键?