Generate TextDrawable based on issuer and use account name as fallback

pull/120/head
Alexander Bakker 7 years ago
parent 4a4ab1a82c
commit 3aba0f3f47

@ -8,13 +8,16 @@ public class TextDrawableHelper {
}
public static TextDrawable generate(String s) {
if (s == null || s.length() <= 1) {
return null;
public static TextDrawable generate(String text, String fallback) {
if (text == null || text.isEmpty()) {
if (fallback == null || fallback.isEmpty()) {
return null;
}
text = fallback;
}
ColorGenerator generator = ColorGenerator.MATERIAL;
int color = generator.getColor(s);
return TextDrawable.builder().buildRound(s.substring(0, 1).toUpperCase(), color);
int color = generator.getColor(text);
return TextDrawable.builder().buildRound(text.substring(0, 1).toUpperCase(), color);
}
}

@ -97,7 +97,7 @@ public class EditEntryActivity extends AegisActivity {
// fill the fields with values if possible
if (_entry != null) {
TextDrawable drawable = TextDrawableHelper.generate(_entry.getName());
TextDrawable drawable = TextDrawableHelper.generate(_entry.getIssuer(), _entry.getName());
_iconView.setImageDrawable(drawable);
_textName.setText(_entry.getName());
@ -142,21 +142,8 @@ public class EditEntryActivity extends AegisActivity {
_spinnerDigits.setOnItemSelectedListener(_selectedListener);
// update the icon if the text changed
_textName.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
TextDrawable drawable = TextDrawableHelper.generate(s.toString());
_iconView.setImageDrawable(drawable);
}
});
_textIssuer.addTextChangedListener(_iconChangeListener);
_textName.addTextChangedListener(_iconChangeListener);
// show/hide period and counter fields on type change
_spinnerType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@ -406,6 +393,22 @@ public class EditEntryActivity extends AegisActivity {
}
};
private TextWatcher _iconChangeListener = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
TextDrawable drawable = TextDrawableHelper.generate(_textIssuer.getText().toString(), _textName.getText().toString());
_iconView.setImageDrawable(drawable);
}
};
private class SpinnerItemSelectedListener implements AdapterView.OnItemSelectedListener, View.OnTouchListener {
private boolean _userSelect = false;

@ -64,7 +64,7 @@ public class EntryHolder extends RecyclerView.ViewHolder {
_profileIssuer.setText(" - " + entry.getIssuer());
}
TextDrawable drawable = TextDrawableHelper.generate(entry.getName());
TextDrawable drawable = TextDrawableHelper.generate(entry.getIssuer(), entry.getName());
_profileDrawable.setImageDrawable(drawable);
refreshCode();

Loading…
Cancel
Save