peoplefavoriteglobal.luac.lua
来自「htc manila 2 sourcecode」· LUA 代码 · 共 336 行
LUA
336 行
-- Decompiled using luadec 0.6 by sztupy (http://winmo.sztupy.hu)
-- Command line was: -l ;;;;7,13,18,20,22;7,13,18,20,22;0,0,4,8,12,16,20,24;0,4,8,12,16,20,24;0,4;0,4;;;0,4,19;;;;0,7;;0,2;;53; 0f49b4f1_manila.luac
trace("Load peoplefavoriteglobal")
require("transitions")
require("LetterPicker")
require("people\\ContactObject")
require("people\\PeopleSearchGroup")
require("people\\PeopleImageLoader")
require("people\\PeopleIndicatorLoader")
require("theme")
ContactObj = nil
SearchObj = nil
LetterPickerObj = nil
PicLoader = nil
IndLoader = nil
PageIsDestroyed = false
gbRequireLandscape = false
_PeopleFavorite_ScreenRotation = nil
objs3D = {}
objs3D[1] = Camera3D
objs2D = {}
objs2D[1] = SearchGroup
setOffScreen()
OnNavigateOut = function(l_1_0)
PageIsDestroyed = true
_application.OnVisibilityChanged:disconnect(HandleVisibilityChanged)
_request.NavigateOutTo:disconnect(OnNavigateOut)
PeopleFavorite_CancelAllAsyncRequest()
if PicLoader ~= nil then
PicLoader:StopThread()
PicLoader = nil
end
if IndLoader ~= nil then
IndLoader:StopThread()
IndLoader = nil
end
ContactObj:DisconnectEvents()
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)
PeopleFavorite_ListPhysicsScrollBehaviorCallback = function(l_3_0)
if PageIsDestroyed then
return
end
trace(" PeopleFavorite behavior = " .. l_3_0)
if l_3_0 == GESTURE_PAN_END then
PeopleFavorite_UpdatePicture()
end
collectgarbage("collect")
end
PeopleFavorite_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 and item.Tag.Oid ~= nil then
local l_4_10 = item.Tag.Oid
if item.Tag.Pic == nil then
item.Tag.Pic = PeopleImageLoader(AsyncPicLoader_CreateInstance(PicLoader), item.Namespace:FindName("HeaderIcon"), l_4_10)
end
if item.Tag.Ind == nil then
item.Tag.Ind = PeopleIndicatorLoader(AsyncIndLoader_CreateInstance(IndLoader), item.Namespace:FindName("InfoIcon"), l_4_10)
end
end
end
end
end
PeopleFavorite_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
PeopleFavorite_HandleItemDestroyed(item)
end
end
end
PeopleFavorite_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("HeaderIcon")
local l_6_4 = l_6_1.Namespace:FindName("Name")
local l_6_5 = l_6_1.Namespace:FindName("Desp")
local l_6_6 = l_6_1.Namespace:FindName("InfoIcon")
local l_6_7 = l_6_1.Namespace:FindName("line")
l_6_7.Size.width = PeopleListView.Viewport.x
l_6_3._visible = true
l_6_1.Tag = {}
l_6_2._visible = true
if l_6_0 == -1 then
l_6_6._visible = false
l_6_4.String = Locale:GetString("IDS_NEWITEMTITLE")
l_6_4._visible = true
l_6_5.String = Locale:GetString("IDS_FAVPEO_ADD")
l_6_5._visible = true
l_6_1.Tag.Add = 1
if ContactObj.FavoriteCount >= 15 then
ContactObj:HideHeadItem()
else
l_6_2:SetTextureRef("Add_New_Contact")
end
else
l_6_6._visible = false
l_6_3._visible = true
local oid = ContactObj.ContactList:GetOidStr(l_6_0 + 1)
local item = ContactObj.ContactData:GetItem(l_6_0)
l_6_4.String = item.Name
l_6_4.Position.y = -16
l_6_4._visible = true
l_6_5.String = ""
l_6_5._visible = false
l_6_1.Tag.Oid = oid
local thumb = item:GetThumbnail()
if thumb:HasValue() and thumb:GetValue():IsValid() then
l_6_3:SetTexture(thumb:GetValue().Texture)
l_6_3.TextureCoords.value = thumb:GetValue().UV
thumb: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, oid)
l_6_1.Tag.Ind = PeopleIndicatorLoader(AsyncIndLoader_CreateInstance(IndLoader), l_6_6, oid)
end
end
l_6_1.OnSelected:connect(HandleItemSelected)
l_6_1.OnDeselected:connect(HandleItemDeselected)
l_6_1.Focusable = true
end
PeopleFavorite_HandleItemDestroyed = function(l_7_0)
local l_7_1 = l_7_0.Namespace:FindName("PhotoFrame")
local l_7_2 = l_7_0.Namespace:FindName("HeaderIcon")
local l_7_3 = l_7_0.Namespace:FindName("Name")
local l_7_4 = l_7_0.Namespace:FindName("Desp")
local l_7_5 = l_7_0.Namespace:FindName("InfoIcon")
local l_7_6 = l_7_0.Namespace:FindName("MyFavesIcon")
l_7_1._visible = false
l_7_2._visible = false
l_7_3._visible = false
l_7_4._visible = false
l_7_5._visible = false
l_7_6._visible = false
if l_7_0.Tag ~= nil then
if l_7_0.Tag.Add ~= nil then
l_7_0.Tag.Add = nil
end
if l_7_0.Tag.Pic ~= nil then
local l_7_7 = l_7_0.Tag.Pic
l_7_7.Loader:Cancel()
l_7_7.Loader = nil
l_7_0.Tag.Pic = nil
end
if l_7_0.Tag.Ind ~= nil then
local l_7_7 = l_7_0.Tag.Ind
l_7_7.Loader:Cancel()
l_7_7.Loader = nil
l_7_0.Tag.Ind = nil
end
if l_7_0.Tag.Oid ~= nil then
l_7_0.Tag.Oid = nil
end
l_7_0.Tag = nil
end
l_7_0.OnSelected:disconnect(HandleItemSelected)
l_7_0.OnDeselected:disconnect(HandleItemDeselected)
end
HandleItemSelected = function(l_8_0)
local l_8_1 = l_8_0.Namespace:FindName("Name")
local l_8_2 = l_8_0.Namespace:FindName("Desp")
if l_8_1 ~= nil then
l_8_1.Color = GetMainTextSelectedColor()
end
if l_8_2 ~= nil then
l_8_2.Color = GetSubTextSelectedColor()
end
end
HandleItemDeselected = function(l_9_0)
local l_9_1 = l_9_0.Namespace:FindName("Name")
local l_9_2 = l_9_0.Namespace:FindName("Desp")
if l_9_1 ~= nil then
l_9_1.Color = GetMainTextUnselectedColor()
end
if l_9_2 ~= nil then
l_9_2.Color = GetSubTextUnselectedColor()
end
end
PeopleFavorite_HandleItemSelection = function(l_10_0)
if ContactObj.FavoriteCount >= 15 then
ContactObj.ContactList:StoreOid(l_10_0 + 1)
_application.Navigation:Navigate(URL("Manila://PeopleDetail/PeopleContact.page"), true)
elseif l_10_0 == 0 then
AddFavorite()
elseif l_10_0 > 0 then
trace("HandleItemSelection index=" .. l_10_0)
ContactObj.ContactList:StoreOid(l_10_0)
_application.Navigation:Navigate(URL("Manila://PeopleDetail/PeopleContact.page"), true)
end
end
HandleVisibilityChanged = function()
trace("[PeopleFavoriteGlobal] HandleVisibilityChanged")
if _application.Visibility == true and ContactObj.bUpdatedContactList then
ContactObj:FilterContactsFormSource()
end
end
HandleLetterSelected = function(l_12_0)
local l_12_1 = string.char(l_12_0 + 65)
trace("HandleLetterSelected=" .. l_12_1)
local l_12_2 = ContactObj.ContactList:GetLetterIndex(tostring(l_12_1)) + ContactObj.offset
trace("HandleLetterSelected indexJump=" .. l_12_2)
ContactObj.listview:GetLayout():JumpToIndex(l_12_2, ListAlignment_Top, ListAlignmentOptions_Snap)
end
InitLetterPicker = function()
if HandleLetterSelected ~= nil then
PeopleLetterPickerListView.Viewport.y = 520
LetterPickerObj = LetterPicker(PeopleLetterPickerListView, PeopleScrubBar, HandleLetterSelected, CharacterDialogGroup, LetterPickerDialogChar)
end
end
AddFavorite = function()
_application.Navigation:Navigate(URL("Manila://people/peoplepicker/contactpicker.page"), true)
end
RemoveFavorite = function()
_application.Navigation:Navigate(URL("Manila://people/removeFavorite/removeFavorite.page"), true)
end
MainMenuExitCallback = function(l_16_0)
if l_16_0.Result.ExitType ~= DialogExitType_Cancel then
local l_16_1 = l_16_0.Result.UserValue
if l_16_1 == "Add Favorite" then
AddFavorite()
elseif l_16_1 == "Remove Favorite" then
RemoveFavorite()
end
end
end
BackToPreviousPage = function()
_application.Navigation:NavigateBack()
end
OpenMenu = function()
local l_18_0 = nil
local l_18_1 = ContactObj.FavoriteCount
if l_18_1 == 0 then
l_18_0 = _application.DialogManager:GetDialog(URL("Manila://people-favorite-menu-empty.dialog"))
elseif l_18_1 < 15 then
l_18_0 = _application.DialogManager:GetDialog(URL("Manila://people-favorite-menu.dialog"))
else
l_18_0 = _application.DialogManager:GetDialog(URL("Manila://people-favorite-menu-full.dialog"))
end
l_18_0.OnExit:connect(MainMenuExitCallback)
l_18_0:Show()
end
RemoveSearchGroup = function()
InputBox._visible = false
SearchGroup._visible = false
LetterGroup._visible = false
SearchIcon._visible = false
SearchIconHitArea._visible = false
end
main = function()
if _application.Store:GetStringValue(Lifetime_Permanent, "EnableLandscape") == "true" then
require("people\\PeopleFavorite_Landscape")
gbRequireLandscape = true
_PeopleFavorite_ScreenRotation = PeopleFavorite_ScreenRotation(PeopleListView, Camera2D, Camera3D, MaskAll)
end
ContactObj = ContactControl(PeopleListView, PeopleFavorite_HandleItemCreated, PeopleFavorite_HandleItemDestroyed, PeopleFavorite_HandleItemSelection)
ContactObj:SetFavorite(true)
ContactObj:SetOffset(1)
ContactObj:SetViewPort(480, 544, 0)
ContactObj:ViewContacts()
RemoveSearchGroup()
ContactObj:SetSelectorNode(SelectorFull)
local l_20_0 = ContactObj:GetScrollPhysics()
if l_20_0 ~= nil then
l_20_0:SetBehaviorCallback(PeopleFavorite_ListPhysicsScrollBehaviorCallback)
end
_application.OnVisibilityChanged:connect(HandleVisibilityChanged)
_application:SetLeftSoftkey(Softkey(Locale:GetString("IDS_BACK"), BackToPreviousPage))
_application:SetRightSoftkey(Softkey(Locale:GetString("IDS_MENU"), OpenMenu))
PicLoader = PicLoader_CreateInstance()
IndLoader = IndLoader_CreateInstance()
if _PeopleFavorite_ScreenRotation then
_PeopleFavorite_ScreenRotation:OnScreenRotation()
end
end
main()
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?