diff --git a/app/src/main/java/eu/faircode/netguard/AdapterRule.java b/app/src/main/java/eu/faircode/netguard/AdapterRule.java index 10157dfe..0a9e127a 100644 --- a/app/src/main/java/eu/faircode/netguard/AdapterRule.java +++ b/app/src/main/java/eu/faircode/netguard/AdapterRule.java @@ -454,7 +454,10 @@ public class AdapterRule extends RecyclerView.Adapter im holder.tvDisabled.setVisibility(rule.enabled ? View.GONE : View.VISIBLE); // Show traffic statistics - holder.tvStatistics.setVisibility(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N ? View.GONE : View.VISIBLE); + holder.tvStatistics.setVisibility( + Build.VERSION.SDK_INT >= Build.VERSION_CODES.N || + (rule.upspeed == 0 && rule.downspeed == 0) + ? View.GONE : View.VISIBLE); holder.tvStatistics.setText(context.getString(R.string.msg_mbday, rule.upspeed, rule.downspeed)); // Show related diff --git a/app/src/main/java/eu/faircode/netguard/Rule.java b/app/src/main/java/eu/faircode/netguard/Rule.java index bf8860e3..8a9d33ed 100644 --- a/app/src/main/java/eu/faircode/netguard/Rule.java +++ b/app/src/main/java/eu/faircode/netguard/Rule.java @@ -410,6 +410,10 @@ public class Rule { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { long up = TrafficStats.getUidTxBytes(rule.info.applicationInfo.uid); long down = TrafficStats.getUidRxBytes(rule.info.applicationInfo.uid); + if (up == TrafficStats.UNSUPPORTED) + up = 0; + if (down == TrafficStats.UNSUPPORTED) + down = 0; rule.totalbytes = up + down; rule.upspeed = (float) up * 24 * 3600 * 1000 / 1024f / 1024f / now; rule.downspeed = (float) down * 24 * 3600 * 1000 / 1024f / 1024f / now;