Merge branch 'amber-transport-icons' into 'plugin-toggles'

Use amber icon when enabling transports

See merge request briar/briar!1210
This commit is contained in:
Torsten Grote
2020-01-20 18:22:10 +00:00
4 changed files with 38 additions and 38 deletions

View File

@@ -23,6 +23,7 @@ import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault;
import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault;
import org.briarproject.bramble.api.plugin.BluetoothConstants; import org.briarproject.bramble.api.plugin.BluetoothConstants;
import org.briarproject.bramble.api.plugin.LanTcpConstants; import org.briarproject.bramble.api.plugin.LanTcpConstants;
import org.briarproject.bramble.api.plugin.Plugin.State;
import org.briarproject.bramble.api.plugin.TorConstants; import org.briarproject.bramble.api.plugin.TorConstants;
import org.briarproject.bramble.api.plugin.TransportId; import org.briarproject.bramble.api.plugin.TransportId;
import org.briarproject.briar.R; import org.briarproject.briar.R;
@@ -64,6 +65,8 @@ import static androidx.fragment.app.FragmentManager.POP_BACK_STACK_INCLUSIVE;
import static java.util.Objects.requireNonNull; import static java.util.Objects.requireNonNull;
import static java.util.logging.Logger.getLogger; import static java.util.logging.Logger.getLogger;
import static org.briarproject.bramble.api.lifecycle.LifecycleManager.LifecycleState.RUNNING; import static org.briarproject.bramble.api.lifecycle.LifecycleManager.LifecycleState.RUNNING;
import static org.briarproject.bramble.api.plugin.Plugin.State.ACTIVE;
import static org.briarproject.bramble.api.plugin.Plugin.State.ENABLING;
import static org.briarproject.briar.android.BriarService.EXTRA_STARTUP_FAILED; import static org.briarproject.briar.android.BriarService.EXTRA_STARTUP_FAILED;
import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_PASSWORD; import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_PASSWORD;
import static org.briarproject.briar.android.navdrawer.IntentRouter.handleExternalIntent; import static org.briarproject.briar.android.navdrawer.IntentRouter.handleExternalIntent;
@@ -375,21 +378,21 @@ public class NavDrawerActivity extends BriarActivity implements
Transport tor = new Transport(); Transport tor = new Transport();
tor.id = TorConstants.ID; tor.id = TorConstants.ID;
tor.enabled = controller.isTransportRunning(tor.id); tor.state = controller.getTransportState(tor.id);
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);
Transport bt = new Transport(); Transport bt = new Transport();
bt.id = BluetoothConstants.ID; bt.id = BluetoothConstants.ID;
bt.enabled = controller.isTransportRunning(bt.id); bt.state = controller.getTransportState(bt.id);
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);
Transport lan = new Transport(); Transport lan = new Transport();
lan.id = LanTcpConstants.ID; lan.id = LanTcpConstants.ID;
lan.enabled = controller.isTransportRunning(lan.id); lan.state = controller.getTransportState(lan.id);
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);
@@ -423,9 +426,12 @@ public class NavDrawerActivity extends BriarActivity implements
Transport t = getItem(position); Transport t = getItem(position);
int c; int c;
if (t.enabled) { if (t.state == ACTIVE) {
c = ContextCompat.getColor(NavDrawerActivity.this, c = ContextCompat.getColor(NavDrawerActivity.this,
R.color.briar_green_light); R.color.briar_green_light);
} else if (t.state == ENABLING) {
c = ContextCompat.getColor(NavDrawerActivity.this,
R.color.briar_yellow);
} else { } else {
c = ContextCompat.getColor(NavDrawerActivity.this, c = ContextCompat.getColor(NavDrawerActivity.this,
android.R.color.tertiary_text_light); android.R.color.tertiary_text_light);
@@ -444,35 +450,31 @@ public class NavDrawerActivity extends BriarActivity implements
}; };
} }
@UiThread private void updateTransports() {
private void setTransport(TransportId id, boolean enabled) { if (transports == null || transportsAdapter == null) return;
for (Transport t : transports) {
t.state = controller.getTransportState(t.id);
}
transportsAdapter.notifyDataSetChanged();
}
@Override
public void stateUpdate(TransportId id, State state) {
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.state = state;
transportsAdapter.notifyDataSetChanged(); transportsAdapter.notifyDataSetChanged();
break; break;
} }
} }
} }
private void updateTransports() { @UiThread
if (transports == null || transportsAdapter == null) return;
for (Transport t : transports) {
t.enabled = controller.isTransportRunning(t.id);
}
transportsAdapter.notifyDataSetChanged();
}
@Override
public void stateUpdate(TransportId id, boolean enabled) {
setTransport(id, enabled);
}
private static class Transport { private static class Transport {
private TransportId id; private TransportId id;
private boolean enabled; private State state;
private int iconId; private int iconId;
private int textId; private int textId;
} }

View File

