From 9b5a731d48c03aa102cb782f551c435b08e46ff6 Mon Sep 17 00:00:00 2001 From: Sylvia van Os Date: Mon, 2 Dec 2019 15:05:19 +0100 Subject: [PATCH 01/13] Start with dark mode --- app/src/main/res/layout/loyalty_card_edit_activity.xml | 10 +++++----- app/src/main/res/values/colors.xml | 1 - app/src/main/res/values/styles.xml | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) 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 84e2a412c..620fba282 100644 --- a/app/src/main/res/layout/loyalty_card_edit_activity.xml +++ b/app/src/main/res/layout/loyalty_card_edit_activity.xml @@ -38,7 +38,7 @@ android:layout_width="match_parent" android:background="@color/inputBorder" /> #000000 #F8F8F8 - #FFFFFF #DDDDDD #AAAAAA \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index d7c6cc296..e1b073e67 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,7 +1,7 @@ - "; + } + String html = "" + + css + "\""" + "

" + String.format(getString(R.string.about_title_fmt), From 0de50e72a6f02a570e9159cd7abe48143542ab66 Mon Sep 17 00:00:00 2001 From: Sylvia van Os Date: Mon, 2 Dec 2019 18:03:36 +0100 Subject: [PATCH 06/13] Fixes, start with right theme --- app/src/main/AndroidManifest.xml | 1 + .../LoyaltyCardLockerApplication.java | 15 +++++++++++++ .../protect/card_locker/MainActivity.java | 5 +++++ .../card_locker/preferences/Settings.java | 22 +++++++++++++++++++ 4 files changed, 43 insertions(+) create mode 100644 app/src/main/java/protect/card_locker/LoyaltyCardLockerApplication.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 18de61be0..78ace2676 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -17,6 +17,7 @@ android:required="false" /> Date: Wed, 4 Dec 2019 12:45:16 +0100 Subject: [PATCH 07/13] Fix card title colour issues --- app/src/main/res/layout/loyalty_card_layout.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/res/layout/loyalty_card_layout.xml b/app/src/main/res/layout/loyalty_card_layout.xml index 7f80ab3ab..45ea6587a 100644 --- a/app/src/main/res/layout/loyalty_card_layout.xml +++ b/app/src/main/res/layout/loyalty_card_layout.xml @@ -37,7 +37,6 @@ android:id="@+id/store" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textColor="?android:attr/textColorSecondary" android:textSize="@dimen/storeNameTextSize" android:textStyle="bold"/> From 5774064da7bdf21875c0adf7b8c6bd29f7d5c950 Mon Sep 17 00:00:00 2001 From: Sylvia van Os Date: Wed, 4 Dec 2019 13:04:42 +0100 Subject: [PATCH 08/13] Don't draw more than the actual barcode --- .../card_locker/BarcodeImageWriterTask.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java b/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java index 88e62ecd4..9003fe13f 100644 --- a/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java +++ b/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java @@ -112,13 +112,28 @@ class BarcodeImageWriterTask extends AsyncTask int bitMatrixWidth = bitMatrix.getWidth(); int bitMatrixHeight = bitMatrix.getHeight(); + // Returns: left,top,width,height enclosing rectangle of all 1 bits, or null if it is all white + int[] enclosingRectangle = bitMatrix.getEnclosingRectangle(); + int left = enclosingRectangle != null ? enclosingRectangle[0] : 0; + int top = enclosingRectangle != null ? enclosingRectangle[1] : 0; + int right = enclosingRectangle != null ? (enclosingRectangle[0] + enclosingRectangle[2]) : bitMatrixWidth; + int bottom = enclosingRectangle != null ? (enclosingRectangle[1] + enclosingRectangle[3]) : bitMatrixHeight; + int[] pixels = new int[bitMatrixWidth * bitMatrixHeight]; for (int y = 0; y < bitMatrixHeight; y++) { + if(enclosingRectangle != null && (y < top || y > bottom)) + { + continue; + } int offset = y * bitMatrixWidth; for (int x = 0; x < bitMatrixWidth; x++) { + if(enclosingRectangle != null && (x < left || x > right)) + { + continue; + } int color = bitMatrix.get(x, y) ? BLACK : WHITE; pixels[offset + x] = color; } From 368a2a30f60f3ffeaa1517984bcbdae83bfd51a0 Mon Sep 17 00:00:00 2001 From: Sylvia van Os Date: Wed, 4 Dec 2019 13:27:53 +0100 Subject: [PATCH 09/13] Fix white border in dark theme --- .../main/java/protect/card_locker/BarcodeImageWriterTask.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java b/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java index 9003fe13f..22c5be247 100644 --- a/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java +++ b/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java @@ -123,14 +123,14 @@ class BarcodeImageWriterTask extends AsyncTask for (int y = 0; y < bitMatrixHeight; y++) { - if(enclosingRectangle != null && (y < top || y > bottom)) + if(enclosingRectangle != null && (y < top || y >= bottom)) { continue; } int offset = y * bitMatrixWidth; for (int x = 0; x < bitMatrixWidth; x++) { - if(enclosingRectangle != null && (x < left || x > right)) + if(enclosingRectangle != null && (x < left || x >= right)) { continue; } From e37288b84270dbd8ffdf0e222ea3f6bf4f7e9142 Mon Sep 17 00:00:00 2001 From: Sylvia van Os Date: Wed, 4 Dec 2019 23:10:02 +0100 Subject: [PATCH 10/13] Remove useless null check --- .../java/protect/card_locker/BarcodeImageWriterTask.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java b/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java index 22c5be247..5e95e26b0 100644 --- a/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java +++ b/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java @@ -123,14 +123,14 @@ class BarcodeImageWriterTask extends AsyncTask for (int y = 0; y < bitMatrixHeight; y++) { - if(enclosingRectangle != null && (y < top || y >= bottom)) + if(y < top || y >= bottom) { continue; } int offset = y * bitMatrixWidth; for (int x = 0; x < bitMatrixWidth; x++) { - if(enclosingRectangle != null && (x < left || x >= right)) + if(x < left || x >= right) { continue; } @@ -197,4 +197,4 @@ class BarcodeImageWriterTask extends AsyncTask imageView.setVisibility(View.GONE); } } -} \ No newline at end of file +} From 91a44618639b7dc014ac5104479b31a057960844 Mon Sep 17 00:00:00 2001 From: Sylvia van Os Date: Thu, 5 Dec 2019 19:49:45 +0100 Subject: [PATCH 11/13] Fix code style --- .../card_locker/preferences/SettingsActivity.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/protect/card_locker/preferences/SettingsActivity.java b/app/src/main/java/protect/card_locker/preferences/SettingsActivity.java index 02e671969..ee1bccbbb 100644 --- a/app/src/main/java/protect/card_locker/preferences/SettingsActivity.java +++ b/app/src/main/java/protect/card_locker/preferences/SettingsActivity.java @@ -53,23 +53,24 @@ public class SettingsActivity extends AppCompatActivity // Load the preferences from an XML resource addPreferencesFromResource(R.xml.preferences); - findPreference(getResources().getString(R.string.settings_key_theme)).setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + findPreference(getResources().getString(R.string.settings_key_theme)).setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() + { @Override - public boolean onPreferenceChange(Preference preference, Object o) { + public boolean onPreferenceChange(Preference preference, Object o) + { if(o.toString().equals(getResources().getString(R.string.settings_key_light_theme))) { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); - getActivity().recreate(); - return true; } else if(o.toString().equals(getResources().getString(R.string.settings_key_dark_theme))) { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); - getActivity().recreate(); - return true; + } + else + { + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM); } - AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM); getActivity().recreate(); return true; } From 08afc16d01e9782b98c96dd84e2169c1b705ebf8 Mon Sep 17 00:00:00 2001 From: Sylvia van Os Date: Sun, 8 Dec 2019 18:05:09 +0100 Subject: [PATCH 12/13] Don't remove paddings smaller than 20 pixels --- .../protect/card_locker/BarcodeImageWriterTask.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java b/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java index 5e95e26b0..b38f47e18 100644 --- a/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java +++ b/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java @@ -114,10 +114,12 @@ class BarcodeImageWriterTask extends AsyncTask // Returns: left,top,width,height enclosing rectangle of all 1 bits, or null if it is all white int[] enclosingRectangle = bitMatrix.getEnclosingRectangle(); - int left = enclosingRectangle != null ? enclosingRectangle[0] : 0; - int top = enclosingRectangle != null ? enclosingRectangle[1] : 0; - int right = enclosingRectangle != null ? (enclosingRectangle[0] + enclosingRectangle[2]) : bitMatrixWidth; - int bottom = enclosingRectangle != null ? (enclosingRectangle[1] + enclosingRectangle[3]) : bitMatrixHeight; + + // We add 20 pixels on all sides to ensure small intentional padding around the barcodes isn't removed + int left = enclosingRectangle != null ? enclosingRectangle[0] - 20 : 0; + int top = enclosingRectangle != null ? enclosingRectangle[1] - 20 : 0; + int right = enclosingRectangle != null ? (enclosingRectangle[0] + enclosingRectangle[2] + 20) : bitMatrixWidth; + int bottom = enclosingRectangle != null ? (enclosingRectangle[1] + enclosingRectangle[3] + 20) : bitMatrixHeight; int[] pixels = new int[bitMatrixWidth * bitMatrixHeight]; From 61c2c0c84ae560ba616045b62329134975168728 Mon Sep 17 00:00:00 2001 From: Sylvia van Os Date: Sun, 8 Dec 2019 18:15:08 +0100 Subject: [PATCH 13/13] Completely removed rectangle cleanup code, 1D codes seem to need this padding --- .../card_locker/BarcodeImageWriterTask.java | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java b/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java index b38f47e18..a03a52994 100644 --- a/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java +++ b/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java @@ -112,30 +112,13 @@ class BarcodeImageWriterTask extends AsyncTask int bitMatrixWidth = bitMatrix.getWidth(); int bitMatrixHeight = bitMatrix.getHeight(); - // Returns: left,top,width,height enclosing rectangle of all 1 bits, or null if it is all white - int[] enclosingRectangle = bitMatrix.getEnclosingRectangle(); - - // We add 20 pixels on all sides to ensure small intentional padding around the barcodes isn't removed - int left = enclosingRectangle != null ? enclosingRectangle[0] - 20 : 0; - int top = enclosingRectangle != null ? enclosingRectangle[1] - 20 : 0; - int right = enclosingRectangle != null ? (enclosingRectangle[0] + enclosingRectangle[2] + 20) : bitMatrixWidth; - int bottom = enclosingRectangle != null ? (enclosingRectangle[1] + enclosingRectangle[3] + 20) : bitMatrixHeight; - int[] pixels = new int[bitMatrixWidth * bitMatrixHeight]; for (int y = 0; y < bitMatrixHeight; y++) { - if(y < top || y >= bottom) - { - continue; - } int offset = y * bitMatrixWidth; for (int x = 0; x < bitMatrixWidth; x++) { - if(x < left || x >= right) - { - continue; - } int color = bitMatrix.get(x, y) ? BLACK : WHITE; pixels[offset + x] = color; }