work around dead system exception when querying active network
This commit is contained in:
parent
3ae561d74a
commit
f1abfbdf35
|
@ -1054,15 +1054,13 @@ public class XmppConnectionService extends Service {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isDataSaverDisabled() {
|
public boolean isDataSaverDisabled() {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
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 {
|
|
||||||
return true;
|
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) {
|
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");
|
Collections.singletonList("message_notification_settings");
|
||||||
|
|
||||||
public static boolean hasStoragePermission(final Context context) {
|
public static boolean hasStoragePermission(final Context context) {
|
||||||
return Build.VERSION.SDK_INT < Build.VERSION_CODES.M
|
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU || ContextCompat.checkSelfPermission(
|
||||||
|| Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU
|
context, android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED;
|
||||||
|| ContextCompat.checkSelfPermission(
|
|
||||||
context, android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
|
||||||
== PackageManager.PERMISSION_GRANTED;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean s() {
|
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() {
|
public static Bundle pgpStartIntentSenderOptions() {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
|
||||||
return ActivityOptions.makeBasic()
|
return ActivityOptions.makeBasic()
|
||||||
|
|
Loading…
Reference in a new issue