peopleselectcontactscript.luac.lua

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

LUA
383
字号
-- Decompiled using luadec 0.6 by sztupy (http://winmo.sztupy.hu)
-- Command line was: -l ;0,25;;;7,13,18,20,22;7,13,18,20,22;0,0,4,8,12;0,4,8,12,16;0,36,40,45;;;;;;;18;0,4,19;;;;71; 1a335681_manila.luac 

trace("Load PeopleSelectContactScript.lua")
require("transitions")
require("LetterPicker")
require("people\\ContactObject")
require("People\\PeopleSIMDialog")
require("people\\PeopleSearchGroup")
require("CheckboxControl")
require("people\\PeopleImageLoader")
require("MyFaves_manager_v1_5_svc")
MyFavesUtilityObj = nil
bMyFavesTurnOn = false
ContactObj = nil
SearchObj = nil
LetterPickerObj = nil
SelectCount = 0
PicLoader = nil
PageIsDestroyed = false
SSelector = nil
FSelector = nil
gbRequireLandscape = false
PeopleSelectScreenRotation = nil
PeopleFrom = {All = 1, Device = 2, SIM = 3, Updated = 4}
objs3D = {}
objs3D[1] = Camera3D
objs2D = {}
objs2D[1] = SearchGroup
setOffScreen()
OnNavigateOut = function(l_1_0)
   PageIsDestroyed = true
   _application.OnVisibilityChanged:disconnect(HandleVisibilityChanged)
   _request.NavigateOutTo:disconnect(OnNavigateOut)
   _application.OnSipPanelChanged:disconnect(HandleOnSipPanelChanged)
   PeopleSelectContact_CancelAllAsyncRequest()
   SearchObj:DisableSearchContacts()
   local l_1_1 = ContactObj:GetScrollPhysics()
   if l_1_1 ~= nil then
      l_1_1:CancelBehaviorCallback()
   end
   if PicLoader ~= nil then
      PicLoader:StopThread()
      PicLoader = nil
   end
   ContactObj:DisconnectEvents()
   if sprCover ~= nil then
      sprCover.onPress:disconnect(HandleEatsEventsCover)
      sprCover.onRelease:disconnect(HandleEatsEventsCover)
      sprCover.onReleaseOutside:disconnect(HandleEatsEventsCover)
      trace("disconnect sprCover......\n")
   end
   Transition(l_1_0, "Out")
end

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

_request.NavigateOutTo:connect(OnNavigateOut)
_request.NavigateInFrom:connect(OnNavigateIn)
PeopleSelectContact_ListPhysicsScrollBehaviorCallback = function(l_3_0)
   if PageIsDestroyed then
      return 
   end
   if l_3_0 == GESTURE_PAN_END then
      PeopleSelectContact_UpdatePicture()
   end
   collectgarbage("collect")
end

PeopleSelectContact_UpdatePicture = function()
   if PeopleListView == nil then
      return 
   end
   local l_4_0 = PeopleListView:GetLayout()
   if l_4_0 == nil then
      return 
   end
   local l_4_1 = PeopleListView:GetGenerator()
   if l_4_1 == nil then
      return 
   end
   local l_4_2 = l_4_0:GetVisibleHeadIndex()
   local l_4_3 = l_4_0:GetVisibleCount()
   local l_4_4 = l_4_2 + l_4_3 - 1
   for i = l_4_2, l_4_4 do
      local item = l_4_1:GetItem(i)
      if item ~= nil then
         if item.Tag ~= nil then
          if item.Tag.Oid ~= nil then
            local oid = item.Tag.Oid
            if item.Tag.Pic == nil then
              item.Tag.Pic = PeopleImageLoader(AsyncPicLoader_CreateInstance(PicLoader), item.Namespace:FindName("Icon"), oid)
            end
          end
        end
     end
   end
end

PeopleSelectContact_CancelAllAsyncRequest = function()
   if PeopleListView == nil then
      return 
   end
   local l_5_0 = PeopleListView:GetLayout()
   if l_5_0 == nil then
      return 
   end
   local l_5_1 = PeopleListView:GetGenerator()
   if l_5_1 == nil then
      return 
   end
   local l_5_2 = l_5_0:GetVisibleHeadIndex()
   local l_5_3 = l_5_0:GetVisibleCount()
   local l_5_4 = l_5_2 + l_5_3 - 1
   for i = l_5_2, l_5_4 do
      local item = l_5_1:GetItem(i)
      if item ~= nil then
         PeopleSelectContact_HandleItemDestroyed(item)
      end
   end
end

PeopleSelectContact_HandleItemCreated = function(l_6_0, l_6_1)
   local l_6_2 = l_6_1.Namespace:FindName("PhotoFrame")
   local l_6_3 = l_6_1.Namespace:FindName("Icon")
   local l_6_4 = l_6_1.Namespace:FindName("Title")
   local l_6_5 = l_6_1.Namespace:FindName("Select")
   local l_6_6 = l_6_1.Namespace:FindName("line")
   l_6_6.Size.width = PeopleListView.Viewport.x
   if l_6_6.Size.width == 800 then
      l_6_5.Position.x = 680
   else
      l_6_5.Position.x = 380
   end
   local l_6_7 = ContactObj.ContactList:GetOidStr(l_6_0 + 1)
   local l_6_8 = ContactObj.ContactData:GetItem(l_6_0)
   InitializeCheckbox(l_6_5, l_6_8.Selected)
   l_6_4.String = l_6_8.Name
   l_6_4._visible = true
   l_6_3._visible = true
   l_6_1.Tag = {}
   l_6_1.Tag.Oid = l_6_7
   l_6_2._visible = true
   if l_6_8.From == PeopleFrom.SIM then
      l_6_2:SetTextureRef("ContactTypeSIM")
   else
      local l_6_9 = l_6_8:GetThumbnail()
      if l_6_9:HasValue() and l_6_9:GetValue():IsValid() then
         l_6_3:SetTexture(l_6_9:GetValue().Texture)
         l_6_3.TextureCoords.value = l_6_9:GetValue().UV
         l_6_9:GetValue():Clear()
      else
         l_6_3:SetTextureRef("PeoplePlaceholderSmall")
         l_6_3.TextureCoords:set(0, 0, 0.92578125, 0.92578125)
      end
      if not ContactObj:ListPhysicsIsScrolling() then
         l_6_1.Tag.Pic = PeopleImageLoader(AsyncPicLoader_CreateInstance(PicLoader), l_6_3, l_6_7)
      end
   end
   l_6_1.Focusable = true
   if bMyFavesTurnOn == true then
      if true == MyFavesUtilityObj:IsMyFavesContactyIDForLua(l_6_7) then
         l_6_5._visible = false
      else
         l_6_5._visible = true
      end
   else
      l_6_5._visible = true
   end
end


PeopleSelectContact_HandleItemDestroyed = function(l_7_0)
   local l_7_1 = l_7_0.Namespace:FindName("PhotoFrame")
   local l_7_2 = l_7_0.Namespace:FindName("Icon")
   local l_7_3 = l_7_0.Namespace:FindName("Title")
   local l_7_4 = l_7_0.Namespace:FindName("Select")
   l_7_1._visible = false
   l_7_2._visible = false
   l_7_3._visible = false
   l_7_4._visible = false
   if l_7_0.Tag ~= nil then
      if l_7_0.Tag.Pic ~= nil then
         local l_7_5 = l_7_0.Tag.Pic
         l_7_5.Loader:Cancel()
         l_7_5.Loader = nil
         l_7_0.Tag.Pic = nil
      end
      if l_7_0.Tag.Oid ~= nil then
         l_7_0.Tag.Oid = nil
      end
      l_7_0.Tag = nil
   end
end

PeopleSelectContact_HandleItemSelection = function(l_8_0)
   trace("HandleItemSelection.." .. l_8_0)
   if l_8_0 >= 0 then
      if bMyFavesTurnOn == true then
        local cobj = ContactObj.ContactList:GetOidStr(l_8_0 + 1)
        if true == MyFavesUtilityObj:IsMyFavesContactyIDForLua(cobj) then
          trace("Block select MyFaves contact " .. tostring(l_8_0))
          return 
        end
      end
      local l_8_1 = ContactObj.listview:GetGenerator():GetItem(l_8_0)
      local l_8_2 = l_8_1.Namespace:FindName("Select")
      local l_8_3 = ContactObj.ContactData:GetItem(l_8_0)
      l_8_3.Selected = not l_8_3.Selected
      trace("update selected=" .. tostring(l_8_3.Selected))
      ToggleCheckbox(l_8_2)
      if l_8_3.Selected then
         SelectCount = SelectCount + 1
      else
         SelectCount = SelectCount - 1
      end
   end
end

HandleVisibilityChanged = function()
   if _application.Visibility == true and ContactObj.bUpdatedContactList then
      ContactObj:FilterContactsFormSource()
   end
end

SelectAllCheckBox = function()
   ContactObj.ContactList:SelectAll()
   SelectCount = ContactObj.ContactData:GetCount()
   local c = ContactObj.ContactData:GetCount() - 1
   local l_10_1 = nil
   local l_10_2 = nil
   for i = 0, c do
      l_10_1 = ContactObj.listview:GetGenerator():GetItem(i)
      if l_10_1 ~= nil then
         l_10_2 = l_10_1.Namespace:FindName("Select")
         if not l_10_2.Tag.Value then
            ToggleCheckbox(l_10_2)
         end
      end
      if bMyFavesTurnOn == true then
        local cobj = ContactObj.ContactList:GetOidStr(i + 1)
        if true == MyFavesUtilityObj:IsMyFavesContactyIDForLua(cobj) then
          ContactObj.ContactData:GetItem(i).Selected = false
        end
      end
   end
end

UnselectAllCheckBox = function()
   ContactObj.ContactList:ClearSelected()
   SelectCount = 0
   local c = ContactObj.ContactData:GetCount() - 1
   local l_11_1 = nil
   local l_11_2 = nil
   for i = 0, c do
      l_11_1 = ContactObj.listview:GetGenerator():GetItem(i)
      if l_11_1 ~= nil then
         l_11_2 = l_11_1.Namespace:FindName("Select")
         if l_11_2.Tag.Value then
            ToggleCheckbox(l_11_2)
         end
      end
   end
end

CancelSelectContact = function()
   _application.Navigation:NavigateBack()
end

MainMenuExitCallback = function(l_13_0)
   if l_13_0.Result.ExitType ~= DialogExitType_Cancel then
      if l_13_0.Result.UserValue == "Select All" then
         SelectAllCheckBox()
      else
         if l_13_0.Result.UserValue == "Unselect All" then
            UnselectAllCheckBox()
         else
            if l_13_0.Result.UserValue == "Cancel" then
               CancelSelectContact()
            end
         end
      end
   end
   if SearchGroup._visible then
      SearchObj:EnableInputBox()
   end
end

YesToDo = function()
   if SearchGroup._visible then
      ContactObj.listview:Focus()
      SearchObj:DisableInputBox()
   end
   if SelectCount == 0 then
      CancelSelectContact()
   else
      ConfirmAction()
   end
end

OpenMenu = function()
   if SearchGroup._visible then
      ContactObj.listview:Focus()
      SearchObj:DisableInputBox()
   end
   local l_15_0 = _application.DialogManager:GetDialog(URL("Manila://people-select-menu.dialog"))
   l_15_0.OnExit:connect(MainMenuExitCallback)
   l_15_0:Show()
end

HandleLetterSelected = function(l_16_0)
   local l_16_1 = string.char(l_16_0 + 65)
   trace("HandleLetterSelected=" .. l_16_1)
   local l_16_2 = ContactObj.ContactList:GetLetterIndex(tostring(l_16_1)) + ContactObj.offset
   trace("HandleLetterSelected indexJump=" .. l_16_2)
   ContactObj.listview:GetLayout():JumpToIndex(l_16_2, ListAlignment_Top, ListAlignmentOptions_Snap)
end

InitLetterPicker = function()
   if HandleLetterSelected ~= nil then
      PeopleLetterPickerListView.Viewport.y = 624
      PeopleLetterPickerListView.Position.y = 0
      LetterPickerObj = LetterPicker(PeopleLetterPickerListView, PeopleScrubBar, HandleLetterSelected, CharacterDialogGroup, LetterPickerDialogChar)
   end
end

HandleOnSipPanelChanged = function(l_18_0)
   if l_18_0 then
      trace("bSIPOn")
      LetterGroup._visible = false
   else
      trace("bSIPOFF")
      LetterGroup._visible = true
   end
end

HandleEatsEventsCover = function(l_19_0, l_19_1)
   l_19_1.value = true
   trace("Eats indicator events")
end

main = function()
   if _application.Store:GetStringValue(Lifetime_Permanent, "EnableLandscape") == "true" then
      trace("[ContactPicker] : EnableLandscape")
      require("people\\PeopleSelectContact_Landscape")
      gbRequireLandscape = true
      PeopleSelectScreenRotation = PeopleSelect_ScreenRotation(PeopleListView, Camera2D, Camera3D, MaskSelect)
   end
   MyFavesUtilityObj = MyFavesUtility()
   bMyFavesTurnOn = MyFavesUtilityObj:IsMyFavesTurnOn()
   if bMyFavesTurnOn == true then
      trace("MyFaves on")
   end
   ContactObj = ContactControl(PeopleListView, PeopleSelectContact_HandleItemCreated, PeopleSelectContact_HandleItemDestroyed, PeopleSelectContact_HandleItemSelection)
   InitLetterPicker()
   SearchObj = SearchObject(ContactObj, InputBox, SearchGroup, AllPeopleGroup, LetterGroup, SearchIcon, SearchIconHitArea, nil, nil, LetterPickerObj)
   SearchObj:EnableSearchContacts()
   SearchObj:SetLetterGroupVisibility(true)
   SearchObj:SetHitIconVisibility(false)
   local l_20_0 = ContactObj:GetScrollPhysics()
   if l_20_0 ~= nil then
      l_20_0:SetBehaviorCallback(PeopleSelectContact_ListPhysicsScrollBehaviorCallback)
   end
   _application.OnVisibilityChanged:connect(HandleVisibilityChanged)
   _application:SetLeftSoftkey(Softkey(Locale:GetString("IDS_DONE"), YesToDo))
   _application:SetRightSoftkey(Softkey(Locale:GetString("IDS_MENU"), OpenMenu))
   _application.OnSipPanelChanged:connect(HandleOnSipPanelChanged)
   PicLoader = PicLoader_CreateInstance()
   if PeopleSelectScreenRotation then
      PeopleSelectScreenRotation:SetLetterObj(LetterPickerObj)
      PeopleSelectScreenRotation:SetSearchObj(SearchObj)
      PeopleSelectScreenRotation:OnScreenRotation()
   end
   sprCover.onPress:connect(HandleEatsEventsCover)
   sprCover.onRelease:connect(HandleEatsEventsCover)
   sprCover.onReleaseOutside:connect(HandleEatsEventsCover)
end


⌨️ 快捷键说明

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