summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/ProviderManager.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/ProviderManager.java35
1 files changed, 20 insertions, 15 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java b/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java
index dd9070af..ab165450 100644
--- a/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java
+++ b/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java
@@ -12,7 +12,6 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
-import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
@@ -21,6 +20,9 @@ import java.util.Iterator;
import java.util.List;
import java.util.Set;
+import static se.leap.bitmaskclient.Provider.MAIN_URL;
+import static se.leap.bitmaskclient.Provider.PROVIDER_API_IP;
+import static se.leap.bitmaskclient.Provider.PROVIDER_IP;
import static se.leap.bitmaskclient.utils.FileHelper.createFile;
import static se.leap.bitmaskclient.utils.FileHelper.persistFile;
import static se.leap.bitmaskclient.utils.InputStreamHelper.getInputStreamFrom;
@@ -84,22 +86,22 @@ public class ProviderManager implements AdapteeCollection<Provider> {
for (String file : relativeFilePaths) {
String mainUrl = null;
+ String providerIp = null;
+ String providerApiIp = null;
String certificate = null;
String providerDefinition = null;
try {
String provider = file.substring(0, file.length() - ".url".length());
- InputStream provider_file = assetsManager.open(directory + "/" + file);
- mainUrl = extractMainUrlFromInputStream(provider_file);
+ InputStream providerFile = assetsManager.open(directory + "/" + file);
+ mainUrl = extractKeyFromInputStream(providerFile, MAIN_URL);
+ providerIp = extractKeyFromInputStream(providerFile, PROVIDER_IP);
+ providerApiIp = extractKeyFromInputStream(providerFile, PROVIDER_API_IP);
certificate = loadInputStreamAsString(assetsManager.open(provider + EXT_PEM));
providerDefinition = loadInputStreamAsString(assetsManager.open(provider + EXT_JSON));
} catch (IOException e) {
e.printStackTrace();
}
- try {
- providers.add(new Provider(new URL(mainUrl), certificate, providerDefinition));
- } catch (MalformedURLException e) {
- e.printStackTrace();
- }
+ providers.add(new Provider(mainUrl, providerIp, providerApiIp, certificate, providerDefinition));
}
return providers;
@@ -118,23 +120,26 @@ public class ProviderManager implements AdapteeCollection<Provider> {
Set<Provider> providers = new HashSet<>();
try {
for (String file : files) {
- String mainUrl = extractMainUrlFromInputStream(getInputStreamFrom(externalFilesDir.getAbsolutePath() + "/" + file));
- providers.add(new Provider(new URL(mainUrl)));
+ InputStream inputStream = getInputStreamFrom(externalFilesDir.getAbsolutePath() + "/" + file);
+ String mainUrl = extractKeyFromInputStream(inputStream, MAIN_URL);
+ String providerIp = extractKeyFromInputStream(inputStream, PROVIDER_IP);
+ String providerApiIp = extractKeyFromInputStream(inputStream, PROVIDER_API_IP);
+ providers.add(new Provider(mainUrl, providerIp, providerApiIp));
}
- } catch (MalformedURLException | FileNotFoundException | NullPointerException e) {
+ } catch (FileNotFoundException | NullPointerException e) {
e.printStackTrace();
}
return providers;
}
- private String extractMainUrlFromInputStream(InputStream inputStream) {
- String mainUrl = "";
+ private String extractKeyFromInputStream(InputStream inputStream, String key) {
+ String value = "";
JSONObject fileContents = inputStreamToJson(inputStream);
if (fileContents != null)
- mainUrl = fileContents.optString(Provider.MAIN_URL);
- return mainUrl;
+ value = fileContents.optString(key);
+ return value;
}
private JSONObject inputStreamToJson(InputStream inputStream) {