I am also experiencing intermittent problems with %IMETHOD updates. My workaround is to override when the variable is unset.
Since I do not know what variable SecureSettings might use or how to pass it, I just use a lookup (if/else).
Using 1.3.2b1m on rooted ICS 4.0.4 (Moto Droid Bionic pre-release)
AltKbd Set (64)
A1: Variable Set [ Name:%prevKbd To:%IMETHOD Do Maths:Off Append:Off ]
A2: Variable Set [ Name:%prevKbd To:swype Do Maths:Off Append:Off ] If [ %IMETHOD ~ %IMETHOD ]
A3: Secure Settings [ Configuration:Input Method/Thumb Keyboard 4 Package:com.intangibleobject.securesettings.plugin Name:Secure Settings ]
------------
AltKbd Undo (65)securesettings.plugin Name:Secure Settings ]
A3: Else If [ %prevKbd ~ *moto* ]
A4: Secure Settings [ Configuration:Input Method/Motorola Input Package:com.intangibleobject.securesettings.plugin Name:Secure Settings ]
A5: Else If [ %prevKbd ~ *hacker* ]
A6: Secure Settings [ Configuration:Input Method/Hacker's Keyboard Package:com.intangibleobject.securesettings.plugin Name:Secure Settings ]
A7: Else If [ %prevKbd ~ *thumb* ]
A8: Secure Settings [ Configuration:Input Method/Thumb Keyboard 4 Package:com.intangibleobject.securesettings.plugin Name:Secure Settings ]
A9: End If
A10: Variable Clear [ Name:%prevKbd Pattern Matching:Off ]
> my goal is to to make an action(and export as app) to toggle between 2 input methods, "aosp keyboard" and "voice input", but changes don't persist.
> please help
Have you checked the run log to see if it is your task that is changing it back?? What context are you using??
Menu / more / run log..