diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java index 15cc1c2e5..9d1319291 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java @@ -108,6 +108,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity { private static final int PERMISSION_REQUEST_CAMERA_IMAGE_ICON = 102; 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_CARDID = "cardId"; public static final String BUNDLE_BARCODEID = "barcodeId"; @@ -140,6 +141,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity { int loyaltyCardId; boolean updateLoyaltyCard; + boolean duplicateFromLoyaltyCardId; String cardId; String barcodeId; String barcodeType; @@ -223,6 +225,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity { final Bundle b = intent.getExtras(); loyaltyCardId = b != null ? b.getInt(BUNDLE_ID) : 0; updateLoyaltyCard = b != null && b.getBoolean(BUNDLE_UPDATE, false); + duplicateFromLoyaltyCardId = b != null && b.getBoolean(BUNDLE_DUPLICATE_ID, false); cardId = b != null ? b.getString(BUNDLE_CARDID) : null; barcodeId = b != null ? b.getString(BUNDLE_BARCODEID) : null; @@ -749,9 +752,8 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity { onResuming = true; - if (tempLoyaltyCard == null) { - if (updateLoyaltyCard) { + if (updateLoyaltyCard || duplicateFromLoyaltyCardId) { tempLoyaltyCard = DBHelper.getLoyaltyCard(mDatabase, loyaltyCardId); if (tempLoyaltyCard == null) { Log.w(TAG, "Could not lookup loyalty card " + loyaltyCardId); @@ -775,7 +777,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity { } if (!initDone) { - if (updateLoyaltyCard) { + if (updateLoyaltyCard || duplicateFromLoyaltyCardId) { setTitle(R.string.editCardTitle); if (!mFrontImageUnsaved && !croppedFrontImage() && !mFrontImageRemoved) { @@ -1307,6 +1309,10 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity { ShortcutHelper.updateShortcuts(this, DBHelper.getLoyaltyCard(mDatabase, loyaltyCardId)); + if(duplicateFromLoyaltyCardId){ + Intent intent = new Intent(getApplicationContext(), MainActivity.class); + startActivity(intent); + } finish(); } diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java index da3839a91..d16f796fd 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java @@ -735,6 +735,16 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements } return true; + case R.id.action_duplicate: + loyaltyCard = DBHelper.getLoyaltyCard(database, loyaltyCardId); + Intent intent = new Intent(getApplicationContext(), LoyaltyCardEditActivity.class); + Bundle bundle = new Bundle(); + bundle.putInt("id", loyaltyCardId); + bundle.putBoolean("duplicateId", true); + intent.putExtras(bundle); + startActivity(intent); + return true; + case R.id.action_lock_unlock: if (rotationEnabled) { setOrientatonLock(item, true); @@ -760,7 +770,6 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements int orientation = getResources().getConfiguration().orientation; if (orientation == Configuration.ORIENTATION_LANDSCAPE) { Log.d(TAG, "Detected landscape mode"); - setTitle(loyaltyCard.store); collapsingToolbarLayout.setVisibility(View.GONE); diff --git a/app/src/main/res/menu/card_view_menu.xml b/app/src/main/res/menu/card_view_menu.xml index 8ec7cea6c..55f2bda70 100644 --- a/app/src/main/res/menu/card_view_menu.xml +++ b/app/src/main/res/menu/card_view_menu.xml @@ -2,6 +2,10 @@