Change summary
src/main/java/eu/siacs/conversations/services/XmppConnectionService.java | 12
src/main/java/eu/siacs/conversations/utils/Compatibility.java | 18
2 files changed, 18 insertions(+), 12 deletions(-)
Detailed changes
@@ -1054,15 +1054,13 @@ public class XmppConnectionService extends Service {
}
public boolean isDataSaverDisabled() {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
- final ConnectivityManager connectivityManager =
- (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
- return !connectivityManager.isActiveNetworkMetered()
- || Compatibility.getRestrictBackgroundStatus(connectivityManager)
- == ConnectivityManager.RESTRICT_BACKGROUND_STATUS_DISABLED;
- } else {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
return true;
}
+ final ConnectivityManager connectivityManager = getSystemService(ConnectivityManager.class);
+ return !Compatibility.isActiveNetworkMetered(connectivityManager)
+ || Compatibility.getRestrictBackgroundStatus(connectivityManager)
+ == ConnectivityManager.RESTRICT_BACKGROUND_STATUS_DISABLED;
}
private void directReply(final Conversation conversation, final String body, final String lastMessageUuid, final boolean dismissAfterReply) {
@@ -43,11 +43,8 @@ public class Compatibility {
Collections.singletonList("message_notification_settings");
public static boolean hasStoragePermission(final Context context) {
- return Build.VERSION.SDK_INT < Build.VERSION_CODES.M
- || Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU
- || ContextCompat.checkSelfPermission(
- context, android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
- == PackageManager.PERMISSION_GRANTED;
+ return Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU || ContextCompat.checkSelfPermission(
+ context, android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED;
}
public static boolean s() {
@@ -181,6 +178,17 @@ public class Compatibility {
}
}
+ @RequiresApi(api = Build.VERSION_CODES.N)
+ public static boolean isActiveNetworkMetered(
+ @NonNull final ConnectivityManager connectivityManager) {
+ try {
+ return connectivityManager.isActiveNetworkMetered();
+ } catch (final RuntimeException e) {
+ // when in doubt better assume it's metered
+ return true;
+ }
+ }
+
public static Bundle pgpStartIntentSenderOptions() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
return ActivityOptions.makeBasic()