From b5d41b0ab2f09c4a3f8389e1615b468b70f87cca Mon Sep 17 00:00:00 2001 From: Sergio Date: Fri, 27 Dec 2019 01:56:40 +0100 Subject: [PATCH 1/9] #308 Display barcode format on display loyalty card view --- .../card_locker/LoyaltyCardViewActivity.java | 7 ++++ .../res/layout/loyalty_card_view_layout.xml | 34 ++++++++++++++++++- app/src/main/res/values/strings.xml | 1 + 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java index f91014d68..28b4057a5 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java @@ -42,6 +42,8 @@ public class LoyaltyCardViewActivity extends AppCompatActivity TextView cardIdFieldView; TextView noteView; View noteViewDivider; + TextView barcodeFormatView; + View barcodeFormatViewDivider; TextView storeName; ImageView barcodeImage; View collapsingToolbarLayout; @@ -107,6 +109,8 @@ public class LoyaltyCardViewActivity extends AppCompatActivity cardIdFieldView = findViewById(R.id.cardIdView); noteView = findViewById(R.id.noteView); noteViewDivider = findViewById(R.id.noteViewDivider); + barcodeFormatView = findViewById(R.id.barcodeFormatView); + barcodeFormatViewDivider = findViewById(R.id.barcodeFormatViewDivider); storeName = findViewById(R.id.storeName); barcodeImage = findViewById(R.id.barcode); collapsingToolbarLayout = findViewById(R.id.collapsingToolbarLayout); @@ -269,10 +273,13 @@ public class LoyaltyCardViewActivity extends AppCompatActivity Log.d(TAG, "ImageView size known known, creating barcode"); new BarcodeImageWriterTask(barcodeImage, cardIdString, format).execute(); } + barcodeFormatView.setText(getString(R.string.barcodeTypePlaceholder, format)); } else { findViewById(R.id.barcode).setVisibility(View.GONE); + barcodeFormatView.setVisibility(View.GONE); + barcodeFormatViewDivider.setVisibility(View.GONE); } } diff --git a/app/src/main/res/layout/loyalty_card_view_layout.xml b/app/src/main/res/layout/loyalty_card_view_layout.xml index e224353cf..ebb300cab 100644 --- a/app/src/main/res/layout/loyalty_card_view_layout.xml +++ b/app/src/main/res/layout/loyalty_card_view_layout.xml @@ -27,6 +27,13 @@ android:orientation="horizontal" app:layout_constraintGuide_percent="0.5"/> + + + + + + + Note Card ID Barcode Type + Barcode Type: %1$s This card has no barcode Cancel From 0d67680e7f00502f1a34151d59aecb01d04d5353 Mon Sep 17 00:00:00 2001 From: Sergio Date: Mon, 6 Jan 2020 18:06:30 +0100 Subject: [PATCH 2/9] #308 Display barcode format on select barcode view --- .../card_locker/BarcodeImageWriterTask.java | 13 +- .../card_locker/BarcodeSelectorActivity.java | 39 ++--- .../card_locker/LoyaltyCardEditActivity.java | 4 +- .../card_locker/LoyaltyCardViewActivity.java | 4 +- .../res/layout/barcode_selector_activity.xml | 143 +++++++++++++++--- 5 files changed, 158 insertions(+), 45 deletions(-) diff --git a/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java b/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java index 9ef6b7115..6aae3f5ca 100644 --- a/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java +++ b/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java @@ -5,6 +5,7 @@ import android.os.AsyncTask; import android.util.Log; import android.view.View; import android.widget.ImageView; +import android.widget.TextView; import com.google.zxing.BarcodeFormat; import com.google.zxing.MultiFormatWriter; @@ -28,16 +29,18 @@ class BarcodeImageWriterTask extends AsyncTask private static final int MAX_WIDTH_2D = 500; private final WeakReference imageViewReference; + private final WeakReference textViewReference; private final String cardId; private final BarcodeFormat format; private final int imageHeight; private final int imageWidth; BarcodeImageWriterTask(ImageView imageView, String cardIdString, - BarcodeFormat barcodeFormat) + BarcodeFormat barcodeFormat, TextView textView) { // Use a WeakReference to ensure the ImageView can be garbage collected imageViewReference = new WeakReference<>(imageView); + textViewReference = new WeakReference<>(textView); cardId = cardIdString; format = barcodeFormat; @@ -175,16 +178,24 @@ class BarcodeImageWriterTask extends AsyncTask } imageView.setImageBitmap(result); + TextView textView = textViewReference.get(); if(result != null) { Log.i(TAG, "Displaying barcode"); imageView.setVisibility(View.VISIBLE); + + if (textView != null) { + textView.setVisibility(View.VISIBLE); + textView.setText(format.name()); + } } else { Log.i(TAG, "Barcode generation failed, removing image from display"); imageView.setVisibility(View.GONE); + if (textView != null) + textView.setVisibility(View.GONE); } } } diff --git a/app/src/main/java/protect/card_locker/BarcodeSelectorActivity.java b/app/src/main/java/protect/card_locker/BarcodeSelectorActivity.java index 18becdcc6..0c00615b7 100644 --- a/app/src/main/java/protect/card_locker/BarcodeSelectorActivity.java +++ b/app/src/main/java/protect/card_locker/BarcodeSelectorActivity.java @@ -11,11 +11,13 @@ import androidx.appcompat.widget.Toolbar; import android.text.Editable; import android.text.TextWatcher; import android.util.Log; +import android.util.Pair; import android.view.MenuItem; import android.view.View; import android.view.ViewTreeObserver; import android.widget.EditText; import android.widget.ImageView; +import android.widget.TextView; import com.google.common.collect.ImmutableMap; import com.google.zxing.BarcodeFormat; @@ -58,7 +60,7 @@ public class BarcodeSelectorActivity extends AppCompatActivity BarcodeFormat.UPC_A.name() )); - private Map barcodeViewMap; + private Map> barcodeViewMap; private LinkedList barcodeGeneratorTasks = new LinkedList<>(); @Override @@ -75,18 +77,18 @@ public class BarcodeSelectorActivity extends AppCompatActivity actionBar.setDisplayHomeAsUpEnabled(true); } - barcodeViewMap = ImmutableMap.builder() - .put(BarcodeFormat.AZTEC.name(), R.id.aztecBarcode) - .put(BarcodeFormat.CODE_39.name(), R.id.code39Barcode) - .put(BarcodeFormat.CODE_128.name(), R.id.code128Barcode) - .put(BarcodeFormat.CODABAR.name(), R.id.codabarBarcode) - .put(BarcodeFormat.DATA_MATRIX.name(), R.id.datamatrixBarcode) - .put(BarcodeFormat.EAN_8.name(), R.id.ean8Barcode) - .put(BarcodeFormat.EAN_13.name(), R.id.ean13Barcode) - .put(BarcodeFormat.ITF.name(), R.id.itfBarcode) - .put(BarcodeFormat.PDF_417.name(), R.id.pdf417Barcode) - .put(BarcodeFormat.QR_CODE.name(), R.id.qrcodeBarcode) - .put(BarcodeFormat.UPC_A.name(), R.id.upcaBarcode) + barcodeViewMap = ImmutableMap.>builder() + .put(BarcodeFormat.AZTEC.name(), new Pair<>(R.id.aztecBarcode, R.id.aztecBarcodeText)) + .put(BarcodeFormat.CODE_39.name(), new Pair<>(R.id.code39Barcode, R.id.code39BarcodeText)) + .put(BarcodeFormat.CODE_128.name(), new Pair<>(R.id.code128Barcode, R.id.code128BarcodeText)) + .put(BarcodeFormat.CODABAR.name(), new Pair<>(R.id.codabarBarcode, R.id.codabarBarcodeText)) + .put(BarcodeFormat.DATA_MATRIX.name(), new Pair<>(R.id.datamatrixBarcode, R.id.datamatrixBarcodeText)) + .put(BarcodeFormat.EAN_8.name(), new Pair<>(R.id.ean8Barcode, R.id.ean8BarcodeText)) + .put(BarcodeFormat.EAN_13.name(), new Pair<>(R.id.ean13Barcode, R.id.ean13BarcodeText)) + .put(BarcodeFormat.ITF.name(), new Pair<>(R.id.itfBarcode, R.id.itfBarcodeText)) + .put(BarcodeFormat.PDF_417.name(), new Pair<>(R.id.pdf417Barcode, R.id.pdf417BarcodeText)) + .put(BarcodeFormat.QR_CODE.name(), new Pair<>(R.id.qrcodeBarcode, R.id.qrcodeBarcodeText)) + .put(BarcodeFormat.UPC_A.name(), new Pair<>(R.id.upcaBarcode, R.id.upcaBarcodeText)) .build(); EditText cardId = findViewById(R.id.cardId); @@ -113,8 +115,9 @@ public class BarcodeSelectorActivity extends AppCompatActivity // Update barcodes for(String key : barcodeViewMap.keySet()) { - ImageView image = findViewById(barcodeViewMap.get(key)); - createBarcodeOption(image, key, s.toString()); + ImageView image = findViewById(barcodeViewMap.get(key).first); + TextView text = findViewById(barcodeViewMap.get(key).second); + createBarcodeOption(image, key, s.toString(), text); } View noBarcodeButtonView = findViewById(R.id.noBarcode); @@ -153,7 +156,7 @@ public class BarcodeSelectorActivity extends AppCompatActivity }); } - private void createBarcodeOption(final ImageView image, final String formatType, final String cardId) + private void createBarcodeOption(final ImageView image, final String formatType, final String cardId, final TextView text) { final BarcodeFormat format = BarcodeFormat.valueOf(formatType); if(format == null) @@ -198,7 +201,7 @@ public class BarcodeSelectorActivity extends AppCompatActivity } Log.d(TAG, "Generating barcode for type " + formatType); - BarcodeImageWriterTask task = new BarcodeImageWriterTask(image, cardId, format); + BarcodeImageWriterTask task = new BarcodeImageWriterTask(image, cardId, format, text); barcodeGeneratorTasks.add(task); task.execute(); } @@ -207,7 +210,7 @@ public class BarcodeSelectorActivity extends AppCompatActivity else { Log.d(TAG, "Generating barcode for type " + formatType); - BarcodeImageWriterTask task = new BarcodeImageWriterTask(image, cardId, format); + BarcodeImageWriterTask task = new BarcodeImageWriterTask(image, cardId, format, text); barcodeGeneratorTasks.add(task); task.execute(); } diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java index 3a45918c4..b8edf392f 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java @@ -261,14 +261,14 @@ public class LoyaltyCardEditActivity extends AppCompatActivity } Log.d(TAG, "ImageView size now known"); - new BarcodeImageWriterTask(barcodeImage, cardIdString, format).execute(); + new BarcodeImageWriterTask(barcodeImage, cardIdString, format, null).execute(); } }); } else { Log.d(TAG, "ImageView size known known, creating barcode"); - new BarcodeImageWriterTask(barcodeImage, cardIdString, format).execute(); + new BarcodeImageWriterTask(barcodeImage, cardIdString, format, null).execute(); } barcodeImageLayout.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java index 28b4057a5..9ef3c191b 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java @@ -264,14 +264,14 @@ public class LoyaltyCardViewActivity extends AppCompatActivity barcodeImage.getViewTreeObserver().removeOnGlobalLayoutListener(this); Log.d(TAG, "ImageView size now known"); - new BarcodeImageWriterTask(barcodeImage, cardIdString, format).execute(); + new BarcodeImageWriterTask(barcodeImage, cardIdString, format, null).execute(); } }); } else { Log.d(TAG, "ImageView size known known, creating barcode"); - new BarcodeImageWriterTask(barcodeImage, cardIdString, format).execute(); + new BarcodeImageWriterTask(barcodeImage, cardIdString, format, null).execute(); } barcodeFormatView.setText(getString(R.string.barcodeTypePlaceholder, format)); } diff --git a/app/src/main/res/layout/barcode_selector_activity.xml b/app/src/main/res/layout/barcode_selector_activity.xml index 8edd3374f..4e164d389 100644 --- a/app/src/main/res/layout/barcode_selector_activity.xml +++ b/app/src/main/res/layout/barcode_selector_activity.xml @@ -70,137 +70,236 @@ android:layout_height="wrap_content" android:text="@string/barcodeNoBarcode" android:enabled="false" /> - + - + - + - + - + - + - + - + - + - + - + From fb9cf7a393d007c24bf9773c83c0477ba6ff836b Mon Sep 17 00:00:00 2001 From: Sergio Date: Mon, 6 Jan 2020 21:19:52 +0100 Subject: [PATCH 3/9] #308 Display barcode format on edit loyalty card view --- .../card_locker/LoyaltyCardEditActivity.java | 21 +++++-- .../res/layout/loyalty_card_edit_activity.xml | 59 +++++++++++++++++-- .../LoyaltyCardViewActivityTest.java | 46 ++++++++------- 3 files changed, 94 insertions(+), 32 deletions(-) diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java index b8edf392f..6fad80c20 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java @@ -104,7 +104,7 @@ public class LoyaltyCardEditActivity extends AppCompatActivity cardIdFieldView = findViewById(R.id.cardIdView); cardIdDivider = findViewById(R.id.cardIdDivider); cardIdTableRow = findViewById(R.id.cardIdTableRow); - barcodeTypeField = findViewById(R.id.barcodeType); + barcodeTypeField = findViewById(R.id.barcodeTypeView); barcodeImage = findViewById(R.id.barcode); barcodeImageLayout = findViewById(R.id.barcodeLayout); barcodeCaptureLayout = findViewById(R.id.barcodeCaptureLayout); @@ -163,7 +163,7 @@ public class LoyaltyCardEditActivity extends AppCompatActivity if(barcodeTypeField.getText().length() == 0) { - barcodeTypeField.setText(loyaltyCard.barcodeType); + barcodeTypeField.setText(loyaltyCard.barcodeType.isEmpty() ? LoyaltyCardEditActivity.NO_BARCODE : loyaltyCard.barcodeType); } if(headingColorValue == null) @@ -232,7 +232,7 @@ public class LoyaltyCardEditActivity extends AppCompatActivity { if(barcodeTypeField.getText().equals(NO_BARCODE)) { - barcodeImageLayout.setVisibility(View.GONE); + hideBarcode(); } else { @@ -271,7 +271,7 @@ public class LoyaltyCardEditActivity extends AppCompatActivity new BarcodeImageWriterTask(barcodeImage, cardIdString, format, null).execute(); } - barcodeImageLayout.setVisibility(View.VISIBLE); + showBarcode(); } } @@ -507,10 +507,21 @@ public class LoyaltyCardEditActivity extends AppCompatActivity TextView cardIdView = findViewById(R.id.cardIdView); cardIdView.setText(contents); - final TextView barcodeTypeField = findViewById(R.id.barcodeType); // Set special NO_BARCODE value to prevent onResume from overwriting it barcodeTypeField.setText(format.isEmpty() ? LoyaltyCardEditActivity.NO_BARCODE : format); onResume(); } } + + private void showBarcode() { + barcodeImageLayout.setVisibility(View.VISIBLE); + findViewById(R.id.barcodeTypeDivider).setVisibility(View.VISIBLE); + findViewById(R.id.barcodeTypeTableRow).setVisibility(View.VISIBLE); + } + + private void hideBarcode() { + barcodeImageLayout.setVisibility(View.GONE); + findViewById(R.id.barcodeTypeDivider).setVisibility(View.GONE); + findViewById(R.id.barcodeTypeTableRow).setVisibility(View.GONE); + } } diff --git a/app/src/main/res/layout/loyalty_card_edit_activity.xml b/app/src/main/res/layout/loyalty_card_edit_activity.xml index 198a867b0..ab52249bb 100644 --- a/app/src/main/res/layout/loyalty_card_edit_activity.xml +++ b/app/src/main/res/layout/loyalty_card_edit_activity.xml @@ -335,16 +335,65 @@ android:background="@color/inputBorder" /> + + + + + + + + + + + + + + + - - Date: Mon, 6 Jan 2020 21:30:10 +0100 Subject: [PATCH 4/9] Revert "#308 Display barcode format on display loyalty card view" This reverts commit c194a9dd --- .../card_locker/LoyaltyCardViewActivity.java | 7 ---- .../res/layout/loyalty_card_view_layout.xml | 34 +------------------ app/src/main/res/values/strings.xml | 1 - 3 files changed, 1 insertion(+), 41 deletions(-) diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java index 9ef3c191b..78affe0fe 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java @@ -42,8 +42,6 @@ public class LoyaltyCardViewActivity extends AppCompatActivity TextView cardIdFieldView; TextView noteView; View noteViewDivider; - TextView barcodeFormatView; - View barcodeFormatViewDivider; TextView storeName; ImageView barcodeImage; View collapsingToolbarLayout; @@ -109,8 +107,6 @@ public class LoyaltyCardViewActivity extends AppCompatActivity cardIdFieldView = findViewById(R.id.cardIdView); noteView = findViewById(R.id.noteView); noteViewDivider = findViewById(R.id.noteViewDivider); - barcodeFormatView = findViewById(R.id.barcodeFormatView); - barcodeFormatViewDivider = findViewById(R.id.barcodeFormatViewDivider); storeName = findViewById(R.id.storeName); barcodeImage = findViewById(R.id.barcode); collapsingToolbarLayout = findViewById(R.id.collapsingToolbarLayout); @@ -273,13 +269,10 @@ public class LoyaltyCardViewActivity extends AppCompatActivity Log.d(TAG, "ImageView size known known, creating barcode"); new BarcodeImageWriterTask(barcodeImage, cardIdString, format, null).execute(); } - barcodeFormatView.setText(getString(R.string.barcodeTypePlaceholder, format)); } else { findViewById(R.id.barcode).setVisibility(View.GONE); - barcodeFormatView.setVisibility(View.GONE); - barcodeFormatViewDivider.setVisibility(View.GONE); } } diff --git a/app/src/main/res/layout/loyalty_card_view_layout.xml b/app/src/main/res/layout/loyalty_card_view_layout.xml index ebb300cab..e224353cf 100644 --- a/app/src/main/res/layout/loyalty_card_view_layout.xml +++ b/app/src/main/res/layout/loyalty_card_view_layout.xml @@ -27,13 +27,6 @@ android:orientation="horizontal" app:layout_constraintGuide_percent="0.5"/> - - - - - - - Note Card ID Barcode Type - Barcode Type: %1$s This card has no barcode Cancel From 24061dae974311f95c666eb8921d3a08debbe8e7 Mon Sep 17 00:00:00 2001 From: Sergio Date: Mon, 6 Jan 2020 21:40:24 +0100 Subject: [PATCH 5/9] #308 Hide barcode format on add loyalty card view --- .../main/java/protect/card_locker/LoyaltyCardEditActivity.java | 1 + .../java/protect/card_locker/LoyaltyCardViewActivityTest.java | 1 + 2 files changed, 2 insertions(+) diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java index 6fad80c20..da3f55fc6 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java @@ -208,6 +208,7 @@ public class LoyaltyCardEditActivity extends AppCompatActivity else { setTitle(R.string.addCardTitle); + hideBarcode(); } if(headingColorValue == null) diff --git a/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java b/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java index acef9d165..8522ce79a 100644 --- a/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java +++ b/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java @@ -257,6 +257,7 @@ public class LoyaltyCardViewActivityTest Activity activity = (Activity)activityController.get(); checkAllFields(activity, ViewMode.ADD_CARD, "", "", ""); + assertEquals(View.GONE, activity.findViewById(R.id.barcodeTypeTableRow).getVisibility()); } @Test From 72c1a5795304631be0ba327068a014dbd929b550 Mon Sep 17 00:00:00 2001 From: Sergio Date: Sun, 26 Jan 2020 01:20:46 +0100 Subject: [PATCH 6/9] #308 Add new constructor for BarcodeImageWriterTask without associated TextView. Make barcode format selectable --- .../java/protect/card_locker/BarcodeImageWriterTask.java | 8 +++++++- .../java/protect/card_locker/LoyaltyCardEditActivity.java | 4 ++-- .../java/protect/card_locker/LoyaltyCardViewActivity.java | 4 ++-- app/src/main/res/layout/loyalty_card_edit_activity.xml | 1 + 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java b/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java index 6aae3f5ca..60ac03c0d 100644 --- a/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java +++ b/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java @@ -61,6 +61,11 @@ class BarcodeImageWriterTask extends AsyncTask } } + BarcodeImageWriterTask(ImageView imageView, String cardIdString, BarcodeFormat barcodeFormat) + { + this(imageView, cardIdString, barcodeFormat, null); + } + private int getMaxWidth(BarcodeFormat format) { switch(format) @@ -194,8 +199,9 @@ class BarcodeImageWriterTask extends AsyncTask { Log.i(TAG, "Barcode generation failed, removing image from display"); imageView.setVisibility(View.GONE); - if (textView != null) + if (textView != null) { textView.setVisibility(View.GONE); + } } } } diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java index da3f55fc6..6df43a8cf 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java @@ -262,14 +262,14 @@ public class LoyaltyCardEditActivity extends AppCompatActivity } Log.d(TAG, "ImageView size now known"); - new BarcodeImageWriterTask(barcodeImage, cardIdString, format, null).execute(); + new BarcodeImageWriterTask(barcodeImage, cardIdString, format).execute(); } }); } else { Log.d(TAG, "ImageView size known known, creating barcode"); - new BarcodeImageWriterTask(barcodeImage, cardIdString, format, null).execute(); + new BarcodeImageWriterTask(barcodeImage, cardIdString, format).execute(); } showBarcode(); diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java index 78affe0fe..f91014d68 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java @@ -260,14 +260,14 @@ public class LoyaltyCardViewActivity extends AppCompatActivity barcodeImage.getViewTreeObserver().removeOnGlobalLayoutListener(this); Log.d(TAG, "ImageView size now known"); - new BarcodeImageWriterTask(barcodeImage, cardIdString, format, null).execute(); + new BarcodeImageWriterTask(barcodeImage, cardIdString, format).execute(); } }); } else { Log.d(TAG, "ImageView size known known, creating barcode"); - new BarcodeImageWriterTask(barcodeImage, cardIdString, format, null).execute(); + new BarcodeImageWriterTask(barcodeImage, cardIdString, format).execute(); } } else diff --git a/app/src/main/res/layout/loyalty_card_edit_activity.xml b/app/src/main/res/layout/loyalty_card_edit_activity.xml index ab52249bb..b98cc5ec2 100644 --- a/app/src/main/res/layout/loyalty_card_edit_activity.xml +++ b/app/src/main/res/layout/loyalty_card_edit_activity.xml @@ -377,6 +377,7 @@ android:layout_width="match_parent" android:padding="@dimen/inputPadding" android:textSize="@dimen/inputSize" + android:textIsSelectable="true" android:layout_toEndOf="@id/barcodeTypeField" android:layout_toRightOf="@id/barcodeTypeField" /> From e1f4ed65bb0c53d1a6c17de36daf67e870cc7245 Mon Sep 17 00:00:00 2001 From: Sergio Date: Mon, 27 Jan 2020 00:26:05 +0100 Subject: [PATCH 7/9] #308 Add missing cast from CharSequence to String --- .../main/java/protect/card_locker/LoyaltyCardEditActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java index 6df43a8cf..b6ac2cc41 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java @@ -231,7 +231,7 @@ public class LoyaltyCardEditActivity extends AppCompatActivity if(cardIdFieldView.getText().length() > 0 && barcodeTypeField.getText().length() > 0) { - if(barcodeTypeField.getText().equals(NO_BARCODE)) + if(barcodeTypeField.getText().toString().equals(NO_BARCODE)) { hideBarcode(); } From aa2ccac22bac6c3c5a1fd11ed0c951a124d1ea62 Mon Sep 17 00:00:00 2001 From: Sergio Date: Mon, 27 Jan 2020 00:52:12 +0100 Subject: [PATCH 8/9] #308 Restore test check for barcode type --- .../LoyaltyCardViewActivityTest.java | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java b/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java index 8522ce79a..a1d37319b 100644 --- a/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java +++ b/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java @@ -224,7 +224,7 @@ public class LoyaltyCardViewActivityTest } private void checkAllFields(final Activity activity, ViewMode mode, - final String store, final String note, final String cardId) + final String store, final String note, final String cardId, final String barcodeType) { if(mode == ViewMode.VIEW_CARD) { @@ -241,6 +241,7 @@ public class LoyaltyCardViewActivityTest checkFieldProperties(activity, R.id.cardIdView, View.VISIBLE, cardId); checkFieldProperties(activity, R.id.cardIdDivider, cardId.isEmpty() ? View.GONE : View.VISIBLE, null); checkFieldProperties(activity, R.id.cardIdTableRow, cardId.isEmpty() ? View.GONE : View.VISIBLE, null); + checkFieldProperties(activity, R.id.barcodeTypeView, View.VISIBLE, barcodeType); checkFieldProperties(activity, R.id.captureButton, captureVisibility, null); checkFieldProperties(activity, R.id.barcode, View.VISIBLE, null); } @@ -256,7 +257,7 @@ public class LoyaltyCardViewActivityTest Activity activity = (Activity)activityController.get(); - checkAllFields(activity, ViewMode.ADD_CARD, "", "", ""); + checkAllFields(activity, ViewMode.ADD_CARD, "", "", "", ""); assertEquals(View.GONE, activity.findViewById(R.id.barcodeTypeTableRow).getVisibility()); } @@ -316,12 +317,12 @@ public class LoyaltyCardViewActivityTest Activity activity = (Activity)activityController.get(); - checkAllFields(activity, ViewMode.ADD_CARD, "", "", ""); + checkAllFields(activity, ViewMode.ADD_CARD, "", "", "", ""); // Complete barcode capture successfully captureBarcodeWithResult(activity, R.id.captureButton, true); - checkAllFields(activity, ViewMode.ADD_CARD, "", "", BARCODE_DATA); + checkAllFields(activity, ViewMode.ADD_CARD, "", "", BARCODE_DATA, BARCODE_TYPE); // Save and check the loyalty card saveLoyaltyCardWithArguments(activity, "store", "note", BARCODE_DATA, BARCODE_TYPE, true); @@ -337,12 +338,12 @@ public class LoyaltyCardViewActivityTest Activity activity = (Activity)activityController.get(); - checkAllFields(activity, ViewMode.ADD_CARD, "", "", ""); + checkAllFields(activity, ViewMode.ADD_CARD, "", "", "", ""); // Complete barcode capture in failure captureBarcodeWithResult(activity, R.id.captureButton, false); - checkAllFields(activity, ViewMode.ADD_CARD, "", "", ""); + checkAllFields(activity, ViewMode.ADD_CARD, "", "", "", ""); } @Test @@ -355,12 +356,12 @@ public class LoyaltyCardViewActivityTest Activity activity = (Activity)activityController.get(); - checkAllFields(activity, ViewMode.ADD_CARD, "", "", ""); + checkAllFields(activity, ViewMode.ADD_CARD, "", "", "", ""); // Complete barcode capture successfully captureBarcodeWithResult(activity, R.id.captureButton, true); - checkAllFields(activity, ViewMode.ADD_CARD, "", "", BARCODE_DATA); + checkAllFields(activity, ViewMode.ADD_CARD, "", "", BARCODE_DATA, BARCODE_TYPE); // Cancel the loyalty card creation assertEquals(false, activity.isFinishing()); @@ -405,7 +406,7 @@ public class LoyaltyCardViewActivityTest activityController.visible(); activityController.resume(); - checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", BARCODE_DATA); + checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", BARCODE_DATA, BARCODE_TYPE); } @Test @@ -421,7 +422,7 @@ public class LoyaltyCardViewActivityTest activityController.visible(); activityController.resume(); - checkAllFields(activity, ViewMode.VIEW_CARD, "store", "note", BARCODE_DATA); + checkAllFields(activity, ViewMode.VIEW_CARD, "store", "note", BARCODE_DATA, BARCODE_TYPE); } @Test @@ -437,12 +438,12 @@ public class LoyaltyCardViewActivityTest activityController.visible(); activityController.resume(); - checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", EAN_BARCODE_DATA); + checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", EAN_BARCODE_DATA, EAN_BARCODE_TYPE); // Complete barcode capture successfully captureBarcodeWithResult(activity, R.id.captureButton, true); - checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", BARCODE_DATA); + checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", BARCODE_DATA, BARCODE_TYPE); } @Test @@ -458,12 +459,12 @@ public class LoyaltyCardViewActivityTest activityController.visible(); activityController.resume(); - checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", EAN_BARCODE_DATA); + checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", EAN_BARCODE_DATA, EAN_BARCODE_TYPE); // Complete barcode capture successfully captureBarcodeWithResult(activity, R.id.captureButton, true); - checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", BARCODE_DATA); + checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", BARCODE_DATA, BARCODE_TYPE); // Cancel the loyalty card creation assertEquals(false, activity.isFinishing()); @@ -599,14 +600,13 @@ public class LoyaltyCardViewActivityTest activityController.resume(); // First check if the card is as expected - checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", BARCODE_DATA); - assertEquals(View.VISIBLE, activity.findViewById(R.id.barcodeTypeTableRow).getVisibility()); + checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", BARCODE_DATA, BARCODE_TYPE); // Complete empty barcode selection successfully selectBarcodeWithResult(activity, R.id.enterButton, BARCODE_DATA, "", true); // Check if the barcode type is NO_BARCODE as expected - checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", BARCODE_DATA); + checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", BARCODE_DATA, NO_BARCODE); assertEquals(View.GONE, activity.findViewById(R.id.barcodeTypeTableRow).getVisibility()); // Check if the special NO_BARCODE string doesn't get saved @@ -769,7 +769,7 @@ public class LoyaltyCardViewActivityTest Activity activity = (Activity)activityController.get(); - checkAllFields(activity, ViewMode.ADD_CARD, "Example Store", "", "123456"); + checkAllFields(activity, ViewMode.ADD_CARD, "Example Store", "", "123456", "AZTEC"); assertEquals(-416706, ((ColorDrawable) activity.findViewById(R.id.headingColorSample).getBackground()).getColor()); assertEquals(-1, ((ColorDrawable) activity.findViewById(R.id.headingStoreTextColorSample).getBackground()).getColor()); } From 454052638f504221064d41284317d9bd0f8d8753 Mon Sep 17 00:00:00 2001 From: Sylvia van Os Date: Tue, 28 Jan 2020 17:32:57 +0100 Subject: [PATCH 9/9] Fix barcode centering --- .../java/protect/card_locker/LoyaltyCardViewActivity.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java index f91014d68..f52de980e 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java @@ -405,6 +405,9 @@ public class LoyaltyCardViewActivity extends AppCompatActivity // Move barcode to top barcodeImage.setScaleType(ImageView.ScaleType.FIT_START); + // Prevent centering + barcodeImage.setAdjustViewBounds(false); + // Set current state barcodeIsFullscreen = true; } @@ -429,6 +432,9 @@ public class LoyaltyCardViewActivity extends AppCompatActivity // Turn barcode back to normal barcodeImage.setLayoutParams(barcodeImageState); + // Fix barcode centering + barcodeImage.setAdjustViewBounds(true); + // Set current state barcodeIsFullscreen = false; }