diff options
author | cyberta <cyberta@riseup.net> | 2021-02-26 08:53:28 +0000 |
---|---|---|
committer | cyberta <cyberta@riseup.net> | 2021-02-26 08:53:28 +0000 |
commit | 8bb73089566e78a195f21f4746c9db416abf95a4 (patch) | |
tree | bba73954ec2754f85060622f60d69a19f00980c3 /app/src/main/java/se/leap/bitmaskclient/providersetup/activities | |
parent | c62389eaae3768e236875ee5fd20bde29e381c94 (diff) | |
parent | cb1510c9f3ea27d5cffc0c0e370f8270d454e39b (diff) |
Merge branch 'fix_custom_preshipping' into 'master'
ensure the private api and the preshipped certificate will be used to setup...
Closes #9029
See merge request leap/bitmask_android!130
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/providersetup/activities')
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/providersetup/activities/CustomProviderSetupActivity.java | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/CustomProviderSetupActivity.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/CustomProviderSetupActivity.java index 161c53d3..b90d14f8 100644 --- a/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/CustomProviderSetupActivity.java +++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/CustomProviderSetupActivity.java @@ -17,19 +17,33 @@ package se.leap.bitmaskclient.providersetup.activities; import android.content.Intent; +import android.content.res.AssetManager; import android.os.Bundle; + import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.IOException; + import se.leap.bitmaskclient.BuildConfig; +import se.leap.bitmaskclient.R; import se.leap.bitmaskclient.base.models.Provider; import se.leap.bitmaskclient.providersetup.ProviderAPICommand; -import se.leap.bitmaskclient.R; +import static se.leap.bitmaskclient.BuildConfig.customProviderApiIp; +import static se.leap.bitmaskclient.BuildConfig.customProviderIp; +import static se.leap.bitmaskclient.BuildConfig.customProviderUrl; +import static se.leap.bitmaskclient.BuildConfig.geoipUrl; +import static se.leap.bitmaskclient.base.models.Constants.EXT_JSON; +import static se.leap.bitmaskclient.base.models.Constants.EXT_PEM; import static se.leap.bitmaskclient.base.models.Constants.REQUEST_CODE_CONFIGURE_LEAP; +import static se.leap.bitmaskclient.base.utils.ConfigHelper.preferAnonymousUsage; +import static se.leap.bitmaskclient.base.utils.InputStreamHelper.loadInputStreamAsString; import static se.leap.bitmaskclient.providersetup.ProviderAPI.SET_UP_PROVIDER; import static se.leap.bitmaskclient.providersetup.ProviderSetupInterface.ProviderConfigState.SETTING_UP_PROVIDER; -import static se.leap.bitmaskclient.base.utils.ConfigHelper.preferAnonymousUsage; /** * Created by cyberta on 17.08.18. @@ -42,7 +56,7 @@ public class CustomProviderSetupActivity extends ProviderSetupBaseActivity { super.onCreate(savedInstanceState); setUpInitialUI(); restoreState(savedInstanceState); - setProvider(new Provider(BuildConfig.customProviderUrl, BuildConfig.geoipUrl, BuildConfig.customProviderIp, BuildConfig.customProviderApiIp)); + setDefaultProvider(); } @Override @@ -54,6 +68,21 @@ public class CustomProviderSetupActivity extends ProviderSetupBaseActivity { } } + private void setDefaultProvider() { + try { + AssetManager assetsManager = getAssets(); + Provider customProvider = new Provider(customProviderUrl, geoipUrl, customProviderIp, customProviderApiIp); + String certificate = loadInputStreamAsString(assetsManager.open(customProvider.getDomain() + EXT_PEM)); + String providerDefinition = loadInputStreamAsString(assetsManager.open(customProvider.getDomain() + EXT_JSON)); + customProvider.setCaCert(certificate); + customProvider.define(new JSONObject(providerDefinition)); + setProvider(customProvider); + } catch (IOException | JSONException e) { + e.printStackTrace(); + setProvider(new Provider(customProviderUrl, geoipUrl, customProviderIp, customProviderApiIp)); + } + } + private void setUpInitialUI() { setContentView(R.layout.a_custom_provider_setup); setProviderHeaderText(R.string.setup_provider); |