Change summary
src/main/java/eu/siacs/conversations/services/XmppConnectionService.java | 6
src/main/java/eu/siacs/conversations/ui/XmppActivity.java | 13
src/main/java/eu/siacs/conversations/utils/Compatibility.java | 21
3 files changed, 23 insertions(+), 17 deletions(-)
Detailed changes
@@ -945,9 +945,11 @@ public class XmppConnectionService extends Service {
public boolean isDataSaverDisabled() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
- ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
+ final ConnectivityManager connectivityManager =
+ (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
return !connectivityManager.isActiveNetworkMetered()
- || connectivityManager.getRestrictBackgroundStatus() == ConnectivityManager.RESTRICT_BACKGROUND_STATUS_DISABLED;
+ || Compatibility.getRestrictBackgroundStatus(connectivityManager)
+ == ConnectivityManager.RESTRICT_BACKGROUND_STATUS_DISABLED;
} else {
return true;
}
@@ -80,6 +80,7 @@ import eu.siacs.conversations.ui.util.MenuDoubleTabUtil;
import eu.siacs.conversations.ui.util.PresenceSelector;
import eu.siacs.conversations.ui.util.SoftKeyboardUtils;
import eu.siacs.conversations.utils.AccountUtils;
+import eu.siacs.conversations.utils.Compatibility;
import eu.siacs.conversations.utils.ExceptionHelper;
import eu.siacs.conversations.ui.util.SettingsUtils;
import eu.siacs.conversations.utils.ThemeHelper;
@@ -448,22 +449,12 @@ public abstract class XmppActivity extends ActionBarActivity {
final ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
return cm != null
&& cm.isActiveNetworkMetered()
- && getRestrictBackgroundStatus(cm) == ConnectivityManager.RESTRICT_BACKGROUND_STATUS_ENABLED;
+ && Compatibility.getRestrictBackgroundStatus(cm) == ConnectivityManager.RESTRICT_BACKGROUND_STATUS_ENABLED;
} else {
return false;
}
}
- @RequiresApi(api = Build.VERSION_CODES.N)
- private static int getRestrictBackgroundStatus(@NonNull final ConnectivityManager connectivityManager) {
- try {
- return connectivityManager.getRestrictBackgroundStatus();
- } catch (final Exception e) {
- Log.d(Config.LOGTAG,"platform bug detected. Unable to get restrict background status",e);
- return -1;
- }
- }
-
private boolean usingEnterKey() {
return getBooleanPreference("display_enter_key", R.bool.display_enter_key);
}
@@ -8,6 +8,7 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
+import android.net.ConnectivityManager;
import android.os.Build;
import android.preference.Preference;
import android.preference.PreferenceCategory;
@@ -15,6 +16,8 @@ import android.preference.PreferenceManager;
import android.util.Log;
import androidx.annotation.BoolRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
import androidx.core.content.ContextCompat;
import java.util.Arrays;
@@ -158,10 +161,20 @@ public class Compatibility {
@SuppressLint("UnsupportedChromeOsCameraSystemFeature")
public static boolean hasFeatureCamera(final Context context) {
final PackageManager packageManager = context.getPackageManager();
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
- return packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY);
- } else {
- return packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA);
+ return packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY);
+ }
+
+ @RequiresApi(api = Build.VERSION_CODES.N)
+ public static int getRestrictBackgroundStatus(
+ @NonNull final ConnectivityManager connectivityManager) {
+ try {
+ return connectivityManager.getRestrictBackgroundStatus();
+ } catch (final Exception e) {
+ Log.d(
+ Config.LOGTAG,
+ "platform bug detected. Unable to get restrict background status",
+ e);
+ return ConnectivityManager.RESTRICT_BACKGROUND_STATUS_DISABLED;
}
}
}