email_accountpicker.luac.lua
来自「htc manila 2 sourcecode」· LUA 代码 · 共 210 行
LUA
210 行
-- Decompiled using luadec 1.0 by sztupy (http://winmo.sztupy.hu)
-- Command line was: -l2 ;;;14-27,26-27;;16;7;11-55,31,31,31,31,35,38;;;1;;33;;;;;; 44ae24f0_manila.luac
trace("Loaded Account Picker Script\n")
require("messaging_svc")
ScrubBarTopBorderSize = 2
ScrubBarBottomBorderSize = 2
IsPressed = false
AccountDatabase = MailAccountDatabase(_application:GetScopedLog("email"))
AccountBladeList = nil
AccountGenerator = nil
DisconnectAccoutEvents = function()
if AccountGenerator ~= nil then
AccountGenerator.ItemCreated:disconnect(HandleItemCreated)
AccountGenerator.ItemDestroyed:disconnect(HandleItemDestroyed)
AccountGenerator.SelectedIndexChanged:disconnect(HandleAccountChanged)
end
end
ConnectAccoutEvents = function()
if AccountGenerator ~= nil then
AccountGenerator.ItemCreated:connect(HandleItemCreated)
AccountGenerator.ItemDestroyed:connect(HandleItemDestroyed)
AccountGenerator.SelectedIndexChanged:connect(HandleAccountChanged)
end
end
SetBladeData = function(l_3_0)
if l_3_0 ~= -1 then
trace("Found index for scrub bar: " .. l_3_0 .. "\n")
local l_3_1 = AccountGenerator:GetData(l_3_0):GetAccountName()
if l_3_1 == "ActiveSync" then
l_3_1 = "Outlook"
end
SelectedItemOverlayName.String = l_3_1
local l_3_2 = BladePicture:GetComponentClip().Namespace:FindName("ThumbnailPicture")
else
trace("Couldn't find index for scrub bar!\n")
SelectedItemOverlayName.String = ""
end
end
HandleMouseReleaseInList = function(l_4_0, l_4_1)
ThumbnailList:GetGenerator():SelectObject(l_4_0)
l_4_1.value = true
end
HandleItemCreated = function(l_5_0, l_5_1)
trace("Item generated!\n")
l_5_1.Focusable = true
l_5_1.onKeyUp:connect(OnKeyDown)
l_5_1.OnSelected:connect(OnItemSelected)
local l_5_2 = l_5_1.Namespace:FindName("ThumbnailPicture")
l_5_2.onRelease:connect(HandleMouseReleaseInList)
trace("ThumbnailPicture found\n")
SetUnreadMessages(l_5_1, l_5_0)
end
HandleItemDestroyed = function(l_6_0)
trace("Item destroyed!\n")
local l_6_1 = l_6_0.Namespace:FindName("ThumbnailPicture")
l_6_0.onKeyUp:disconnect(OnKeyDown)
l_6_0.OnSelected:disconnect(OnItemSelected)
l_6_1.onRelease:disconnect(HandleMouseReleaseInList)
end
HandleVisibilityChanged = function()
trace("HandleVisibilityChanged")
if _application.Visibility == true then
local l_7_0 = AccountDatabase:Select(nil, nil)
if AccountQuery:GetCount() ~= l_7_0:GetCount() then
trace("Email account list size didn't match - rebuild")
RebuildAccountList()
return
end
for i = 0, AccountQuery:GetCount() - 1 do
local l_7_5 = AccountQuery:GetItem(i)
local l_7_6 = l_7_0:GetItem(i)
if l_7_5 ~= nil and l_7_6 ~= nil and l_7_5:GetAccountName() ~= l_7_6:GetAccountName() then
trace("Email account name didn't match - rebuild")
RebuildAccountList()
return
end
end
end
trace("HandleVisibilityChanged end")
end
HandleAccountChanged = function(l_8_0, l_8_1)
trace("HandleAccountChanged\n")
if l_8_1 == InitializeIndex then
InitializeIndex = nil
return
end
SaveAccountIndex(l_8_1)
CloseEnvelope()
BindCurrentAccount()
SetEmptyStateVisibilities()
end
RebuildAccountList = function()
trace("Rebuilding the account list\n")
AccountQuery = AccountDatabase:Select(nil, nil)
AccountGenerator.Collection = AccountQuery
if AccountGenerator:GetCount() > 0 then
ThumbnailListContainer._visible = true
BladeContainer._visible = true
_application:SetLeftSoftkey(Softkey(Locale:GetString("IDS_EMAIL_INBOX"), Email_InboxSoftkeyCallback))
_application:SetRightSoftkey(Softkey(Locale:GetString("IDS_MENU"), Email_MenuSoftkeyCallback))
else
ThumbnailListContainer._visible = false
BladeContainer._visible = false
_application:SetLeftSoftkey(Softkey("", nil))
_application:SetRightSoftkey(Softkey(Locale:GetString("IDS_EMAIL_ADDACCOUNT"), Email_MenuAddAccountCallback))
end
GetLastSelectedIndex(AccountGenerator:GetCount())
SetEmptyStateVisibilities()
end
GetLastSelectedIndex = function(l_10_0)
local l_10_1 = -1
if l_10_0 > 0 then
l_10_1 = _application.Store:GetIntValue(Lifetime_Application, "Email.LastSelectedAccountIndex")
trace("old account index=" .. l_10_1)
if l_10_1 < 0 or l_10_0 <= l_10_1 then
l_10_1 = 0
end
end
AccountGenerator.SelectedIndex = l_10_1
SaveAccountIndex(l_10_1)
end
SaveAccountIndex = function(l_11_0)
_application.Store:SetIntValue(Lifetime_Application, "Email.LastSelectedAccountIndex", l_11_0)
end
InitialAccountObject = function()
trace("InitialAccountObject")
AccountQuery = AccountDatabase:Select(nil, nil)
AccountGenerator = LibraryGeneratorMailAccount(AccountQuery, ThumbnailList:GetMovie(), ThumbnailList.ComponentLibraryName, ThumbnailList.ComponentLibraryID)
AccountGenerator.RecycleItems = true
ConnectAccoutEvents()
ThumbnailListContainer._visible = false
ThumbnailList:SetGenerator(AccountGenerator)
BladeContainer._visible = false
local l_12_0 = TileLayout()
l_12_0:SetItemSize(59, 62, 0)
l_12_0.DisableScrollClamping = true
l_12_0.BringSelectedIntoView = false
l_12_0:DisableMomentum()
l_12_0.DisableVirtualization = true
ThumbnailList:SetLayout(l_12_0)
if AccountBladeList == nil then
ScrubBar._visible = true
AccountBladeList = BladeList(ThumbnailList, ThumbnailListContainer, ScrubBar, ScrubBarTopBorderSize, ScrubBarBottomBorderSize, SetBladeData, Blade, BladeContainer, ScrubBarHitArea)
AccountBladeList:ConnectEvents()
else
AccountBladeList:DisconnectEvents()
AccountBladeList:ConnectEvents()
end
trace("InitialAccountObject end")
end
HandleNewEmailRelease = function(l_13_0, l_13_1)
trace("HandleNewEmailRelease")
if IsPressed == true then
if AccountGenerator.SelectedIndex >= 0 then
local x = AccountGenerator:GetData(AccountGenerator.SelectedIndex)
local xx = x:GetAccountName()
if x ~= nil then
if xx ~= nil then
Shell_NavigateTo(ShellLocation_EmailCreateMessage, xx)
end
end
end
IsPressed = false
l_13_0:SetTextureRef("icon_newemail")
l_13_1.value = true
end
trace("HandleNewEmailRelease end")
end
HandleNewEmailReleaseOutside = function(l_14_0, l_14_1)
l_14_0:SetTextureRef("icon_newemail")
IsPressed = false
end
HandleNewEmailRollOut = function(l_15_0, l_15_1)
l_15_0:SetTextureRef("icon_newemail")
end
HandleNewEmailRollOver = function(l_16_0, l_16_1)
if IsPressed == true then
l_16_0:SetTextureRef("icon_newemail_down")
end
end
HandleNewEmailPress = function(l_17_0, l_17_1)
IsPressed = true
l_17_0:SetTextureRef("icon_newemail_down")
end
NewEmail.onPress:connect(HandleNewEmailPress)
NewEmail.onRelease:connect(HandleNewEmailRelease)
NewEmail.onReleaseOutside:connect(HandleNewEmailReleaseOutside)
NewEmail.onRollOver:connect(HandleNewEmailRollOver)
NewEmail.onRollOut:connect(HandleNewEmailRollOut)
trace("load email accountpicker end")
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?