diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/plugin/event/BluetoothEvent.java b/bramble-api/src/main/java/org/briarproject/bramble/api/plugin/event/BluetoothEvent.java index 012a7393f..947ff8c88 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/plugin/event/BluetoothEvent.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/plugin/event/BluetoothEvent.java @@ -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; } } diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/plugin/event/DisableBluetoothEvent.java b/bramble-api/src/main/java/org/briarproject/bramble/api/plugin/event/DisableBluetoothEvent.java index c69356a44..4dd48d458 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/plugin/event/DisableBluetoothEvent.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/plugin/event/DisableBluetoothEvent.java @@ -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; } } diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/plugin/event/EnableBluetoothEvent.java b/bramble-api/src/main/java/org/briarproject/bramble/api/plugin/event/EnableBluetoothEvent.java index cae89da63..7c31bc73e 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/plugin/event/EnableBluetoothEvent.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/plugin/event/EnableBluetoothEvent.java @@ -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); } } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ShowQrCodeFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ShowQrCodeFragment.java index 7c42ae855..fd851bb4d 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ShowQrCodeFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ShowQrCodeFragment.java @@ -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(); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java index fed245fac..a2a04ebd7 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java @@ -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) {