set the reason to enable or disable bluetooth

This commit is contained in:
MajorCrazed
2017-11-01 17:36:36 +01:00
parent 86ea6eae63
commit 1e9afd14db
5 changed files with 32 additions and 21 deletions

View File

@@ -1,20 +1,20 @@
package org.briarproject.bramble.api.plugin.event; package org.briarproject.bramble.api.plugin.event;
import org.briarproject.bramble.api.event.Event; import org.briarproject.bramble.api.event.Event;
import org.briarproject.bramble.api.plugin.BluetoothEnableDisableReason;
/** /**
* to force enable and disable bluetooth
* force enable means that the bluetooth adapter stay enabled until a force DisableBluetoothEvent is called
* force disable stop the bluetooth adapter only when we turned it on * force disable stop the bluetooth adapter only when we turned it on
*/ */
abstract class BluetoothEvent extends Event { abstract class BluetoothEvent extends Event {
private BluetoothEnableDisableReason selectedReason;
private boolean force; private boolean force;
BluetoothEvent(boolean force){ BluetoothEvent(BluetoothEnableDisableReason reason){
this.force = force; selectedReason = reason;
} }
public boolean isForced(){ public BluetoothEnableDisableReason getReason(){
return force; return selectedReason;
} }
} }

View File

@@ -1,7 +1,7 @@
package org.briarproject.bramble.api.plugin.event; package org.briarproject.bramble.api.plugin.event;
import org.briarproject.bramble.api.event.Event;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.plugin.BluetoothEnableDisableReason;
import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.Immutable;
@@ -12,11 +12,19 @@ import javax.annotation.concurrent.Immutable;
@Immutable @Immutable
@NotNullByDefault @NotNullByDefault
public class DisableBluetoothEvent extends BluetoothEvent { public class DisableBluetoothEvent extends BluetoothEvent {
public DisableBluetoothEvent(){ private boolean force;
super(false);
public DisableBluetoothEvent(BluetoothEnableDisableReason reason) {
super(reason);
force = false;
} }
public DisableBluetoothEvent(boolean force) { public DisableBluetoothEvent(boolean force){
super(force); super(null);
this.force = force;
}
public boolean isForced(){
return force;
} }
} }

View File

@@ -2,6 +2,7 @@ package org.briarproject.bramble.api.plugin.event;
import org.briarproject.bramble.api.event.Event; import org.briarproject.bramble.api.event.Event;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.plugin.BluetoothEnableDisableReason;
import javax.annotation.concurrent.Immutable; import javax.annotation.concurrent.Immutable;
@@ -11,11 +12,7 @@ import javax.annotation.concurrent.Immutable;
@Immutable @Immutable
@NotNullByDefault @NotNullByDefault
public class EnableBluetoothEvent extends BluetoothEvent { public class EnableBluetoothEvent extends BluetoothEvent {
public EnableBluetoothEvent(){ public EnableBluetoothEvent(BluetoothEnableDisableReason reason){
super(false); super(reason);
}
public EnableBluetoothEvent(boolean force){
super(force);
} }
} }

View File

@@ -37,6 +37,7 @@ import org.briarproject.bramble.api.keyagreement.event.KeyAgreementWaitingEvent;
import org.briarproject.bramble.api.lifecycle.IoExecutor; import org.briarproject.bramble.api.lifecycle.IoExecutor;
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.BluetoothEnableDisableReason;
import org.briarproject.bramble.api.plugin.event.DisableBluetoothEvent; import org.briarproject.bramble.api.plugin.event.DisableBluetoothEvent;
import org.briarproject.bramble.api.plugin.event.EnableBluetoothEvent; import org.briarproject.bramble.api.plugin.event.EnableBluetoothEvent;
import org.briarproject.briar.R; import org.briarproject.briar.R;
@@ -162,7 +163,8 @@ public class ShowQrCodeFragment extends BaseEventFragment
BluetoothAdapter.getDefaultAdapter(); BluetoothAdapter.getDefaultAdapter();
if (adapter != null && !adapter.isEnabled()) { if (adapter != null && !adapter.isEnabled()) {
waitingForBluetooth = true; waitingForBluetooth = true;
eventBus.broadcast(new EnableBluetoothEvent()); eventBus.broadcast(new EnableBluetoothEvent(
BluetoothEnableDisableReason.ADD_CONTACT));
} else { } else {
startListening(); startListening();
} }
@@ -175,7 +177,8 @@ public class ShowQrCodeFragment extends BaseEventFragment
//Disable BT adapter if we enabled it //Disable BT adapter if we enabled it
final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
if(adapter != null && adapter.isEnabled()){ if(adapter != null && adapter.isEnabled()){
eventBus.broadcast(new DisableBluetoothEvent()); eventBus.broadcast(new DisableBluetoothEvent(
BluetoothEnableDisableReason.ADD_CONTACT));
} }
stopListening(); stopListening();

View File

@@ -21,6 +21,7 @@ import org.briarproject.bramble.api.event.EventListener;
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.BluetoothConstants; import org.briarproject.bramble.api.plugin.BluetoothConstants;
import org.briarproject.bramble.api.plugin.BluetoothEnableDisableReason;
import org.briarproject.bramble.api.plugin.TorConstants; import org.briarproject.bramble.api.plugin.TorConstants;
import org.briarproject.bramble.api.plugin.event.DisableBluetoothEvent; import org.briarproject.bramble.api.plugin.event.DisableBluetoothEvent;
import org.briarproject.bramble.api.plugin.event.EnableBluetoothEvent; import org.briarproject.bramble.api.plugin.event.EnableBluetoothEvent;
@@ -326,8 +327,10 @@ public class SettingsFragment extends PreferenceFragmentCompat
} }
private void enableOrDisableBluetooth(boolean enable) { private void enableOrDisableBluetooth(boolean enable) {
if (enable) eventBus.broadcast(new EnableBluetoothEvent(true)); if (enable) eventBus.broadcast(new EnableBluetoothEvent(
else eventBus.broadcast(new DisableBluetoothEvent(true)); BluetoothEnableDisableReason.COMMUNICATION));
else eventBus.broadcast(new DisableBluetoothEvent(
BluetoothEnableDisableReason.COMMUNICATION));
} }
private void storeTorSettings(final int torSetting) { private void storeTorSettings(final int torSetting) {