diff --git a/app/build.gradle b/app/build.gradle index 86555afa..8bcaf080 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ android { compileSdkVersion 29 buildToolsVersion '29.0.2' useLibrary 'org.apache.http.legacy' - versionCode 115 - versionName "1.7.1" + versionCode 116 + versionName "1.7.2" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/fdroidFlavor/AndroidManifest.xml b/app/src/fdroidFlavor/AndroidManifest.xml index f18913b7..f8274d12 100644 --- a/app/src/fdroidFlavor/AndroidManifest.xml +++ b/app/src/fdroidFlavor/AndroidManifest.xml @@ -51,6 +51,7 @@ + @@ -144,6 +145,7 @@ + @@ -177,6 +179,7 @@ --> + diff --git a/app/src/fdroidFlavor/java/com/jens/automation2/Rule.java b/app/src/fdroidFlavor/java/com/jens/automation2/Rule.java index c7292148..4299d417 100644 --- a/app/src/fdroidFlavor/java/com/jens/automation2/Rule.java +++ b/app/src/fdroidFlavor/java/com/jens/automation2/Rule.java @@ -8,10 +8,11 @@ import android.os.AsyncTask; import android.os.Looper; import android.util.Log; import android.widget.Toast; -import java.sql.Time; + import java.util.ArrayList; import java.util.Calendar; import java.util.Date; +import java.util.List; public class Rule implements Comparable @@ -19,9 +20,9 @@ public class Rule implements Comparable private static ArrayList ruleCollection = new ArrayList(); public static boolean isAnyRuleActive = false; - private static ArrayList ruleRunHistory = new ArrayList(); + private static List ruleRunHistory = new ArrayList(); - public static ArrayList getRuleRunHistory() + public static List getRuleRunHistory() { return ruleRunHistory; } @@ -805,8 +806,32 @@ public class Rule implements Comparable return ruleCandidates; }*/ + + public static ArrayList findRuleCandidatesByTriggerProfile(Profile profile) + { + ArrayList ruleCandidates = new ArrayList(); + + for(Rule oneRule : ruleCollection) + { + innerloop: + for(Trigger oneTrigger : oneRule.getTriggerSet()) + { + if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.profileActive) + { + String profileName = oneTrigger.getTriggerParameter2().split(triggerParameter2Split)[0]; + if(profileName.equals(profile.getName())) + { + ruleCandidates.add(oneRule); + break innerloop; //if the profile is found we don't need to search the other triggers in the same rule + } + } + } + } + + return ruleCandidates; + } - public static ArrayList findRuleCandidatesByProfile(Profile profile) + public static ArrayList findRuleCandidatesByActionProfile(Profile profile) { ArrayList ruleCandidates = new ArrayList(); diff --git a/app/src/googlePlayFlavor/AndroidManifest.xml b/app/src/googlePlayFlavor/AndroidManifest.xml index a5d92b61..761e0fe8 100644 --- a/app/src/googlePlayFlavor/AndroidManifest.xml +++ b/app/src/googlePlayFlavor/AndroidManifest.xml @@ -139,6 +139,7 @@ + @@ -206,7 +207,6 @@ - diff --git a/app/src/googlePlayFlavor/java/com/jens/automation2/Rule.java b/app/src/googlePlayFlavor/java/com/jens/automation2/Rule.java index c828fbcd..d5d9c288 100644 --- a/app/src/googlePlayFlavor/java/com/jens/automation2/Rule.java +++ b/app/src/googlePlayFlavor/java/com/jens/automation2/Rule.java @@ -12,10 +12,10 @@ import android.widget.Toast; import com.google.android.gms.location.DetectedActivity; import com.jens.automation2.receivers.ActivityDetectionReceiver; -import java.sql.Time; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; +import java.util.List; public class Rule implements Comparable @@ -23,9 +23,9 @@ public class Rule implements Comparable private static ArrayList ruleCollection = new ArrayList(); public static boolean isAnyRuleActive = false; - private static ArrayList ruleRunHistory = new ArrayList(); + private static List ruleRunHistory = new ArrayList(); - public static ArrayList getRuleRunHistory() + public static List getRuleRunHistory() { return ruleRunHistory; } @@ -833,8 +833,32 @@ public class Rule implements Comparable return ruleCandidates; }*/ + + public static ArrayList findRuleCandidatesByTriggerProfile(Profile profile) + { + ArrayList ruleCandidates = new ArrayList(); + + for(Rule oneRule : ruleCollection) + { + innerloop: + for(Trigger oneTrigger : oneRule.getTriggerSet()) + { + if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.profileActive) + { + String profileName = oneTrigger.getTriggerParameter2().split(triggerParameter2Split)[0]; + if(profileName.equals(profile.getName())) + { + ruleCandidates.add(oneRule); + break innerloop; //if the profile is found we don't need to search the other triggers in the same rule + } + } + } + } + + return ruleCandidates; + } - public static ArrayList findRuleCandidatesByProfile(Profile profile) + public static ArrayList findRuleCandidatesByActionProfile(Profile profile) { ArrayList ruleCandidates = new ArrayList(); diff --git a/app/src/main/java/com/jens/automation2/Action.java b/app/src/main/java/com/jens/automation2/Action.java index 4c2dd198..61763e2e 100644 --- a/app/src/main/java/com/jens/automation2/Action.java +++ b/app/src/main/java/com/jens/automation2/Action.java @@ -153,96 +153,93 @@ public class Action public String toString() { StringBuilder returnString = new StringBuilder(); - - if(this.getAction().equals(Action_Enum.setWifi)) + + switch(getAction()) { - if(this.getParameter1()) - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnWifiOn)); - else - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnWifiOff)); + case setWifi: + if (this.getParameter1()) + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnWifiOn)); + else + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnWifiOff)); + break; + case setBluetooth: + if (this.getParameter1()) + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnBluetoothOn)); + else + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnBluetoothOff)); + break; + case setUsbTethering: + if (this.getParameter1()) + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnUsbTetheringOn)); + else + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnUsbTetheringOff)); + break; + case setWifiTethering: + if (this.getParameter1()) + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnWifiTetheringOn)); + else + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnWifiTetheringOff)); + break; + case setBluetoothTethering: + if (this.getParameter1()) + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnBluetoothTetheringOn)); + else + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnBluetoothTetheringOff)); + break; + case setDisplayRotation: + if (this.getParameter1()) + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionEnableScreenRotation)); + else + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionDisableScreenRotation)); + break; + case setAirplaneMode: + if (this.getParameter1()) + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnAirplaneModeOn)); + else + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnAirplaneModeOff)); + break; + case setDataConnection: + if (this.getParameter1()) + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionSetDataConnectionOn)); + else + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionSetDataConnectionOff)); + break; + case startOtherActivity: + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.startOtherActivity)); + break; + case triggerUrl: + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTriggerUrl)); + break; + case speakText: + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionSpeakText)); + break; + case playMusic: + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionPlayMusic)); + break; + case sendTextMessage: + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.sendTextMessage)); + break; + case turnScreenOnOrOff: + if (getParameter1()) + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.turnScreenOn)); + else + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.turnScreenOff)); + break; + case playSound: + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.playSound)); + break; + case changeSoundProfile: + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionChangeSoundProfile)); + break; + case waitBeforeNextAction: + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.waitBeforeNextAction)); + break; + case setScreenBrightness: + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.setScreenBrightness)); + break; + default: + returnString.append(action.toString()); } - else if(this.getAction().equals(Action_Enum.setBluetooth)) - { - if(this.getParameter1()) - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnBluetoothOn)); - else - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnBluetoothOff)); - } - else if(this.getAction().equals(Action_Enum.setUsbTethering)) - { - if(this.getParameter1()) - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnUsbTetheringOn)); - else - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnUsbTetheringOff)); - } - else if(this.getAction().equals(Action_Enum.setWifiTethering)) - { - if(this.getParameter1()) - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnWifiTetheringOn)); - else - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnWifiTetheringOff)); - } - else if(this.getAction().equals(Action_Enum.setBluetoothTethering)) - { - if(this.getParameter1()) - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnBluetoothTetheringOn)); - else - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnBluetoothTetheringOff)); - } - else if(this.getAction().equals(Action_Enum.setDisplayRotation)) - { - if(this.getParameter1()) - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionEnableScreenRotation)); - else - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionDisableScreenRotation)); - } - else if(this.getAction().equals(Action_Enum.setAirplaneMode)) - { - if(this.getParameter1()) - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnAirplaneModeOn)); - else - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnAirplaneModeOff)); - } - else if(this.getAction().equals(Action_Enum.setDataConnection)) - { - if(this.getParameter1()) - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionSetDataConnectionOn)); - else - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionSetDataConnectionOff)); - } - else if(this.getAction().equals(Action_Enum.startOtherActivity)) - { - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.startOtherActivity)); - } - else if(this.getAction().equals(Action_Enum.triggerUrl)) - { - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTriggerUrl)); - } - else if(this.getAction().equals(Action_Enum.speakText)) - { - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionSpeakText)); - } - else if(this.getAction().equals(Action_Enum.playMusic)) - { - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionPlayMusic)); - } - else if(this.getAction().equals(Action_Enum.sendTextMessage)) - { - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.sendTextMessage)); - } - else if(this.getAction().equals(Action_Enum.turnScreenOnOrOff)) - { - if(getParameter1()) - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.turnScreenOn)); - else - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.turnScreenOff)); - } - else if(this.getAction().equals(Action_Enum.playSound)) - { - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.playSound)); - } - else - returnString.append(action.toString()); if(this.getAction().equals(Action_Enum.triggerUrl)) { @@ -252,7 +249,7 @@ public class Action returnString.append(": " + components[2]); if(parameter1) - returnString.append(" using authentication."); + returnString.append(" " + Miscellaneous.getAnyContext().getResources().getString(R.string.usingAuthentication) + "."); } else returnString.append(": " + components[0]); @@ -266,14 +263,14 @@ public class Action String[] components = parameter2.split(Actions.smsSeparator); if(components.length >= 2) { - returnString.append(" to number " + components[0]); + returnString.append(" " + Miscellaneous.getAnyContext().getResources().getString(R.string.toNumber) + " " + components[0]); - returnString.append(". Message: " + components[1]); + returnString.append(". " + Miscellaneous.getAnyContext().getResources().getString(R.string.message) + ": " + components[1]); } } else if(this.getAction().equals(Action_Enum.setScreenBrightness)) { - returnString.append(" to "); + returnString.append(" " + Miscellaneous.getAnyContext().getResources().getString(R.string.to) + " "); if(parameter1) returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.brightnessAuto)); diff --git a/app/src/main/java/com/jens/automation2/ActivityManageRule.java b/app/src/main/java/com/jens/automation2/ActivityManageRule.java index 83fc39aa..21363cea 100644 --- a/app/src/main/java/com/jens/automation2/ActivityManageRule.java +++ b/app/src/main/java/com/jens/automation2/ActivityManageRule.java @@ -55,30 +55,30 @@ public class ActivityManageRule extends Activity public final static String intentNameActionParameter2 = "actionParameter2"; public Context context; - private Button cmdTriggerAdd, cmdActionAdd, cmdSaveRule; - private ListView triggerListView, actionListView; - private EditText etRuleName; - private CheckBox chkRuleActive, chkRuleToggle; - private static ActivityManageRule instance = null; + Button cmdTriggerAdd, cmdActionAdd, cmdSaveRule; + ListView triggerListView, actionListView; + EditText etRuleName; + CheckBox chkRuleActive, chkRuleToggle; + static ActivityManageRule instance = null; ImageView imageHelpButton; - private static ProgressDialog progressDialog = null; + static ProgressDialog progressDialog = null; - private static Trigger_Enum triggerType; - private static boolean triggerParameter; - private static PointOfInterest triggerPoi; - private static String triggerProcess; - private static int triggerBattery; - private static double triggerSpeed; - private static double triggerNoise; - private static TimeFrame triggerTimeFrame; - private static String triggerWifiName; + static Trigger_Enum triggerType; + static boolean triggerParameter; + static PointOfInterest triggerPoi; + static String triggerProcess; + static int triggerBattery; + static double triggerSpeed; + static double triggerNoise; + static TimeFrame triggerTimeFrame; + static String triggerWifiName; - private static Rule ruleToEdit; - private static boolean newRule; + static Rule ruleToEdit; + static boolean newRule; - private static Trigger newTrigger; - private static Action newAction; + static Trigger newTrigger; + static Action newAction; ArrayAdapter triggerListViewAdapter; ArrayAdapter actionListViewAdapter; diff --git a/app/src/main/java/com/jens/automation2/ActivityManageTriggerProfile.java b/app/src/main/java/com/jens/automation2/ActivityManageTriggerProfile.java index 870b8ecb..7be7b248 100644 --- a/app/src/main/java/com/jens/automation2/ActivityManageTriggerProfile.java +++ b/app/src/main/java/com/jens/automation2/ActivityManageTriggerProfile.java @@ -51,18 +51,19 @@ public class ActivityManageTriggerProfile extends Activity if(getIntent().hasExtra(ActivityManageRule.intentNameTriggerParameter2)) { editMode = true; + + boolean active = getIntent().getBooleanExtra(ActivityManageRule.intentNameTriggerParameter1, true); + chkProfileActive.setChecked(active); + try { String values[] = getIntent().getStringExtra(ActivityManageRule.intentNameTriggerParameter2).split(Trigger.triggerParameter2Split); if(values.length >= 2) { - boolean active = getIntent().getBooleanExtra(ActivityManageRule.intentNameTriggerParameter1, true); - chkProfileActive.setChecked(active); - boolean checkSettings = Boolean.parseBoolean(values[0]); chkProfileCheckSettings.setChecked(checkSettings); - String profileName = values[1]; + String profileName = values[0]; List profileList = Profile.getProfileCollection(); for(int i = 0; i < profileList.size(); i++) diff --git a/app/src/main/java/com/jens/automation2/Trigger.java b/app/src/main/java/com/jens/automation2/Trigger.java index 9c0ee66b..b53356a9 100644 --- a/app/src/main/java/com/jens/automation2/Trigger.java +++ b/app/src/main/java/com/jens/automation2/Trigger.java @@ -1282,11 +1282,11 @@ public class Trigger else returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.leaving) + " "); - String repeat = ", no repetition"; + String repeat = ", " + Miscellaneous.getAnyContext().getResources().getString(R.string.noRepetition); if(this.getTimeFrame().getRepetition() > 0) repeat = ", " + String.format(Miscellaneous.getAnyContext().getResources().getString(R.string.repeatEveryXsecondsWithVariable), String.valueOf(this.getTimeFrame().getRepetition())); - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.triggerTimeFrame) + ": " + this.getTimeFrame().getTriggerTimeStart().toString() + " " + Miscellaneous.getAnyContext().getResources().getString(R.string.until) + " " + this.getTimeFrame().getTriggerTimeStop().toString() + " on days " + this.getTimeFrame().getDayList().toString() + repeat); + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.triggerTimeFrame) + ": " + this.getTimeFrame().getTriggerTimeStart().toString() + " " + Miscellaneous.getAnyContext().getResources().getString(R.string.until) + " " + this.getTimeFrame().getTriggerTimeStop().toString() + " " + Miscellaneous.getAnyContext().getResources().getString(R.string.onDays) + " " + this.getTimeFrame().getDayList().toString() + repeat); break; case speed: if(getTriggerParameter()) @@ -1331,11 +1331,11 @@ public class Trigger returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.airplaneMode)); break; case roaming: - if(getTriggerParameter()) - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.activated) + " "); - else - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.deactivated) + " "); returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.roaming)); + if(getTriggerParameter()) + returnString.append(" " + Miscellaneous.getAnyContext().getResources().getString(R.string.activated)); + else + returnString.append(" " + Miscellaneous.getAnyContext().getResources().getString(R.string.deactivated)); break; case phoneCall: String[] elements = triggerParameter2.split(triggerParameter2Split); @@ -1367,24 +1367,9 @@ public class Trigger else if(elements[0].equals(Trigger.triggerPhoneCallStateStopped)) returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.stopped)); -// returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.phoneCall)); -// if(phoneNumber != null && !phoneNumber.equals("any")) -// returnString.append(" " + Miscellaneous.getAnyContext().getResources().getString(R.string.with) + " " + Miscellaneous.getAnyContext().getResources().getString(R.string.number) + " " + phoneNumber); -// else -// returnString.append(" " + Miscellaneous.getAnyContext().getResources().getString(R.string.with) + " " + Miscellaneous.getAnyContext().getResources().getString(R.string.anyNumber)); -// -// if(getTriggerParameter()) -// returnString.append(" " + Miscellaneous.getAnyContext().getResources().getString(R.string.started)); -// else -// returnString.append(" " + Miscellaneous.getAnyContext().getResources().getString(R.string.stopped)); break; case nfcTag: // This type doesn't have an activate/deactivate equivalent -// if(getTriggerParameter()) -// returnString += Miscellaneous.getAnyContext().getResources().getString(R.string.activated) + " "; -// else -// returnString += Miscellaneous.getAnyContext().getResources().getString(R.string.deactivated) + " "; - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.closeTo) + " " + Miscellaneous.getAnyContext().getResources().getString(R.string.nfcTag) + " " + Miscellaneous.getAnyContext().getResources().getString(R.string.withLabel) + " " + this.getNfcTagId()); break; case activityDetection: @@ -1456,7 +1441,7 @@ public class Trigger type = Miscellaneous.getAnyContext().getResources().getString(R.string.headphoneAny); break; default: - type = "not set"; + type = Miscellaneous.getAnyContext().getResources().getString(R.string.notSet); break; } if(getTriggerParameter()) diff --git a/app/src/main/res/layout/activity_manage_trigger_profile.xml b/app/src/main/res/layout/activity_manage_trigger_profile.xml index 732b94ff..84359a5b 100644 --- a/app/src/main/res/layout/activity_manage_trigger_profile.xml +++ b/app/src/main/res/layout/activity_manage_trigger_profile.xml @@ -25,6 +25,18 @@ + + + + + + + + + + + + Wählen Sie eine Verbindungsoption. Headset Verbindung Musikplayer öffnen - Headset (type: %1$s) verbunden + Headset (Art: %1$s) verbunden Headset (type: %1$s) getrennt Kopfhörer Mikrofon @@ -649,4 +649,10 @@ Wenn dieses Häkchen nicht gesetzt ist, wird nur geprüft, ob das ausgewählte Profil zuletzt aktiviert wurde. Es ist egal, ob Audio-Einstellungen von außerhalb verändert wurden.\nWenn das Häkchen aber gesetzt ist, müssen die aktuellen Audio-Einstellungen auch wirklich genau so gesetzt sein, wie im Profil definiert. ACHTUNG: Der Klingelton selbst kann derzeit noch nicht überprüft werden. Profil konnte nicht gelöscht werden. Dieses Profil kann nicht gelöscht werden. Regel %s$1 verwendet noch Profil %s$2. + keine Wiederholung + mit Authentifizierung + zu Nummer + Nachricht + an Tagen + nicht gesetzt \ No newline at end of file diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 25c632f5..72cc491f 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -648,4 +648,10 @@ Si esta casilla de verificación no está desactivada, solo se marcará si el perfil seleccionado ha sido el último en activarse. No importa si alguna configuración relacionada con el audio se ha cambiado externamente.\nSin embargo, si la casilla de verificación está habilitada, la configuración de audio actual realmente debe ser como se define en el perfil. CUIDADO: La comprobación del archivo de tono de llamada no es compatible actualmente, todavía. No se puede eliminar este perfil. La regla %s$1 hace referencia al perfil %s$2. No se pudo eliminar el perfil. + sin repetición + uso de la autenticación + a número + mensaje + en días + no configurado \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index fb4ef0fe..c9fb3ff6 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -649,4 +649,10 @@ profilo %1$s non attivo Impossibile eliminare questo profilo. La regola %s$1 fa riferimento al profilo %s$2. Impossibile eliminare il profilo. + nessuna ripetizione + utilizzo dell\'autenticazione + al numero + messaggio + nei giorni + non impostato diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 589d491d..2ca53c5d 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -647,4 +647,10 @@ Als dit selectievakje niet is uitgeschakeld, wordt het alleen aangevinkt als het geselecteerde profiel het laatste is dat is geactiveerd. Het maakt niet uit of audiogerelateerde instellingen extern zijn gewijzigd.\nAls het selectievakje echter is ingeschakeld, moeten de huidige audio-instellingen echt worden gedefinieerd in het profiel. PAS OP: Het controleren van het beltoonbestand wordt momenteel nog niet ondersteund. Kan dit profiel niet verwijderen. Regel %s$1 verwijst naar het profiel %s$2. Profiel kan niet worden verwijderd. + geen herhaling + authenticatie gebruiken + naar nummer + Bericht + op dagen + niet ingesteld diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 35e8a73a..57610393 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -745,4 +745,10 @@ If this checkbox is not disabled, it will only be checked if the selected profile has been the last one to be activated. It doesn\'t matter if any audio related settings have been changed externally. However if the checkbox is enabled, the current audio settings really need to be like defined in the profile. BEWARE: Checking the ringtone file is currently not supported, yet. Cannot delete this profile. Rule %s$1 is referencing profile %s$2. Profile could not be deleted. + no repetition + using authentication + to number + message + on days + not set \ No newline at end of file