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