For each Java object in Java array

189 views
Skip to first unread message

Alexandre Dumont

unread,
Jan 1, 2017, 2:42:38 PM1/1/17
to Tasker
I'm trying to do a For loop on each Java object of a Java array. I'd like to keep each item in the loop as a Java object so I can continue to use Java functions. Unfortunately it seems I can only assign the item to a Tasker variable. Trying to subsequently assign it to a Java object also fails. Is there any way?

This is my example :

GetSyncAdapters2 (80)
A1: Java Function [ Return:sat Class Or Object:ContentResolver Function:getSyncAdapterTypes
{SyncAdapterType[]} () Param: Param: Param: Param: Param: Param: Param: Continue Task After Error:On ]
A2: For [ Variable:%var Items:sat ]
A3: Java Function [ Return:adap Class Or Object:(SyncAdapterType) %var Function:assign
{SyncAdapterType} () Param: Param: Param: Param: Param: Param: Param: ]
A4: Java Function [ Return:%str Class Or Object:adap Function:toString
{String} () Param: Param: Param: Param: Param: Param: Param: ]
A5: Flash [ Text:%str Long:Off ]
A6: End For
A7: [X] HTML Popup [ Code:%sat(#)

%sat() Layout:Scene Timeout (Seconds):119 Show Over Keyguard:Off ]


Thanks in advance for the help

Alexandre Dumont

unread,
Jan 2, 2017, 10:27:40 AM1/2/17
to Tasker
I managed to solve the problem. It seems I need to cast otherwise it's not working (although the type appear to be cprrectly recognized in tasker). In this example I first obtain an arraay of all the SyncAdapterTypes, then I do a for loop using an %index to go through the array. For each iteration, I use a Java Function to assign the item at %index of the array to a new Java object (called asat here). That's were I needed to force the type to SyncAdapterType.

A1: Java Function [ Return:sat Class Or Object:ContentResolver Function:getSyncAdapterTypes
{SyncAdapterType[]} () Param: Param: Param: Param: Param: Param: Param: Continue Task After Error:On ]

A2: Java Function [ Return:%satsize Class Or Object:Array Function:getLength
{int} (Object) Param:sat Param: Param: Param: Param: Param: Param: ]

A3: Variable Set [ Name:%satsize To:%satsize-1 Recurse Variables:Off Do Maths:On Append:Off ]

A4: For [ Variable:%index Items:0:%satsize ]

A5: Java Function [ Return:(SyncAdapterType) asat Class Or Object:sat[%index] Function:assign

{SyncAdapterType} () Param: Param: Param: Param: Param: Param: Param: ]

A6: Java Function [ Return:%auth Class Or Object:asat.authority Function:assign
{SyncAdapterType} Param: Param: Param: Param: Param: Param: Param: ]

A7: Java Function [ Return:%type Class Or Object:asat.accountType Function:assign
{SyncAdapterType} Param: Param: Param: Param: Param: Param: Param: ]

A8: Array Push [ Variable Array:%list Position:9999 Value:%type/%auth Fill Spaces:Off ]

A9: End For
Reply all
Reply to author
Forward
0 new messages