summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/tethering/TetheringObservable.java
diff options
context:
space:
mode:
authorcyberta <cyberta@riseup.net>2020-01-29 02:55:25 -0600
committercyberta <cyberta@riseup.net>2020-01-29 02:55:25 -0600
commit7fbea5459e59de1327f2c76a23f5940d67e4ae8d (patch)
treec11fbdcb5a51b23e842e785b364a069b3f75c681 /app/src/main/java/se/leap/bitmaskclient/tethering/TetheringObservable.java
parentec4cafb1026db8f461d94908dbdfcd8281d235a4 (diff)
implement wifi tethering
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/tethering/TetheringObservable.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/tethering/TetheringObservable.java62
1 files changed, 48 insertions, 14 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/tethering/TetheringObservable.java b/app/src/main/java/se/leap/bitmaskclient/tethering/TetheringObservable.java
index 79c1ec6d..b84f3494 100644
--- a/app/src/main/java/se/leap/bitmaskclient/tethering/TetheringObservable.java
+++ b/app/src/main/java/se/leap/bitmaskclient/tethering/TetheringObservable.java
@@ -34,22 +34,60 @@ public class TetheringObservable extends Observable {
return instance;
}
- static void setWifiTethering(boolean enabled) {
- getInstance().tetheringState.isWifiTetheringEnabled = enabled;
- getInstance().setChanged();
- getInstance().notifyObservers();
+ public static void allowVpnWifiTethering(boolean enabled) {
+ if (getInstance().tetheringState.isVpnWifiTetheringAllowed != enabled) {
+ getInstance().tetheringState.isVpnWifiTetheringAllowed = enabled;
+ getInstance().setChanged();
+ getInstance().notifyObservers();
+ }
+ }
+
+ public static void allowVpnUsbTethering(boolean enabled) {
+ if (getInstance().tetheringState.isUsbTetheringEnabled != enabled) {
+ getInstance().tetheringState.isUsbTetheringEnabled = enabled;
+ getInstance().setChanged();
+ getInstance().notifyObservers();
+ }
+ }
+
+ public static void allowVpnBluetoothTethering(boolean enabled) {
+ if (getInstance().tetheringState.isBluetoothTetheringEnabled != enabled) {
+ getInstance().tetheringState.isBluetoothTetheringEnabled = enabled;
+ getInstance().setChanged();
+ getInstance().notifyObservers();
+ }
+ }
+
+ static void setWifiTethering(boolean enabled, String address, String interfaceName) {
+ if (getInstance().tetheringState.isWifiTetheringEnabled != enabled ||
+ !getInstance().tetheringState.wifiInterface.equals(interfaceName) ||
+ !getInstance().tetheringState.wifiAddress.equals(address)) {
+ getInstance().tetheringState.isWifiTetheringEnabled = enabled;
+ getInstance().tetheringState.wifiInterface = interfaceName;
+ getInstance().tetheringState.wifiAddress = address;
+ if ("".equals(address)) {
+ getInstance().tetheringState.lastWifiAddress = address;
+ }
+ getInstance().setChanged();
+ getInstance().notifyObservers();
+ }
+
}
static void setUsbTethering(boolean enabled) {
- getInstance().tetheringState.isUsbTetheringEnabled = enabled;
- getInstance().setChanged();
- getInstance().notifyObservers();
+ if (getInstance().tetheringState.isUsbTetheringEnabled != enabled) {
+ getInstance().tetheringState.isUsbTetheringEnabled = enabled;
+ getInstance().setChanged();
+ getInstance().notifyObservers();
+ }
}
static void setBluetoothTethering(boolean enabled) {
- getInstance().tetheringState.isBluetoothTetheringEnabled = enabled;
- getInstance().setChanged();
- getInstance().notifyObservers();
+ if (getInstance().tetheringState.isBluetoothTetheringEnabled != enabled) {
+ getInstance().tetheringState.isBluetoothTetheringEnabled = enabled;
+ getInstance().setChanged();
+ getInstance().notifyObservers();
+ }
}
public boolean isBluetoothTetheringEnabled() {
@@ -67,8 +105,4 @@ public class TetheringObservable extends Observable {
public TetheringState getTetheringState() {
return tetheringState;
}
-
- public boolean hasAnyTetheringEnabled() {
- return tetheringState.isBluetoothTetheringEnabled || tetheringState.isUsbTetheringEnabled || tetheringState.isWifiTetheringEnabled;
- }
}