diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 63dd1a2..7b938de 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,5 +1,4 @@ -Contributor Guide -===================== +# Contributor Guide ## ๐ŸŒ Note for translators @@ -8,14 +7,14 @@ Localization files are located in the [lib/l10n](lib/l10n) directory. The app uses ARB format for localization. If you wonder how to format key-values content inside ARB files, [here](https://github.com/google/app-resource-bundle/wiki/ApplicationResourceBundleSpecification) is detailed explanation. If you are making changes to the localization files, run the following command: + ``` -flutter pub run intl_utils:generate +flutter gen-l10n ``` -or use [VSCode](https://marketplace.visualstudio.com/items?itemName=localizely.flutter-intl)/[Intellij IDEA](https://plugins.jetbrains.com/plugin/13666-flutter-intl) special plugin. -If you added a new language, make sure to add it to the [lib/locale.dart](lib/locale.dart). +or use `Generate Localizations` button in VSCode when the file is open in the editor. -Detailed documentation on `intl_utils` [here](https://pub.dev/packages/intl_utils). +Detailed documentation about localization [here](https://docs.flutter.dev/ui/accessibility-and-internationalization/internationalization). ### Android localization @@ -36,6 +35,7 @@ Also, take a look at [**Coding Guidelines**](#-coding-guidelines) before making ### 2. After making changes Be sure to run `build_runner` before creating your commit: + ``` flutter pub run build_runner build --delete-conflicting-outputs ``` @@ -47,16 +47,17 @@ If you are making changes to the localization files, also read the [Note for tra ### 3. Testing Make sure that all existing and new tests are passing: + ``` flutter test test ``` ## ๐Ÿ“‹ Coding Guidelines - - Keep it snimple snupid: [KISS](https://en.wikipedia.org/wiki/KISS_principle) - - No repeating yourself. [Re-use your own code and that of others](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself). - - If you want to help, triaging and keeping up with the issue and TODO list is great. - - Try to follow our coding style and formatting before submitting a patch. - - All merge requests should come from a feature branch created on your Git fork. Your code will be reviewed, and only merged to the master branch if it doesn't break the build. - - When you submit a merge request, try to explain what issue you're fixing, and what you're fixing in detail, so it's easier for us to read your patches. - - Well named methods and code re-usability is preferable to a lot of comments. +- Keep it snimple snupid: [KISS](https://en.wikipedia.org/wiki/KISS_principle) +- No repeating yourself. [Re-use your own code and that of others](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself). +- If you want to help, triaging and keeping up with the issue and TODO list is great. +- Try to follow our coding style and formatting before submitting a patch. +- All merge requests should come from a feature branch created on your Git fork. Your code will be reviewed, and only merged to the master branch if it doesn't break the build. +- When you submit a merge request, try to explain what issue you're fixing, and what you're fixing in detail, so it's easier for us to read your patches. +- Well named methods and code re-usability is preferable to a lot of comments. diff --git a/PRIVACY.md b/PRIVACY.md index 231e940..f8a1c36 100644 --- a/PRIVACY.md +++ b/PRIVACY.md @@ -1,5 +1,4 @@ -Privacy Policy -===================== +# Privacy Policy This privacy policy document is to provide information on what, how, and why personal data or information is collected, used, and disclosed, when this software is utilized, and the choices you have associated with that data. The objective of this policy document is to provide an open environment between developer and users of this software by openly stating what information the developer collects or not. By utilizing this software, it means you accept all the terms and conditions of the developer peculiar to only Blink Comparison software. This Policy applies to this software only, and the developer would not be held responsible for the content or privacy practices on any third party app not operated by the developer to which this software links or that links to this software, therefore it is advisable to read up the privacy policies of third party services that may be linked to this software. @@ -12,8 +11,8 @@ The permission is; - Camera With the camera permission enabled, the app can; - - take photo to add as reference image as well as for comparison + - take photo to add as reference image as well as for comparison Blink Comparison has some other capabilities, which are functions the software can remotely effect on its own. They include; @@ -24,15 +23,19 @@ The information that may be collected with these permissions are stored locally ## Types of Data Collected ### Personal Data + The developer doesn't collect personally identifiable data. Only except when you send crash logs. ### Usage Data + The developer doesn't collect usage data. ### Installation Data + The developer distributes this software via google play store where download counts are maintained. But, the developer has no knowledge or way to acquire knowledge about a user that has installed or is using this software. ## Crash reports + The application allows you to send logs to the developer to help with the diagnosis of sync problems and bugs. The logs contain no personal or identifying information, however, your identity may be revealed through your email address. The developer guarantees that no part of the logs nor the email address of the sender nor any other information about the sender will be shared with a 3rd party, and the email and the logs will be deleted by the developer as soon as they are not needed anymore. Blink Comparison is a project under active development and the developer needs to get information when it doesn't work, to make it work. If you encounter any error while using the software, please open an issue on GitHub and it will be fixed. In a case where the app crashes, try to include logcats in your reports, when possible. @@ -42,6 +45,7 @@ Blink Comparison is a project under active development and the developer needs t Blink Comparison depends on the services of third-party libraries to facilitate its utilization, and to perform service-related services, or, to assist in analyzing how the services of the software are used. These third parties don't have access to your Personal Data but are used only to perform some tasks on the developer's behalf. ## Transfer Of Data + With these third-party libraries contained in the software, your information, including personal data, may be transferred to computers located outside of your state, province, country or other governmental jurisdiction where the data protection laws may differ than those from your jurisdiction. Your consent to this Privacy Policy followed by your submission of such information represents your agreement to that transfer. ## Links To Other Sites diff --git a/README.md b/README.md index 3fef5e9..28e88ff 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ ----- +--- ## Screenshots @@ -38,54 +38,55 @@ The concept of "blink comparison" method is simple - the app allows you to quick "Blink comparison" ([Wikipedia](https://en.wikipedia.org/wiki/Blink_comparator)) method uses high efficiency pattern recognition by human eyes, to permit quick verification between a reference picture and an actual one being taken on the spot. For example, in the goal of detecting tampering in high contrast nail polish tamper-evident seals. Relative documentation on the tamper-evident glitter nail polish seals concept and why it is hard to beat: - - https://trmm.net/Glitter/ - - https://www.wired.com/2013/12/better-data-security-nail-polish/ - - https://dys2p.com/en/2021-12-tamper-evident-protection.html + +- https://trmm.net/Glitter/ +- https://www.wired.com/2013/12/better-data-security-nail-polish/ +- https://dys2p.com/en/2021-12-tamper-evident-protection.html [Use, see, change and share](https://en.wikipedia.org/wiki/Free_software); [with all](https://en.wikipedia.org/wiki/Copyleft). ## ๐Ÿ“‹ Features - - Free and Open Source software (FOSS) - - Support for various platforms and devices (currently Android only) - - Add and store reference pictures in the app or take a photo on the spot; all pictures are encrypted, making it harder to steal or replacement - - Compare a reference image with the one just taken using "blink comparison" method - - Helps to take a compared photo in the correct position, at the correct angle, lighting and distance - - Material Design - - Night theme - - Responsive UI for different devices form factors +- Free and Open Source software (FOSS) +- Support for various platforms and devices (currently Android only) +- Add and store reference pictures in the app or take a photo on the spot +- Encrypting images (optional), making it harder to steal or replacement +- Compare a reference image with the one just taken using "blink comparison" method +- Helps to take a compared photo in the correct position, at the correct angle, lighting and distance +- Material Design 3 +- Night theme +- Responsive UI for different devices form factors ## ๐Ÿ”’ Security -All reference images that added to the app stored as encrypted, making it harder to steal or replacement. Currently, [password-based encryption](http://www.crypto-it.net/eng/theory/pbe.html) (PBE) is used. It's based on the [XChaCha20Poly1305](https://www.cryptopp.com/wiki/XChaCha20Poly1305) scheme and using a key derived by [Argon2](https://en.wikipedia.org/wiki/Argon2) function "on the fly" (during the encryption/decryption itself). The password is stored in the app as a hash obtained with Argon2. +Optionally, during initial setup (or at any time), you can enable encryption of reference images so that they are stored in encrypted form, making them difficult to steal or replace. Currently, [password-based encryption](http://www.crypto-it.net/eng/theory/pbe.html) (PBE) is used. It's based on the [XChaCha20Poly1305](https://www.cryptopp.com/wiki/XChaCha20Poly1305) scheme and using a key derived by [Argon2](https://en.wikipedia.org/wiki/Argon2) function "on the fly" (during the encryption/decryption itself). The password is stored in the app as a hash obtained with Argon2. ## ๐Ÿ–ฅ๏ธ๐Ÿ’ป๐Ÿ“ฑ Available platforms - - Android - - ~~iOS~~ (planned) - - ~~Linux~~ (planned) +- Android +- ~~Linux~~ (planned) - ## ๐ŸŒ Translations +## ๐ŸŒ Translations - - **English** - - **German** - - **Russian** - - **Spanish** *(thanks andgar2010)* - - **French** *(thanks BNouailhac)* +- **English** +- **German** +- **Russian** +- **Spanish** _(thanks andgar2010)_ +- **French** _(thanks BNouailhac)_ ## ๐Ÿ’ฐ Donation If you like Blink Comparison you can support developer with these methods. If you have problems with payment or you want to donate in another way, contact me: `proninyaroslav@mail.ru`. Thank you! - - **Bitcoin**: `12isaLkH8nZ4DkFguVFeYrGHqQi7EEgUrM ` - - **USDT TRC20**: `TK79fzUYwRtmANuLjk1Zzhz3hjTaFQbxfg` - - **Monero**: `48j4Mo7J7t51EeBf35Lpdmehmi9chUwzSXxHrnjpRJ6fPQafPWvSCdFafw3rA5ZRWievfYEDToNso8VppbJf2RVH9cdZmHa` - - **YooMoney (ะฎMoney)**: `410011738561939` - - **Patreon**: [patreon.com/YaroslavPronin](https://patreon.com/YaroslavPronin) - - **Boosty**: [boosty.to/yaroslavpronin/donate](https://boosty.to/yaroslavpronin/donate) - - **Amazon.com eGift Cards**: just choose your amount and type e-mail `proninyaroslav@mail.ru` -in the gift card details [smile.amazon.com/gp/product/B004LLIKVU](https://smile.amazon.com/gp/product/B004LLIKVU) - - **Liberapay**: [![liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/proninyaroslav/donate) +- **Bitcoin**: `12isaLkH8nZ4DkFguVFeYrGHqQi7EEgUrM ` +- **USDT TRC20**: `TK79fzUYwRtmANuLjk1Zzhz3hjTaFQbxfg` +- **Monero**: `48j4Mo7J7t51EeBf35Lpdmehmi9chUwzSXxHrnjpRJ6fPQafPWvSCdFafw3rA5ZRWievfYEDToNso8VppbJf2RVH9cdZmHa` +- **YooMoney (ะฎMoney)**: `410011738561939` +- **Patreon**: [patreon.com/YaroslavPronin](https://patreon.com/YaroslavPronin) +- **Boosty**: [boosty.to/yaroslavpronin/donate](https://boosty.to/yaroslavpronin/donate) +- **Amazon.com eGift Cards**: just choose your amount and type e-mail `proninyaroslav@mail.ru` + in the gift card details [smile.amazon.com/gp/product/B004LLIKVU](https://smile.amazon.com/gp/product/B004LLIKVU) +- **Liberapay**: [![liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/proninyaroslav/donate) ## โš™๏ธ Building @@ -97,11 +98,11 @@ Please see [CONTRIBUTING.md](CONTRIBUTING.md) #### Developers -* [Yaroslav Pronin](https://github.com/proninyaroslav) +- [Yaroslav Pronin](https://github.com/proninyaroslav) #### Logo -* [Ramy (@rshirwan)](https://t.me/rshirwan) +- [Ramy (@rshirwan)](https://t.me/rshirwan) ## ๐Ÿ”’ Privacy Policy diff --git a/art/screenshots/s1.png b/art/screenshots/s1.png old mode 100755 new mode 100644 index 27f19af..d36d3ca Binary files a/art/screenshots/s1.png and b/art/screenshots/s1.png differ diff --git a/art/screenshots/s2.png b/art/screenshots/s2.png old mode 100755 new mode 100644 index 7662415..a45ae97 Binary files a/art/screenshots/s2.png and b/art/screenshots/s2.png differ diff --git a/art/screenshots/s3.png b/art/screenshots/s3.png old mode 100755 new mode 100644 index addd83c..2dbfb22 Binary files a/art/screenshots/s3.png and b/art/screenshots/s3.png differ diff --git a/art/screenshots/s4.png b/art/screenshots/s4.png old mode 100755 new mode 100644 index d72f9f2..2e45433 Binary files a/art/screenshots/s4.png and b/art/screenshots/s4.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/s1.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/s1.png old mode 100755 new mode 100644 index c6deee1..57cc8ea Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/s1.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/s1.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/s2.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/s2.png index 6a08a50..fcfe1e8 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/s2.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/s2.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/s3.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/s3.png old mode 100755 new mode 100644 index 06bcdaa..7d0546a Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/s3.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/s3.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/s4.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/s4.png old mode 100755 new mode 100644 index 60fd44e..626cdc7 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/s4.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/s4.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/s5.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/s5.png old mode 100755 new mode 100644 index 21e39dc..96bd754 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/s5.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/s5.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/s6.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/s6.png old mode 100755 new mode 100644 index 6969de5..563a20e Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/s6.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/s6.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/s7.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/s7.png old mode 100755 new mode 100644 index d9b1331..8d47405 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/s7.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/s7.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/s8.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/s8.png old mode 100755 new mode 100644 index 4637e06..cb45d59 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/s8.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/s8.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/s9.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/s9.png new file mode 100644 index 0000000..e2f7309 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/s9.png differ diff --git a/fastlane/metadata/android/en-US/images/sevenInchScreenshots/s1.png b/fastlane/metadata/android/en-US/images/sevenInchScreenshots/s1.png index 29cf146..18fe66c 100644 Binary files a/fastlane/metadata/android/en-US/images/sevenInchScreenshots/s1.png and b/fastlane/metadata/android/en-US/images/sevenInchScreenshots/s1.png differ diff --git a/fastlane/metadata/android/en-US/images/tenInchScreenshots/s1.png b/fastlane/metadata/android/en-US/images/tenInchScreenshots/s1.png index fa6fa77..5f473db 100644 Binary files a/fastlane/metadata/android/en-US/images/tenInchScreenshots/s1.png and b/fastlane/metadata/android/en-US/images/tenInchScreenshots/s1.png differ diff --git a/fastlane/metadata/android/en-US/images/tenInchScreenshots/s2.png b/fastlane/metadata/android/en-US/images/tenInchScreenshots/s2.png index 09936ec..1cda15d 100644 Binary files a/fastlane/metadata/android/en-US/images/tenInchScreenshots/s2.png and b/fastlane/metadata/android/en-US/images/tenInchScreenshots/s2.png differ