diff options
author | cyBerta <cyberta@riseup.net> | 2025-01-31 15:07:39 +0100 |
---|---|---|
committer | cyBerta <cyberta@riseup.net> | 2025-02-03 16:21:57 +0100 |
commit | 383840d7f875bb2447890714c4850da3924a2684 (patch) | |
tree | 263f42332004b8e52bf8d0d5c13fc7cf8ac7d2fd | |
parent | 5dfe7ac7fa0ed2389dc5615ff9ec599f141dfb58 (diff) |
persist v5 provider on successful provider setup, ensure introducer is also saved
3 files changed, 18 insertions, 16 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/utils/PreferenceHelper.java b/app/src/main/java/se/leap/bitmaskclient/base/utils/PreferenceHelper.java index 0bf5dfb2..b7c6db5d 100644 --- a/app/src/main/java/se/leap/bitmaskclient/base/utils/PreferenceHelper.java +++ b/app/src/main/java/se/leap/bitmaskclient/base/utils/PreferenceHelper.java @@ -71,6 +71,7 @@ import org.json.JSONObject; import java.io.IOException; import java.net.URL; import java.security.GeneralSecurityException; +import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -212,20 +213,17 @@ public class PreferenceHelper { public static HashMap<String, Provider> getCustomProviders() { Set<String> providerDomains = getCustomProviderDomains(); HashMap<String, Provider> customProviders = new HashMap<>(); - if (providerDomains.size() > 0) { - for (String domain : providerDomains) { - String mainURL = preferences.getString(Provider.MAIN_URL + "." + domain, null); - if (mainURL != null) { - Introducer introducer = null; - try { - introducer = Introducer.fromUrl(BitmaskCoreProvider.getBitmaskMobile().getIntroducerURLByDomain(domain)); - } catch (Exception e) { - e.printStackTrace(); - } - customProviders.put(mainURL, Provider.createCustomProvider(mainURL, domain, introducer)); + for (String domain : providerDomains) { + String mainURL = preferences.getString(Provider.MAIN_URL + "." + domain, null); + if (mainURL != null) { + Introducer introducer = null; + try { + introducer = Introducer.fromUrl(BitmaskCoreProvider.getBitmaskMobile().getIntroducerURLByDomain(domain)); + } catch (Exception e) { + e.printStackTrace(); } + customProviders.put(mainURL, Provider.createCustomProvider(mainURL, domain, introducer)); } - } return customProviders; @@ -851,7 +849,7 @@ public class PreferenceHelper { @Override public byte[] getByteArray(String s) { - String encodedString = preferences.getString(s, ""); + String encodedString = preferences.getString(s, Arrays.toString(Base64.encode(new byte[0], Base64.DEFAULT))); try { return Base64.decode(encodedString, Base64.DEFAULT); } catch (IllegalArgumentException e) { diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerV5.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerV5.java index 9af14eda..2e2497d5 100644 --- a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerV5.java +++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerV5.java @@ -66,6 +66,7 @@ public class ProviderApiManagerV5 extends ProviderApiManagerBase implements IPro case SET_UP_PROVIDER: result = setupProvider(provider, parameters); if (result.getBoolean(BROADCAST_RESULT_KEY)) { + serviceCallback.saveProvider(provider); eventSender.sendToReceiverOrBroadcast(receiver, PROVIDER_OK, result, provider); } else { eventSender.sendToReceiverOrBroadcast(receiver, PROVIDER_NOK, result, provider); diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderManager.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderManager.java index 63fbde09..bcb177e2 100644 --- a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderManager.java +++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderManager.java @@ -45,8 +45,11 @@ public class ProviderManager { private boolean addDummyEntry = false; public static ProviderManager getInstance(AssetManager assetsManager) { - if (instance == null) + if (instance == null) { instance = new ProviderManager(assetsManager); + } else { + instance.updateCustomProviders(); + } return instance; } @@ -63,7 +66,7 @@ public class ProviderManager { private ProviderManager(AssetManager assetManager) { this.assetsManager = assetManager; addDefaultProviders(assetManager); - addCustomProviders(); + updateCustomProviders(); } private void addDefaultProviders(AssetManager assetManager) { @@ -117,7 +120,7 @@ public class ProviderManager { } - private void addCustomProviders() { + public void updateCustomProviders() { customProviders = PreferenceHelper.getCustomProviders(); } |