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

📄 deletemessage.luac.lua

📁 htc manila 2 sourcecode
💻 LUA
字号:
-- Decompiled using luadec 1.0 by sztupy (http://winmo.sztupy.hu)
-- Command line was: -l2 ;3,11,11,11,11,11;7;;4,5,26,47;9,13,15,19;8,17,23,33,37,41,47-60,64-72,76,94,100-125,129,132;;;;;;;;; 26c50d72_manila.luac 

trace("require services")
require("common")
require("messaging_svc")
require("machine_status_svc")
require("scrollphysics")
require("checkboxcontrol")
require("transitions")
DeleteMap = {}
ContactsSet = {}
DeleteBySender = function(l_1_0)
   local l_1_1 = Messages:GetCount()
   for i = 0, l_1_1 - 1 do
      local l_1_6 = Messages:GetItem(i)
      if l_1_6 ~= nil and l_1_6:GetSender() == l_1_0 then
         MessageDatabase:Delete(l_1_6)
      end
   end
end

OnDelete = function()
   trace("OnDelete")
   local l_2_0 = MessagingListGenerator.Collection:GetCount()
   for i = 0, l_2_0 - 1 do
      if DeleteMap[i] == true then
         DeleteBySender(MessagingListGenerator.Collection:GetItem(i):GetSender())
      else
      end
   end
end

OnDeleteDialogExit = function(l_3_0)
   l_3_0.OnExit:disconnect(OnDeleteDialogExit)
   if l_3_0.Result.ExitType == DialogExitType_OK then
      OnDelete()
   end
   _application.Navigation:NavigateBack()
end

ShowDeleteConfirmDialog = function()
   local l_4_0 = MessagingListGenerator.Collection:GetCount()
   local l_4_1 = false
   for i = 0, l_4_0 - 1 do
      if DeleteMap[i] == true then
         l_4_1 = true
         break
      end
   end
   if l_4_1 == false then
      _application.Navigation:NavigateBack()
      return 
   end
   local l_4_2 = URL("Manila://Confirmation.dialog")
   l_4_2.Parameters:AddParameter("Title", Locale:GetString("IDS_MESSAGING_CONFIRM_DELETE_TITLE"))
   l_4_2.Parameters:AddParameter("ContentString", Locale:GetString("IDS_MESSAGING_CONFIRM_DELETEALLMESSAGES"))
   local l_4_3 = _application.DialogManager:GetDialog(l_4_2)
   l_4_3.OnExit:connect(OnDeleteDialogExit)
   l_4_3:Show()
end

ListViewHit = function(l_5_0)
   trace("ListViewHit index = " .. l_5_0)
   local l_5_1 = MessagingListGenerator:GetItem(l_5_0)
   local l_5_2 = l_5_1.Namespace:FindName("msg_sender")
   local l_5_3 = l_5_1.Tag.Data
   local l_5_4 = l_5_1.Namespace:FindName("CheckboxComponent")
   ToggleCheckbox(l_5_4)
   DeleteMap[l_5_0] = not DeleteMap[l_5_0]
   l_5_1:Focus()
end

HandleItemCreated = function(l_6_0, l_6_1)
   l_6_1.Tag = {}
   l_6_1.Tag.Data = l_6_0
   local l_6_2 = l_6_1.Namespace:FindName("msg_subject")
   l_6_2.String = tostring(l_6_0:GetSubject())
   local l_6_3 = l_6_1.Namespace:FindName("CheckboxComponent")
   local l_6_4 = MessagingList:GetGenerator():GetIndexForItem(l_6_1)
   InitializeCheckbox(l_6_3, DeleteMap[l_6_4])
   l_6_1.Focusable = true
   local l_6_5 = ContactsSet[l_6_0:GetSender()]
   local l_6_6 = l_6_1.Namespace:FindName("msg_unread")
   local l_6_7 = l_6_1.Namespace:FindName("UnreadButtonImage")
   if l_6_5 > 0 then
      local l_6_8 = l_6_1.Namespace:FindName("msg_sender_bold")
      l_6_8._visible = true
      l_6_8.String = tostring(l_6_0:GetSender())
      l_6_6._visible = true
      l_6_7._visible = true
      l_6_6.String = tostring(l_6_5)
   else
      local l_6_9 = l_6_1.Namespace:FindName("msg_sender")
      l_6_9._visible = true
      l_6_9.String = tostring(l_6_0:GetSender())
      l_6_6._visible = false
      l_6_7._visible = false
   end
   local l_6_10 = l_6_1.Namespace:FindName("CheckboxComponent")
   if _application.Orientation == ScreenOrientation_Portrait then
      l_6_10.Position.x = 420
   else
      l_6_10.Position.x = 740
   end
   local l_6_11 = MessageUtils_GetPeoplePicture(tostring(MailMessage_GetRawAddress(l_6_0:GetSenderAddress())))
   if l_6_11 ~= nil then
      local l_6_12 = l_6_1.Namespace:FindName("msg_pic")
      if not l_6_11:HasValue() then
         l_6_12:SetTextureRef("PeoplePlaceholder")
         l_6_12.TextureCoords:set(0, 0, 0.92578125, 0.92578125)
      else
         l_6_12:SetTexture(l_6_11:GetValue().Texture)
         l_6_12.TextureCoords.value = l_6_11:GetValue().UV
      end
   end
   local l_6_13 = l_6_1.Namespace:FindName("msg_seperator")
   if l_6_13 then
      local l_6_14 = nil
      if _application.Orientation == ScreenOrientation_Portrait then
         l_6_14 = 480
      else
         l_6_14 = 800
      end
      l_6_13.Size.width = l_6_14
      l_6_13.TextureCoords:set(0, 0, l_6_14 / 2, 1)
   end
end

HandleItemDestroyed = function(l_7_0, l_7_1)
end

OnNavigateOut = function(l_8_0)
   _request.NavigateOutTo:disconnect(OnNavigateOut)
   MessagingListGenerator.ItemCreated:disconnect(HandleItemCreated)
   MessagingListGenerator.ItemDestroyed:disconnect(HandleItemDestroyed)
   MachineStatus().SMSUnread.OnValueChanged:disconnect(machineStatus_OnSMSMMSUnreadChange)
   MachineStatus().MMSUnread.OnValueChanged:disconnect(machineStatus_OnSMSMMSUnreadChange)
   Transition(l_8_0, "Out")
end

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

AllMessagesMenuExitCallback = function(l_10_0)
   if l_10_0.Result.ExitType ~= DialogExitType_Cancel then
      if l_10_0.Result.UserValue == "New" then
         trace("New")
         if _config_os == "windowsmobile" then
         end
      elseif l_10_0.Result.UserValue == "MessageOptions" then
         trace("MessageOptions")
         if _config_os == "windowsmobile" then
         end
      elseif l_10_0.Result.UserValue == "SaveToContacts" then
         trace("SaveToContacts")
         if _config_os == "windowsmobile" then
         end
      end
   end
end

OnCancel = function()
   trace("OnCancel")
   if _config_os == "windowsmobile" then
      _application.Navigation:NavigateBack()
   end
end

SetupListView = function()
   MessagesSimpleCollection = nil
   ListLayout = nil
   ContactsSet = nil
   MessageDatabase = nil
   Messages = nil
   ContactsSet = {}
   if MessagingListGenerator ~= nil then
      MessagingListGenerator.ItemCreated:disconnect(HandleItemCreated)
      MessagingListGenerator.ItemDestroyed:disconnect(HandleItemDestroyed)
      MessagingListGenerator = nil
   end
   MessageDatabase = MailDatabase("SMS", _application:GetScopedLog("Messaging"))
   local msb = MailSortBy()
   msb:SORTBY("DeliveryTime", SortDirection_Descending)
   Messages = MessageDatabase:Select(nil, msb)
   MessagesSimpleCollection = MailMessageSimpleQueryResult()
   local c = Messages:GetCount()
   for i = 0, c - 1 do
      DeleteMap[i] = false
      MailMessageObj = Messages:GetItem(i)
      local s = tostring(MailMessageObj:GetSender())
      if ContactsSet[s] == nil then
         ContactsSet[s] = 0
         MessagesSimpleCollection:AddItem(MailMessageObj)
      end
      if MailMessageObj:GetUnread() then
         ContactsSet[s] = ContactsSet[s] + 1
      end
   end
   trace("Messages count = " .. tostring(c))
   ListLayout = TileLayout()
   ListLayout:SetItemSize(480, 80, 0)
   MessagingList:SetLayout(ListLayout)
   MessagingListGenerator = LibraryGeneratorMailMessage(MessagesSimpleCollection, MessagingList:GetMovie(), MessagingList.ComponentLibraryName, MessagingList.ComponentLibraryID)
   MessagingListGenerator.RecycleItems = true
   MessagingListGenerator.ItemCreated:connect(HandleItemCreated)
   MessagingListGenerator.ItemDestroyed:connect(HandleItemDestroyed)
   MessagingList:SetGenerator(MessagingListGenerator)
   MessagingList:Focus()
end

machineStatus_OnSMSMMSUnreadChange = function()
   trace("machineStatus_OnSMSMMSUnreadChange")
   SetupListView()
end

Main = function()
   if _application.Store:GetStringValue(Lifetime_Permanent, "EnableLandscape") == "true" then
      trace("[DeleteMessage] : EnableLandscape")
      require("DeleteMessage_Landscape")
      gbRequireLandscape = true
      _DeleteMessage_ScreenRotation = DeleteMessage_ScreenRotation(MessagingList, My2DCamera, nil, msg_Mask)
   end
   objs3D = {}
   objs3D[1] = My2DCamera
   setOffScreen()
   _request.NavigateOutTo:connect(OnNavigateOut)
   _request.NavigateInFrom:connect(OnNavigateIn)
   SetupListView()
   MyNewLibPhysics = ScrollPhysics(MessagingList, MessagingList, ListViewHit)
   MyNewLibPhysics:ConnectMouseEvents()
   if _config_os == "windowsmobile" then
      _application:SetLeftSoftkey(Softkey(Locale:GetString("IDS_DONE"), ShowDeleteConfirmDialog))
      _application:SetRightSoftkey(Softkey(Locale:GetString("IDS_CANCEL"), OnCancel))
   end
   MachineStatus().SMSUnread.OnValueChanged:connect(machineStatus_OnSMSMMSUnreadChange)
   MachineStatus().MMSUnread.OnValueChanged:connect(machineStatus_OnSMSMMSUnreadChange)
   if _DeleteMessage_ScreenRotation then
      _DeleteMessage_ScreenRotation:OnScreenRotation()
   end
end

Main()

⌨️ 快捷键说明

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