Update dashboard icons when resuming activity. #186

This commit is contained in:
akwizgran
2015-12-17 17:52:16 +00:00
parent 766179ac97
commit 8084d08a3a

View File

@@ -71,14 +71,13 @@ public class DashboardActivity extends BriarActivity implements EventListener {
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
updateTransports();
eventBus.addListener(this); eventBus.addListener(this);
} }
@Override @Override
public void onPause() { public void onPause() {
super.onPause(); super.onPause();
eventBus.removeListener(this); eventBus.removeListener(this);
} }
@@ -282,8 +281,7 @@ public class DashboardActivity extends BriarActivity implements EventListener {
Transport tor = new Transport(); Transport tor = new Transport();
tor.id = new TransportId("tor"); tor.id = new TransportId("tor");
Plugin torPlugin = pluginManager.getPlugin(tor.id); Plugin torPlugin = pluginManager.getPlugin(tor.id);
if (torPlugin == null) tor.enabled = false; tor.enabled = torPlugin != null && torPlugin.isRunning();
else tor.enabled = torPlugin.isRunning();
tor.iconId = R.drawable.transport_tor; tor.iconId = R.drawable.transport_tor;
tor.textId = R.string.transport_tor; tor.textId = R.string.transport_tor;
transports.add(tor); transports.add(tor);
@@ -291,8 +289,7 @@ public class DashboardActivity extends BriarActivity implements EventListener {
Transport bt = new Transport(); Transport bt = new Transport();
bt.id = new TransportId("bt"); bt.id = new TransportId("bt");
Plugin btPlugin = pluginManager.getPlugin(bt.id); Plugin btPlugin = pluginManager.getPlugin(bt.id);
if (btPlugin == null) bt.enabled = false; bt.enabled = btPlugin != null && btPlugin.isRunning();
else bt.enabled = btPlugin.isRunning();
bt.iconId = R.drawable.transport_bt; bt.iconId = R.drawable.transport_bt;
bt.textId = R.string.transport_bt; bt.textId = R.string.transport_bt;
transports.add(bt); transports.add(bt);
@@ -300,8 +297,7 @@ public class DashboardActivity extends BriarActivity implements EventListener {
Transport lan = new Transport(); Transport lan = new Transport();
lan.id = new TransportId("lan"); lan.id = new TransportId("lan");
Plugin lanPlugin = pluginManager.getPlugin(lan.id); Plugin lanPlugin = pluginManager.getPlugin(lan.id);
if (lanPlugin == null) lan.enabled = false; lan.enabled = lanPlugin != null && lanPlugin.isRunning();
else lan.enabled = lanPlugin.isRunning();
lan.iconId = R.drawable.transport_lan; lan.iconId = R.drawable.transport_lan;
lan.textId = R.string.transport_lan; lan.textId = R.string.transport_lan;
transports.add(lan); transports.add(lan);
@@ -357,19 +353,26 @@ public class DashboardActivity extends BriarActivity implements EventListener {
runOnUiThread(new Runnable() { runOnUiThread(new Runnable() {
public void run() { public void run() {
if (transports == null || transportsAdapter == null) return; if (transports == null || transportsAdapter == null) return;
for (Transport t : transports) { for (Transport t : transports) {
if (t.id.equals(id)) { if (t.id.equals(id)) {
t.enabled = enabled; t.enabled = enabled;
transportsAdapter.notifyDataSetChanged();
break; break;
} }
} }
transportsAdapter.notifyDataSetChanged();
} }
}); });
} }
private void updateTransports() {
if (transports == null || transportsAdapter == null) return;
for (Transport t : transports) {
Plugin plugin = pluginManager.getPlugin(t.id);
t.enabled = plugin != null && plugin.isRunning();
}
transportsAdapter.notifyDataSetChanged();
}
private static class Transport { private static class Transport {
TransportId id; TransportId id;
boolean enabled; boolean enabled;