From a4e8808d16604efa133026b18bf7e84e3a716867 Mon Sep 17 00:00:00 2001 From: Lorenzo Colitti Date: Tue, 20 Sep 2016 16:03:27 +0900 Subject: [PATCH] Add debug output for bad wifi avoidance restrictions. Bug: 31075769 Change-Id: Ibd97f40917c946aa164c13c7e06c4696d21dc203 --- .../android/server/ConnectivityService.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index a0ef25ed4c..cea7a4b683 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -2065,7 +2065,9 @@ public class ConnectivityService extends IConnectivityManager.Stub mKeepaliveTracker.dump(pw); pw.println(); + dumpAvoidBadWifiSettings(pw); + pw.println(); if (mInetLog != null && mInetLog.size() > 0) { pw.println(); pw.println("Inet condition reports:"); @@ -2781,6 +2783,42 @@ public class ConnectivityService extends IConnectivityManager.Stub return mAvoidBadWifi != prev; } + private void dumpAvoidBadWifiSettings(IndentingPrintWriter pw) { + boolean configRestrict = configRestrictsAvoidBadWifi(); + if (!configRestrict) { + pw.println("Bad Wi-Fi avoidance: unrestricted"); + return; + } + + pw.println("Bad Wi-Fi avoidance: " + avoidBadWifi()); + pw.increaseIndent(); + pw.println("Config restrict: " + configRestrict); + + String value = Settings.Global.getString( + mContext.getContentResolver(), Settings.Global.NETWORK_AVOID_BAD_WIFI); + String description; + // Can't use a switch statement because strings are legal case labels, but null is not. + if ("0".equals(value)) { + description = "get stuck"; + } else if (value == null) { + description = "prompt"; + } else if ("1".equals(value)) { + description = "avoid"; + } else { + description = value + " (?)"; + } + pw.println("User setting: " + description); + pw.println("Network overrides:"); + pw.increaseIndent(); + for (NetworkAgentInfo nai : mNetworkAgentInfos.values()) { + if (nai.avoidUnvalidated) { + pw.println(nai.name()); + } + } + pw.decreaseIndent(); + pw.decreaseIndent(); + } + private void showValidationNotification(NetworkAgentInfo nai, NotificationType type) { final String action; switch (type) {