package org.shikato.infodumper.dump;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import com.facebook.stetho.dumpapp.DumpException;
import java.util.LinkedHashMap;
import java.util.List;
public class NetworkDumper implements InfoDumper {
@Override
public String getTitle() {
return "NETWORK";
}
@Override
public LinkedHashMap<String, String> getDumpMap(Context context) throws DumpException {
int permissionInfo =
context.getPackageManager().checkPermission(Manifest.permission.ACCESS_NETWORK_STATE, context.getPackageName());
if (permissionInfo == PackageManager.PERMISSION_DENIED) {
return null;
}
ConnectivityManager connectivity =
(ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo network = connectivity.getActiveNetworkInfo();
LinkedHashMap<String, String> dumps = new LinkedHashMap<>();
if (network == null) {
dumps.put("NetworkInfo", "NetworkInfo is null.");
} else if (!network.isAvailable()) {
dumps.put("NetworkInfo", "connection not available.");
} else if (!network.isConnectedOrConnecting()) {
dumps.put("NetworkInfo", "not connect.");
} else {
dumps.put("NetworkInfo", network.getTypeName());
}
return dumps;
}
@Override
public List<String> getDumpList(Context context) throws DumpException {
return null;
}
@Override
public String getErrorMessage() {
return "Need a permission: android.permission.ACCESS_NETWORK_STATE";
}
}