mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-18 05:39:53 +01:00
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:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user