naming improvements

This commit is contained in:
Craig Raw 2020-05-21 11:01:20 +02:00
parent 06de1d7e14
commit 785040898b
3 changed files with 34 additions and 4 deletions

View file

@ -126,13 +126,18 @@ public class Wallet {
return !keystores.stream().map(Keystore::getLabel).allMatch(new HashSet<>()::add); return !keystores.stream().map(Keystore::getLabel).allMatch(new HashSet<>()::add);
} }
public int makeLabelsUnique(Keystore newKeystore) { public void makeLabelsUnique(Keystore newKeystore) {
makeLabelsUnique(newKeystore, false);
}
private int makeLabelsUnique(Keystore newKeystore, boolean duplicateFound) {
int max = 0; int max = 0;
for(Keystore keystore : getKeystores()) { for(Keystore keystore : getKeystores()) {
if(newKeystore != keystore && keystore.getLabel().startsWith(newKeystore.getLabel())) { if(newKeystore != keystore && keystore.getLabel().startsWith(newKeystore.getLabel())) {
duplicateFound = true;
String remainder = keystore.getLabel().substring(newKeystore.getLabel().length()); String remainder = keystore.getLabel().substring(newKeystore.getLabel().length());
if(remainder.length() == 0) { if(remainder.length() == 0) {
max = makeLabelsUnique(keystore); max = makeLabelsUnique(keystore, true);
} else { } else {
try { try {
int count = Integer.parseInt(remainder.trim()); int count = Integer.parseInt(remainder.trim());
@ -144,8 +149,10 @@ public class Wallet {
} }
} }
if(duplicateFound) {
max++; max++;
newKeystore.setLabel(newKeystore.getLabel() + " " + max); newKeystore.setLabel(newKeystore.getLabel() + " " + max);
}
return max; return max;
} }
@ -171,6 +178,16 @@ public class Wallet {
return false; return false;
} }
public boolean containsSource(KeystoreSource keystoreSource) {
for(Keystore keystore : keystores) {
if(keystoreSource.equals(keystore.getSource())) {
return true;
}
}
return false;
}
public boolean isEncrypted() { public boolean isEncrypted() {
for(Keystore keystore : keystores) { for(Keystore keystore : keystores) {
if(keystore.isEncrypted()) { if(keystore.isEncrypted()) {

View file

@ -30,6 +30,9 @@ public enum WalletModel {
String[] words = line.split("_"); String[] words = line.split("_");
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
for(String word : words) { for(String word : words) {
if(word.equals("1")) {
word = "one";
}
builder.append(Character.toUpperCase(word.charAt(0))); builder.append(Character.toUpperCase(word.charAt(0)));
builder.append(word.substring(1)); builder.append(word.substring(1));
builder.append(" "); builder.append(" ");

View file

@ -55,5 +55,15 @@ public class WalletTest {
wallet.makeLabelsUnique(cckeystore); wallet.makeLabelsUnique(cckeystore);
Assert.assertEquals("Coldcard 3", keystore3.getLabel()); Assert.assertEquals("Coldcard 3", keystore3.getLabel());
Assert.assertEquals("Coldcard 4", cckeystore.getLabel()); Assert.assertEquals("Coldcard 4", cckeystore.getLabel());
Keystore eekeystore = new Keystore("Electrum");
wallet.makeLabelsUnique(cckeystore);
Assert.assertEquals("Electrum", eekeystore.getLabel());
wallet.getKeystores().add(eekeystore);
Keystore eekeystore2 = new Keystore("Electrum");
wallet.makeLabelsUnique(eekeystore2);
Assert.assertEquals("Electrum 1", eekeystore.getLabel());
Assert.assertEquals("Electrum 2", eekeystore2.getLabel());
} }
} }