diff --git a/app/src/main/java/eu/faircode/email/ConnectionHelper.java b/app/src/main/java/eu/faircode/email/ConnectionHelper.java index 3ed98b5092..e4c16c0dbd 100644 --- a/app/src/main/java/eu/faircode/email/ConnectionHelper.java +++ b/app/src/main/java/eu/faircode/email/ConnectionHelper.java @@ -468,6 +468,33 @@ public class ConnectionHelper { return (status == ConnectivityManager.RESTRICT_BACKGROUND_STATUS_ENABLED); } + static String getDataSaving(Context context) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) + return null; + + try { + ConnectivityManager cm = + (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + if (cm == null) + return null; + + int status = cm.getRestrictBackgroundStatus(); + switch (status) { + case ConnectivityManager.RESTRICT_BACKGROUND_STATUS_DISABLED: + return "disabled"; + case ConnectivityManager.RESTRICT_BACKGROUND_STATUS_ENABLED: + return "enabled"; + case ConnectivityManager.RESTRICT_BACKGROUND_STATUS_WHITELISTED: + return "whitelisted"; + default: + return Integer.toString(status); + } + } catch (Throwable ex) { + Log.e(ex); + return null; + } + } + static boolean vpnActive(Context context) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if (cm == null) diff --git a/app/src/main/java/eu/faircode/email/Log.java b/app/src/main/java/eu/faircode/email/Log.java index cbd6de049a..793047756b 100644 --- a/app/src/main/java/eu/faircode/email/Log.java +++ b/app/src/main/java/eu/faircode/email/Log.java @@ -2059,6 +2059,7 @@ public class Log { boolean auto_optimize = prefs.getBoolean("auto_optimize", false); boolean schedule = prefs.getBoolean("schedule", false); + String ds = ConnectionHelper.getDataSaving(context); boolean vpn = ConnectionHelper.vpnActive(context); boolean ng = Helper.isInstalled(context, "eu.faircode.netguard"); boolean tc = Helper.isInstalled(context, "net.kollnig.missioncontrol"); @@ -2066,6 +2067,7 @@ public class Log { size += write(os, "enabled=" + enabled + (enabled ? "" : " !!!") + " interval=" + pollInterval + "\r\n" + "metered=" + metered + (metered ? "" : " !!!") + + " restricted=" + ds + ("enabled".equals(ds) ? " !!!" : "") + " vpn=" + vpn + (vpn ? " !!!" : "") + " ng=" + ng + " tc=" + tc + "\r\n" + "optimizing=" + (ignoring == null ? null : !ignoring) + (Boolean.FALSE.equals(ignoring) ? " !!!" : "") +