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;
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
*/
abstract class BluetoothEvent extends Event {
private BluetoothEnableDisableReason selectedReason;
private boolean force;
BluetoothEvent(boolean force){
this.force = force;
BluetoothEvent(BluetoothEnableDisableReason reason){
selectedReason = reason;
}
public boolean isForced(){
return force;
public BluetoothEnableDisableReason getReason(){
return selectedReason;
}
}

View File

@@ -1,7 +1,7 @@
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.plugin.BluetoothEnableDisableReason;
import javax.annotation.concurrent.Immutable;
@@ -12,11 +12,19 @@ import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class DisableBluetoothEvent extends BluetoothEvent {
public DisableBluetoothEvent(){
super(false);
private boolean force;
public DisableBluetoothEvent(BluetoothEnableDisableReason reason) {
super(reason);
force = false;
}
public DisableBluetoothEvent(boolean force) {
super(force);
public DisableBluetoothEvent(boolean 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.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.plugin.BluetoothEnableDisableReason;
import javax.annotation.concurrent.Immutable;
@@ -11,11 +12,7 @@ import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class EnableBluetoothEvent extends BluetoothEvent {
public EnableBluetoothEvent(){
super(false);
}
public EnableBluetoothEvent(boolean force){
super(force);
public EnableBluetoothEvent(BluetoothEnableDisableReason reason){
super(reason);
}
}

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.nullsafety.MethodsNotNullByDefault;
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.EnableBluetoothEvent;
import org.briarproject.briar.R;
@@ -162,7 +163,8 @@ public class ShowQrCodeFragment extends BaseEventFragment
BluetoothAdapter.getDefaultAdapter();
if (adapter != null && !adapter.isEnabled()) {
waitingForBluetooth = true;
eventBus.broadcast(new EnableBluetoothEvent());
eventBus.broadcast(new EnableBluetoothEvent(
BluetoothEnableDisableReason.ADD_CONTACT));
} else {
startListening();
}
@@ -175,7 +177,8 @@ public class ShowQrCodeFragment extends BaseEventFragment
//Disable BT adapter if we enabled it
final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
if(adapter != null && adapter.isEnabled()){
eventBus.broadcast(new DisableBluetoothEvent());
eventBus.broadcast(new DisableBluetoothEvent(
BluetoothEnableDisableReason.ADD_CONTACT));
}
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.ParametersNotNullByDefault;
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.event.DisableBluetoothEvent;
import org.briarproject.bramble.api.plugin.event.EnableBluetoothEvent;
@@ -326,8 +327,10 @@ public class SettingsFragment extends PreferenceFragmentCompat
}
private void enableOrDisableBluetooth(boolean enable) {
if (enable) eventBus.broadcast(new EnableBluetoothEvent(true));
else eventBus.broadcast(new DisableBluetoothEvent(true));
if (enable) eventBus.broadcast(new EnableBluetoothEvent(
BluetoothEnableDisableReason.COMMUNICATION));
else eventBus.broadcast(new DisableBluetoothEvent(
BluetoothEnableDisableReason.COMMUNICATION));
}
private void storeTorSettings(final int torSetting) {