7 Commits

34 changed files with 170 additions and 24 deletions

View File

@ -11,8 +11,8 @@ android {
compileSdkVersion 33
buildToolsVersion '29.0.2'
useLibrary 'org.apache.http.legacy'
versionCode 138
versionName "1.8"
versionCode 142
versionName "1.8.1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

View File

@ -66,7 +66,6 @@
<uses-permission android:name="com.wireguard.android.permission.CONTROL_TUNNELS"/>
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission
android:name="android.permission.WRITE_SECURE_SETTINGS"
tools:ignore="ProtectedPermissions" />
@ -258,18 +257,6 @@
android:exported="true"
/>
<service android:name=".MyAccessibilityService"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
android:exported="true">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/config_accessibility_service" />
</service>
</application>
</manifest>

View File

@ -1107,7 +1107,13 @@ public class Actions
externalApplicationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// Pack intents
externalApplicationIntent = packParametersIntoIntent(externalApplicationIntent, params, 3);
if(params.length >= 4)
{
if(Miscellaneous.isNumeric(params[3]))
externalApplicationIntent = packParametersIntoIntent(externalApplicationIntent, params, 4);
else
externalApplicationIntent = packParametersIntoIntent(externalApplicationIntent, params, 3);
}
if (params[2].equals(ActivityManageActionStartActivity.startByActivityString))
automationServerRef.startActivity(externalApplicationIntent);
@ -2353,7 +2359,8 @@ public class Actions
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P)
{
MyAccessibilityService.getInstance().performGlobalAction(AccessibilityService.GLOBAL_ACTION_TAKE_SCREENSHOT);
if(!BuildConfig.FLAVOR.equals(AutomationService.flavor_name_googleplay))
MyAccessibilityService.getInstance().performGlobalAction(AccessibilityService.GLOBAL_ACTION_TAKE_SCREENSHOT);
}
}

View File

@ -622,7 +622,7 @@ public class ActivityManageRule extends Activity
items.add(new Item(typesLong[i].toString(), R.drawable.megaphone));
else if(types[i].toString().equals(Trigger_Enum.phoneCall.toString()))
{
if(ActivityPermissions.isPermissionDeclaratedInManifest(ActivityManageRule.this, "android.permission.SEND_SMS"))
if(ActivityPermissions.isPermissionDeclaratedInManifest(ActivityManageRule.this, Manifest.permission.SEND_SMS))
items.add(new Item(typesLong[i].toString(), R.drawable.phone));
}
else if(types[i].toString().equals(Trigger_Enum.nfcTag.toString()))
@ -654,7 +654,10 @@ public class ActivityManageRule extends Activity
else if(types[i].toString().equals(Trigger_Enum.checkVariable.toString()))
items.add(new Item(typesLong[i].toString(), R.drawable.variable));
else if(types[i].toString().equals(Trigger_Enum.calendarEvent.toString()))
items.add(new Item(typesLong[i].toString(), R.drawable.calendar));
{
if(ActivityPermissions.isPermissionDeclaratedInManifest(ActivityManageRule.this, Manifest.permission.READ_CALENDAR))
items.add(new Item(typesLong[i].toString(), R.drawable.calendar));
}
else
items.add(new Item(typesLong[i].toString(), R.drawable.placeholder));
}
@ -2250,12 +2253,15 @@ public class ActivityManageRule extends Activity
}
else if(types[i].toString().equals(Action_Enum.copyToClipboard.toString()))
items.add(new Item(typesLong[i].toString(), R.drawable.clipboard));
else if(types[i].toString().equals(Action_Enum.takeScreenshot.toString()))
items.add(new Item(typesLong[i].toString(), R.drawable.copier));
else if(types[i].toString().equals(Action_Enum.setVariable.toString()))
items.add(new Item(typesLong[i].toString(), R.drawable.variable));
else if(types[i].toString().equals(Action_Enum.setLocationService.toString()))
items.add(new Item(typesLong[i].toString(), R.drawable.compass_small));
else if(types[i].toString().equals(Action_Enum.takeScreenshot.toString()))
{
if(ActivityPermissions.isPermissionDeclaratedInManifest(ActivityManageRule.this, Manifest.permission.BIND_ACCESSIBILITY_SERVICE))
items.add(new Item(typesLong[i].toString(), R.drawable.copier));
}
else
items.add(new Item(typesLong[i].toString(), R.drawable.placeholder));
}

View File

