summaryrefslogtreecommitdiff
path: root/app/src/main/java/se
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2025-04-02 11:20:53 +0200
committercyberta <cyberta@riseup.net>2025-04-14 14:13:29 +0000
commit1b668a3163ce2d824486f045a9f0a0b1ee29256f (patch)
tree0cce3f9148747f04317e5b037297178fd047c43f /app/src/main/java/se
parentfa49fede06c1f1e2aeee880b5f18f75247e9c11f (diff)
improve wording about trustworthiness of pre-shipped providers
Diffstat (limited to 'app/src/main/java/se')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderManager.java6
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java2
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/viewmodel/ProviderSelectionViewModel.java39
3 files changed, 47 insertions, 0 deletions
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 bcb177e2..72341033 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderManager.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderManager.java
@@ -140,6 +140,12 @@ public class ProviderManager {
return allProviders;
}
+ public List<Provider> getDefaultProviders() {
+ List<Provider> providers = new ArrayList<>();
+ providers.addAll(defaultProviders);
+ return providers;
+ }
+
public int size() {
return providers().size();
}
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java
index f3da117b..157b582c 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java
@@ -61,6 +61,8 @@ public class ProviderSelectionFragment extends BaseSetupFragment implements Canc
@Nullable Bundle savedInstanceState) {
binding = FProviderSelectionBinding.inflate(inflater, container, false);
+ binding.tvProviderDescription.setText(viewModel.getGeneralDescription(binding.getRoot().getContext()));
+
radioButtons = new ArrayList<>();
// add configured providers
for (int i = 0; i < viewModel.size(); i++) {
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 954c9301..f5bc54e6 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
@@ -70,6 +70,31 @@ public class ProviderSelectionViewModel extends ViewModel {
return selected == ADD_PROVIDER || selected == INVITE_CODE_PROVIDER;
}
+ public CharSequence getGeneralDescription(Context context) {
+ List<Provider> providerList = providerManager.getDefaultProviders();
+ StringBuilder builder = new StringBuilder();
+ if (providerList.size() < 2) {
+ // Our string sources expect at least 2 pre-shipped providers
+ return "";
+ }
+ if (providerList.size() > 2) {
+ // enumerate all but last provider, comma separated
+ int penultimateIndex = providerList.size() - 1;
+ for (int i = 0; i < penultimateIndex; i++) {
+ builder.append(getProviderNameForGeneralDescription(providerList.get(i)));
+ if (i + 1 < penultimateIndex) {
+ builder.append(", ");
+ }
+ }
+ } else {
+ // exactly 2 providers
+ builder.append(getProviderNameForGeneralDescription(providerList.get(0)));
+ }
+ String arg1 = builder.toString();
+ String arg2 = getProviderNameForGeneralDescription(providerList.get(providerList.size() - 1));
+ return context.getString(R.string.select_provider_description, arg1, arg2);
+ }
+
public CharSequence getProviderDescription(Context context) {
if (selected == ADD_PROVIDER) {
return context.getText(R.string.add_provider_description);
@@ -140,6 +165,20 @@ public class ProviderSelectionViewModel extends ViewModel {
return domain;
}
+ private String getProviderNameForGeneralDescription(Provider p) {
+ if (p == null) {
+ return "";
+ }
+ String domain = p.getDomain();
+ if ("riseup.net".equals(domain) || "black.riseup.net".equals(domain)) {
+ return "Riseup";
+ }
+ if ("calyx.net".equals(domain)) {
+ return "Calyx";
+ }
+ return domain;
+ }
+
public CharSequence getHint(Context context) {
if (selected == ADD_PROVIDER) {
return context.getText(R.string.add_provider_prompt);