From a7ec00e6ea16dc7e60497a300706571b7c7aa528 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 8 Apr 2021 08:20:04 +0200 Subject: [PATCH] Added intent to set poll interval --- FAQ.md | 8 ++++++++ app/src/main/AndroidManifest.xml | 1 + .../java/eu/faircode/email/ServiceExternal.java | 16 ++++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/FAQ.md b/FAQ.md index d694c75929..0c5f47bdb1 100644 --- a/FAQ.md +++ b/FAQ.md @@ -2259,6 +2259,14 @@ To enable/disable a specific account: Note that disabling an account will hide the account and all associated folders and messages. +To set the poll interval: + +``` +(adb shell) adb shell am start-foreground-service -a eu.faircode.email.INTERVAL --ei minutes nnn +``` + +Where *nnn* is one of 0, 15, 30, 60, 120, 240, 480, 1440. + You can automatically send commands with for example [Tasker](https://tasker.joaoapps.com/userguide/en/intents.html): ``` diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2874efcbe8..a425e5a4b1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -355,6 +355,7 @@ + diff --git a/app/src/main/java/eu/faircode/email/ServiceExternal.java b/app/src/main/java/eu/faircode/email/ServiceExternal.java index 0beae833c2..44e5b59af9 100644 --- a/app/src/main/java/eu/faircode/email/ServiceExternal.java +++ b/app/src/main/java/eu/faircode/email/ServiceExternal.java @@ -41,6 +41,7 @@ public class ServiceExternal extends Service { private static final String ACTION_POLL = BuildConfig.APPLICATION_ID + ".POLL"; private static final String ACTION_ENABLE = BuildConfig.APPLICATION_ID + ".ENABLE"; private static final String ACTION_DISABLE = BuildConfig.APPLICATION_ID + ".DISABLE"; + private static final String ACTION_INTERVAL = BuildConfig.APPLICATION_ID + ".INTERVAL"; private static final String ACTION_DISCONNECT_ME = BuildConfig.APPLICATION_ID + ".DISCONNECT.ME"; static final int PI_WIDGET_ENABLE = 1; @@ -48,6 +49,7 @@ public class ServiceExternal extends Service { // adb shell am start-foreground-service -a eu.faircode.email.POLL --es account Gmail // adb shell am start-foreground-service -a eu.faircode.email.ENABLE --es account Gmail // adb shell am start-foreground-service -a eu.faircode.email.DISABLE --es account Gmail + // adb shell am start-foreground-service -a eu.faircode.email.INTERVAL --ei minutes {0, 15, 30, 60, 120, 240, 480, 1440} // adb shell am start-foreground-service -a eu.faircode.email.DISCONNECT private static final ExecutorService executor = @@ -96,6 +98,9 @@ public class ServiceExternal extends Service { case ACTION_DISABLE: set(context, intent); break; + case ACTION_INTERVAL: + interval(context, intent); + break; case ACTION_DISCONNECT_ME: disconnect(context, intent); break; @@ -163,6 +168,17 @@ public class ServiceExternal extends Service { ServiceSynchronize.eval(context, "external poll account=" + accountName); } + private static void interval(Context context, Intent intent) { + int minutes = intent.getIntExtra("minutes", 0); + int[] values = context.getResources().getIntArray(R.array.pollIntervalValues); + for (int value : values) + if (value >= minutes) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + prefs.edit().putInt("poll_interval", value).apply(); + break; + } + } + private static void set(Context context, Intent intent) { String accountName = intent.getStringExtra("account"); boolean enabled = ACTION_ENABLE.equals(intent.getAction());