@ -321,7 +321,9 @@ public class AutomationService extends Service implements OnInitListener
ReceiverCoordinator.applySettingsAndRules();
DateTimeListener.setOrResetAlarms();
CalendarReceiver.armOrRearmTimer();
if(Rule.isAnyRuleUsing(Trigger.Trigger_Enum.calendarEvent) && ActivityPermissions.isPermissionDeclaratedInManifest(AutomationService.getInstance(), Manifest.permission.READ_CALENDAR) && ActivityPermissions.havePermission(Manifest.permission.READ_CALENDAR, AutomationService.getInstance()))
CalendarReceiver.armOrRearmTimer();
}
@Override

View File

@ -1,5 +1,6 @@
package com.jens.automation2;
import android.Manifest;
import android.os.Build;
import android.util.Log;
@ -212,7 +213,7 @@ public class ReceiverCoordinator
if(Rule.isAnyRuleUsing(Trigger.Trigger_Enum.screenState))
ScreenStateReceiver.startScreenStateReceiver(AutomationService.getInstance());
if(Rule.isAnyRuleUsing(Trigger.Trigger_Enum.calendarEvent))
if(Rule.isAnyRuleUsing(Trigger.Trigger_Enum.calendarEvent) && ActivityPermissions.isPermissionDeclaratedInManifest(AutomationService.getInstance(), Manifest.permission.READ_CALENDAR) && ActivityPermissions.havePermission(Manifest.permission.READ_CALENDAR, AutomationService.getInstance()))
CalendarReceiver.startCalendarReceiver(AutomationService.getInstance());
}
@ -469,7 +470,7 @@ public class ReceiverCoordinator
}
}
if(Rule.isAnyRuleUsing(Trigger.Trigger_Enum.calendarEvent))
if(Rule.isAnyRuleUsing(Trigger.Trigger_Enum.calendarEvent) && ActivityPermissions.isPermissionDeclaratedInManifest(AutomationService.getInstance(), Manifest.permission.READ_CALENDAR) && ActivityPermissions.havePermission(Manifest.permission.READ_CALENDAR, AutomationService.getInstance()))
{
if(!CalendarReceiver.getInstance().isListenerRunning())
CalendarReceiver.getInstance().startListener(AutomationService.getInstance());

View File

@ -0,0 +1,12 @@
* Behoben: Overlay-Berechtigung zum Starten einer anderen Programmaktion nur erforderlich, wenn startByActivity() ausgewählt ist
* Behoben: Broadcast-Receiver-Trigger löste nichts aus, stürzte aber ab * Behoben: Fehler in Android 14 (nicht in Automation!!) erforderte eine Änderung beim Wählen von MMI-Codes, die ein #-Zeichen enthalten.
* Behoben: Speicherberechtigung wurde möglicherweise als nicht erteilt angezeigt, auch wenn sie
* Behoben: Ein sehr alter Bugfix wurde auch auf F-Droid- und Google-Play-Editionen angewendet, die irrtümlicherweise nur in der APK-Edition implementiert waren (TimeFrame-Trigger mit Wiederholungen)
* Behoben: Seltener Absturz beim Starten des Dienstes
* Behoben: Kompensiert für Android-Änderungen, zeitbasierte Trigger sind nun wieder präzise
* Hinzugefügt: neue Aktion -> Screenshot machen * Hinzugefügt: Der Ortungsdienst (GPS) kann zwischen den Zuständen umgeschaltet werden, wenn WRITE_SECURE_SETTINGS von einem Computer aus erteilt wurde
* Hinzugefügt: triggerUrl-Aktion kann jetzt mit POST und Parametern verwendet werden
* Hinzugefügt: Das Ergebnis der triggerUrl-Aktion wird jetzt in einer Variablen gespeichert, wenn Sie es überprüfen möchten
* Hinzugefügt: Neuer Auslöser: Kalenderereignisse
* Hinzugefügt: Das Ergebnis der runExecutable-Aktion wird jetzt in einer Variablen gespeichert, wenn Sie es überprüfen möchten
* Hinzugefügt: Ladeauslöser kann nun zwischen Typen unterscheiden (AC, USB, kabellos)

View File

@ -0,0 +1 @@
* Kalendar Funktion aus Google Version entfernt

View File

@ -0,0 +1,3 @@
* Behoben: Kalender Auslöser wird jetzt in Play Version verborgen
* Behoben: Parameter wurde beim Starten anderer Apps nicht korrekt übergeben
* Behoben: Absturz beim Verlassen der Einstellungen

View File

@ -0,0 +1 @@
* Calendar trigger removed from Google version

View File

@ -0,0 +1,3 @@
* Fixed: Calendar trigger hidden from Play version
* Fixed: Parameters not correctly supplied when starting other apps
* Fixed: Crash when exiting settings while service is running

View File

@ -0,0 +1,14 @@
* Corregido: El permiso de superposición para iniciar otra acción del programa solo se requiere si se selecciona startByActivity()
* Corregido: El disparador del receptor de transmisión no activaba nada, pero se bloqueaba
* Corregido: El error en Android 14 (no en Automatización!!) requería un cambio al marcar códigos MMI que contenían un carácter #.
* Corregido: El permiso de almacenamiento podía mostrarse como no concedido incluso si se
* Corregido: Se aplicó una corrección de errores muy antigua también a las ediciones F-Droid y Google-Play que por error se había implementado solo en la edición APK (disparador de timeFrame con repeticiones)
* Corregido: Raro bloqueo al iniciar el servicio
* Corregido: Compensado por los cambios de Android, los disparadores basados en el tiempo ahora son precisos nuevamente
* Añadido: nueva acción -> tomar captura de pantalla
* Agregado: El servicio de ubicación (GPS) se puede alternar entre estados si WRITE_SECURE_SETTINGS se ha otorgado desde una computadora
* Añadido: la acción triggerUrl ahora se puede usar con POST y parámetros
* Añadido: El resultado de la acción triggerUrl ahora se almacena en una variable si desea verificarlo
* Añadido: Nuevo activador: Eventos de calendario
* Añadido: El resultado de la acción runExecutable ahora se almacena en una variable si desea comprobarlo
* Añadido: El gatillo de carga ahora puede diferenciar entre tipos (CA, USB, de forma inalámbrica)

View File

@ -0,0 +1 @@
* Eliminado el activador de calendario de la versión de Google

View File

@ -0,0 +1,3 @@
* Corregido: Condición de calendario ahora es oculto en la versión Play
* Corregido: Los parámetros no se suministran correctamente al iniciar otras aplicaciones
* Corregido: Bloqueo al salir de la configuración mientras el servicio se está ejecutando

View File

@ -0,0 +1,12 @@
* Corrigé : Autorisation de superposition pour démarrer une autre action de programme requise uniquement si startByActivity() est sélectionnée
* Corrigé : Le déclenchement du récepteur de diffusion ne déclenchait rien, mais plantait
* Corrigé : Un bug dans Android 14 (pas dans Automation !!) nécessitait un changement lors de la composition des codes MMI contenant un caractère #.
* Résolu : L'autorisation de stockage pouvait être affichée comme n'ayant pas été accordée, même si elle l'était
* Corrigé : Correction d'un très ancien bug également sur les éditions F-Droid et Google-Play qui n'avait été implémenté par erreur que dans l'édition APK (déclencheur timeFrame avec répétitions)
* Corrigé : Crash rare lors du démarrage du service
* Corrigé : Corrigé des changements d'Android, les déclencheurs basés sur le temps sont à nouveau précis
* Ajouté : nouvelle action > prendre une capture d'écran * Ajouté : Le service de localisation (GPS) peut être basculé entre les états s'WRITE_SECURE_SETTINGS a été accordé à partir d'un ordinateur
* Ajout : l'action triggerUrl peut maintenant être utilisée avec l'auto-test de démarrage (POST) et les paramètres
* Ajouté : Le résultat de l'action triggerUrl est maintenant stocké dans une variable si vous souhaitez le vérifier
* Ajout : Nouveau déclencheur : Événements de calendrier * Ajouté : Le résultat de l'action runExecutable est maintenant stocké dans une variable si vous souhaitez le vérifier
* Ajouté : La gâchette de charge peut désormais différencier les types (AC, USB, sans fil)

View File

@ -0,0 +1 @@
* Déclencheur d'agenda supprimé de la version Google

View File

@ -0,0 +1,3 @@
* Correction : Déclencheur de calendrier caché dans la version Play
* Correction : Les paramètres n'étaient pas correctement fournis lors du démarrage d'autres applications
* Correction : Plantage lors de la fermeture des paramètres pendant l'exécution du service

View File

@ -0,0 +1,14 @@
* Risolto: l'autorizzazione di sovrapposizione per l'avvio di un'altra azione del programma è richiesta solo se è selezionato startByActivity()
* Risolto: il trigger del ricevitore di trasmissione non attivava nulla, ma si bloccava
* Risolto: un bug in Android 14 (non in Automazione!!) richiedeva una modifica durante la composizione dei codici MMI contenenti un carattere #.
* Risolto: l'autorizzazione di archiviazione poteva essere visualizzata come non concessa anche se lo era
* Risolto: Applicato un bug molto vecchio anche alle edizioni F-Droid e Google-Play che per errore era stato implementato solo nell'edizione APK (trigger timeFrame con ripetizioni)
* Risolto: raro crash durante l'avvio del servizio
* Risolto: compensato per le modifiche di Android, i trigger basati sul tempo ora sono di nuovo precisi
* Aggiunto: nuova azione -> fai screenshot
* Aggiunto: il servizio di localizzazione (GPS) può essere commutato tra gli stati se WRITE_SECURE_SETTINGS è stato concesso da un computer
* Aggiunto: l'azione triggerUrl può ora essere utilizzata con POST e parametri
* Aggiunto: il risultato dell'azione triggerUrl è ora memorizzato in una variabile se si desidera controllarlo
* Aggiunto: Nuovo trigger: Eventi del calendario
* Aggiunto: il risultato dell'azione runExecutable è ora memorizzato in una variabile se si desidera controllarlo
* Aggiunto: il trigger di ricarica ora può distinguere tra i tipi (AC, USB, wireless)

View File

@ -0,0 +1 @@
* Il trigger del calendario è stato rimosso dalla versione Google

View File

@ -0,0 +1,3 @@
* Risolto: trigger del calendario nascosto dalla versione Play
* Risolto: parametri non forniti correttamente all'avvio di altre app
* Risolto: arresto anomalo quando si esce dalle impostazioni mentre il servizio è in esecuzione

View File

@ -0,0 +1,14 @@
* Opgelost: overlay-toestemming voor het starten van een andere programmaactie is alleen vereist als startByActivity() is geselecteerd
* Opgelost: de trigger van de uitzendontvanger zou niets activeren, maar crashen
* Opgelost: bug in Android 14 (niet in Automation!!) vereiste een wijziging bij het kiezen van MMI-codes met een #-teken.
* Opgelost: opslagtoestemming kan worden weergegeven als niet verleend, zelfs als dit wel het geval was
* Opgelost: een zeer oude bugfix ook toegepast op F-Droid- en Google-Play-edities die per ongeluk alleen in de APK-editie waren geïmplementeerd (timeFrame-trigger met herhalingen)
* Opgelost: zeldzame crash tijdens het starten van de service
* Opgelost: gecompenseerd voor Android-wijzigingen, op tijd gebaseerde triggers zijn nu weer nauwkeurig
* Toegevoegd: nieuwe actie > screenshot maken
* Toegevoegd: Locatieservice (GPS) kan worden omgeschakeld tussen staten als WRITE_SECURE_SETTINGS is verleend vanaf een computer
* Toegevoegd: triggerUrl-actie kan nu worden gebruikt met POST en parameters
* Toegevoegd: Resultaat van triggerUrl-actie wordt nu opgeslagen in een variabele als u deze wilt controleren
* Toegevoegd: Nieuwe trigger: Agenda-afspraken
* Toegevoegd: Resultaat van runExecutable actie wordt nu opgeslagen in een variabele als u deze wilt controleren
* Toegevoegd: oplaadtrigger kan nu onderscheid maken tussen typen (AC, USB, draadloos)

View File

@ -0,0 +1 @@
* Agendatrigger verwijderd uit Google-versie

View File

@ -0,0 +1,3 @@
* Opgelost: kalendertrigger verborgen voor Play-versie
* Opgelost: parameters worden niet correct opgegeven bij het starten van andere apps
* Opgelost: crash bij het afsluiten van instellingen terwijl de service actief is

View File

@ -0,0 +1,14 @@
* Naprawiono: Uprawnienie nakładki do uruchamiania innej akcji programu jest wymagane tylko wtedy, gdy wybrano startByActivity()
* Naprawiono: Wyzwalacz odbiornika transmisji nie uruchamiał niczego, ale zawieszał się
* Naprawiono: Błąd w Androidzie 14 (nie w Automation!!) wymagał zmiany podczas wybierania kodów MMI zawierających znak #.
* Naprawiono: Uprawnienie do przechowywania może być wyświetlane jako nieprzyznane, nawet jeśli było
* Naprawiono: Zastosowano bardzo starą poprawkę błędu również do edycji F-Droid i Google-Play, która przez pomyłkę została zaimplementowana tylko w edycji APK (wyzwalacz timeFrame z powtórzeniami)
* Naprawiono: Rzadka awaria podczas uruchamiania usługi
* Naprawiono: Zrekompensowano zmiany w Androidzie, wyzwalacze oparte na czasie są teraz ponownie precyzyjne
* Dodano: nowa akcja -> zrób zrzut ekranu
* Dodano: Usługa lokalizacyjna (GPS) może być przełączana między stanami, jeśli WRITE_SECURE_SETTINGS została przyznana z komputera
* Dodano: akcja triggerUrl może być teraz używana z POST i parametrami
* Dodano: Wynik akcji triggerUrl jest teraz przechowywany w zmiennej, jeśli chcesz to sprawdzić
* Dodano: Nowy wyzwalacz: Wydarzenia w kalendarzu
* Dodano: Wynik akcji runExecutable jest teraz przechowywany w zmiennej, jeśli chcesz to sprawdzić
* Dodano: Wyzwalacz ładowania może teraz rozróżniać typy (AC, USB, bezprzewodowo)

View File

@ -0,0 +1 @@
* Wyzwalacz kalendarza usunięty z wersji Google

View File

@ -0,0 +1,3 @@
* Naprawiono: Wyzwalacz kalendarza ukryty w wersji Play
* Naprawiono: Parametry nie są poprawnie dostarczane podczas uruchamiania innych aplikacji
* Naprawiono: Awaria podczas wychodzenia z ustawień, gdy usługa jest uruchomiona

View File

@ -0,0 +1,14 @@
* Исправлено: Разрешение на оверлей для запуска других действий программы требуется только в том случае, если выбран startByActivity()
* Исправлено: Триггер широковещательного приемника не вызывал ничего, кроме сбоя.
* Исправлено: Ошибка в Android 14 (не в Automation!!) требовала изменения при наборе кодов MMI, содержащих символ #.
* Исправлено: Разрешение на хранение могло отображаться как не предоставленное, даже если оно было
* Исправлено: Применено очень старое исправление ошибки также к редакциям F-Droid и Google-Play, которые по ошибке были реализованы только в редакции APK (триггер timeFrame с повторами)
* Исправлено: редкий сбой при запуске сервиса.
* Исправлено: Компенсированы изменения Android, триггеры, основанные на времени, теперь снова точны
* Добавлено: новое действие -> сделать скриншот
* Добавлено: Служба определения местоположения (GPS) может переключаться между состояниями, если WRITE_SECURE_SETTINGS было предоставлено с компьютера.
* Добавлено: действие triggerUrl теперь можно использовать с POST и параметрами
* Добавлено: Результат действия triggerUrl теперь сохраняется в переменной, если вы хотите проверить это
* Добавлено: Новый триггер: События календаря
* Добавлено: Результат действия runExecutable теперь сохраняется в переменной, если вы хотите проверить это
* Добавлено: Триггер зарядки теперь может различать типы (переменный ток, USB, беспроводная связь)

View File

@ -0,0 +1 @@
* Триггер календаря удален из версии Google

View File

@ -0,0 +1,3 @@
* Исправлено: Триггер календаря скрыт в игровой версии
* Исправлено: Параметры неправильно указываются при запуске других приложений.
* Исправлено: Сбой при выходе из настроек во время работы сервиса

View File

@ -0,0 +1,13 @@
* 修复:只有在选择了 startByActivity 时才需要启动其他程序操作的叠加权限
* 修复:广播接收机触发不会触发任何内容,但会崩溃
* 已修复Android 14不在 Automation!! 中)中的错误在拨打包含 # 字符的 MMI 代码时需要更改。
* 修复:存储权限可能显示为未授予,即使已授予
* 修复:将一个非常古老的错误修复也应用于 F-Droid 和 Google-Play 版本,这些版本错误地仅在 APK 版本中实现(具有重复的 timeFrame 触发器)
* 修复:启动服务时罕见崩溃
* 已修复:补偿了 Android 更改,基于时间的触发器现在再次精确
* 新增:新动作 ->截图 * 新增:定位服务 GPS 可以在各州之间切换前提是已从计算机授予WRITE_SECURE_SETTINGS
* 新增triggerUrl 操作现在可以与 POST 和参数一起使用
* 新增triggerUrl 操作的结果现在存储在变量中,如果您想检查它
* 新增:新触发器:日历事件
* 新增runExecutable 操作的结果现在存储在变量中,如果您想检查它
* 新增充电触发器现在可以区分类型交流、USB、无线

View File

@ -0,0 +1 @@
* 日历触发器已从 Google 版本中删除

View File

@ -0,0 +1,3 @@
* 修复:播放版本中隐藏的日历触发器
* 修复:启动其他应用程序时未正确提供参数的问题
* 修复:服务运行时退出设置时崩溃