Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
6f80caa1c6 | |||
a9646cbf28 | |||
52edfa32df | |||
ca81e6a7bd | |||
49e4c20ab6 | |||
ab98b4d1db |
@ -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 123
|
versionCode 125
|
||||||
versionName "1.7.8"
|
versionName "1.7.10"
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
@ -36,7 +36,7 @@ android {
|
|||||||
{
|
{
|
||||||
dimension "version"
|
dimension "version"
|
||||||
versionNameSuffix "-googlePlay"
|
versionNameSuffix "-googlePlay"
|
||||||
targetSdkVersion 30
|
targetSdkVersion 31
|
||||||
}
|
}
|
||||||
|
|
||||||
fdroidFlavor
|
fdroidFlavor
|
||||||
|
@ -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))
|
||||||
{
|
{
|
||||||
|
@ -111,6 +111,7 @@
|
|||||||
</intent-filter>
|
</intent-filter>
|
||||||
</receiver>
|
</receiver>
|
||||||
<receiver android:name=".receivers.PackageReplacedReceiver"
|
<receiver android:name=".receivers.PackageReplacedReceiver"
|
||||||
|
android:exported="true"
|
||||||
android:enabled="true">
|
android:enabled="true">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
|
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
|
||||||
@ -122,6 +123,7 @@
|
|||||||
|
|
||||||
<receiver
|
<receiver
|
||||||
android:name=".DeviceAdmin"
|
android:name=".DeviceAdmin"
|
||||||
|
android:exported="true"
|
||||||
android:description="@string/app_name"
|
android:description="@string/app_name"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:permission= "android.permission.BIND_DEVICE_ADMIN" >
|
android:permission= "android.permission.BIND_DEVICE_ADMIN" >
|
||||||
@ -160,6 +162,7 @@
|
|||||||
<activity android:name=".ActivityManageTriggerCheckVariable" />
|
<activity android:name=".ActivityManageTriggerCheckVariable" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".ActivityMainTabLayout"
|
android:name=".ActivityMainTabLayout"
|
||||||
|
android:exported="true"
|
||||||
android:launchMode="singleTask">
|
android:launchMode="singleTask">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
@ -208,6 +211,7 @@
|
|||||||
|
|
||||||
<service
|
<service
|
||||||
android:name=".receivers.NotificationListener"
|
android:name=".receivers.NotificationListener"
|
||||||
|
android:exported="true"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE" >
|
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE" >
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
|
@ -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>
|
@ -117,7 +117,7 @@
|
|||||||
<string name="helpTextTimeFrame">Si vous créez une règle avec une période d’éxécution vous avez deux options. Vous pouvez choisir d’éxécuter dans la période OU hors de la période. Quel que soit votre choix l’action ne sera déclenchée qu’une seule fois. Si vous créez une règle avec pour déclencheur \« dans la période xyz \» qui modifie votre profil audio en le passant en mode vibreur cela ne signifie pas que votre téléphone repassera automatiquement en mode sonnerie à la fin de la période. Si vous souhaitez le faire vous devez définir une autre règle avec une autre période.</string>
|
<string name="helpTextTimeFrame">Si vous créez une règle avec une période d’éxécution vous avez deux options. Vous pouvez choisir d’éxécuter dans la période OU hors de la période. Quel que soit votre choix l’action ne sera déclenchée qu’une seule fois. Si vous créez une règle avec pour déclencheur \« dans la période xyz \» qui modifie votre profil audio en le passant en mode vibreur cela ne signifie pas que votre téléphone repassera automatiquement en mode sonnerie à la fin de la période. Si vous souhaitez le faire vous devez définir une autre règle avec une autre période.</string>
|
||||||
<string name="helpTextSound">Sur l’écran principal vous pouvez utiliser le verrouillage des modifications audio pour temporairement ne pas utiliser les règles de changement des paramètres audio. Par exemple vous pouvez êtes dans un lieu où à un moment où les sonneries peuvent être dérangeantes. Cette fonctionnalité se désactivera automatiquement une fois le temps configuré écoulé. Appuyez sur le bouton + 15 min pour ajouter la durée souhaitée. Une fois activé vous pouvez le désactiver en appuyant sur le bouton \« OUI \» (la règle de gestion des paramètres audio sera de nouveau active).</string>
|
<string name="helpTextSound">Sur l’écran principal vous pouvez utiliser le verrouillage des modifications audio pour temporairement ne pas utiliser les règles de changement des paramètres audio. Par exemple vous pouvez êtes dans un lieu où à un moment où les sonneries peuvent être dérangeantes. Cette fonctionnalité se désactivera automatiquement une fois le temps configuré écoulé. Appuyez sur le bouton + 15 min pour ajouter la durée souhaitée. Une fois activé vous pouvez le désactiver en appuyant sur le bouton \« OUI \» (la règle de gestion des paramètres audio sera de nouveau active).</string>
|
||||||
<string name="toggableRules">Inverser la règle</string>
|
<string name="toggableRules">Inverser la règle</string>
|
||||||
<string name="helpTextToggable">Les règles ont une option appelée \« Inversion \». Si une règle est exécutée et que les mêmes déclencheurs s’appliquent à nouveau, la règle sera exécutée dans le sens opposé. Pour l’instant, cela n’est possible qu'avec les étiquettes NFC : si vous les touchez deux fois et que l’option est activée, cela fera l’inverse des actions demandées. Par exemple désactiver le wifi s’il est actuellement actif.</string>
|
<string name="helpTextToggable">Les règles ont une option appelée \« Inversion \». Si une règle est exécutée et que les mêmes déclencheurs s’appliquent à nouveau, la règle sera exécutée dans le sens opposé. Pour l’instant, cela n’est possible qu\'avec les étiquettes NFC : si vous les touchez deux fois et que l’option est activée, cela fera l’inverse des actions demandées. Par exemple désactiver le wifi s’il est actuellement actif.</string>
|
||||||
<string name="helpTextProcessMonitoring">Si vous spécifiez une règle avec une surveillance de processus, l’application vérifira ce processus toutes les x secondes (vous pouvez modifier cette variable dans les réglages). Cela peut être un peu lent, mais un contrôle continu viderait la batterie trop vite, et il n’y a pas de transmission de l’OS pour cet événement.</string>
|
<string name="helpTextProcessMonitoring">Si vous spécifiez une règle avec une surveillance de processus, l’application vérifira ce processus toutes les x secondes (vous pouvez modifier cette variable dans les réglages). Cela peut être un peu lent, mais un contrôle continu viderait la batterie trop vite, et il n’y a pas de transmission de l’OS pour cet événement.</string>
|
||||||
<string name="helpTitleEnergySaving">Économie d’énergie</string>
|
<string name="helpTitleEnergySaving">Économie d’énergie</string>
|
||||||
<string name="helpTextEnergySaving">Beaucoup de marques d’appareils Android essaient d’économiser en limitant les activités des applications en arrière-plan. Malheureusement cela signifie souvent ques ces applications ne fonctionnent pas correctement, Automation en fait partie. Consultez cette <a href="https://dontkillmyapp.com/">page web</a> pour savoir comment exclure Automation de ces restrictions.</string>
|
<string name="helpTextEnergySaving">Beaucoup de marques d’appareils Android essaient d’économiser en limitant les activités des applications en arrière-plan. Malheureusement cela signifie souvent ques ces applications ne fonctionnent pas correctement, Automation en fait partie. Consultez cette <a href="https://dontkillmyapp.com/">page web</a> pour savoir comment exclure Automation de ces restrictions.</string>
|
||||||
@ -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 @@
|
|||||||
|
* Исправлено: Добавлено разрешение отрицательных целых чисел в качестве данных о намерениях
|
||||||
|
* Исправлено: Несколько таймфреймов с настроенным повторением запускали бы ранние выполнения
|
||||||
|
* Исправлено: Автоматический запуск приложения при загрузке может завершиться сбоем в некоторых случаях
|
||||||
|
* Переводы обновлены
|
Reference in New Issue
Block a user