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