diff options
| author | cyberta <cyberta@riseup.net> | 2026-01-23 12:14:15 +0100 |
|---|---|---|
| committer | cyberta <cyberta@riseup.net> | 2026-01-26 12:16:13 +0100 |
| commit | a02b69c804a3366dfe7bdfcff9a9038a5bd25981 (patch) | |
| tree | e8a96d166e256783d76f22d211efe134c63a3ddd /app/src/main/java/se | |
| parent | 000078f63333d8f07b04258d88b5c8c1372814a3 (diff) | |
show provider names (instead of domain names) and provider description properly for manually added providers in provider selection list
Diffstat (limited to 'app/src/main/java/se')
| -rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/base/models/Provider.java | 39 | ||||
| -rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModel.java | 4 |
2 files changed, 20 insertions, 23 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 1708fe83..bca9fc9a 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 @@ -131,7 +131,9 @@ public final class Provider implements Parcelable { GEOIP_URL = "geoip_url", MOTD_URL = "motd_url"; - private static final String API_TERM_NAME = "name"; + private static final String + API_TERM_NAME = "name", + DEFAULT_LANGUAGE = "default_language"; public Provider() { } @@ -508,19 +510,11 @@ public final class Provider implements Parcelable { // Should we pass the locale in, or query the system here? String lang = Locale.getDefault().getLanguage(); String name = ""; - try { - if (definition != null) - name = definition.getJSONObject(API_TERM_NAME).getString(lang); - else throw new JSONException("Provider not defined"); - } catch (JSONException e) { - try { - name = definition.getJSONObject(API_TERM_NAME).getString("en"); - } catch (JSONException e2) { - if (mainUrl != null) { - String host = getHostFromUrl(mainUrl); - name = host.substring(0, host.indexOf(".")); - } - } + if (modelsProvider != null) { + name = modelsProvider.getName().getOrDefault(lang, modelsProvider.getDefaultLanguage()); + } + if (name == null || name.isEmpty()) { + name = getHostFromUrl(mainUrl); } return name; @@ -529,15 +523,18 @@ public final class Provider implements Parcelable { public String getDescription() { String lang = Locale.getDefault().getLanguage(); String desc = null; - try { - desc = definition.getJSONObject("description").getString(lang); - } catch (JSONException e) { - // TODO: handle exception!! + if (definition.has("description")) { try { - desc = definition.getJSONObject("description").getString(definition.getString("default_language")); - } catch (JSONException e2) { - // TODO: i can't believe you're doing it again! + desc = definition.getJSONObject("description").getString(lang); + } catch (JSONException e) { + try { + desc = definition.getJSONObject("description").getString(definition.getString(DEFAULT_LANGUAGE)); + } catch (JSONException e2) { + // TODO: i can't believe you're doing it again! + } } + } else if (modelsProvider != null) { + desc = modelsProvider.getDescription().getOrDefault(lang, modelsProvider.getDescription().get(modelsProvider.getDefaultLanguage())); } return desc; diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModel.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModel.java index f5bc54e6..c68e3404 100644 --- a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModel.java +++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModel.java @@ -162,7 +162,7 @@ public class ProviderSelectionViewModel extends ViewModel { if ("calyx.net".equals(domain)) { return "The Calyx Institute"; } - return domain; + return getProvider(pos).getName(); } private String getProviderNameForGeneralDescription(Provider p) { @@ -176,7 +176,7 @@ public class ProviderSelectionViewModel extends ViewModel { if ("calyx.net".equals(domain)) { return "Calyx"; } - return domain; + return p.getName(); } public CharSequence getHint(Context context) { |
