From df9684a31c3353638c3290b75f7bdc1bec93cd19 Mon Sep 17 00:00:00 2001 From: Johannes Henninger Date: Fri, 4 Jun 2021 14:21:17 +0200 Subject: [PATCH] Fix blank text in delete dialog for entries with no issuer Fixes #758 --- .../beemdevelopment/aegis/ui/EditEntryActivity.java | 2 +- .../com/beemdevelopment/aegis/ui/MainActivity.java | 2 +- .../beemdevelopment/aegis/ui/dialogs/Dialogs.java | 12 +++++++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/EditEntryActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/EditEntryActivity.java index 85a5f85f..3e9fc3af 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/EditEntryActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/EditEntryActivity.java @@ -398,7 +398,7 @@ public class EditEntryActivity extends AegisActivity { onSave(); break; case R.id.action_delete: - Dialogs.showDeleteEntriesDialog(this, Collections.singletonList(_origEntry.getIssuer()), (dialog, which) -> { + Dialogs.showDeleteEntriesDialog(this, Collections.singletonList(_origEntry), (dialog, which) -> { deleteAndFinish(_origEntry); }); break; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java index 3c837341..90d1fd1a 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java @@ -795,7 +795,7 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene return true; case R.id.action_delete: - Dialogs.showDeleteEntriesDialog(MainActivity.this, _selectedEntries.stream().map(VaultEntry::getIssuer).collect(Collectors.toList()), (d, which) -> { + Dialogs.showDeleteEntriesDialog(MainActivity.this, _selectedEntries, (d, which) -> { deleteEntries(_selectedEntries); for (VaultEntry entry : _selectedEntries) { diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/Dialogs.java b/app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/Dialogs.java index 7cc6be9a..2209d19e 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/Dialogs.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/Dialogs.java @@ -10,7 +10,6 @@ import android.content.res.ColorStateList; import android.graphics.Color; import android.text.Editable; import android.text.InputType; -import android.text.TextUtils; import android.text.TextWatcher; import android.text.method.PasswordTransformationMethod; import android.view.LayoutInflater; @@ -36,6 +35,7 @@ import com.beemdevelopment.aegis.helpers.EditTextHelper; import com.beemdevelopment.aegis.helpers.PasswordStrengthHelper; import com.beemdevelopment.aegis.importers.DatabaseImporter; import com.beemdevelopment.aegis.ui.tasks.KeyDerivationTask; +import com.beemdevelopment.aegis.vault.VaultEntry; import com.beemdevelopment.aegis.vault.slots.PasswordSlot; import com.beemdevelopment.aegis.vault.slots.Slot; import com.beemdevelopment.aegis.vault.slots.SlotException; @@ -66,11 +66,17 @@ public class Dialogs { dialog.show(); } - public static void showDeleteEntriesDialog(Activity activity, List services, DialogInterface.OnClickListener onDelete) { + public static void showDeleteEntriesDialog(Activity activity, List services, DialogInterface.OnClickListener onDelete) { View view = activity.getLayoutInflater().inflate(R.layout.dialog_delete_entry, null); TextView textMessage = view.findViewById(R.id.text_message); TextView textExplanation = view.findViewById(R.id.text_explanation); - textExplanation.setText(activity.getString(R.string.delete_entry_explanation, TextUtils.join(", ", services))); + String entries = services.stream() + .map(entry -> !entry.getIssuer().isEmpty() ? entry.getIssuer() + : !entry.getName().isEmpty() ? entry.getName() + : activity.getString(R.string.unknown_issuer) + ) + .collect(Collectors.joining(", ")); + textExplanation.setText(activity.getString(R.string.delete_entry_explanation, entries)); String title, message; if (services.size() > 1) {