true
Shortcut: VPN
true
VPN
false
DirectVPN Expression: syslang/translations
syslang = replaceAll(trim(syslang), '([a-z]+)(-[A-Z]+)?', '$1');
translations = newList(
newList('en', 'CONNECT', 'DISCONNECT', 'CANCEL', 'Connected', 'VPN is connected', '(VPN)\\n|(Connecting.*)\\n|(Unsuccessful)\\n'),
newList('de', 'VERBINDEN', 'VERBINDUNG TRENNEN', 'ABBRECHEN', 'Verbunden', 'VPN ist verbunden', '(VPN)\\n|(Verbindung.*)\\n|(Nicht erfolgreich)\\n')
);
for (i in [0 to length(translations)-1])
{
if (syslang == getElement(getElement(translations,i),0))
{
txt_connect = getElement(getElement(translations,i),1);
txt_disconnect = getElement(getElement(translations,i),2);
txt_cancel = getElement(getElement(translations,i),3);
txt_connected = getElement(getElement(translations,i),4);
txt_vpnconnected = getElement(getElement(translations,i),5);
txt_vpnstatus = getElement(getElement(translations,i),6);
check = '('+getElement(getElement(translations,i),0)+')(-[A-Z]+)?';
}
}
matches(trim(syslang), check);
false
DirectVPN Expression: VPN connected
if (containsElement(vpns, txt_connected)){
return true;
}
else {
return false;
}
false
DirectVPN Expression: VPNs != 1
// return true if multiple VPNs (or false if only one)
if (length(vpns) != 1){
return true;
}
else {
return false;
}
false
DirectVPN Expression: VPNs >= 1
// check if there are any VPN entries
if (length(vpns) >= 1){
return true;
}
else {
return false;
}
true
Service Running: ch.gridvision.ppam.androidautomagic.AccessibilityService
ch.gridvision.ppam.androidautomagic.AccessibilityService
false
DirectVPN Control UI: connect single VPN
false
DirectVPN Control UI: connect VPN
false
DirectVPN Control UI: disconnect VPN
false
DirectVPN Control UI: settings
false
DirectVPN getprop persist.sys.locale
getprop persist.sys.locale
1000
syslang
stderr
exit_code
false
DirectVPN Input Dialog: select VPN
Select VPN ({syslang})
SINGLE_CHOICE_MENU
{vpns,listformat,comma}
DEFAULT
DEFAULT
DEFAULT
false
60000
false
false
false
false
false
DirectVPN Message Dialog: language
Sorry
Your language ({syslang}) is not supported.
You can extend [DirectVPN Expression: syslang/translations] if you want to use the Flow in your language.
false
60000
false
DirectVPN Message Dialog: no VPNs
Sorry
Seems like there are no VPNs.
false
60000
true
Launch App: com.android.settings/.Settings$AccessibilitySettingsActivity
com.android.settings
com.android.settings.Settings$AccessibilitySettingsActivity
true
Launch App: com.android.settings/.Settings$VpnSettingsActivity
com.android.settings
com.android.settings.Settings$VpnSettingsActivity
true
Message Dialog: Error Accessibility service not running
Error
Accessibility service not running
false
60000
DirectVPN
Common
true
PARALLEL
Shortcut: VPN
Launch App: com.android.settings/.Settings$VpnSettingsActivity
DirectVPN Control UI: settings
DirectVPN Expression: VPNs >= 1
DirectVPN Message Dialog: no VPNs
DirectVPN Expression: VPN connected
DirectVPN Control UI: connect VPN
DirectVPN Control UI: disconnect VPN
DirectVPN Input Dialog: select VPN
DirectVPN getprop persist.sys.locale
DirectVPN Message Dialog: language
DirectVPN Expression: syslang/translations
Service Running: ch.gridvision.ppam.androidautomagic.AccessibilityService
Message Dialog: Error Accessibility service not running
Launch App: com.android.settings/.Settings$AccessibilitySettingsActivity
DirectVPN Control UI: connect single VPN
DirectVPN Expression: VPNs != 1