Merge "Add logging for Ethernet callbacks."

This commit is contained in:
Treehugger Robot
2022-02-15 10:33:26 +00:00
committed by Gerrit Code Review

View File

@@ -24,68 +24,54 @@ import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.pm.PackageManager.NameNotFoundException;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.net.ConnectivityManager.NetworkCallback; import android.net.ConnectivityManager.NetworkCallback;
import android.net.LinkAddress; import android.net.EthernetManager;
import android.net.IpConfiguration;
import android.net.LinkProperties; import android.net.LinkProperties;
import android.net.Network; import android.net.Network;
import android.net.NetworkCapabilities; import android.net.NetworkCapabilities;
import android.net.NetworkRequest; import android.net.NetworkRequest;
import android.net.RouteInfo;
import android.net.wifi.ScanResult; import android.net.wifi.ScanResult;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
import android.os.RemoteException;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
import android.os.IBinder; import android.os.IBinder;
import android.os.INetworkManagementService; import android.os.INetworkManagementService;
import android.os.Parcel;
import android.os.PowerManager; import android.os.PowerManager;
import android.os.PowerManager.WakeLock; import android.os.PowerManager.WakeLock;
import android.os.ServiceManager; import android.os.ServiceManager;
import android.os.SystemClock; import android.os.SystemClock;
import android.provider.Settings;
import android.os.Bundle; import android.os.Bundle;
import android.os.connectivity.WifiActivityEnergyInfo;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.IWindowManager; import android.util.SparseArray;
import android.view.View; import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button; import android.widget.Button;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText; import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemSelectedListener;
import com.android.internal.telephony.Phone;
import libcore.io.IoUtils; import libcore.io.IoUtils;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStreamWriter; import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.Proxy; import java.net.Proxy;
import java.net.Socket; import java.net.Socket;
import java.net.URL; import java.net.URL;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List; import java.util.List;
import java.util.Random; import java.util.Random;
import static android.net.ConnectivityManager.CONNECTIVITY_ACTION; import static android.net.ConnectivityManager.CONNECTIVITY_ACTION;
import static android.net.NetworkCapabilities.*; import static android.net.NetworkCapabilities.*;
import com.android.internal.util.MessageUtils;
public class Connectivity extends Activity { public class Connectivity extends Activity {
private static final String TAG = "DevToolsConnectivity"; private static final String TAG = "DevToolsConnectivity";
private static final String GET_SCAN_RES = "Get Results"; private static final String GET_SCAN_RES = "Get Results";
@@ -134,6 +120,7 @@ public class Connectivity extends Activity {
private PowerManager mPm; private PowerManager mPm;
private ConnectivityManager mCm; private ConnectivityManager mCm;
private INetworkManagementService mNetd; private INetworkManagementService mNetd;
private EthernetManager mEm;
private WifiScanReceiver mScanRecv; private WifiScanReceiver mScanRecv;
IntentFilter mIntentFilter; IntentFilter mIntentFilter;
@@ -386,6 +373,33 @@ public class Connectivity extends Activity {
progressBar)); progressBar));
} }
private static class DevToolsEthListener implements EthernetManager.InterfaceStateListener {
private static final String TAG = DevToolsEthListener.class.getSimpleName();
private static final SparseArray<String> STATE_NAMES = MessageUtils.findMessageNames(
new Class[]{EthernetManager.class}, new String[]{"STATE_"});
private static final SparseArray<String> ROLE_NAMES = MessageUtils.findMessageNames(
new Class[]{EthernetManager.class}, new String[]{"ROLE_"});
private String stateName(int state) {
return STATE_NAMES.get(state, Integer.toString(state));
}
private String roleName(int role) {
return ROLE_NAMES.get(role, Integer.toString(role));
}
@Override
public void onInterfaceStateChanged(String iface, int state, int role,
IpConfiguration configuration) {
Log.d(TAG, iface + " " + stateName(state) + " " + roleName(role)
+ " " + configuration);
}
}
private final DevToolsEthListener mEthListener = new DevToolsEthListener();
public Connectivity() { public Connectivity() {
super(); super();
addRequestableNetwork(NET_CAPABILITY_MMS, R.id.request_mms, R.id.release_mms, addRequestableNetwork(NET_CAPABILITY_MMS, R.id.request_mms, R.id.release_mms,
@@ -420,6 +434,7 @@ public class Connectivity extends Activity {
mCm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); mCm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
IBinder b = ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE); IBinder b = ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE);
mNetd = INetworkManagementService.Stub.asInterface(b); mNetd = INetworkManagementService.Stub.asInterface(b);
mEm = getSystemService(EthernetManager.class);
findViewById(R.id.enableWifi).setOnClickListener(mClickListener); findViewById(R.id.enableWifi).setOnClickListener(mClickListener);
findViewById(R.id.disableWifi).setOnClickListener(mClickListener); findViewById(R.id.disableWifi).setOnClickListener(mClickListener);
@@ -490,6 +505,8 @@ public class Connectivity extends Activity {
mCallback = new DevToolsNetworkCallback(); mCallback = new DevToolsNetworkCallback();
mCm.registerNetworkCallback(mEmptyRequest, mCallback); mCm.registerNetworkCallback(mEmptyRequest, mCallback);
mEm.addInterfaceStateListener(this::runOnUiThread, mEthListener);
} }
@Override @Override
@@ -500,6 +517,7 @@ public class Connectivity extends Activity {
} }
mCm.unregisterNetworkCallback(mCallback); mCm.unregisterNetworkCallback(mCallback);
mCallback = null; mCallback = null;
mEm.removeInterfaceStateListener(mEthListener);
unregisterReceiver(mReceiver); unregisterReceiver(mReceiver);
mWml.release(); mWml.release();
} }