forked from jens/Automation
regex where comparisons are made
This commit is contained in:
parent
f1f3be56cb
commit
efb4919a1e
@ -476,7 +476,10 @@ public class Miscellaneous extends Service
|
|||||||
switch(direction)
|
switch(direction)
|
||||||
{
|
{
|
||||||
case Trigger.directionEquals:
|
case Trigger.directionEquals:
|
||||||
return haystack.equalsIgnoreCase(needle);
|
if(Miscellaneous.isRegularExpression(needle))
|
||||||
|
return haystack.matches(needle);
|
||||||
|
else
|
||||||
|
return haystack.equalsIgnoreCase(needle);
|
||||||
case Trigger.directionNotEquals:
|
case Trigger.directionNotEquals:
|
||||||
return !haystack.equalsIgnoreCase(needle);
|
return !haystack.equalsIgnoreCase(needle);
|
||||||
case Trigger.directionContains:
|
case Trigger.directionContains:
|
||||||
@ -1753,13 +1756,12 @@ public class Miscellaneous extends Service
|
|||||||
|
|
||||||
public static boolean comparePhoneNumbers(String number1, String number2)
|
public static boolean comparePhoneNumbers(String number1, String number2)
|
||||||
{
|
{
|
||||||
/* To be activated when Android S SDK comes out
|
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.S)
|
||||||
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.Q)
|
|
||||||
{
|
{
|
||||||
TelephonyManager tm = (TelephonyManager)Miscellaneous.getAnyContext().getSystemService(Context.TELEPHONY_SERVICE);
|
TelephonyManager tm = (TelephonyManager)Miscellaneous.getAnyContext().getSystemService(Context.TELEPHONY_SERVICE);
|
||||||
return PhoneNumberUtils.areSamePhoneNumber(number1, number2, tm.getNetworkCountryIso());
|
return PhoneNumberUtils.areSamePhoneNumber(number1, number2, tm.getNetworkCountryIso());
|
||||||
}
|
}
|
||||||
else*/
|
else
|
||||||
return PhoneNumberUtils.compare(number1, number2);
|
return PhoneNumberUtils.compare(number1, number2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,8 +22,6 @@ import java.util.ArrayList;
|
|||||||
|
|
||||||
public class PhoneStatusListener implements AutomationListenerInterface
|
public class PhoneStatusListener implements AutomationListenerInterface
|
||||||
{
|
{
|
||||||
// protected static int currentStateIncoming = -1;
|
|
||||||
// protected static int currentStateOutgoing = -1;
|
|
||||||
protected static String lastPhoneNumber="";
|
protected static String lastPhoneNumber="";
|
||||||
protected static int lastPhoneDirection = -1; //0=incoming, 1=outgoing
|
protected static int lastPhoneDirection = -1; //0=incoming, 1=outgoing
|
||||||
protected static int currentState = -1;
|
protected static int currentState = -1;
|
||||||
@ -120,8 +118,6 @@ public class PhoneStatusListener implements AutomationListenerInterface
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// state != TelephonyManager.CALL_STATE_IDLE &&
|
|
||||||
|
|
||||||
setCurrentState(state);
|
setCurrentState(state);
|
||||||
setLastPhoneDirection(1);
|
setLastPhoneDirection(1);
|
||||||
|
|
||||||
@ -175,12 +171,12 @@ public class PhoneStatusListener implements AutomationListenerInterface
|
|||||||
Miscellaneous.logEvent("i", "Call state", String.format(Miscellaneous.getAnyContext().getResources().getString(R.string.outgoingCallTo), getLastPhoneNumber()), 4);
|
Miscellaneous.logEvent("i", "Call state", String.format(Miscellaneous.getAnyContext().getResources().getString(R.string.outgoingCallTo), getLastPhoneNumber()), 4);
|
||||||
|
|
||||||
ArrayList<Rule> ruleCandidates = Rule.findRuleCandidates(Trigger_Enum.phoneCall);
|
ArrayList<Rule> ruleCandidates = Rule.findRuleCandidates(Trigger_Enum.phoneCall);
|
||||||
for(int i=0; i<ruleCandidates.size(); i++)
|
for(int i = 0; i < ruleCandidates.size(); i++)
|
||||||
{
|
{
|
||||||
AutomationService asInstance = AutomationService.getInstance();
|
AutomationService asInstance = AutomationService.getInstance();
|
||||||
if(asInstance != null)
|
if(asInstance != null)
|
||||||
if(ruleCandidates.get(i).getsGreenLight(asInstance))
|
if(ruleCandidates.get(i).getsGreenLight(asInstance))
|
||||||
ruleCandidates.get(i).activate(asInstance, false);
|
ruleCandidates.get(i).activate(asInstance, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -76,6 +76,14 @@
|
|||||||
android:text="@string/comparisonCaseInsensitive"
|
android:text="@string/comparisonCaseInsensitive"
|
||||||
android:layout_marginBottom="@dimen/default_margin"/>
|
android:layout_marginBottom="@dimen/default_margin"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:gravity="center"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:text="@string/regularExpressionsIfEquals"
|
||||||
|
android:layout_marginBottom="@dimen/default_margin"/>
|
||||||
|
|
||||||
<TableRow
|
<TableRow
|
||||||
android:layout_marginBottom="@dimen/activity_vertical_margin">
|
android:layout_marginBottom="@dimen/activity_vertical_margin">
|
||||||
|
|
||||||
|
@ -96,6 +96,7 @@
|
|||||||
android:layout_margin="10dp"
|
android:layout_margin="10dp"
|
||||||
android:layout_marginVertical="@dimen/default_margin"
|
android:layout_marginVertical="@dimen/default_margin"
|
||||||
android:background="#aa000000" />
|
android:background="#aa000000" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@ -104,6 +105,14 @@
|
|||||||
android:text="@string/comparisonCaseInsensitive"
|
android:text="@string/comparisonCaseInsensitive"
|
||||||
android:layout_marginBottom="@dimen/default_margin"/>
|
android:layout_marginBottom="@dimen/default_margin"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:gravity="center"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:text="@string/regularExpressionsIfEquals"
|
||||||
|
android:layout_marginBottom="@dimen/default_margin"/>
|
||||||
|
|
||||||
<TableRow
|
<TableRow
|
||||||
android:layout_marginBottom="@dimen/activity_vertical_margin">
|
android:layout_marginBottom="@dimen/activity_vertical_margin">
|
||||||
|
|
||||||
|
@ -737,4 +737,5 @@
|
|||||||
<string name="wifiExplanation2">Während der Flugmodus aktiv ist, kann WLAN nur von Anwendungen ein- oder ausgeschaltet werden, wenn root-Rechte dafür verwendet werden.</string>
|
<string name="wifiExplanation2">Während der Flugmodus aktiv ist, kann WLAN nur von Anwendungen ein- oder ausgeschaltet werden, wenn root-Rechte dafür verwendet werden.</string>
|
||||||
<string name="wifiExplanation1">Anwendungen, die auf Android Q oder höher ausgerichtet sind, können WLAN nicht mehr ein- oder ausschalten. Daran ist Google schuld, nicht ich.\n\nSie können diese Einschränkung umgehen, indem Sie Ihr Gerät rooten und die Checkbox unten aktivieren. Alternativ laden Sie sich diese Anwendung von F-Droid oder meiner Webseite herunter. In diesen Versionen bin ich nicht gezwungen, die Anwendungen auf die neuesten API Level zu unterstützen.</string>
|
<string name="wifiExplanation1">Anwendungen, die auf Android Q oder höher ausgerichtet sind, können WLAN nicht mehr ein- oder ausschalten. Daran ist Google schuld, nicht ich.\n\nSie können diese Einschränkung umgehen, indem Sie Ihr Gerät rooten und die Checkbox unten aktivieren. Alternativ laden Sie sich diese Anwendung von F-Droid oder meiner Webseite herunter. In diesen Versionen bin ich nicht gezwungen, die Anwendungen auf die neuesten API Level zu unterstützen.</string>
|
||||||
<string name="runExecutableExplanation">Sie können ein Script oder eine andere ausführbare Datei auswählen, die dann als Aktion ausgeführt wird.\n\nAllerdings gibt es ein paar Voraussetzungen, um die Sie sich selbst kümmern müssen. Google hat es sehr schwer gemacht, irgendetwas außer normalen Android Anwendungen auszuführen.\n\n1.\nDie Datei muß im Dateisystem als ausführbar markiert sein. Auf einem normalen Android-System (ohne Root) ist das in der Tat der schwierigste Teil.\n\n2.\nDas bedeutet auch, daß auch Automation in der Lage sein muß, die Datei auszuführen, nicht nur der Besitzer oder die Gruppe.\n\n3.\nWenn es ein Script ist, muß eine gültige Shell im Header des Scripts definiert sein.</string>
|
<string name="runExecutableExplanation">Sie können ein Script oder eine andere ausführbare Datei auswählen, die dann als Aktion ausgeführt wird.\n\nAllerdings gibt es ein paar Voraussetzungen, um die Sie sich selbst kümmern müssen. Google hat es sehr schwer gemacht, irgendetwas außer normalen Android Anwendungen auszuführen.\n\n1.\nDie Datei muß im Dateisystem als ausführbar markiert sein. Auf einem normalen Android-System (ohne Root) ist das in der Tat der schwierigste Teil.\n\n2.\nDas bedeutet auch, daß auch Automation in der Lage sein muß, die Datei auszuführen, nicht nur der Besitzer oder die Gruppe.\n\n3.\nWenn es ein Script ist, muß eine gültige Shell im Header des Scripts definiert sein.</string>
|
||||||
|
<string name="regularExpressionsIfEquals">Falls \"ist gleich\" ausgewählt ist, können Sie reguläre Ausdrücke eingeben.</string>
|
||||||
</resources>
|
</resources>
|
@ -671,7 +671,6 @@
|
|||||||
<string name="from">от</string>
|
<string name="from">от</string>
|
||||||
<string name="to">к</string>
|
<string name="to">к</string>
|
||||||
<string name="matching">совпадает</string>
|
<string name="matching">совпадает</string>
|
||||||
<string name="urlRegex" translatable="false">https://regex101.com/</string>
|
|
||||||
<string name="loadWifiList">Загрузить список Wi-Fi</string>
|
<string name="loadWifiList">Загрузить список Wi-Fi</string>
|
||||||
<string name="needLocationPermForWifiList">Список Wi-Fi, к которому было подключено ваше устройство. Можно использовать для определения того, в каких местах вы были. Вот почему для загрузки списка Wi-Fi требуется разрешение на доступ к местоположению. Если вы хотите выбрать один из из списка, вам необходимо предоставить это разрешение. Если вы этого не хотите, вы все равно можете ввести свое имя Wi-Fi вручную.</string>
|
<string name="needLocationPermForWifiList">Список Wi-Fi, к которому было подключено ваше устройство. Можно использовать для определения того, в каких местах вы были. Вот почему для загрузки списка Wi-Fi требуется разрешение на доступ к местоположению. Если вы хотите выбрать один из из списка, вам необходимо предоставить это разрешение. Если вы этого не хотите, вы все равно можете ввести свое имя Wi-Fi вручную.</string>
|
||||||
<string name="noKnownWifis">На вашем устройстве нет известных Wi-Fi.</string>
|
<string name="noKnownWifis">На вашем устройстве нет известных Wi-Fi.</string>
|
||||||
|
@ -834,4 +834,5 @@
|
|||||||
<string name="tetheringActive">tethering is active</string>
|
<string name="tetheringActive">tethering is active</string>
|
||||||
<string name="tetheringNotActive">tethering is not active</string>
|
<string name="tetheringNotActive">tethering is not active</string>
|
||||||
<string name="tetheringState">Tethering state</string>
|
<string name="tetheringState">Tethering state</string>
|
||||||
|
<string name="regularExpressionsIfEquals">If \"equals\" is selected, you may enter a regular expression.</string>
|
||||||
</resources>
|
</resources>
|
Loading…
Reference in New Issue
Block a user