@@ -3,6 +3,7 @@ package org.briarproject.briar.android.navdrawer;
import android.content.Context; import android.content.Context;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.plugin.Plugin.State;
import org.briarproject.bramble.api.plugin.TransportId; import org.briarproject.bramble.api.plugin.TransportId;
import org.briarproject.briar.android.controller.ActivityLifecycleController; import org.briarproject.briar.android.controller.ActivityLifecycleController;
import org.briarproject.briar.android.controller.handler.ResultHandler; import org.briarproject.briar.android.controller.handler.ResultHandler;
@@ -10,7 +11,7 @@ import org.briarproject.briar.android.controller.handler.ResultHandler;
@NotNullByDefault @NotNullByDefault
public interface NavDrawerController extends ActivityLifecycleController { public interface NavDrawerController extends ActivityLifecycleController {
boolean isTransportRunning(TransportId transportId); State getTransportState(TransportId transportId);
void showExpiryWarning(ResultHandler<Boolean> handler); void showExpiryWarning(ResultHandler<Boolean> handler);

View File

@@ -12,10 +12,10 @@ import org.briarproject.bramble.api.lifecycle.LifecycleManager;
import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault;
import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault;
import org.briarproject.bramble.api.plugin.Plugin; import org.briarproject.bramble.api.plugin.Plugin;
import org.briarproject.bramble.api.plugin.Plugin.State;
import org.briarproject.bramble.api.plugin.PluginManager; import org.briarproject.bramble.api.plugin.PluginManager;
import org.briarproject.bramble.api.plugin.TransportId; import org.briarproject.bramble.api.plugin.TransportId;
import org.briarproject.bramble.api.plugin.event.TransportActiveEvent; import org.briarproject.bramble.api.plugin.event.TransportStateEvent;
import org.briarproject.bramble.api.plugin.event.TransportInactiveEvent;
import org.briarproject.bramble.api.settings.Settings; import org.briarproject.bramble.api.settings.Settings;
import org.briarproject.bramble.api.settings.SettingsManager; import org.briarproject.bramble.api.settings.SettingsManager;
import org.briarproject.briar.android.controller.DbControllerImpl; import org.briarproject.briar.android.controller.DbControllerImpl;
@@ -30,7 +30,7 @@ import static java.util.concurrent.TimeUnit.DAYS;
import static java.util.logging.Level.INFO; import static java.util.logging.Level.INFO;
import static java.util.logging.Level.WARNING; import static java.util.logging.Level.WARNING;
import static java.util.logging.Logger.getLogger; import static java.util.logging.Logger.getLogger;
import static org.briarproject.bramble.api.plugin.Plugin.State.ACTIVE; import static org.briarproject.bramble.api.plugin.Plugin.State.DISABLED;
import static org.briarproject.bramble.util.LogUtils.logException; import static org.briarproject.bramble.util.LogUtils.logException;
import static org.briarproject.briar.android.TestingConstants.EXPIRY_DATE; import static org.briarproject.briar.android.TestingConstants.EXPIRY_DATE;
import static org.briarproject.briar.android.TestingConstants.IS_DEBUG_BUILD; import static org.briarproject.briar.android.TestingConstants.IS_DEBUG_BUILD;
@@ -86,18 +86,14 @@ public class NavDrawerControllerImpl extends DbControllerImpl
@Override @Override
public void eventOccurred(Event e) { public void eventOccurred(Event e) {
if (e instanceof TransportActiveEvent) { if (e instanceof TransportStateEvent) {
TransportId id = ((TransportActiveEvent) e).getTransportId(); TransportStateEvent t = (TransportStateEvent) e;
TransportId id = t.getTransportId();
State state = t.getState();
if (LOG.isLoggable(INFO)) { if (LOG.isLoggable(INFO)) {
LOG.info("TransportActiveEvent: " + id.getString()); LOG.info("TransportStateEvent: " + id + " is " + state);
} }
listener.stateUpdate(id, true); listener.stateUpdate(id, state);
} else if (e instanceof TransportInactiveEvent) {
TransportId id = ((TransportInactiveEvent) e).getTransportId();
if (LOG.isLoggable(INFO)) {
LOG.info("TransportInactiveEvent: " + id.getString());
}
listener.stateUpdate(id, false);
} }
} }
@@ -175,9 +171,9 @@ public class NavDrawerControllerImpl extends DbControllerImpl
} }
@Override @Override
public boolean isTransportRunning(TransportId transportId) { public State getTransportState(TransportId transportId) {
Plugin plugin = pluginManager.getPlugin(transportId); Plugin plugin = pluginManager.getPlugin(transportId);
return plugin != null && plugin.getState() == ACTIVE; return plugin == null ? DISABLED : plugin.getState();
} }
} }

View File

@@ -1,5 +1,6 @@
package org.briarproject.briar.android.navdrawer; package org.briarproject.briar.android.navdrawer;
import org.briarproject.bramble.api.plugin.Plugin.State;
import org.briarproject.bramble.api.plugin.TransportId; import org.briarproject.bramble.api.plugin.TransportId;
import androidx.annotation.UiThread; import androidx.annotation.UiThread;
@@ -7,5 +8,5 @@ import androidx.annotation.UiThread;
interface TransportStateListener { interface TransportStateListener {
@UiThread @UiThread
void stateUpdate(TransportId id, boolean enabled); void stateUpdate(TransportId id, State state);
} }