diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ef087770..75d495bb8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ Changes: - Fix selected colour in colour changing dialog +- Support for deleting multiple cards at once ## v2.0.4 (2021-07-27) diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java index a88812c8d..07fd5186a 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java @@ -1059,32 +1059,20 @@ public class LoyaltyCardEditActivity extends AppCompatActivity case R.id.action_delete: AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle(R.string.deleteTitle); - builder.setMessage(R.string.deleteConfirmation); - builder.setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() - { - @Override - public void onClick(DialogInterface dialog, int which) - { - Log.e(TAG, "Deleting card: " + loyaltyCardId); + builder.setTitle(getResources().getQuantityString(R.plurals.deleteCardsTitle, 1)); + builder.setMessage(getResources().getQuantityString(R.plurals.deleteCardsConfirmation, 1, 1)); + builder.setPositiveButton(R.string.confirm, (dialog, which) -> { + Log.e(TAG, "Deleting card: " + loyaltyCardId); - DBHelper db = new DBHelper(LoyaltyCardEditActivity.this); - db.deleteLoyaltyCard(loyaltyCardId); + DBHelper db = new DBHelper(LoyaltyCardEditActivity.this); + db.deleteLoyaltyCard(loyaltyCardId); - ShortcutHelper.removeShortcut(LoyaltyCardEditActivity.this, loyaltyCardId); + ShortcutHelper.removeShortcut(LoyaltyCardEditActivity.this, loyaltyCardId); - finish(); - dialog.dismiss(); - } - }); - builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() - { - @Override - public void onClick(DialogInterface dialog, int which) - { - dialog.dismiss(); - } + finish(); + dialog.dismiss(); }); + builder.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); AlertDialog dialog = builder.create(); dialog.show(); diff --git a/app/src/main/java/protect/card_locker/MainActivity.java b/app/src/main/java/protect/card_locker/MainActivity.java index 152b264bb..bbd060ab2 100644 --- a/app/src/main/java/protect/card_locker/MainActivity.java +++ b/app/src/main/java/protect/card_locker/MainActivity.java @@ -25,6 +25,7 @@ import com.google.android.material.tabs.TabLayout; import java.io.UnsupportedEncodingException; import java.util.List; +import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.view.ActionMode; import androidx.appcompat.widget.SearchView; @@ -50,8 +51,7 @@ public class MainActivity extends AppCompatActivity implements LoyaltyCardCursor private ActionMode.Callback mCurrentActionModeCallback = new ActionMode.Callback() { @Override - public boolean onCreateActionMode(ActionMode inputMode, Menu inputMenu) - { + public boolean onCreateActionMode(ActionMode inputMode, Menu inputMenu) { inputMode.getMenuInflater().inflate(R.menu.card_longclick_menu, inputMenu); return true; } @@ -63,10 +63,8 @@ public class MainActivity extends AppCompatActivity implements LoyaltyCardCursor } @Override - public boolean onActionItemClicked(ActionMode inputMode, MenuItem inputItem) - { - if (inputItem.getItemId() == R.id.action_copy_to_clipboard) - { + public boolean onActionItemClicked(ActionMode inputMode, MenuItem inputItem) { + if (inputItem.getItemId() == R.id.action_copy_to_clipboard) { ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); String clipboardData; @@ -94,9 +92,7 @@ public class MainActivity extends AppCompatActivity implements LoyaltyCardCursor Toast.makeText(MainActivity.this, cardCount > 1 ? R.string.copy_to_clipboard_multiple_toast : R.string.copy_to_clipboard_toast, Toast.LENGTH_LONG).show(); inputMode.finish(); return true; - } - else if (inputItem.getItemId() == R.id.action_share) - { + } else if (inputItem.getItemId() == R.id.action_share) { final ImportURIHelper importURIHelper = new ImportURIHelper(MainActivity.this); try { importURIHelper.startShareIntent(mAdapter.getSelectedItems()); @@ -106,9 +102,7 @@ public class MainActivity extends AppCompatActivity implements LoyaltyCardCursor } inputMode.finish(); return true; - } - else if(inputItem.getItemId() == R.id.action_edit) - { + } else if(inputItem.getItemId() == R.id.action_edit) { if (mAdapter.getSelectedItemCount() != 1) { throw new IllegalArgumentException("Cannot edit more than 1 card at a time"); } @@ -120,6 +114,32 @@ public class MainActivity extends AppCompatActivity implements LoyaltyCardCursor intent.putExtras(bundle); startActivity(intent); inputMode.finish(); + return true; + } else if(inputItem.getItemId() == R.id.action_delete) { + AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); + builder.setTitle(getResources().getQuantityString(R.plurals.deleteCardsTitle, mAdapter.getSelectedItemCount())); + builder.setMessage(getResources().getQuantityString(R.plurals.deleteCardsConfirmation, mAdapter.getSelectedItemCount(), mAdapter.getSelectedItemCount())); + builder.setPositiveButton(R.string.confirm, (dialog, which) -> { + DBHelper db = new DBHelper(MainActivity.this); + + for (LoyaltyCard loyaltyCard : mAdapter.getSelectedItems()) { + Log.e(TAG, "Deleting card: " + loyaltyCard.id); + + db.deleteLoyaltyCard(loyaltyCard.id); + + ShortcutHelper.removeShortcut(MainActivity.this, loyaltyCard.id); + } + + TabLayout.Tab tab = ((TabLayout) findViewById(R.id.groups)).getTabAt(selectedTab); + + updateLoyaltyCardList(mFilter, tab != null ? tab.getTag() : null); + + dialog.dismiss(); + }); + builder.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); + AlertDialog dialog = builder.create(); + dialog.show(); + return true; } diff --git a/app/src/main/res/menu/card_longclick_menu.xml b/app/src/main/res/menu/card_longclick_menu.xml index 2e23a87de..54ea4b6a5 100644 --- a/app/src/main/res/menu/card_longclick_menu.xml +++ b/app/src/main/res/menu/card_longclick_menu.xml @@ -7,20 +7,27 @@ android:title="@string/copy_to_clipboard" android:icon="@drawable/ic_copy" android:titleCondensed="@string/copy_to_clipboard" - app:showAsAction="always"/> + app:showAsAction="ifRoom"/> + app:showAsAction="ifRoom"/> + app:showAsAction="ifRoom"/> + + \ No newline at end of file diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index cfd0c9f1c..b5ed1eaf1 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -122,8 +122,6 @@ Споделя Копира идентификатора в междинната памет Добре - Потвърдете премахване на карта - Премахване на карта Картите са внесени успешно От къде ще внесете\? Изберете файла catima.zip, предварително изнесен от Catima. diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 2820eba67..bbc1b6603 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -12,8 +12,6 @@ Editovat Smazat Potvrdit - Odstzranit věrnostní kartu - Opravdu chcete smazat tuto věrnostní kartu? Ano Kopírovat ID do schránky Odeslat… diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index c57492af1..95a50a6ca 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -16,8 +16,6 @@ Rotation zulassen Zu den Favoriten hinzufügen Aus der Favoritenliste entfernen - Karte entfernen - Diese Karte löschen\? OK Nummer in die Zwischenablage kopieren Senden … diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml index 3531169fc..3154cbdee 100644 --- a/app/src/main/res/values-el-rGR/strings.xml +++ b/app/src/main/res/values-el-rGR/strings.xml @@ -12,8 +12,6 @@ Επιβεβαίωση Αποκλεισμός Περιστροφής Περιστροφή - Αφαίρεση Κάρτας - Παρακαλώ επιβεβαιώστε ότι θέλετε να διαγράψετε αυτή την κάρτα. Εντάξει Αντιγραφή κωδικού στο πρόχειρο Αποστολή… diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index bdd456ff2..134496098 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -1,7 +1,5 @@ - Ĉu forigi ĉi tiun karton\? - Forigi karton Strekokodo mankas al karto Forigi Sen strekokodo diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 434026fbd..d7778fba0 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -12,8 +12,6 @@ Confirmar Bloquear giro Desbloquear giro - Eliminar tarjeta - ¿Quiere eliminar esta tarjeta\? Aceptar Copiar id. en portapapeles Enviar… diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 1e66f6a4a..bed222089 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -128,8 +128,6 @@ Jaa Kopioi ID-tunnus leikepöydälle OK - Poista tämä kortti\? - Poista kortti Poista kierron esto Estä kierto Vahvista diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 3a23e5cf6..5300012e0 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -12,8 +12,6 @@ Confirmer Désactiver la rotation Activer la rotation - Supprimer la carte de fidélité - Supprimer cette carte \? OK Copier le numéro dans le presse-papier Envoyer… diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index c268f2594..da50e5228 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -15,8 +15,6 @@ Conferma Blocca rotazione Sblocca rotazione - Rimuovi carta fedeltà - Eliminare questa carta\? OK Copia ID negli appunti Condividi diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index eb822ca46..04d2a50d1 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -120,8 +120,6 @@ 共有 カード番号をクリップボードにコピーする 確定 - このカードを削除しますか? - カードの削除 自動回転を無効にしない 自動回転を無効にする 確認 diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index a6f56566e..911f206ac 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -31,8 +31,6 @@ 공유 ID를 클립보드에 복사 확인 - 정말 이 카드를 삭제하시겠습니까\? - 카드 제거 회전 잠금 해제 회전 잠금 확인 diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 23c678df4..d3773666a 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -10,8 +10,6 @@ Redaguoti Ištrinti Patvirtinti - Panaikinti lojalumo kortelę - Ištrinti šią kortelę\? Gerai Nukopijuoti ID į iškarpinę Redaguoti lojalumo kortelę diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index f98f1b95e..91b6d0bef 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -13,8 +13,6 @@ Bekreft Ingen rotering Skru på rotering - Fjern kundekort - Slett dette kortet\? OK Kopier ID til utklippstavle Send… diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 57c51ca1f..0e680fee4 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -16,8 +16,6 @@ Bevestigen Draaien niet toestaan Draaien toestaan - Kaart verwijderen - Kaart verwijderen\? Oké Kaartnummer kopiëren naar klembord Delen diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 05140780f..8edeead36 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -15,8 +15,6 @@ Potwierdź Zablokuj autoobracanie ekranu Odblokuj autoobracanie ekranu - Usuń kartę lojalnościową - Potwierdź, że chcesz usunąć tę kartę. OK Skopiuj identyfikator do schowka Udostępnij diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 34e04939e..93494db5e 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -16,8 +16,6 @@ Подтвердить Блокировать поворот экрана Автоповорот экрана - Удаление карты - Удалить карту\? ОК Копировать номер карты Переслать diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index de70176dd..48ffde1e1 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -14,8 +14,6 @@ Potvrdiť Zakázať rotáciu Povoliť rotáciu - Odstrániť kartu - Naozaj chcete túto kartu odstrániť? Áno Kopírovať ID do schránky Odoslať… diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index 77de471e1..aa545de50 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -12,8 +12,6 @@ Potrdi Onemogoči obračanje zaslona Omogoči obračanje zaslona - Odstrani kartico zvestobe - Prosim potrdite, če želite izbrisati to kartico. Vredu Kopirajte številko kartice Pošlji… diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 6a5d03be6..ea7aba5fa 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -134,8 +134,6 @@ Поділитися Копіювати ID до буферу обміну ОК - Бажаєте видалити карту\? - Видалити карту Розблокувати обертання Блокувати обертання Підтвердити diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index a21772158..c79450fd6 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -123,8 +123,6 @@ 分享 复制卡号到剪贴板 确定 - 删除此卡? - 移除卡片 解除旋转锁定 锁定旋转 确认 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2b521658e..82f39c842 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -29,8 +29,14 @@ Confirm Block Rotation Unblock Rotation - Remove Card - Delete this card? + + Delete Card + Delete Cards + + + Are you sure you want to permanently delete this card? This cannot be undone. + Are you sure you want to permanently delete these %d cards? This cannot be undone. + OK Copy ID to clipboard Share