Loading packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java +42 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,8 @@ import android.util.FeatureFlagUtils; import com.android.settingslib.R; import com.android.settingslib.Utils; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.HashSet; import java.util.List; import java.util.Set; Loading @@ -47,6 +49,8 @@ import java.util.Set; * Track status of Wi-Fi for the Sys UI. */ public class WifiStatusTracker { private static final int HISTORY_SIZE = 32; private static final SimpleDateFormat SSDF = new SimpleDateFormat("MM-dd HH:mm:ss.SSS"); private final Context mContext; private final WifiNetworkScoreCache mWifiNetworkScoreCache; private final WifiManager mWifiManager; Loading @@ -54,6 +58,10 @@ public class WifiStatusTracker { private final ConnectivityManager mConnectivityManager; private final Handler mHandler = new Handler(Looper.getMainLooper()); private final Set<Integer> mNetworks = new HashSet<>(); // Save the previous HISTORY_SIZE states for logging. private final String[] mHistory = new String[HISTORY_SIZE]; // Where to copy the next state into. private int mHistoryIndex; private final WifiNetworkScoreCache.CacheListener mCacheListener = new WifiNetworkScoreCache.CacheListener(mHandler) { @Override Loading Loading @@ -93,6 +101,13 @@ public class WifiStatusTracker { } else if (networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) { wifiInfo = (WifiInfo) networkCapabilities.getTransportInfo(); } String log = new StringBuilder() .append(SSDF.format(System.currentTimeMillis())).append(",") .append("onCapabilitiesChanged: ") .append("network=").append(network).append(",") .append("networkCapabilities=").append(networkCapabilities) .toString(); recordLastWifiNetwork(log); if (wifiInfo != null) { updateWifiInfo(wifiInfo); updateStatusLabel(); Loading @@ -102,6 +117,12 @@ public class WifiStatusTracker { @Override public void onLost(Network network) { String log = new StringBuilder() .append(SSDF.format(System.currentTimeMillis())).append(",") .append("onLost: ") .append("network=").append(network) .toString(); recordLastWifiNetwork(log); if (mNetworks.contains(network.getNetId())) { mNetworks.remove(network.getNetId()); updateWifiInfo(null); Loading Loading @@ -336,4 +357,25 @@ public class WifiStatusTracker { } return null; } private void recordLastWifiNetwork(String log) { mHistory[mHistoryIndex] = log; mHistoryIndex = (mHistoryIndex + 1) % HISTORY_SIZE; } /** Dump function. */ public void dump(PrintWriter pw) { pw.println(" - WiFi Network History ------"); int size = 0; for (int i = 0; i < HISTORY_SIZE; i++) { if (mHistory[i] != null) size++; } // Print out the previous states in ordered number. for (int i = mHistoryIndex + HISTORY_SIZE - 1; i >= mHistoryIndex + HISTORY_SIZE - size; i--) { pw.println(" Previous WiFiNetwork(" + (mHistoryIndex + HISTORY_SIZE - i) + "): " + mHistory[i & (HISTORY_SIZE - 1)]); } } } packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java +7 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import com.android.systemui.R; import com.android.systemui.statusbar.policy.NetworkController.IconState; import com.android.systemui.statusbar.policy.NetworkController.SignalCallback; import java.io.PrintWriter; import java.util.Objects; public class WifiSignalController extends Loading Loading @@ -232,6 +233,12 @@ public class WifiSignalController extends notifyListenersIfNecessary(); } @Override public void dump(PrintWriter pw) { super.dump(pw); mWifiTracker.dump(pw); } /** * Handler to receive the data activity on wifi. */ Loading Loading
packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java +42 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,8 @@ import android.util.FeatureFlagUtils; import com.android.settingslib.R; import com.android.settingslib.Utils; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.HashSet; import java.util.List; import java.util.Set; Loading @@ -47,6 +49,8 @@ import java.util.Set; * Track status of Wi-Fi for the Sys UI. */ public class WifiStatusTracker { private static final int HISTORY_SIZE = 32; private static final SimpleDateFormat SSDF = new SimpleDateFormat("MM-dd HH:mm:ss.SSS"); private final Context mContext; private final WifiNetworkScoreCache mWifiNetworkScoreCache; private final WifiManager mWifiManager; Loading @@ -54,6 +58,10 @@ public class WifiStatusTracker { private final ConnectivityManager mConnectivityManager; private final Handler mHandler = new Handler(Looper.getMainLooper()); private final Set<Integer> mNetworks = new HashSet<>(); // Save the previous HISTORY_SIZE states for logging. private final String[] mHistory = new String[HISTORY_SIZE]; // Where to copy the next state into. private int mHistoryIndex; private final WifiNetworkScoreCache.CacheListener mCacheListener = new WifiNetworkScoreCache.CacheListener(mHandler) { @Override Loading Loading @@ -93,6 +101,13 @@ public class WifiStatusTracker { } else if (networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) { wifiInfo = (WifiInfo) networkCapabilities.getTransportInfo(); } String log = new StringBuilder() .append(SSDF.format(System.currentTimeMillis())).append(",") .append("onCapabilitiesChanged: ") .append("network=").append(network).append(",") .append("networkCapabilities=").append(networkCapabilities) .toString(); recordLastWifiNetwork(log); if (wifiInfo != null) { updateWifiInfo(wifiInfo); updateStatusLabel(); Loading @@ -102,6 +117,12 @@ public class WifiStatusTracker { @Override public void onLost(Network network) { String log = new StringBuilder() .append(SSDF.format(System.currentTimeMillis())).append(",") .append("onLost: ") .append("network=").append(network) .toString(); recordLastWifiNetwork(log); if (mNetworks.contains(network.getNetId())) { mNetworks.remove(network.getNetId()); updateWifiInfo(null); Loading Loading @@ -336,4 +357,25 @@ public class WifiStatusTracker { } return null; } private void recordLastWifiNetwork(String log) { mHistory[mHistoryIndex] = log; mHistoryIndex = (mHistoryIndex + 1) % HISTORY_SIZE; } /** Dump function. */ public void dump(PrintWriter pw) { pw.println(" - WiFi Network History ------"); int size = 0; for (int i = 0; i < HISTORY_SIZE; i++) { if (mHistory[i] != null) size++; } // Print out the previous states in ordered number. for (int i = mHistoryIndex + HISTORY_SIZE - 1; i >= mHistoryIndex + HISTORY_SIZE - size; i--) { pw.println(" Previous WiFiNetwork(" + (mHistoryIndex + HISTORY_SIZE - i) + "): " + mHistory[i & (HISTORY_SIZE - 1)]); } } }
packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java +7 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import com.android.systemui.R; import com.android.systemui.statusbar.policy.NetworkController.IconState; import com.android.systemui.statusbar.policy.NetworkController.SignalCallback; import java.io.PrintWriter; import java.util.Objects; public class WifiSignalController extends Loading Loading @@ -232,6 +233,12 @@ public class WifiSignalController extends notifyListenersIfNecessary(); } @Override public void dump(PrintWriter pw) { super.dump(pw); mWifiTracker.dump(pw); } /** * Handler to receive the data activity on wifi. */ Loading