diff options
author | cyBerta <cyberta@riseup.net> | 2018-01-03 15:59:30 +0100 |
---|---|---|
committer | cyBerta <cyberta@riseup.net> | 2018-01-03 15:59:30 +0100 |
commit | 319589d126dd5e5fa20ee146f52268c99559f04c (patch) | |
tree | 33f0078be17e22ddd6db96a723985af426d1c914 /app/src/main/java/se/leap/bitmaskclient/ProviderManager.java | |
parent | def35f55e319e3760591877776c43ef978009f3b (diff) |
8773 preseeded providers implementation for production flavor
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/ProviderManager.java')
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/ProviderManager.java | 53 |
1 files changed, 27 insertions, 26 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java b/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java index abbdeb66..cf703631 100644 --- a/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java +++ b/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java @@ -1,20 +1,31 @@ package se.leap.bitmaskclient; -import android.content.res.*; - -import com.pedrogomez.renderers.*; - -import org.json.*; - -import java.io.*; -import java.net.*; -import java.util.*; +import android.content.res.AssetManager; + +import com.pedrogomez.renderers.AdapteeCollection; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; /** * Created by parmegv on 4/12/14. */ public class ProviderManager implements AdapteeCollection<Provider> { + private static final String TAG = ProviderManager.class.getName(); private AssetManager assets_manager; private File external_files_dir; private Set<Provider> default_providers; @@ -49,13 +60,13 @@ public class ProviderManager implements AdapteeCollection<Provider> { Set<Provider> providers = new HashSet<Provider>(); try { for (String file : relative_file_paths) { + + String provider = file.substring(0, file.length() - ".url".length()); InputStream provider_file = assets_manager.open(directory + "/" + file); - String main_url = extractMainUrlFromInputStream(provider_file); - String certificate_pin = extractCertificatePinFromInputStream(provider_file); - if(certificate_pin.isEmpty()) - providers.add(new Provider(new URL(main_url))); - else - providers.add(new Provider(new URL(main_url), certificate_pin)); + String mainUrl = extractMainUrlFromInputStream(provider_file); + String certificate = ConfigHelper.loadInputStreamAsString(assets_manager.open(provider + ".pem")); + String providerDefinition = ConfigHelper.loadInputStreamAsString(assets_manager.open(provider + ".json")); + providers.add(new Provider(new URL(mainUrl), certificate, providerDefinition)); } } catch (IOException e) { e.printStackTrace(); @@ -89,21 +100,11 @@ public class ProviderManager implements AdapteeCollection<Provider> { String main_url = ""; JSONObject file_contents = inputStreamToJson(input_stream); - if(file_contents != null) + if (file_contents != null) main_url = file_contents.optString(Provider.MAIN_URL); return main_url; } - private String extractCertificatePinFromInputStream(InputStream input_stream) { - String certificate_pin = ""; - - JSONObject file_contents = inputStreamToJson(input_stream); - if(file_contents != null) - certificate_pin = file_contents.optString(Provider.CA_CERT_FINGERPRINT); - - return certificate_pin; - } - private JSONObject inputStreamToJson(InputStream input_stream) { JSONObject json = null; try { |