summaryrefslogtreecommitdiff
path: root/app/src/main/java
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2024-10-11 01:16:13 +0200
committercyberta <cyberta@riseup.net>2024-12-11 00:09:34 +0000
commitd2836ee6404a8d08fd29d0c7e33d9156ea464aaf (patch)
treef6c06d98de97dffe53172e2bbdc513b086083f00 /app/src/main/java
parente26a71fe5d755bbd598111fe01e6e805a2eab6fb (diff)
query v5 model classes in case the provider is apiVersion => 5
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/models/Provider.java56
1 files changed, 38 insertions, 18 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/models/Provider.java b/app/src/main/java/se/leap/bitmaskclient/base/models/Provider.java
index 8b15e785..b3483506 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/models/Provider.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/models/Provider.java
@@ -257,28 +257,42 @@ public final class Provider implements Parcelable {
}
private boolean supportsTransports(Pair<TransportType, TransportProtocol>[] transportTypes) {
- try {
- JSONArray gatewayJsons = eipServiceJson.getJSONArray(GATEWAYS);
- for (int i = 0; i < gatewayJsons.length(); i++) {
- JSONArray transports = gatewayJsons.getJSONObject(i).
- getJSONObject(CAPABILITIES).
- getJSONArray(TRANSPORT);
- for (int j = 0; j < transports.length(); j++) {
- String supportedTransportType = transports.getJSONObject(j).getString(TYPE);
- JSONArray transportProtocols = transports.getJSONObject(j).getJSONArray(PROTOCOLS);
- for (Pair<TransportType, TransportProtocol> transportPair : transportTypes) {
- for (int k = 0; k < transportProtocols.length(); k++) {
- if (transportPair.first.toString().equals(supportedTransportType) &&
- transportPair.second.toString().equals(transportProtocols.getString(k))) {
- return true;
+ if (apiVersion < 5) {
+ try {
+ JSONArray gatewayJsons = eipServiceJson.getJSONArray(GATEWAYS);
+ for (int i = 0; i < gatewayJsons.length(); i++) {
+ JSONArray transports = gatewayJsons.getJSONObject(i).
+ getJSONObject(CAPABILITIES).
+ getJSONArray(TRANSPORT);
+ for (int j = 0; j < transports.length(); j++) {
+ String supportedTransportType = transports.getJSONObject(j).getString(TYPE);
+ JSONArray transportProtocols = transports.getJSONObject(j).getJSONArray(PROTOCOLS);
+ for (Pair<TransportType, TransportProtocol> transportPair : transportTypes) {
+ for (int k = 0; k < transportProtocols.length(); k++) {
+ if (transportPair.first.toString().equals(supportedTransportType) &&
+ transportPair.second.toString().equals(transportProtocols.getString(k))) {
+ return true;
+ }
}
}
}
}
+ } catch (Exception e) {
+ // ignore
+ }
+ } else {
+ if (bridges == null) return false;
+ for (int i = 0; i < bridges.length(); i++) {
+ ModelsBridge bridge = bridges.get(i);
+ for (Pair<TransportType, TransportProtocol> transportPair : transportTypes) {
+ if (transportPair.first.toString().equals(bridge.getType()) &&
+ transportPair.second.toString().equals(bridge.getTransport())) {
+ return true;
+ }
+ }
}
- } catch (Exception e) {
- // ignore
}
+
return false;
}
@@ -346,8 +360,14 @@ public final class Provider implements Parcelable {
}
public String getDomain() {
- return domain;
- }
+ if (apiVersion < 5) {
+ return domain;
+ }
+ try {
+ return modelsProvider.getDomain();
+ } catch (NullPointerException ignore) {
+ return "";
+ }
}