summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderAPI.java
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2021-10-02 13:31:36 +0200
committercyBerta <cyberta@riseup.net>2021-10-02 13:32:30 +0200
commit80bf751141c85316c22a0d16c1e4d6fa0f473f44 (patch)
tree08802373b1a0c24f5f83fe3f9a295141df3ae8b1 /app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderAPI.java
parent9e131a6ae3456c6b8daa99dbd5b38dc5ef5d8592 (diff)
* refactor startTorProxy()
* fix setting http proxy port correctly * snowflake+tor does currently only work when being connected to a wifi, not a cellular network. For now, we check if the device is connected to a wifi, before attempting to start tor
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderAPI.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderAPI.java34
1 files changed, 20 insertions, 14 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderAPI.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderAPI.java
index 42ded09f..e818f587 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderAPI.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderAPI.java
@@ -37,17 +37,15 @@ import java.io.Closeable;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
+import de.blinkt.openvpn.core.NetworkUtils;
import se.leap.bitmaskclient.base.utils.PreferenceHelper;
import se.leap.bitmaskclient.providersetup.connectivity.OkHttpClientGenerator;
import se.leap.bitmaskclient.tor.ClientTransportPlugin;
import se.leap.bitmaskclient.tor.TorNotificationManager;
-import se.leap.bitmaskclient.tor.TorStatusObservable;
import static se.leap.bitmaskclient.base.models.Constants.SHARED_PREFERENCES;
import static se.leap.bitmaskclient.base.utils.ConfigHelper.ensureNotOnMainThread;
import static se.leap.bitmaskclient.tor.TorNotificationManager.TOR_SERVICE_NOTIFICATION_ID;
-import static se.leap.bitmaskclient.tor.TorStatusObservable.TorStatus.OFF;
-import static se.leap.bitmaskclient.tor.TorStatusObservable.TorStatus.STOPPING;
/**
* Implements HTTP api methods (encapsulated in {{@link ProviderApiManager}})
@@ -151,23 +149,31 @@ public class ProviderAPI extends JobIntentService implements ProviderApiManagerB
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
}
+ @Override
+ public boolean isConnectedToWifi() {
+ return NetworkUtils.isConnectedToWifi(getApplicationContext());
+ }
+
+ @Override
+ public void startTorService() {
+ initTorServiceConnection(this);
+ Intent torServiceIntent = new Intent(this, TorService.class);
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ Notification notification = TorNotificationManager.buildTorForegroundNotification(getApplicationContext());
+ //noinspection NewApi
+ getApplicationContext().startForegroundService(torServiceIntent);
+ torServiceConnection.torService.startForeground(TOR_SERVICE_NOTIFICATION_ID, notification);
+ } else {
+ getApplicationContext().startService(torServiceIntent);
+ }
+ }
@Override
public int getTorHttpTunnelPort() {
initTorServiceConnection(this);
if (torServiceConnection != null) {
- Intent torServiceIntent = new Intent(this, TorService.class);
-
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- Notification notification = TorNotificationManager.buildTorForegroundNotification(getApplicationContext());
- //noinspection NewApi
- getApplicationContext().startForegroundService(torServiceIntent);
- torServiceConnection.torService.startForeground(TOR_SERVICE_NOTIFICATION_ID, notification);
- } else {
- getApplicationContext().startService(torServiceIntent);
- }
-
int tunnelPort = torServiceConnection.torService.getHttpTunnelPort();
torServiceConnection.close();
torServiceConnection = null;