Include IP, Bluetooth and Tor addresses in debugging info.

This commit is contained in:
akwizgran
2014-04-02 17:34:08 +01:00
parent e447a52b51
commit 2549a0c200

View File

@@ -44,7 +44,11 @@ import org.briarproject.android.util.HorizontalBorder;
import org.briarproject.android.util.LayoutUtils; import org.briarproject.android.util.LayoutUtils;
import org.briarproject.android.util.ListLoadingProgressBar; import org.briarproject.android.util.ListLoadingProgressBar;
import org.briarproject.api.TransportId; import org.briarproject.api.TransportId;
import org.briarproject.api.TransportProperties;
import org.briarproject.api.android.AndroidExecutor; import org.briarproject.api.android.AndroidExecutor;
import org.briarproject.api.db.DatabaseComponent;
import org.briarproject.api.db.DbException;
import org.briarproject.api.lifecycle.LifecycleManager;
import org.briarproject.api.plugins.Plugin; import org.briarproject.api.plugins.Plugin;
import org.briarproject.api.plugins.PluginManager; import org.briarproject.api.plugins.PluginManager;
import org.briarproject.util.StringUtils; import org.briarproject.util.StringUtils;
@@ -55,6 +59,7 @@ import android.content.res.Resources;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.net.NetworkInfo; import android.net.NetworkInfo;
import android.net.Uri; import android.net.Uri;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Build; import android.os.Build;
@@ -74,6 +79,8 @@ public class TestingActivity extends BriarActivity implements OnClickListener {
@Inject private AndroidExecutor androidExecutor; @Inject private AndroidExecutor androidExecutor;
@Inject private PluginManager pluginManager; @Inject private PluginManager pluginManager;
@Inject private LifecycleManager lifecycleManager;
@Inject private DatabaseComponent db;
private ScrollView scroll = null; private ScrollView scroll = null;
private ListLoadingProgressBar progress = null; private ListLoadingProgressBar progress = null;
private LinearLayout status = null; private LinearLayout status = null;
@@ -176,6 +183,7 @@ public class TestingActivity extends BriarActivity implements OnClickListener {
}.execute(); }.execute();
} }
// FIXME: Load strings from resources if we're keeping this activity
private Map<String, String> getStatusMap() { private Map<String, String> getStatusMap() {
Map<String, String> statusMap = new LinkedHashMap<String, String>(); Map<String, String> statusMap = new LinkedHashMap<String, String>();
@@ -223,7 +231,6 @@ public class TestingActivity extends BriarActivity implements OnClickListener {
// Is mobile data connected ? // Is mobile data connected ?
boolean mobileConnected = mobile != null && mobile.isConnected(); boolean mobileConnected = mobile != null && mobile.isConnected();
// Strings aren't loaded from resources as this activity is temporary
String mobileStatus; String mobileStatus;
if(mobileAvailable) mobileStatus = "Available, "; if(mobileAvailable) mobileStatus = "Available, ";
else mobileStatus = "Not available, "; else mobileStatus = "Not available, ";
@@ -250,6 +257,18 @@ public class TestingActivity extends BriarActivity implements OnClickListener {
else wifiStatus += "not enabled, "; else wifiStatus += "not enabled, ";
if(wifiConnected) wifiStatus += "connected"; if(wifiConnected) wifiStatus += "connected";
else wifiStatus += "not connected"; else wifiStatus += "not connected";
if(wm != null) {
WifiInfo wifiInfo = wm.getConnectionInfo();
if(wifiInfo != null) {
int ip = wifiInfo.getIpAddress(); // Nice API, Google
int ip1 = ip & 0xFF;
int ip2 = (ip >> 8) & 0xFF;
int ip3 = (ip >> 16) & 0xFF;
int ip4 = (ip >> 24) & 0xFF;
String address = ip1 + "." + ip2 + "." + ip3 + "." + ip4;
wifiStatus += "\nAddress: " + address;
}
}
statusMap.put("Wi-Fi:", wifiStatus); statusMap.put("Wi-Fi:", wifiStatus);
// Is Bluetooth available? // Is Bluetooth available?
@@ -287,8 +306,20 @@ public class TestingActivity extends BriarActivity implements OnClickListener {
else btStatus += "not connectable, "; else btStatus += "not connectable, ";
if(btDiscoverable) btStatus += "discoverable"; if(btDiscoverable) btStatus += "discoverable";
else btStatus += "not discoverable"; else btStatus += "not discoverable";
if(bt != null) btStatus += "\nAddress: " + bt.getAddress();
statusMap.put("Bluetooth:", btStatus); statusMap.put("Bluetooth:", btStatus);
Map<TransportId, TransportProperties> props = Collections.emptyMap();
try {
lifecycleManager.waitForDatabase();
props = db.getLocalProperties();
} catch(InterruptedException e) {
LOG.info("Interrupted while waiting for database");
Thread.currentThread().interrupt();
} catch(DbException e) {
if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
}
Plugin torPlugin = pluginManager.getPlugin(new TransportId("tor")); Plugin torPlugin = pluginManager.getPlugin(new TransportId("tor"));
boolean torPluginEnabled = torPlugin != null; boolean torPluginEnabled = torPlugin != null;
boolean torPluginRunning = torPlugin != null && torPlugin.isRunning(); boolean torPluginRunning = torPlugin != null && torPlugin.isRunning();
@@ -298,6 +329,9 @@ public class TestingActivity extends BriarActivity implements OnClickListener {
else torPluginStatus = "Not enabled, "; else torPluginStatus = "Not enabled, ";
if(torPluginRunning) torPluginStatus += "running"; if(torPluginRunning) torPluginStatus += "running";
else torPluginStatus += "not running"; else torPluginStatus += "not running";
TransportProperties torProps = props.get(new TransportId("tor"));
if(torProps != null)
torPluginStatus += "\nAddress: " + torProps.get("onion");
statusMap.put("Tor plugin:", torPluginStatus); statusMap.put("Tor plugin:", torPluginStatus);
Plugin lanPlugin = pluginManager.getPlugin(new TransportId("lan")); Plugin lanPlugin = pluginManager.getPlugin(new TransportId("lan"));
@@ -309,6 +343,9 @@ public class TestingActivity extends BriarActivity implements OnClickListener {
else lanPluginStatus = "Not enabled, "; else lanPluginStatus = "Not enabled, ";
if(lanPluginRunning) lanPluginStatus += "running"; if(lanPluginRunning) lanPluginStatus += "running";
else lanPluginStatus += "not running"; else lanPluginStatus += "not running";
TransportProperties lanProps = props.get(new TransportId("lan"));
if(lanProps != null)
lanPluginStatus += "\nAddress: " + lanProps.get("address");
statusMap.put("LAN plugin:", lanPluginStatus); statusMap.put("LAN plugin:", lanPluginStatus);
Plugin btPlugin = pluginManager.getPlugin(new TransportId("bt")); Plugin btPlugin = pluginManager.getPlugin(new TransportId("bt"));
@@ -320,6 +357,9 @@ public class TestingActivity extends BriarActivity implements OnClickListener {
else btPluginStatus = "Not enabled, "; else btPluginStatus = "Not enabled, ";
if(btPluginRunning) btPluginStatus += "running"; if(btPluginRunning) btPluginStatus += "running";
else btPluginStatus += "not running"; else btPluginStatus += "not running";
TransportProperties btProps = props.get(new TransportId("bt"));
if(btProps != null)
btPluginStatus += "\nAddress: " + btProps.get("address");
statusMap.put("Bluetooth plugin:", btPluginStatus); statusMap.put("Bluetooth plugin:", btPluginStatus);
// All log output from the current process // All log output from the current process