mirror of https://github.com/M66B/FairEmail.git
Enable/disable via sync service
This commit is contained in:
parent
386475a4d9
commit
9ec584f08e
|
@ -38,10 +38,10 @@ import java.util.List;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
|
|
||||||
public class ServiceExternal extends Service {
|
public class ServiceExternal extends Service {
|
||||||
static final String ACTION_POLL = BuildConfig.APPLICATION_ID + ".POLL";
|
private static final String ACTION_POLL = BuildConfig.APPLICATION_ID + ".POLL";
|
||||||
static final String ACTION_ENABLE = BuildConfig.APPLICATION_ID + ".ENABLE";
|
private static final String ACTION_ENABLE = BuildConfig.APPLICATION_ID + ".ENABLE";
|
||||||
static final String ACTION_DISABLE = BuildConfig.APPLICATION_ID + ".DISABLE";
|
private static final String ACTION_DISABLE = BuildConfig.APPLICATION_ID + ".DISABLE";
|
||||||
static final String ACTION_DISCONNECT_ME = BuildConfig.APPLICATION_ID + ".DISCONNECT.ME";
|
private static final String ACTION_DISCONNECT_ME = BuildConfig.APPLICATION_ID + ".DISCONNECT.ME";
|
||||||
|
|
||||||
static final int PI_WIDGET_ENABLE = 1;
|
static final int PI_WIDGET_ENABLE = 1;
|
||||||
|
|
||||||
|
|
|
@ -152,6 +152,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
|
||||||
static final int PI_ALARM = 1;
|
static final int PI_ALARM = 1;
|
||||||
static final int PI_BACKOFF = 2;
|
static final int PI_BACKOFF = 2;
|
||||||
static final int PI_KEEPALIVE = 3;
|
static final int PI_KEEPALIVE = 3;
|
||||||
|
static final int PI_ENABLE = 4;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
|
@ -792,6 +793,10 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
|
||||||
if (action != null)
|
if (action != null)
|
||||||
try {
|
try {
|
||||||
switch (action.split(":")[0]) {
|
switch (action.split(":")[0]) {
|
||||||
|
case "enable":
|
||||||
|
onEnable(intent);
|
||||||
|
break;
|
||||||
|
|
||||||
case "eval":
|
case "eval":
|
||||||
onEval(intent);
|
onEval(intent);
|
||||||
break;
|
break;
|
||||||
|
@ -827,6 +832,13 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
|
||||||
return START_STICKY;
|
return START_STICKY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void onEnable(Intent intent) {
|
||||||
|
boolean enabled = intent.getBooleanExtra("enabled", true);
|
||||||
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||||
|
prefs.edit().putBoolean("enabled", enabled).apply();
|
||||||
|
onEval(intent);
|
||||||
|
}
|
||||||
|
|
||||||
private void onEval(Intent intent) {
|
private void onEval(Intent intent) {
|
||||||
Bundle command = new Bundle();
|
Bundle command = new Bundle();
|
||||||
command.putString("name", "eval");
|
command.putString("name", "eval");
|
||||||
|
|
|
@ -39,9 +39,12 @@ public class WidgetSync extends AppWidgetProvider {
|
||||||
boolean enabled = prefs.getBoolean("enabled", true);
|
boolean enabled = prefs.getBoolean("enabled", true);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Intent intent = new Intent(enabled ? ServiceExternal.ACTION_DISABLE : ServiceExternal.ACTION_ENABLE);
|
Intent intent = new Intent(context, ServiceSynchronize.class)
|
||||||
PendingIntent pi = PendingIntentCompat.getService(
|
.setAction("enable")
|
||||||
context, ServiceExternal.PI_WIDGET_ENABLE, intent, PendingIntent.FLAG_UPDATE_CURRENT);
|
.putExtra("enabled", !enabled);
|
||||||
|
PendingIntent pi = PendingIntentCompat.getForegroundService(
|
||||||
|
context, ServiceSynchronize.PI_ENABLE, intent, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||||
|
|
||||||
for (int appWidgetId : appWidgetIds) {
|
for (int appWidgetId : appWidgetIds) {
|
||||||
boolean semi = prefs.getBoolean("widget." + appWidgetId + ".semi", true);
|
boolean semi = prefs.getBoolean("widget." + appWidgetId + ".semi", true);
|
||||||
int background = prefs.getInt("widget." + appWidgetId + ".background", Color.TRANSPARENT);
|
int background = prefs.getInt("widget." + appWidgetId + ".background", Color.TRANSPARENT);
|
||||||
|
|
Loading…
Reference in New Issue