Compare commits
5 Commits
ab98b4d1db
...
6f80caa1c6
Author | SHA1 | Date | |
---|---|---|---|
|
6f80caa1c6 | ||
|
a9646cbf28 | ||
52edfa32df | |||
|
ca81e6a7bd | ||
|
49e4c20ab6 |
@ -11,8 +11,8 @@ android {
|
|||||||
compileSdkVersion 31
|
compileSdkVersion 31
|
||||||
buildToolsVersion '29.0.2'
|
buildToolsVersion '29.0.2'
|
||||||
useLibrary 'org.apache.http.legacy'
|
useLibrary 'org.apache.http.legacy'
|
||||||
versionCode 124
|
versionCode 125
|
||||||
versionName "1.7.9"
|
versionName "1.7.10"
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
|
@ -347,7 +347,16 @@ public class Rule implements Comparable<Rule>
|
|||||||
if(oneTrigger.getTriggerType().equals(Trigger.Trigger_Enum.timeFrame))
|
if(oneTrigger.getTriggerType().equals(Trigger.Trigger_Enum.timeFrame))
|
||||||
{
|
{
|
||||||
if(oneTrigger.getTimeFrame().repetition > 0)
|
if(oneTrigger.getTimeFrame().repetition > 0)
|
||||||
return true;
|
{
|
||||||
|
if(this.getLastExecution() != null)
|
||||||
|
{
|
||||||
|
Calendar now = Calendar.getInstance();
|
||||||
|
if (this.getLastExecution().getTimeInMillis() + oneTrigger.getTimeFrame().getRepetition() * 1000 <= now.getTimeInMillis())
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(oneTrigger.getTriggerType().equals(Trigger.Trigger_Enum.broadcastReceived))
|
else if(oneTrigger.getTriggerType().equals(Trigger.Trigger_Enum.broadcastReceived))
|
||||||
{
|
{
|
||||||
|
@ -225,7 +225,7 @@ public class ActivityManageActionSendBroadcast extends Activity
|
|||||||
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3)
|
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3)
|
||||||
{
|
{
|
||||||
if(supportedIntentTypes[arg2].equals("int") || supportedIntentTypes[arg2].equals("long") || supportedIntentTypes[arg2].equals("short"))
|
if(supportedIntentTypes[arg2].equals("int") || supportedIntentTypes[arg2].equals("long") || supportedIntentTypes[arg2].equals("short"))
|
||||||
ActivityManageActionSendBroadcast.this.etParameterValue.setInputType(InputType.TYPE_CLASS_NUMBER);
|
ActivityManageActionSendBroadcast.this.etParameterValue.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED);
|
||||||
else if(supportedIntentTypes[arg2].equals("double") || supportedIntentTypes[arg2].equals("float"))
|
else if(supportedIntentTypes[arg2].equals("double") || supportedIntentTypes[arg2].equals("float"))
|
||||||
ActivityManageActionSendBroadcast.this.etParameterValue.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
|
ActivityManageActionSendBroadcast.this.etParameterValue.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
|
||||||
else
|
else
|
||||||
|
@ -268,7 +268,7 @@ public class ActivityManageActionStartActivity extends Activity
|
|||||||
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3)
|
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3)
|
||||||
{
|
{
|
||||||
if(supportedIntentTypes[arg2].equals("int") || supportedIntentTypes[arg2].equals("long") || supportedIntentTypes[arg2].equals("short"))
|
if(supportedIntentTypes[arg2].equals("int") || supportedIntentTypes[arg2].equals("long") || supportedIntentTypes[arg2].equals("short"))
|
||||||
ActivityManageActionStartActivity.this.etParameterValue.setInputType(InputType.TYPE_CLASS_NUMBER);
|
ActivityManageActionStartActivity.this.etParameterValue.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED);
|
||||||
else if(supportedIntentTypes[arg2].equals("double") || supportedIntentTypes[arg2].equals("float"))
|
else if(supportedIntentTypes[arg2].equals("double") || supportedIntentTypes[arg2].equals("float"))
|
||||||
ActivityManageActionStartActivity.this.etParameterValue.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
|
ActivityManageActionStartActivity.this.etParameterValue.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
|
||||||
else
|
else
|
||||||
|
@ -111,6 +111,8 @@ import androidx.documentfile.provider.DocumentFile;
|
|||||||
public class Miscellaneous extends Service
|
public class Miscellaneous extends Service
|
||||||
{
|
{
|
||||||
protected static String writeableFolderStringCache = null;
|
protected static String writeableFolderStringCache = null;
|
||||||
|
public static Context startupContext;
|
||||||
|
|
||||||
public static final String lineSeparator = System.getProperty("line.separator");
|
public static final String lineSeparator = System.getProperty("line.separator");
|
||||||
|
|
||||||
public static String downloadURL(String url, String username, String password)
|
public static String downloadURL(String url, String username, String password)
|
||||||
@ -273,7 +275,7 @@ public class Miscellaneous extends Service
|
|||||||
{
|
{
|
||||||
writeToLogFile(type, header, description);
|
writeToLogFile(type, header, description);
|
||||||
|
|
||||||
if(!logCleanerRunning && Math.random() < 0.1) // tidy up with 10% probability
|
if (!logCleanerRunning && Math.random() < 0.1) // tidy up with 10% probability
|
||||||
{
|
{
|
||||||
rotateLogFile(getLogFile());
|
rotateLogFile(getLogFile());
|
||||||
}
|
}
|
||||||
@ -557,7 +559,10 @@ public class Miscellaneous extends Service
|
|||||||
returnContext = ActivityPermissions.getInstance().getApplicationContext();
|
returnContext = ActivityPermissions.getInstance().getApplicationContext();
|
||||||
if(returnContext != null)
|
if(returnContext != null)
|
||||||
return returnContext;
|
return returnContext;
|
||||||
|
|
||||||
|
if(startupContext != null)
|
||||||
|
return startupContext;
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -421,14 +421,18 @@ public class PointOfInterest implements Comparable<PointOfInterest>
|
|||||||
public boolean create(Context context)
|
public boolean create(Context context)
|
||||||
{
|
{
|
||||||
for(PointOfInterest poi : PointOfInterest.pointOfInterestCollection)
|
for(PointOfInterest poi : PointOfInterest.pointOfInterestCollection)
|
||||||
if(poi.getName().equals(this.getName()))
|
{
|
||||||
|
if (poi.getName().equals(this.getName()))
|
||||||
{
|
{
|
||||||
Toast.makeText(context, context.getResources().getString(R.string.anotherPoiByThatName), Toast.LENGTH_LONG).show();
|
Toast.makeText(context, context.getResources().getString(R.string.anotherPoiByThatName), Toast.LENGTH_LONG).show();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(plausibilityCheck())
|
if(plausibilityCheck())
|
||||||
{
|
{
|
||||||
|
Miscellaneous.logEvent("i", "Creating POI", this.toStringLong(), 3);
|
||||||
|
|
||||||
PointOfInterest.pointOfInterestCollection.add(this);
|
PointOfInterest.pointOfInterestCollection.add(this);
|
||||||
PointOfInterest.writePoisToFile();
|
PointOfInterest.writePoisToFile();
|
||||||
|
|
||||||
@ -490,8 +494,10 @@ public class PointOfInterest implements Comparable<PointOfInterest>
|
|||||||
Check for change of rule name END
|
Check for change of rule name END
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (plausibilityCheck())
|
if(plausibilityCheck())
|
||||||
{
|
{
|
||||||
|
Miscellaneous.logEvent("i", "Changing POI", "Old name: " + this.oldName + ", new data: " + this.toStringLong(), 3);
|
||||||
|
|
||||||
if(PointOfInterest.writePoisToFile())
|
if(PointOfInterest.writePoisToFile())
|
||||||
{
|
{
|
||||||
AutomationService service = AutomationService.getInstance();
|
AutomationService service = AutomationService.getInstance();
|
||||||
|
@ -11,12 +11,13 @@ import com.jens.automation2.Settings;
|
|||||||
|
|
||||||
public class StartupIntentReceiver extends BroadcastReceiver
|
public class StartupIntentReceiver extends BroadcastReceiver
|
||||||
{
|
{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent)
|
public void onReceive(Context context, Intent intent)
|
||||||
{
|
{
|
||||||
Settings.readFromPersistentStorage(context);
|
Settings.readFromPersistentStorage(context);
|
||||||
|
|
||||||
|
Miscellaneous.startupContext = context;
|
||||||
|
|
||||||
// Miscellaneous.logEvent("i", "Boot event", "Received event: " + intent.getAction(), 5);
|
// Miscellaneous.logEvent("i", "Boot event", "Received event: " + intent.getAction(), 5);
|
||||||
|
|
||||||
if(Settings.startServiceAtSystemBoot)
|
if(Settings.startServiceAtSystemBoot)
|
||||||
|
@ -771,4 +771,10 @@
|
|||||||
<string name="checkVariableExplanation">Wenn Sie den Wert der Variablen leer lassen, darf sie nicht gesetzt sein, damit die Bedingung als erfüllt gilt.</string>
|
<string name="checkVariableExplanation">Wenn Sie den Wert der Variablen leer lassen, darf sie nicht gesetzt sein, damit die Bedingung als erfüllt gilt.</string>
|
||||||
<string name="variableCheckString">wenn Variable %1$s den Wert %2$s hat</string>
|
<string name="variableCheckString">wenn Variable %1$s den Wert %2$s hat</string>
|
||||||
<string name="variableCheckStringDeleted">wenn Variable %1$s nicht gesetzt ist</string>
|
<string name="variableCheckStringDeleted">wenn Variable %1$s nicht gesetzt ist</string>
|
||||||
|
<string name="messageType">Nachrichtentyp</string>
|
||||||
|
<string name="sms">SMS</string>
|
||||||
|
<string name="mms">MMS</string>
|
||||||
|
<string name="attachment">Dateianhang</string>
|
||||||
|
<string name="chooseFile">Datei wählen</string>
|
||||||
|
<string name="startAppByStartService">via startService()</string>
|
||||||
</resources>
|
</resources>
|
@ -770,4 +770,10 @@
|
|||||||
<string name="VariableKey">Clave variable</string>
|
<string name="VariableKey">Clave variable</string>
|
||||||
<string name="deleteVariable">Eliminar variable</string>
|
<string name="deleteVariable">Eliminar variable</string>
|
||||||
<string name="setVariable">Establecer una variable</string>
|
<string name="setVariable">Establecer una variable</string>
|
||||||
|
<string name="messageType">Tipo de mensaje</string>
|
||||||
|
<string name="sms">SMS</string>
|
||||||
|
<string name="mms">MMS</string>
|
||||||
|
<string name="attachment">Archivo adjunto</string>
|
||||||
|
<string name="chooseFile">elegir archivo</string>
|
||||||
|
<string name="startAppByStartService">via startService()</string>
|
||||||
</resources>
|
</resources>
|
@ -274,6 +274,7 @@
|
|||||||
<string name="with">avec</string>
|
<string name="with">avec</string>
|
||||||
<string name="phoneNumber">Numéro de téléphone</string>
|
<string name="phoneNumber">Numéro de téléphone</string>
|
||||||
<string name="enterPhoneNumberBlankForAny">Saisissez un numéro de téléphone. Laissez vide pour n’importe quel numéro.</string>
|
<string name="enterPhoneNumberBlankForAny">Saisissez un numéro de téléphone. Laissez vide pour n’importe quel numéro.</string>
|
||||||
|
<string name="enterPhoneNumber">Entrez le numéro de téléphone.</string>
|
||||||
<string name="phoneDirection">Sélectionnez le type \nd’appel</string>
|
<string name="phoneDirection">Sélectionnez le type \nd’appel</string>
|
||||||
<string name="any">tout</string>
|
<string name="any">tout</string>
|
||||||
<string name="incoming">entrant</string>
|
<string name="incoming">entrant</string>
|
||||||
@ -769,4 +770,10 @@
|
|||||||
<string name="VariableKey">Clé variable</string>
|
<string name="VariableKey">Clé variable</string>
|
||||||
<string name="deleteVariable">Supprimer la variable</string>
|
<string name="deleteVariable">Supprimer la variable</string>
|
||||||
<string name="setVariable">Définir une variable</string>
|
<string name="setVariable">Définir une variable</string>
|
||||||
|
<string name="messageType">Type de message</string>
|
||||||
|
<string name="sms">SMS</string>
|
||||||
|
<string name="mms">MMS</string>
|
||||||
|
<string name="attachment">Attachement</string>
|
||||||
|
<string name="chooseFile">Choisissez un fichier</string>
|
||||||
|
<string name="startAppByStartService">via startService()</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -771,4 +771,10 @@
|
|||||||
<string name="checkVariableExplanation">Se si lascia vuoto il valore, la variabile non deve essere impostata affinché la condizione restituisca true.</string>
|
<string name="checkVariableExplanation">Se si lascia vuoto il valore, la variabile non deve essere impostata affinché la condizione restituisca true.</string>
|
||||||
<string name="variableCheckString">Se la variabile %1$s è %2$s</string>
|
<string name="variableCheckString">Se la variabile %1$s è %2$s</string>
|
||||||
<string name="variableCheckStringDeleted">Se la variabile %1$s non è impostata</string>
|
<string name="variableCheckStringDeleted">Se la variabile %1$s non è impostata</string>
|
||||||
|
<string name="messageType">Tipo di messaggio</string>
|
||||||
|
<string name="sms">SMS</string>
|
||||||
|
<string name="mms">MMS</string>
|
||||||
|
<string name="attachment">Allegato</string>
|
||||||
|
<string name="chooseFile">Scegli file</string>
|
||||||
|
<string name="startAppByStartService">tramite startService()</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -769,5 +769,11 @@
|
|||||||
<string name="checkVariableExplanation">Als u de waarde leeg laat, mag de variabele niet worden ingesteld om de voorwaarde true te laten retourneren.</string>
|
<string name="checkVariableExplanation">Als u de waarde leeg laat, mag de variabele niet worden ingesteld om de voorwaarde true te laten retourneren.</string>
|
||||||
<string name="variableCheckString">als variabele %1$s %2$s is</string>
|
<string name="variableCheckString">als variabele %1$s %2$s is</string>
|
||||||
<string name="variableCheckStringDeleted">als variabele %1$s niet is ingesteld</string>
|
<string name="variableCheckStringDeleted">als variabele %1$s niet is ingesteld</string>
|
||||||
|
<string name="messageType">Type bericht</string>
|
||||||
|
<string name="sms">SMS</string>
|
||||||
|
<string name="mms">MMS</string>
|
||||||
|
<string name="attachment">Bijlage</string>
|
||||||
|
<string name="chooseFile">kies bestand</string>
|
||||||
|
<string name="startAppByStartService">via startService()</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -828,4 +828,10 @@
|
|||||||
<string name="checkVariableExplanation">Если оставить значение пустым, переменная не должна быть задана для того, чтобы условие возвращало значение true.</string>
|
<string name="checkVariableExplanation">Если оставить значение пустым, переменная не должна быть задана для того, чтобы условие возвращало значение true.</string>
|
||||||
<string name="variableCheckString">если переменная %1$s равно %2$s</string>
|
<string name="variableCheckString">если переменная %1$s равно %2$s</string>
|
||||||
<string name="variableCheckStringDeleted">Если переменная %1$s не задана</string>
|
<string name="variableCheckStringDeleted">Если переменная %1$s не задана</string>
|
||||||
|
<string name="messageType">Тип сообщения</string>
|
||||||
|
<string name="sms">SMS</string>
|
||||||
|
<string name="mms">MMS</string>
|
||||||
|
<string name="attachment">Прикрепление</string>
|
||||||
|
<string name="chooseFile">выберите файл</string>
|
||||||
|
<string name="startAppByStartService">дорога startService()</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
4
fastlane/metadata/android/de-DE/changelogs/125.txt
Normal file
4
fastlane/metadata/android/de-DE/changelogs/125.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
* Behoben: Negative Ganzzahlen werden als Intent-Parameter akzeptiert
|
||||||
|
* Behoben: Mehrere parallele Zeiträume mit Wiederholung konnten dazu führen, daß alle zu häufig ausgeführt wurden
|
||||||
|
* Behoben: Automatischer Start der Anwendung beim Gerätestart konnte in manchen Fällen scheitern
|
||||||
|
* Übersetzungen aktualisiert
|
4
fastlane/metadata/android/en-US/changelogs/125.txt
Normal file
4
fastlane/metadata/android/en-US/changelogs/125.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
* Fixed: Now allowing negative integers as intent data
|
||||||
|
* Fixed: Multiple time frames with reoccurence configured would trigger to early executions
|
||||||
|
* Fixed: Automatic app start at boot might fail in some cases
|
||||||
|
* Translations updated
|
4
fastlane/metadata/android/es-ES/changelogs/125.txt
Normal file
4
fastlane/metadata/android/es-ES/changelogs/125.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
* Corregido: Ahora permite enteros negativos como datos de intención
|
||||||
|
* Corregido: Múltiples marcos de tiempo con la repetición configurada se desencadenarían en ejecuciones tempranas
|
||||||
|
* Corregido: el inicio automático de la aplicación en el arranque puede fallar en algunos casos
|
||||||
|
* Traducciones actualizadas
|
4
fastlane/metadata/android/fr-FR/changelogs/125.txt
Normal file
4
fastlane/metadata/android/fr-FR/changelogs/125.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
* Correction : Autorise désormais les entiers négatifs comme données d'intention
|
||||||
|
* Correction : Plusieurs délais avec récurrence configurée déclenchaient des exécutions anticipées
|
||||||
|
* Correction : le démarrage automatique de l'application au démarrage peut échouer dans certains cas
|
||||||
|
* Traductions mises à jour
|
4
fastlane/metadata/android/it-IT/changelogs/125.txt
Normal file
4
fastlane/metadata/android/it-IT/changelogs/125.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
* Risolto: ora consente numeri interi negativi come dati di intento
|
||||||
|
* Risolto: più intervalli di tempo con ripetizione configurata si attiverebbero per le esecuzioni anticipate
|
||||||
|
* Risolto: l'avvio automatico dell'app all'avvio potrebbe non riuscire in alcuni casi
|
||||||
|
* Traduzioni aggiornate
|
4
fastlane/metadata/android/nl-NL/changelogs/125.txt
Normal file
4
fastlane/metadata/android/nl-NL/changelogs/125.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
* Opgelost: nu negatieve gehele getallen toestaan als intentiegegevens
|
||||||
|
* Opgelost: Meerdere tijdframes met reoccurence geconfigureerd zouden leiden tot vroege uitvoeringen
|
||||||
|
* Opgelost: Automatische app-start bij het opstarten kan in sommige gevallen mislukken
|
||||||
|
* Vertalingen bijgewerkt
|
4
fastlane/metadata/android/ru-RU/changelogs/125.txt
Normal file
4
fastlane/metadata/android/ru-RU/changelogs/125.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
* Исправлено: Добавлено разрешение отрицательных целых чисел в качестве данных о намерениях
|
||||||
|
* Исправлено: Несколько таймфреймов с настроенным повторением запускали бы ранние выполнения
|
||||||
|
* Исправлено: Автоматический запуск приложения при загрузке может завершиться сбоем в некоторых случаях
|
||||||
|
* Переводы обновлены
|
Loading…
Reference in New Issue
Block a user