Commit Graph

32 Commits

Author SHA1 Message Date
FC Stegerman
fd755185b9 BarcodeImageWriterTask: treat DATA_MATRIX as 1D for max width 2023-06-23 22:23:12 +02:00
FC Stegerman
6ff11e22e1 Improve barcode rendering (square codes & padding) 2023-06-22 21:41:33 +02:00
Sylvia van Os
b48de921fc Redesign of home screen and view UI (#1296)
* Redesign of home screen and view UI

* Update screenshots and CHANGELOG

* Make spotbugs happy

* Fix double store name announcement
2023-05-17 21:15:56 +02:00
Sylvia van Os
1ce4216584 Fix extreme padding on some barcode types 2022-03-09 19:07:19 +01:00
Sylvia van Os
61578a6016 Consistency improvements 2022-03-08 19:56:42 +01:00
Altonss
71eb8c53bc Add code 93 (#659) 2021-12-08 20:18:15 +01:00
waffshappen
5faa28a7e7 Replace AsyncTask with a Compatiblity Layer and further Compat Fixes (#511) 2021-10-20 19:47:06 +02:00
Sylvia van Os
6f1dc74f66 Consistent barcode naming 2021-09-10 00:49:06 +02:00
Sylvia van Os
c4064a2ed1 Fix various small accessibility issues 2021-09-03 19:50:17 +02:00
Sylvia van Os
8bad342374 Add UPC-E support 2021-07-07 19:14:11 +02:00
Sylvia van Os
5081eb2dce Lighter grey for non-usable barcode types 2021-04-07 21:19:56 +02:00
Sylvia van Os
4e043edb64 Show all barcodes and recover from invalid selection 2021-04-06 00:33:35 +02:00
Sylvia van Os
9d4529b06b Initial rebrand 2020-10-22 18:15:07 +02:00
Sergio
72c1a57953 #308 Add new constructor for BarcodeImageWriterTask without associated TextView. Make barcode format selectable 2020-01-27 00:53:55 +01:00
Sergio
0d67680e7f #308 Display barcode format on select barcode view 2020-01-27 00:53:54 +01:00
Sylvia van Os
c83b151c08 Revert "Check for empty cardId in BarcodeSelectorActivity instead"
This reverts commit 62f7241bca.
2019-12-15 12:54:51 +01:00
Sylvia van Os
62f7241bca Check for empty cardId in BarcodeSelectorActivity instead 2019-12-11 10:44:31 +01:00
Sylvia van Os
9a2d195cb2 Don't generate a barcode if id is empty
This prevents a bug with an empty PDF 417 barcode being generated
2019-12-09 13:20:42 +01:00
Sylvia van Os
61c2c0c84a Completely removed rectangle cleanup code, 1D codes seem to need this padding 2019-12-08 18:15:08 +01:00
Sylvia van Os
08afc16d01 Don't remove paddings smaller than 20 pixels 2019-12-08 18:05:09 +01:00
Sylvia van Os
e37288b842 Remove useless null check 2019-12-04 23:10:02 +01:00
Sylvia van Os
368a2a30f6 Fix white border in dark theme 2019-12-04 13:27:53 +01:00
Sylvia van Os
5774064da7 Don't draw more than the actual barcode 2019-12-04 13:04:42 +01:00
Branden Archer
79213aa3ec Catch case where barcode rendering runs into an OOM
There are still cases where the barcode could not be rendered
because the process runs out of its memory limit. To avoid
a crash, catch the failure and log it. The barcode will
not be displayed, but at least the app will not crash.
2018-03-04 13:10:12 -05:00
Branden Archer
3291185812 Render 1D barcodes with a larger width
For some reason when 1D barcodes are rendered in a smaller width,
they end up scrunched up and not using all available space.
As a result, they do not scale to the entire width of the screen.
In many cases the barcode is not scannable even in landscape.

To resolve this, render the 1D barcodes in a larger space. The space
is still bounded, to prevent OOMs on tablets or really
wide screen devices.
2018-02-18 23:14:51 -05:00
Branden Archer
824a72b156 Scale height of barcode to match ratio when reducing width
When reducing the pixel size of the width, if the height is not
scaled to match then 1D barcodes end up being squished and are
too narrow to scan. To avoid this, scale the height to match.
Then, when the barcode is loaded into a Bitmap it will scale up
to the correct size.

It was found that on a Galaxy S4 a barcode width of 400 px started
to see some blurriness, but 500 px still looked sharp. Reducing
the maximum width to 500 px.
2017-07-11 23:16:26 -04:00
Branden Archer
116a44fd1c Let BarcodeImageWriterTask's constructor be package private 2017-07-11 23:13:46 -04:00
Branden Archer
64db9e593d Limit width of barcodes
To reduce the amount of memory used in generating barcodes, limit
the width of the barcodes to no more than 3x the height.
This should be plenty sufficient to generate a usable barcode.

On devices with a really long width generating a barcode of 200x2560
is not useful and can result in an OutOfMemoryError.
2017-06-11 14:56:17 -04:00
Branden Archer
8edc9ce5fd Set barcode image visibility upon completion
If the barcode generation succeeds set it as visible, otherwise
make it gone.
2016-05-21 22:58:08 -04:00
Branden Archer
2f86de4c1b Protect against unexpected failures when encoding barcodes
It was observed that some barcode encoders will fail if the
data passed to them is not valid for the format. For example,
the ITF encoder will throw an ArrayIndexOutOfBoundsException
on the input "this is a test".
2016-05-21 22:58:08 -04:00
Branden Archer
cecec15762 Scale barcodes to ImageView's size without filtering
It turns out that the library used to create datamatrix barcodes
returns the smallest image necessary to contain the barcode. That
is, the size passed into the barcode writer. If the ImageView
scales the tiny image itself into the full size it will use
bi-linear filtering, which results in a blurry barcode.

To avoid this, if scaling is needed do so without using filtering.
2016-05-21 18:32:29 -04:00
Branden Archer
b91d4c934a Generate barcode in an AsyncTask
This change moves the generation of the barcode into its
own async task. In addition, the size of the ImageView is
used to determine the barcode size to use.

There will be cases when the size of the ImageView will not
be known when the barcode generation starts. This will be resolved
in a future commit.
2016-05-21 18:32:29 -04:00