diff options
author | cyberta <cyberta@riseup.net> | 2020-01-29 02:55:25 -0600 |
---|---|---|
committer | cyberta <cyberta@riseup.net> | 2020-01-29 02:55:25 -0600 |
commit | 7fbea5459e59de1327f2c76a23f5940d67e4ae8d (patch) | |
tree | c11fbdcb5a51b23e842e785b364a069b3f75c681 /app/src/main/java/se/leap/bitmaskclient/tethering/TetheringObservable.java | |
parent | ec4cafb1026db8f461d94908dbdfcd8281d235a4 (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.java | 62 |
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; - } } |