From 199c5d8b142dbce2073ae4e42789b57efb8d68ac Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 21 Sep 2023 08:45:04 +0200 Subject: [PATCH] Use local broadcast receivers --- .../java/eu/faircode/email/ApplicationEx.java | 6 ++++- .../eu/faircode/email/FragmentMessages.java | 5 +++- .../java/eu/faircode/email/ServiceSend.java | 5 +++- .../eu/faircode/email/ServiceSynchronize.java | 25 +++++++++++++++---- 4 files changed, 33 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ApplicationEx.java b/app/src/main/java/eu/faircode/email/ApplicationEx.java index 71dc8487a5..3b8d9cd977 100644 --- a/app/src/main/java/eu/faircode/email/ApplicationEx.java +++ b/app/src/main/java/eu/faircode/email/ApplicationEx.java @@ -41,6 +41,7 @@ import android.webkit.CookieManager; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatDelegate; +import androidx.core.content.ContextCompat; import androidx.core.os.LocaleListCompat; import androidx.emoji2.text.DefaultEmojiCompatConfig; import androidx.emoji2.text.EmojiCompat; @@ -264,7 +265,10 @@ public class ApplicationEx extends Application } } - registerReceiver(onScreenOff, new IntentFilter(Intent.ACTION_SCREEN_OFF)); + ContextCompat.registerReceiver(this, + onScreenOff, + new IntentFilter(Intent.ACTION_SCREEN_OFF), + ContextCompat.RECEIVER_NOT_EXPORTED); long end = new Date().getTime(); Log.i("App created " + (end - start) + " ms"); diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 91dd6d428f..f63fd3813a 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -5153,7 +5153,10 @@ public class FragmentMessages extends FragmentBase cm.registerNetworkCallback(builder.build(), networkCallback); updateAirplaneMode(ConnectionHelper.airplaneMode(context)); - context.registerReceiver(airplanemode, new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED)); + ContextCompat.registerReceiver(context, + airplanemode, + new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED), + ContextCompat.RECEIVER_NOT_EXPORTED); boolean isIgnoring = !Boolean.FALSE.equals(Helper.isIgnoringOptimizations(context)); //boolean canSchedule = AlarmManagerCompatEx.canScheduleExactAlarms(context); diff --git a/app/src/main/java/eu/faircode/email/ServiceSend.java b/app/src/main/java/eu/faircode/email/ServiceSend.java index bd0da12208..7ed2411d14 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSend.java +++ b/app/src/main/java/eu/faircode/email/ServiceSend.java @@ -179,7 +179,10 @@ public class ServiceSend extends ServiceBase implements SharedPreferences.OnShar IntentFilter iif = new IntentFilter(); iif.addAction(ConnectivityManager.CONNECTIVITY_ACTION); iif.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED); - registerReceiver(connectionChangedReceiver, iif); + ContextCompat.registerReceiver(this, + connectionChangedReceiver, + iif, + ContextCompat.RECEIVER_NOT_EXPORTED); PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this); } diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 6172b61417..6d88b823ad 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -212,22 +212,37 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences IntentFilter iif = new IntentFilter(); iif.addAction(ConnectivityManager.CONNECTIVITY_ACTION); iif.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED); - registerReceiver(connectionChangedReceiver, iif); + ContextCompat.registerReceiver(this, + connectionChangedReceiver, + iif, + ContextCompat.RECEIVER_NOT_EXPORTED); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) - registerReceiver(idleModeChangedReceiver, new IntentFilter(PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED)); + ContextCompat.registerReceiver(this, + idleModeChangedReceiver, + new IntentFilter(PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED), + ContextCompat.RECEIVER_NOT_EXPORTED); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) - registerReceiver(dataSaverChanged, new IntentFilter(ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED)); + ContextCompat.registerReceiver(this, + dataSaverChanged, + new IntentFilter(ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED), + ContextCompat.RECEIVER_NOT_EXPORTED); 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); + ContextCompat.registerReceiver(this, + suspendChanged, + suspend, + ContextCompat.RECEIVER_NOT_EXPORTED); } - registerReceiver(batteryChanged, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); + ContextCompat.registerReceiver(this, + batteryChanged, + new IntentFilter(Intent.ACTION_BATTERY_CHANGED), + ContextCompat.RECEIVER_NOT_EXPORTED); final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);