From 419d28163ebec8c4c383d855fc4d9c485e1a6bf0 Mon Sep 17 00:00:00 2001 From: Sylvia van Os Date: Mon, 29 May 2023 16:09:27 +0200 Subject: [PATCH] Long-press card icon in view activity to change it --- CHANGELOG.md | 4 ++++ .../card_locker/LoyaltyCardEditActivity.java | 11 ++++++++++ .../card_locker/LoyaltyCardViewActivity.java | 22 +++++++++++++++---- app/src/main/res/values/strings.xml | 1 + 4 files changed, 34 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9fb910e9e..a51041b0e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## Unreleased - 122 + +- Long-press card icon in view activity to change it + ## v2.23.1 - 121 - Update used libraries diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java index 09d877774..f2cb7ca11 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java @@ -118,6 +118,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements public static final String BUNDLE_ID = "id"; public static final String BUNDLE_DUPLICATE_ID = "duplicateId"; public static final String BUNDLE_UPDATE = "update"; + public static final String BUNDLE_OPEN_SET_ICON_MENU = "openSetIconMenu"; public static final String BUNDLE_CARDID = "cardId"; public static final String BUNDLE_BARCODEID = "barcodeId"; public static final String BUNDLE_BARCODETYPE = "barcodeType"; @@ -152,6 +153,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements int loyaltyCardId; boolean updateLoyaltyCard; boolean duplicateFromLoyaltyCardId; + boolean openSetIconMenu; String cardId; String barcodeId; String barcodeType; @@ -238,6 +240,8 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements updateLoyaltyCard = b != null && b.getBoolean(BUNDLE_UPDATE, false); duplicateFromLoyaltyCardId = b != null && b.getBoolean(BUNDLE_DUPLICATE_ID, false); + openSetIconMenu = b != null && b.getBoolean(BUNDLE_OPEN_SET_ICON_MENU, false); + cardId = b != null ? b.getString(BUNDLE_CARDID) : null; barcodeId = b != null ? b.getString(BUNDLE_BARCODEID) : null; barcodeType = b != null ? b.getString(BUNDLE_BARCODETYPE) : null; @@ -897,6 +901,13 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements } onResuming = false; + + // Fake click on the edit icon to cause the set icon option to pop up if the icon was + // long-pressed in the view activity + if (openSetIconMenu) { + openSetIconMenu = false; + thumbnail.callOnClick(); + } } protected void setColorFromIcon() { diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java index 57afa8368..80d2c81b4 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java @@ -288,8 +288,8 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements binding.fabEdit.setOnClickListener(v -> { Intent intent = new Intent(getApplicationContext(), LoyaltyCardEditActivity.class); Bundle bundle = new Bundle(); - bundle.putInt("id", loyaltyCardId); - bundle.putBoolean("update", true); + bundle.putInt(LoyaltyCardEditActivity.BUNDLE_ID, loyaltyCardId); + bundle.putBoolean(LoyaltyCardEditActivity.BUNDLE_UPDATE, true); intent.putExtras(bundle); startActivity(intent); finish(); @@ -301,6 +301,20 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements binding.bottomAppBarNextButton.setOnClickListener(view -> prevNextCard(true)); binding.bottomAppBarUpdateBalanceButton.setOnClickListener(view -> showBalanceUpdateDialog()); + binding.iconContainer.setOnClickListener(view -> Toast.makeText(LoyaltyCardViewActivity.this, R.string.icon_header_click_text, Toast.LENGTH_LONG).show()); + binding.iconContainer.setOnLongClickListener(view -> { + Intent intent = new Intent(getApplicationContext(), LoyaltyCardEditActivity.class); + Bundle bundle = new Bundle(); + bundle.putInt(LoyaltyCardEditActivity.BUNDLE_ID, loyaltyCardId); + bundle.putBoolean(LoyaltyCardEditActivity.BUNDLE_UPDATE, true); + bundle.putBoolean(LoyaltyCardEditActivity.BUNDLE_OPEN_SET_ICON_MENU, true); + intent.putExtras(bundle); + startActivity(intent); + finish(); + + return true; + }); + binding.mainImage.setOnClickListener(view -> onMainImageTap()); // This long-press was originally only intended for when Talkback was used but sadly limiting // this doesn't seem to work well @@ -743,8 +757,8 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements } else if (id == R.id.action_duplicate) { Intent intent = new Intent(getApplicationContext(), LoyaltyCardEditActivity.class); Bundle bundle = new Bundle(); - bundle.putInt("id", loyaltyCardId); - bundle.putBoolean("duplicateId", true); + bundle.putInt(LoyaltyCardEditActivity.BUNDLE_ID, loyaltyCardId); + bundle.putBoolean(LoyaltyCardEditActivity.BUNDLE_DUPLICATE_ID, true); intent.putExtras(bundle); startActivity(intent); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3562fccd8..54e40d0ab 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -313,4 +313,5 @@ Open back image in gallery app Set barcode height Donate + Long press to edit icon