summaryrefslogtreecommitdiff
path: root/app/src/main/java/se
diff options
context:
space:
mode:
authorcyberta <cyberta@riseup.net>2026-01-23 12:14:15 +0100
committercyberta <cyberta@riseup.net>2026-01-26 12:16:13 +0100
commita02b69c804a3366dfe7bdfcff9a9038a5bd25981 (patch)
treee8a96d166e256783d76f22d211efe134c63a3ddd /app/src/main/java/se
parent000078f63333d8f07b04258d88b5c8c1372814a3 (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.java39
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModel.java4
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) {