diff --git a/app/src/main/java/com/jens/automation2/ActivityMainPoi.java b/app/src/main/java/com/jens/automation2/ActivityMainPoi.java index f395977f..27d11989 100644 --- a/app/src/main/java/com/jens/automation2/ActivityMainPoi.java +++ b/app/src/main/java/com/jens/automation2/ActivityMainPoi.java @@ -190,8 +190,27 @@ public class ActivityMainPoi extends ActivityGeneric startActivityForResult(manageSpecificPoiIntent, 2000); break; case 1: - if(pointOfInterest.delete(Miscellaneous.getAnyContext())) - updateListView(); + AlertDialog.Builder deleteDialog = new AlertDialog.Builder(ActivityMainPoi.this); + deleteDialog.setMessage(getResources().getString(R.string.areYouSure)); + deleteDialog.setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() + { + @Override + public void onClick(DialogInterface dialogInterface, int i) + { + if(pointOfInterest.delete(Miscellaneous.getAnyContext())) + updateListView(); + } + }); + deleteDialog.setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() + { + @Override + public void onClick(DialogInterface dialogInterface, int i) + { + + } + }); + + deleteDialog.show(); break; } } diff --git a/app/src/main/java/com/jens/automation2/ActivityMainProfiles.java b/app/src/main/java/com/jens/automation2/ActivityMainProfiles.java index d83ffa8f..17a20d6f 100644 --- a/app/src/main/java/com/jens/automation2/ActivityMainProfiles.java +++ b/app/src/main/java/com/jens/automation2/ActivityMainProfiles.java @@ -187,10 +187,29 @@ public class ActivityMainProfiles extends ActivityGeneric Rule user = profile.isInUseByRules(); if(user == null) { - if (profile.delete(ActivityMainProfiles.this)) - updateListView(); - else - Toast.makeText(ActivityMainProfiles.this, getResources().getString(R.string.profileCouldNotBeDeleted), Toast.LENGTH_LONG).show(); + AlertDialog.Builder deleteDialog = new AlertDialog.Builder(ActivityMainProfiles.this); + deleteDialog.setMessage(getResources().getString(R.string.areYouSure)); + deleteDialog.setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() + { + @Override + public void onClick(DialogInterface dialogInterface, int i) + { + if (profile.delete(ActivityMainProfiles.this)) + updateListView(); + else + Toast.makeText(ActivityMainProfiles.this, getResources().getString(R.string.profileCouldNotBeDeleted), Toast.LENGTH_LONG).show(); + } + }); + deleteDialog.setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() + { + @Override + public void onClick(DialogInterface dialogInterface, int i) + { + + } + }); + + deleteDialog.show(); } else Toast.makeText(ActivityMainProfiles.this, String.format(getResources().getString(R.string.ruleXIsUsingProfileY), user.getName(), profile.getName()), Toast.LENGTH_LONG).show(); diff --git a/app/src/main/java/com/jens/automation2/ActivityMainRules.java b/app/src/main/java/com/jens/automation2/ActivityMainRules.java index eba0a962..ed5bb741 100644 --- a/app/src/main/java/com/jens/automation2/ActivityMainRules.java +++ b/app/src/main/java/com/jens/automation2/ActivityMainRules.java @@ -18,6 +18,7 @@ import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.jens.automation2.AutomationService.serviceCommands; import com.jens.automation2.receivers.DateTimeListener; @@ -213,11 +214,30 @@ public class ActivityMainRules extends ActivityGeneric startActivityForResult(manageSpecificRuleIntent, requestCodeChangeRule); break; case 2: - if(ruleThisIsAbout.delete()) + AlertDialog.Builder deleteDialog = new AlertDialog.Builder(ActivityMainRules.this); + deleteDialog.setMessage(getResources().getString(R.string.areYouSure)); + deleteDialog.setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() { - ruleToEdit = null; //clear cache - updateListView(); - } + @Override + public void onClick(DialogInterface dialogInterface, int i) + { + if(ruleThisIsAbout.delete()) + { + ruleToEdit = null; //clear cache + updateListView(); + } + } + }); + deleteDialog.setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() + { + @Override + public void onClick(DialogInterface dialogInterface, int i) + { + + } + }); + + deleteDialog.show(); break; case 3: ruleToEdit = ruleThisIsAbout; diff --git a/app/src/main/java/com/jens/automation2/receivers/BatteryReceiver.java b/app/src/main/java/com/jens/automation2/receivers/BatteryReceiver.java index 8ca58b36..e365ade8 100644 --- a/app/src/main/java/com/jens/automation2/receivers/BatteryReceiver.java +++ b/app/src/main/java/com/jens/automation2/receivers/BatteryReceiver.java @@ -132,6 +132,7 @@ public class BatteryReceiver extends BroadcastReceiver implements AutomationList switch(status) { + case BatteryManager.BATTERY_STATUS_CHARGING: case BatteryManager.BATTERY_STATUS_FULL: Miscellaneous.logEvent("i", "BatteryReceiver", "Device has been fully charged.", 5); this.actionCharging(context); diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index aa168a23..977049ea 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -736,7 +736,7 @@ Tethering Status Während der Flugmodus aktiv ist, kann WLAN nur von Anwendungen ein- oder ausgeschaltet werden, wenn root-Rechte dafür verwendet werden. 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. - 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. + Sie können hier ein Skript oder eine ausführbare Datei auswählen, die als Aktion ausgeführt wird.\n\nEs gibt aber einige Voraussetzungen, mit denen Sie sich selbst auseinandersetzen müssen. Google hat es sehr schwierig gemacht, etwas anderes als normale Android-Anwendungen auszuführen.\n\n1. Das Skript muss als ausführbar markiert sein. Auf einem normalen Android-System (ohne root) ist dies eigentlich der schwierige Teil.\n\n2. Das bedeutet auch, dass Automation in der Lage sein muß, die Datei auszuführen, nicht nur der Besitzer oder die Gruppe.\n\n3. Falls es sich um ein Skript handelt, muß im Header des Scripts eine gültige Shell angegeben sein.\n\nFalls Sie die oben genannten Anforderungen nicht erfüllen können, können Sie alternativ versuchen, eine Shell als tatsächliche ausführbare Datei (z. B. /system/bin/sh) und Ihr Skript als Parameter anzugeben. Das hat für mindestens einen Benutzer funktioniert. Falls \"ist gleich\" ausgewählt ist, können Sie reguläre Ausdrücke eingeben. Geben Sie eine Zahl ein. Dauer [ms] diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index efccb9f3..6f016452 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -740,7 +740,7 @@ Estado de tethering Mientras modo vuelo esta activo, solo aplicaciones que tienen el permiso root pueden encender/desactivar wifi. Las aplicaciones dirigidas a Android Q o superior ya no pueden activar o desactivar el wifi. Por favor, culpe a Google por esta restricción, no a mí. Puede omitir esta restricción rooteando su dispositivo y activando la casilla de verificación a continuación. Alternativamente, descargue esta aplicación de F-Droid o mi sitio web, ya que no estoy obligado a apuntar al último nivel de API en esas versiones. - Puede seleccionar un script o un archivo ejecutable aquí que se ejecutará como una acción. Pero hay algunos requisitos previos con los que tienes que lidiar por tu cuenta. Google ha hecho que sea muy difícil ejecutar cualquier otra cosa que no sean aplicaciones normales de Android. 1. El archivo debe estar marcado como ejecutable en el sistema de archivos. En un sistema Android normal (sin root) esta es en realidad la parte difícil. 2. Eso también significa que la automatización debe poder ejecutar el archivo, no solo el propietario o el grupo. 3. Si se trata de un script, se especificará un shell válido en el encabezado del script. + Puede seleccionar un script o un archivo ejecutable aquí que se ejecutará como una acción.\n\nPero hay algunos requisitos previos con los que debe lidiar por su cuenta. Google ha hecho que sea muy difícil ejecutar cualquier cosa que no sean aplicaciones normales de Android.\n\n1. El script debe marcarse como ejecutable. En un sistema Android normal (sin root) esta es en realidad la parte difícil.\n\n2. Eso también significa que Automation debe poder ejecutar el archivo, no solo el propietario o el grupo.\n\n3. Si se trata de un script, se especificará un shell válido en el encabezado del script\'s.\n\nSi no puede cumplir con los requisitos anteriores, también puede intentar especificar un shell como el ejecutable real (como /system/bin/sh) y su script como parámetro. Eso ha funcionado para al menos un usuario. Activar mantendrá la pantalla encendida mientras desactiva la dejará apagarla. Para mantenerlo encendido, puede ingresar una duración después de la cual puede apagarse nuevamente o puede mantenerlo encendido indefinidamente. En este último caso, deberá crear otra acción de mantenerse despierto (en esta u otra regla) en la que seleccione desactivar. Aqui tambien puede insertar expressiones regulares. Para obtener el SSID wifi, la aplicación requiere permisos de ubicación. Debido a que la versión de Google no puede obtener eso, solo puede usar este desencadenador si no especifica un SSID. Por lo tanto, solo se puede usar para detectar si wifi está conectado o no. diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index a9985959..3879f97c 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -732,7 +732,7 @@ Les applications ciblant Android Q ou supérieur ne peuvent plus activer ou désactiver le wifi. Veuillez blâmer Google pour cette restriction, pas moi. Vous pouvez contourner cette restriction en rootant votre appareil et en activant la case à cocher ci-dessous. Vous pouvez également télécharger cette application depuis F-Droid ou mon site web car je ne suis pas obligé de cibler le dernier niveau d\'API dans ces versions. Lorsque le mode avion est activé, le wifi ne peut être activé qu\'à partir d\'applications pour lesquelles vous disposez des droits d\'accès root. utilisation root - Vous pouvez sélectionner ici un script ou un fichier exécutable qui sera exécuté en tant qu\'action. Mais il y a quelques conditions préalables que vous devez gérer vous-même. Google a fait en sorte qu\'il soit très difficile d\'exécuter autre chose que des applications Android normales. 1. Le fichier doit être marqué comme exécutable dans le système de fichiers. Sur un système Android normal (sans root), c\'est en fait la partie la plus difficile. 2. Cela signifie également qu\'Automation doit être en mesure d\'exécuter le fichier, pas seulement le propriétaire ou le groupe. 3. Si c\'est un script, un shell valide doit être spécifié dans l\'en-tête du script. + Vous pouvez sélectionner ici un script ou un fichier exécutable qui sera exécuté en tant qu\'action.\n\nMais il existe certaines conditions préalables que vous devez gérer vous-même. Google a rendu très difficile l\'exécution d\'autre chose que des applications Android ordinaires.\n\n1. Le script doit être marqué comme exécutable. Sur un système Android normal (sans root), c\'est en fait la partie la plus difficile.\n\n2. Cela signifie également qu\'Automation doit être en mesure d\'exécuter le fichier, pas seulement le propriétaire ou le groupe.\n\n3. S\'il s\'agit d\'un script, un shell valide doit être spécifié dans l\'en-tête du script.\n\nSi vous ne pouvez pas répondre aux exigences ci-dessus, vous pouvez également essayer de spécifier un shell comme exécutable réel (comme /system/bin/sh) et votre script comme paramètre. Cela a fonctionné pour au moins un utilisateur. la connexion est active la connexion n\'est pas active État de la connexion diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 0435eef9..5362239d 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -736,7 +736,7 @@ Stato del tethering Quando la modalità aereo è attiva, lo stato del wifi può essere commutato soltanto da applicazioni che usano i permessi di root. Le app che hanno come target Android Q o superiore non possono più attivare o disattivare il wifi. Lamentatevi con Google per questa limitazione, non con me.\n\nSi può aggirare questa limitazione usando il root e spuntando la casella qua sotto. In alternativa si può scaricare questa applicazione da F-Droid o dal mio sito, dove non sono obbligato a usare come target le ultime API. - "Si può scegliere uno script o un eseguibile che sarà eseguito come azione.\n\nCi sono però dei prerequisiti che devi sistemare per conto tuo. Google ha reso molto difficile eseguire tutto tranne le normali applicazioni Android.\n\n1.\nIl file deve essere eseguibile nel file system. In un sistema Android normale (senza root) questa è la parte più difficile.\n\n2.\nAnche Automation deve poter eseguire il file, non soltanto il proprietario o il gruppo.\n\n3.\nSe si tratta di uno script, deve essere specificata una shell valida nell'intestazione. " + È possibile selezionare uno script o un file eseguibile qui che verrà eseguito come azione.\n\nMa ci sono alcuni prerequisiti che è necessario gestire da soli. Google ha reso molto difficile l\'esecuzione di qualcosa di diverso dalle normali applicazioni Android.\n\n1. Lo script deve essere contrassegnato come eseguibile. Su un normale sistema Android (senza root) questa è in realtà la parte difficile.\n\n2. Ciò significa anche che Automation deve essere in grado di eseguire il file, non solo il proprietario o il gruppo.\n\n3. Se si tratta di uno script, è possibile specificare una shell valida nell\'intestazione dello script.\n\nSe non è possibile soddisfare i requisiti di cui sopra, in alternativa si può provare a specificare una shell come eseguibile effettivo (come /system/bin/sh) e lo script come parametro. Questo ha funzionato per almeno un utente. Inserisci un numero. Se è selezionato \"uguale\", è possibile immettere un\'espressione regolare. Durata [ms] diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 521cf12d..1f688279 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -731,7 +731,7 @@ Apps voor Android Q of hoger kunnen helaas WIFI niet meer aan- of uitzetten. Dat is niet mijn schuld, het was een beslissing van Google om dit te beperken. U kunt deze beperking omzeilen door uw apparaat te rooten en het onderstaande selectievakje te activeren. Als alternatief kunt u deze applicatie downloaden van F-Droid of mijn website, omdat ik niet gedwongen ben om de nieuwste API-niveau in die versies te richten. Wanneer vliegtuigmodus is geactiveerd, kan wifi alleen worden omgeschakeld vanuit toepassingen wanneer u root-permissies voor that. gebruik Root - Je kunt hier een script of programma selecteren dat als actie wordt uitgevoerd.\n\nMaar er zijn wel een aantal vereisten waar je zelf mee aan de slag moet. Google heeft het erg moeilijk gemaakt om iets anders dan gewone Android applicaties uit te voeren.\n1.\nHet bestand moet in het bestandssysteem gemarkeerd zijn als uitvoerbaar. Op een gewoon Android systeem (zonder root) is dit eigenlijk het moeilijkste.\n2.\nDat betekent ook dat Automation het bestand moet kunnen uitvoeren, niet alleen de eigenaar of de groep.\n3.\nAls het een script is, moet een geldige shell worden opgegeven in de header van het script. + U kunt hier een script of een uitvoerbaar bestand selecteren dat als een actie wordt uitgevoerd.\n\nMaar er zijn enkele vereisten waarmee u zelf te maken krijgt. Google heeft het erg moeilijk gemaakt om iets anders dan gewone Android-applicaties uit te voeren.\n\n1. Het script moet worden gemarkeerd als uitvoerbaar. Op een gewoon Android-systeem (zonder root) is dit eigenlijk het moeilijke deel.\n\n2. Dat betekent ook dat Automation het bestand moet kunnen uitvoeren, niet alleen de eigenaar of de groep.\n\n3. Als het een script is, moet een geldige shell worden opgegeven in de header van het script.\n\nAls u niet aan de bovenstaande vereisten kunt voldoen, kunt u ook proberen een shell op te geven als het eigenlijke uitvoerbare bestand (zoals /system/bin/sh) en uw script als parameter. Dat heeft voor minstens één gebruiker gewerkt. tethering is actief tethering is niet actief Tethering-status diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 8d307c82..259d82e8 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -790,7 +790,7 @@ Приложения, реализуемые совместимость с Android Q и выше больше не могут включать/выключать Wi-Fi. Пожалуйста, вините не меня, а Google за это.\n\nВы можете обойти это ограничение получив root права и активировав чекбокс ниже. Так же вы можете скачать это приложение из F-Droid или с моего сайта, потому что для этих версий приложения нет ограничения на совместимость с последним уровнем API. Когда активирован режим "В самолете" Wi-Fi может быть включен только приложениями с доступом к root правам. используя root-права - Вы можете выбрать скрипт или исполняемый файл, который будет запущен.\n\nНо существуют некоторые требования, которые вам нужно выполнить. Google сделал очень сложным запускать что-либо иное, кроме обычных Android приложений.\n\n1.\nФайл должен иметь флаг "исполняемый" в файловой системе. На Android без root прав это достаточно сложно.\n\n2.\nAutomation должно иметь права выполнять этот файл, не только владелец или группа\n\n3.\nЕсли это скрипт, то в заголовке файла должен быть указан корректный shell. + Здесь вы можете выбрать сценарий или исполняемый файл, который будет выполняться как действие.\n\nНо есть некоторые предварительные условия, с которыми вам придется иметь дело самостоятельно. Google очень усложнил запуск чего-либо, кроме обычных приложений Android.\n\n1. Сценарий должен быть помечен как исполняемый. В обычной системе Android (без root) это на самом деле самая сложная часть.\n\n2. Это также означает, что автоматизация должна иметь возможность выполнять файл, а не только владельца или группу.\n\n3. Если это сценарий, в заголовке скрипта указывается допустимая оболочка.\n\nЕсли вы не можете выполнить вышеуказанные требования, можно в качестве альтернативы попытаться указать оболочку в качестве фактического исполняемого файла (например, /system/bin/sh) и скрипт в качестве параметра. Это сработало, по крайней мере, для одного пользователя. раздача интернета активна раздача интернета не активна Раздача интернета diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b779389c..4726a9cf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -830,7 +830,7 @@ Apps targeting Android Q or higher cannot turn wifi on or off anymore. Please blame Google for this restriction, not me. You can bypass this restriction by rooting your device and activating the checkbox below. Alternatively download this application from F-Droid or my website as I am not forced to target the latest API level in those versions. While airplane mode is activated, wifi can only be toggled from applications when using root permissions for that. using root - You can select a script or an executable file here that will be executed as an action. But there are some prerequisites which you have to deal with on your own. Google has made it very hard to run anything other than regular Android applications. 1. The file must be marked as executable in the file system. On a regular Android system (without root) this is actually the hard part. 2. That also means Automation must be able to execute the file, not just the owner or the group. 3. If it is a script, a valid shell be specified in the script\'s header. + You can select a script or an executable file here that will be executed as an action.\n\nBut there are some prerequisites which you have to deal with on your own. Google has made it very hard to run anything other than regular Android applications.\n\n1. The script needs to be marked as executable. On a regular Android system (without root) this is actually the hard part.\n\n2. That also means Automation must be able to execute the file, not just the owner or the group.\n\n3. If it is a script, a valid shell be specified in the script\'s header.\n\nIf you cannot meet the above requirements, you could alternatively try to specify a shell as the actual executable (like /system/bin/sh) and your script as parameter. That has worked for at least one user. tethering is active tethering is not active Tethering state diff --git a/fastlane/metadata/android/en-US/changelogs/123.txt b/fastlane/metadata/android/en-US/changelogs/123.txt new file mode 100644 index 00000000..7adb999b --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/123.txt @@ -0,0 +1 @@ +* New: Confirmation dialog before deleting locations, rules and profile \ No newline at end of file