Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 26a3ef6d authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Add dump logs for WiFi Network capabilities changes" into sc-dev am: c7e7d693

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13555787

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ib3779f6e2765db609919c3f6a12c57847d04a378
parents d58d2a1c c7e7d693
Loading
Loading
Loading
Loading
+42 −0
Original line number Diff line number Diff line
@@ -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;
@@ -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;
@@ -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
@@ -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();
@@ -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);
@@ -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)]);
        }
    }
}
+7 −0
Original line number Diff line number Diff line
@@ -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
@@ -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.
     */