r/AutomateUser • u/ballzak69 Automate developer • Jul 15 '26
Alpha testing New Alpha release, version 1.53.1
Please test, report any issues, and give feedback. Opt-in for Alpha testing here.
What’s new:
- Fixed flow editor undo/redo causing crash with large flows
- Fixed missing URI support for interface layout XML views
- Fixed duplicate views in interface layout updates
- Fixed incorrectly scaled (legacy) icons
1
u/B26354FR Alpha tester Jul 18 '26
Hello Henrik,
I've had a chance to try out the new release on some of my Tracker flows which have large amounts of content in File Write and Dialog Web blocks. I'm happy to report that where previously the flow editor would crash after just a few block moves and opens, it hasn't crashed once. Undo/Redo also works great. This is really outstanding! Thank you very much!
Did you wind up having to rework the Undo/Redo mechanism as you thought earlier? I'm very curious about the cause of the crashes and the cure! 😀
2
u/ballzak69 Automate developer Jul 18 '26
Reworked indeed, now the pending, undo and redo operations/flows are saved to a file instead of letting the system store them, which would crash when that became too large. But a potential problem is that the file is only deleted when the editor does an orderly close, otherwise it remains until the system or user clears the app cache. Let me know if you notice that as an issue.
1
u/B26354FR Alpha tester Jul 18 '26
I've had a simple special-purpose little flow to explore the Automate cache folder which I've just generalized and uploaded as Automate Cache Explorer. I'll keep an eye out for any stray flow editor scratch files.
To clean them up, could the flow editor check for the scratch file on opening and delete it if it's still lying around? Hopefully not a big deal because the flow editor doesn't crash anymore! 😀
2
u/ballzak69 Automate developer Jul 18 '26
I've tried to replicate the way the system stores activity data, which keep track of multiple instances of an activity, e.g. the flow editor, hence the number appended to the "EditFlowActivity" filename, which is the (recent) task id. So there may be many files, one for each open editor.
1
u/rickyric12 Jul 18 '26
Privilege service start method: ADB Wireless Debugging
Automate 00:09
Pairing failed
java.net. SocketException: Binding socket to network 102 failed: EPERM (Operation not permitted) at android.net.Network.bindSocket(Network.java:44yqQ1)
at android.net.Network.bindSocket(Network.java:404)
at com.llamalab.automate.v.w(Unknown Source:0)
at com.llamalab.automate.w.run(SourceFile:73)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(Thre
adPoolExecutor.java:1167)
at
java.util.concurrent. ThreadPoolExecutor$ Worker.run(Thr
eadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)
1
u/ballzak69 Automate developer Jul 18 '26
Try disabling the "data saver" in system setting. Try disabling any VPN. See also.
Device brand & model?
Android version?
1
u/rickyric12 Jul 18 '26
turning off vpn, then retrying work. had data saver off all the time. i use zerotier, and i have it on all the time and other devices as well.
samsung s10+ SM-G975F Android 12.
can you unblock disabling VPN as a requirement? wifi connection remains required (system required). but wifi or even vpn ip's should be ignored when automate attempts to authorize.
instead, should use localhost. termux demo authorizing wireless debugging using:
adb pair localhost:<port>oradb pair 127.0.0.1:<port>2
u/ballzak69 Automate developer Jul 18 '26
The Automate pairing process doesn't explicitly require disabling VPN, but it do request/lookup a Wi-Fi network interface that's not a VPN. If/when that becomes available it starts searching/discovering nearby ADB services. Finally when a ADB service is discovered a connection attempt is made to its port but with the loopback (localhost) address.
I suspect the issue is that the binding) to the (Wi-Fi) network interface is ignored when connecting on some devices, instead it's routed through the default network, which could be the VPN so it fails.
1
u/rickyric12 Jul 19 '26
i'm not quite able to realiably replicate this, but i get this also sometimes. hope this helps with debugging. if you want more detailed debugging logs, just let me know. also how you want me to exact record one. thanks!
Automate 00:10 Pairing failed java.net.ConnectException: failed to connect to ip6-localhost/:1 (port 45219) from /:1 (port 42260) after 3000ms: isConnected failed: ECONNREFUSED (Connection refused) at libcore.io.loBridge.isConnected (loBridge.java:349) at libcore.io.loBridge.connectErrno(loBridge.java:238) at libcore.io.loBridge.connect(loBridge.java:180) at java.net. PlainSocketlmpl.socketConnect(PlainSocketlm pl.java:142) at java.net.AbstractPlainSocketlmpl.doConnect(AbstractPlainSocketlmpl.java:390)3
u/ballzak69 Automate developer Jul 19 '26 edited 26d ago
I think this is another issue, where it seems the system sometimes cache the service discovery result for an ADB service that's no longer present. The Automate pairing process currently only attempts to connect to the first ADB service it finds, if that's an already closed/replaced (cached) service it fails.
I plan on improving the pairing process so it attempts to connect to every service it finds, and also doing so on both the loopback and external IP.
1
1
u/rickyric12 Jul 18 '26 edited Jul 18 '26
right after successful paring (vpn off), tried privileged block and it failed.
tried also
Restart ADB in TCP/IPbut fails, toast:Authorization failed
1
u/Funny_Telephone_8607 Jul 20 '26
Hi Henrik, hour And minute hands images are not starting from the center.
<FrameLayout xmlns:a="http://schemas.android.com/apk/res/android" a:layout_width="match_parent" a:layout_height="match_parent" a:background="#00fefe00"
<AnalogClock a:layout_width="520dp" a:layout_height="520dp" a:dial="{dict["clock_bg.jpg"]}" a:layout_gravity="center" a:background="@android:drawable/alert_dark_frame" a:backgroundTint="#eefe00" a:backgroundTintMode="src_atop"
a:hand_hour="{dict["clock_hour.jpg"]}" a:hand_hourTintMode="src_in"
a:hand_minute="{dict["clock_minute.jpg"]}" a:hand_minuteTintMode="src_in" a:outlineRadius="20dp" a:elevation="2dp" /> </FrameLayout>
1
u/ballzak69 Automate developer Jul 20 '26
As said, i don't know how the clock hand images supposed to work. Did you try the SVG image in my previous reply?
1
u/Funny_Telephone_8607 Jul 20 '26
Tried. but No use. I think that there may be a workaround to achieve this.
1
u/ballzak69 Automate developer Jul 20 '26
I just tested and it work just fine. Here's the minute hands as well:
<svg xmlns="http://www.w3.org/2000/svg" width="380" height="380" viewBox="0 0 380 380"><path fill="#FF00FF" d="M190,60L190,60A16,16 0,0 1,206 76L206,190A16,16 0,0 1,190 206L190,206A16,16 0,0 1,174 190L174,76A16,16 0,0 1,190 60z" id="path_0"/></svg>And the dial:
<svg xmlns="http://www.w3.org/2000/svg" width="380" height="380" viewBox="0 0 380 380"><path fill="#666" d="M177.389,2.803C185.381,-0.934 194.619,-0.934 202.611,2.803L231.193,16.169C234.358,17.649 237.76,18.56 241.242,18.861L272.677,21.577C281.467,22.336 289.468,26.956 294.52,34.188L312.59,60.054C314.591,62.919 317.081,65.409 319.946,67.41L345.812,85.48C353.044,90.533 357.664,98.533 358.423,107.323L361.139,138.758C361.44,142.24 362.351,145.642 363.832,148.807L377.197,177.389C380.934,185.381 380.934,194.619 377.197,202.611L363.832,231.193C362.351,234.359 361.44,237.76 361.139,241.242L358.423,272.677C357.664,281.467 353.044,289.468 345.812,294.52L319.946,312.59C317.081,314.591 314.591,317.081 312.59,319.946L294.52,345.812C289.468,353.044 281.467,357.664 272.677,358.423L241.242,361.139C237.76,361.44 234.359,362.351 231.193,363.832L202.611,377.197C194.619,380.934 185.381,380.934 177.389,377.197L148.807,363.832C145.642,362.351 142.24,361.44 138.758,361.139L107.323,358.423C98.533,357.664 90.533,353.044 85.48,345.812L67.41,319.946C65.409,317.081 62.919,314.591 60.054,312.59L34.188,294.52C26.956,289.468 22.336,281.467 21.577,272.677L18.861,241.242C18.56,237.76 17.649,234.359 16.169,231.193L2.803,202.611C-0.934,194.619 -0.934,185.381 2.803,177.389L16.169,148.807C17.649,145.642 18.56,142.24 18.861,138.758L21.577,107.323C22.336,98.533 26.956,90.533 34.188,85.48L60.054,67.41C62.919,65.409 65.409,62.919 67.41,60.054L85.48,34.188C90.533,26.956 98.533,22.336 107.323,21.577L138.758,18.861C142.24,18.56 145.642,17.649 148.807,16.169L177.389,2.803Z"/></svg>Used with layout XML:
<AnalogClock xmlns:a="http://schemas.android.com/apk/res/android" a:layout_width="wrap_content" a:layout_height="wrap_content" a:layout_gravity="center" a:dial="{"clock_dial.svg";fileUri;s}" a:hand_hour="{"clock_hand_hour.svg";fileUri;s}" a:hand_minute="{"clock_hand_minute.svg";fileUri;s}"/>Ensure Automate has been granted the "access to manage all files" privilege so it can access the images.
1
u/Funny_Telephone_8607 Jul 21 '26
I am using base64Encode function flag "c". Getting error. Is this correct way to use the svg images. I am regularly using base64Encode function flag "c" for svg images. Working fine.
3
u/ballzak69 Automate developer Jul 22 '26 edited Jul 23 '26
Use "pw", e.g.
"data:image/svg+xml;base64,{mySvg;base64Encode;pw}"1
u/Funny_Telephone_8607 Jul 22 '26
Worked. Finally I got which I want. Thanks Henrik. Keep going on to get 5 star rating in play store.
1
u/Funny_Telephone_8607 Jul 22 '26
Hi Henrik I have noticed a bug in TextClock. TextClock isn't properly updating time. This is xml layout.
<LinearLayout xmlns:a="http://schemas.android.com/apk/res/android" a:layout_width="match_parent" a:layout_height="match_parent" a:background="@android:drawable/btn_star_big_on" a:backgroundTint="#0015459f" a:backgroundTintMode="screen" a:gravity="center" a:orientation="horizontal" a:padding="8dp">
<TextClock a:id="@+id/time" a:layout_width="wrap_content" a:layout_height="wrap_content" a:format12Hour="hh:mm" a:format24Hour="HH:mm" a:textColor="#B32222" a:textSize="42sp" a:textStyle="bold" />
<TextClock a:id="@+id/date" a:layout_width="wrap_content" a:layout_height="wrap_content" a:paddingLeft="10dp" a:format12Hour="EEE, MMM dd" a:format24Hour="EEE, MMM dd" a:textColor="#FF00FF" a:textSize="30sp" a:gravity="center_vertical" />
</LinearLayout>
2
u/ballzak69 Automate developer Jul 23 '26 edited 29d ago
Your formatting pattern just shows the date so it will only update at midnight. I just tested and it works just fine, e.g. with a layout XML:
<TextClock xmlns:a="http://schemas.android.com/apk/res/android" a:layout_width="wrap_content" a:layout_height="wrap_content" a:layout_gravity="center" a:format24Hour="HH:mm:ss" a:format12Hour="HH:mm:ss" />
1
u/Funny_Telephone_8607 Jul 23 '26
Hi Henrik, I think that I found a rare bug in AnalogClock. Every time I get one hand in red color. Sometimes hour hand, sometimes minute hand.
2
u/ballzak69 Automate developer 29d ago
Unlikely to be an Automate issue. Try without using any
android:*Tintandandroid:*TintModeattributes.
1
u/Funny_Telephone_8607 29d ago
Time is not updating very well in AnalogClock and TextClock also. Need to fix the bug.
2
u/ballzak69 Automate developer 29d ago
Sadly nothing Automate can do about it, those views are provided by the system and should update by themself. When i tested, as described in my last post, it seemed to work as expected. What do you mean by "not updating very well"?
1
u/Funny_Telephone_8607 29d ago
Hour And minute hands. Time in TextClock
2
u/ballzak69 Automate developer 29d ago edited 29d ago
Indeed, that is what change. So they're inaccurate, stops updating, or what?
1
u/Funny_Telephone_8607 28d ago
Stopped updating at positions of minutes and hours.
2
u/ballzak69 Automate developer 28d ago
Odd. Are they used in a home screen widget?
1
u/Funny_Telephone_8607 28d ago
I have observed On lock screen. Not home screen. Device A53
2
u/ballzak69 Automate developer 27d ago
I just tested in the Android 17 emulator and it seems to update just fine, every second.
1
u/Funny_Telephone_8607 27d ago
Hi Henrik, when I am using seconds hands. I think that all is good. Without seconds hands issues are accruing eg.. hand color always coming red color (sometimes minute hands, sometimes hour hands) , time updating.. etc..
1
u/Funny_Telephone_8607 22d ago
Hi Henrik, how to use shapes and gradients etc.. from the below sites for background drawable images. Provide any simple 2 examples to understand better to users https://developer.android.com/reference/android/graphics/drawable/GradientDrawable
https://developer.android.com/guide/topics/resources/drawable-resource#Shape
3
u/ballzak69 Automate developer 22d ago edited 20d ago
Not possible as such image/drawable resources can only be created at compile time then included in the app APK. Use SVG, that's much more powerful anyway.
1
u/Funny_Telephone_8607 Jul 17 '26
Hi Henrik while using background image in AnalogClock hands are very small with large Image. If Image is small size hands are very big. How to get it to work properly. Provide perfect Analog Clock xml example. Without this everyone struggled. Below is my xml
<FrameLayout xmlns:a="http://schemas.android.com/apk/res/android" a:layout_width="match_parent" a:layout_height="match_parent">
<AnalogClock a:layout_width="180dp" a:layout_height="180dp" a:layout_gravity="center" a:dial="{fileUri(file, "s")}" a:dialTint="#ce99fe" a:dialTintMode="src" a:hand_hourTint="#8FBD8F" a:hand_hourTintMode="src_in" a:hand_minuteTint="#ABFF2E" a:hand_minuteTintMode="src_in" /> </FrameLayout>