diff --git a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ThresholdSelectorFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ThresholdSelectorFragment.java
index 9fe517a78..49b675c64 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ThresholdSelectorFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/ThresholdSelectorFragment.java
@@ -2,6 +2,9 @@ package org.briarproject.briar.android.socialbackup;
import android.content.Context;
import android.os.Bundle;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.style.ImageSpan;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
@@ -16,6 +19,8 @@ import org.briarproject.briar.android.activity.ActivityComponent;
import org.briarproject.briar.android.fragment.BaseFragment;
import org.magmacollective.darkcrystal.secretsharingwrapper.SecretSharingWrapper;
+import java.util.Arrays;
+
import javax.inject.Inject;
import androidx.annotation.NonNull;
@@ -145,15 +150,20 @@ public class ThresholdSelectorFragment extends BaseFragment {
dialog.show();
}
- private String buildThresholdRepresentationString() {
- String thresholdRepresentationText = "";
- for (int i = 0; i < threshold; i++) {
- thresholdRepresentationText += getString(R.string.filled_bullet);
+ private SpannableString buildThresholdRepresentationString() {
+ char[] charArray = new char[numberOfCustodians];
+ Arrays.fill(charArray, ' ');
+ SpannableString string = new SpannableString(new String(charArray));
+
+ for (int i = 0; i < numberOfCustodians; i++) {
+ int drawable = i < threshold
+ ? R.drawable.ic_custodian_required
+ : R.drawable.ic_custodian_optional;
+ string.setSpan(new ImageSpan(getContext(), drawable), i,
+ i+1,
+ Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
- for (int i = 0; i < (numberOfCustodians - threshold); i++) {
- thresholdRepresentationText += getString(R.string.linear_bullet);
- }
- return thresholdRepresentationText;
+ return string;
}
private class SeekBarListener implements SeekBar.OnSeekBarChangeListener {
diff --git a/briar-android/src/main/res/drawable/ic_custodian_optional.xml b/briar-android/src/main/res/drawable/ic_custodian_optional.xml
new file mode 100644
index 000000000..4b4784b61
--- /dev/null
+++ b/briar-android/src/main/res/drawable/ic_custodian_optional.xml
@@ -0,0 +1,5 @@
+
+
+
\ No newline at end of file
diff --git a/briar-android/src/main/res/drawable/ic_custodian_required.xml b/briar-android/src/main/res/drawable/ic_custodian_required.xml
new file mode 100644
index 000000000..fe80125ad
--- /dev/null
+++ b/briar-android/src/main/res/drawable/ic_custodian_required.xml
@@ -0,0 +1,5 @@
+
+
+