From a96171665ae38b86bfc7db28a4b0ac7e9b2d340d Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 1 Apr 2022 09:51:40 +0200 Subject: [PATCH] Listen for suspend events --- .../eu/faircode/email/ServiceSynchronize.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 901455a7bd..f5e2d8f97f 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -199,6 +199,13 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) registerReceiver(dataSaverChanged, new IntentFilter(ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED)); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + IntentFilter suspend = new IntentFilter(); + suspend.addAction(Intent.ACTION_MY_PACKAGE_SUSPENDED); + suspend.addAction(Intent.ACTION_MY_PACKAGE_UNSUSPENDED); + registerReceiver(suspendChanged, suspend); + } + final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); DB db = DB.getInstance(this); @@ -859,6 +866,9 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); prefs.unregisterOnSharedPreferenceChangeListener(this); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) + unregisterReceiver(suspendChanged); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) unregisterReceiver(dataSaverChanged); @@ -2634,6 +2644,14 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences } }; + private final BroadcastReceiver suspendChanged = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + EntityLog.log(context, intent.getAction() + " " + + TextUtils.join(", ", Log.getExtras(intent.getExtras()))); + } + }; + private void updateNetworkState(final Network network, final String reason) { getMainHandler().post(new Runnable() { @Override