├── .github
├── dependabot.yml
├── issue_template.md
├── pull_request_template.md
└── workflows
│ ├── build.yml
│ └── validate-gradle-wrapper.yml
├── .gitignore
├── .gitlab-ci.yml
├── .travis.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── CONTRIBUTORS.md
├── FAQ.md
├── GPLv3.TXT
├── Icons and Images
├── Contributed SVG
│ ├── app icon black.svg
│ ├── app icon green.svg
│ ├── app icon main.svg
│ ├── app icon white on blk.svg
│ ├── app icon white.svg
│ ├── logotype A blk.svg
│ ├── logotype A green.svg
│ ├── logotype A white.svg
│ ├── logotype B blk.svg
│ ├── logotype B green.svg
│ └── logotype B white.svg
├── main icon design.svg
└── social banner.png
├── LICENSE.txt
├── Page Templates
├── A4 with 2 pages - gLabels-qt.glabels
├── A4 with 2 pages.glabels
└── A4 with 2 pages.pdf
├── PrivacyPolicy.md
├── README.md
├── SETUP_GUIDELINES.md
├── app
├── .gitignore
├── build.gradle.kts
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── assets
│ ├── about-cs.md
│ ├── about-da.md
│ ├── about-de.md
│ ├── about-el.md
│ ├── about-es.md
│ ├── about-eu.md
│ ├── about-fa.md
│ ├── about-fr.md
│ ├── about-he.md
│ ├── about-in.md
│ ├── about-it.md
│ ├── about-ja.md
│ ├── about-nl.md
│ ├── about-pl.md
│ ├── about-pt.md
│ ├── about-ru.md
│ ├── about-tr.md
│ ├── about-zh.md
│ └── about.md
│ ├── ic_launcher-web.png
│ ├── java
│ └── com
│ │ └── todobom
│ │ └── opennotescanner
│ │ ├── ClickListener.kt
│ │ ├── FullScreenImageAdapter.kt
│ │ ├── FullScreenViewActivity.kt
│ │ ├── GalleryGridActivity.kt
│ │ ├── ImageProcessor.java
│ │ ├── OpenNoteScannerActivity.kt
│ │ ├── OpenNoteScannerApplication.kt
│ │ ├── SettingsActivity.kt
│ │ ├── SettingsFragment.kt
│ │ ├── helpers
│ │ ├── AboutFragment.kt
│ │ ├── AnimationRunnable.kt
│ │ ├── AppConstant.kt
│ │ ├── CustomOpenCVLoader.kt
│ │ ├── OpenNoteMessage.kt
│ │ ├── PdfHelper.kt
│ │ ├── PreviewFrame.kt
│ │ ├── Quadrilateral.kt
│ │ ├── ScanTopicDialogFragment.kt
│ │ ├── ScannedDocument.kt
│ │ └── Utils.kt
│ │ └── views
│ │ ├── HUDCanvasView.kt
│ │ ├── SquareFrameLayout.kt
│ │ └── TagEditorFragment.kt
│ └── res
│ ├── drawable-hdpi
│ └── ic_delete_white_24dp.png
│ ├── drawable-mdpi
│ └── ic_delete_white_24dp.png
│ ├── drawable-xhdpi
│ └── ic_delete_white_24dp.png
│ ├── drawable-xxhdpi
│ └── ic_delete_white_24dp.png
│ ├── drawable-xxxhdpi
│ └── ic_delete_white_24dp.png
│ ├── drawable
│ ├── angle.xml
│ ├── button_background.xml
│ ├── ic_arrow_back_24dp.xml
│ ├── ic_camera_green.xml
│ ├── ic_done_all_24dp.xml
│ ├── ic_find_in_page.xml
│ ├── ic_flash_on_24dp.xml
│ ├── ic_info_outline_white_24px.xml
│ ├── ic_launcher_background.xml
│ ├── ic_launcher_foreground.xml
│ ├── ic_menu_camera.xml
│ ├── ic_menu_gallery.xml
│ ├── ic_menu_manage.xml
│ ├── ic_menu_pdf.xml
│ ├── ic_menu_send.xml
│ ├── ic_menu_share.xml
│ ├── ic_menu_slideshow.xml
│ ├── ic_menu_tag.xml
│ ├── ic_monochrome.xml
│ ├── ic_palette.xml
│ ├── ic_photo_filter_white_24dp.xml
│ ├── ic_settings.xml
│ ├── ic_tag_bell.xml
│ ├── ic_tag_game.xml
│ ├── ic_tag_gift.xml
│ ├── ic_tag_magnet.xml
│ ├── ic_tag_rocket.xml
│ ├── ic_tag_star.xml
│ ├── ic_tag_tv.xml
│ ├── round_button.xml
│ └── side_nav_bar.xml
│ ├── layout
│ ├── about_view.xml
│ ├── activity_fullscreen_view.xml
│ ├── activity_gallery.xml
│ ├── activity_open_note_scanner.xml
│ ├── activity_settings.xml
│ ├── dialog_scan_topic.xml
│ ├── gallery_item.xml
│ ├── layout_fullscreen_image.xml
│ └── tageditor_view.xml
│ ├── menu
│ ├── menu_gallery.xml
│ └── menu_imagepager.xml
│ ├── mipmap-anydpi-v26
│ ├── ic_launcher.xml
│ └── ic_launcher_round.xml
│ ├── mipmap-hdpi
│ ├── ic_launcher.png
│ └── ic_launcher_round.png
│ ├── mipmap-mdpi
│ ├── ic_launcher.png
│ └── ic_launcher_round.png
│ ├── mipmap-xhdpi
│ ├── ic_launcher.png
│ └── ic_launcher_round.png
│ ├── mipmap-xxhdpi
│ ├── ic_launcher.png
│ └── ic_launcher_round.png
│ ├── mipmap-xxxhdpi
│ ├── ic_launcher.png
│ └── ic_launcher_round.png
│ ├── values-cs
│ └── strings.xml
│ ├── values-da
│ └── strings.xml
│ ├── values-de
│ └── strings.xml
│ ├── values-el
│ └── strings.xml
│ ├── values-es
│ └── strings.xml
│ ├── values-eu
│ └── strings.xml
│ ├── values-fa
│ └── strings.xml
│ ├── values-fr
│ └── strings.xml
│ ├── values-in
│ └── strings.xml
│ ├── values-it
│ └── strings.xml
│ ├── values-iw
│ └── strings.xml
│ ├── values-ja
│ └── strings.xml
│ ├── values-ml
│ └── strings.xml
│ ├── values-nl
│ └── strings.xml
│ ├── values-pl
│ └── strings.xml
│ ├── values-pt
│ └── strings.xml
│ ├── values-ru
│ └── strings.xml
│ ├── values-tr
│ └── strings.xml
│ ├── values-w820dp
│ └── dimens.xml
│ ├── values-zh-rCN
│ └── strings.xml
│ ├── values-zh-rTW
│ └── strings.xml
│ ├── values
│ ├── arrays.xml
│ ├── attrs.xml
│ ├── colors.xml
│ ├── dimens.xml
│ ├── strings.xml
│ └── styles.xml
│ └── xml
│ ├── provider_paths.xml
│ └── settings.xml
├── build.gradle.kts
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle.kts
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | - package-ecosystem: github-actions
4 | directory: "/"
5 | schedule:
6 | interval: daily
7 | target-branch: master
8 | - package-ecosystem: gradle
9 | directory: "/"
10 | schedule:
11 | interval: daily
12 | target-branch: master
13 |
--------------------------------------------------------------------------------
/.github/issue_template.md:
--------------------------------------------------------------------------------
1 | Describe your issue here.
2 |
3 | ### Steps to reproduce
4 | Tell us how to reproduce this issue.
5 |
6 | ### Expected behaviour
7 | Tell us what should happen
8 |
9 | ### Actual behaviour
10 | Tell us what happens instead
11 |
12 | ### Would you like to work on the issue?
13 | Tell us if you would like to work on this issue
14 |
--------------------------------------------------------------------------------
/.github/pull_request_template.md:
--------------------------------------------------------------------------------
1 | ## Description
2 |
3 | Please include a summary of the change and which issue is fixed. List any dependencies that are required for this change.
4 | If there are any UI change, please include the screenshots also.
5 |
6 | If your changes fixes an issue, please include its number using the following line. (Does not apply for translation)
7 |
8 | Fixes #(issue)
9 |
10 | ## Type of change
11 | Just put an x in the [] which are valid.
12 | - [ ] Translation Contribution (non-breaking change which only adds or updates the translation to a language)
13 | - [ ] Bug fix (non-breaking change which fixes an issue)
14 | - [ ] New feature (non-breaking change which adds functionality)
15 | - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
16 |
17 | # How Has This Been Tested?
18 |
19 | Please describe the tests that you ran to verify your changes.
20 | - [ ] `./gradlew assembleDebug assembleRelease`
21 | - [ ] `./gradlew checkstyle`
22 |
23 | # Checklist:
24 | - [ ] My code follows the style guidelines of this project
25 | - [ ] I have performed a self-review of my own code
26 | - [ ] I have commented my code, particularly in hard-to-understand areas
27 | - [ ] I have made corresponding changes to the documentation
28 | - [ ] My changes generate no new warnings
29 |
30 | # License:
31 | - [X] I hereby declare that all my contributions to this project is licensed using the [GPL Version 3 License](https://github.com/ctodobom/OpenNoteScanner/blob/master/GPLv3.TXT) unless specified directly on source files
32 |
--------------------------------------------------------------------------------
/.github/workflows/build.yml:
--------------------------------------------------------------------------------
1 | name: Build application
2 |
3 | on: [pull_request, push]
4 |
5 | jobs:
6 | build:
7 | runs-on: ubuntu-latest
8 |
9 | steps:
10 | - uses: actions/checkout@v3
11 | - name: Set up JDK 11
12 | uses: actions/setup-java@v3
13 | with:
14 | distribution: 'temurin'
15 | java-version: 11
16 | cache: gradle
17 | - name: Build with Gradle
18 | run: ./gradlew build --no-daemon
19 |
--------------------------------------------------------------------------------
/.github/workflows/validate-gradle-wrapper.yml:
--------------------------------------------------------------------------------
1 | name: Validate Gradle Wrapper
2 |
3 | on: [pull_request, push]
4 |
5 | jobs:
6 | validation:
7 | name: Validation
8 | runs-on: ubuntu-latest
9 | steps:
10 | - uses: actions/checkout@v3
11 | - uses: gradle/wrapper-validation-action@v1
12 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.apk
2 | *.iml
3 | .gradle
4 | .idea
5 | *~
6 | import-summary.txt
7 | /local.properties
8 | **/.idea/workspace.xml
9 | **/.idea/tasks.xml
10 | /.idea/libraries
11 | .DS_Store
12 | /build
13 | /captures
14 | /app/gplay
15 | /app/fdroid
16 | /app/release
17 | **/*/res/values/secrets.xml
18 |
--------------------------------------------------------------------------------
/.gitlab-ci.yml:
--------------------------------------------------------------------------------
1 | image: openjdk:8-jdk
2 | variables:
3 | ANDROID_COMPILE_SDK: "29"
4 | ANDROID_BUILD_TOOLS: "29.0.2"
5 | ANDROID_SDK_URL: "https://dl.google.com/android/repository/commandlinetools-linux-6609375_latest.zip" # current available in https://developer.android.com/studio/index.html#downloads
6 | before_script:
7 | - apt-get --quiet update --yes
8 | - apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1
9 | - wget --quiet --output-document=android-tools.zip ${ANDROID_SDK_URL}
10 | - mkdir -p android-sdk-linux/cmdline-tools
11 | - unzip ./android-tools.zip -d android-sdk-linux/cmdline-tools
12 | - export ANDROID_HOME=$PWD/android-sdk-linux
13 | - export ANDROID_SDKMANAGER=${ANDROID_HOME}/cmdline-tools/tools/bin/sdkmanager
14 | - echo y | ${ANDROID_SDKMANAGER} "platforms;android-${ANDROID_COMPILE_SDK}" "platform-tools" "build-tools;${ANDROID_BUILD_TOOLS}" > /dev/null
15 | - export PATH=$PATH:${ANDROID_HOME}/platform-tools/
16 | - chmod +x ./gradlew
17 | - set +o pipefail
18 | - yes | ${ANDROID_SDKMANAGER} --licenses
19 | - set -o pipefail
20 |
21 | stages:
22 | - build
23 | build:
24 | stage: build
25 | script:
26 | - ./gradlew assembleDebug
27 | artifacts:
28 | paths:
29 | - app/build/outputs/
30 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: android
2 | dist: trusty
3 | android:
4 | components:
5 | - platform-tools
6 | - tools
7 | - build-tools-29.0.2
8 | - android-29
9 | - extra-android-support
10 | - extra-android-m2repository
11 | - extra-google-m2repository
12 |
13 | script: ./gradlew build assembleDebug
14 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Join the development
2 | * Before you join development, please set up the project on your local machine, run it and go through the application completely. Press on any button you can find and see where it leads to. Explore.You'll be more familiar with what is where and might even get some cool ideas on how to improve various aspects of the app.
3 | * If you would like to work on an issue, drop in a comment at the issue. If it is already assigned to someone, but there is no sign of any work being done, please free to drop in a comment so that the issue can be assigned to you if the previous assignee has dropped it entirely.
4 |
5 | # Contributing
6 |
7 | When contributing to this repository, please first discuss the change you wish to make via issue.
8 |
9 | ## Pull Request Process
10 |
11 | 1. Ensure any install or build dependencies are removed before the end of the layer when doing a
12 | build.
13 | 2. Check that there are no conflicts and your request passes [Travis](Travis-ci.org) build. Check the log of the pass test if it fails the build.
14 | 3. Give the description of the issue that you want to resolve in the pull request message. The format of the commit message to be fixed - **Fixes #[issue number] [Description of the issue]** Example: **Fixes #529: Add toast warning in `MainActivity.java`**
15 | 4. Wait for the maintainers to review your pull request and do the changes if requested.
16 |
17 | ## Contributions Best Practices
18 |
19 | ### Commits
20 |
21 | * Write clear meaningful git commit messages (Do read [here](http://chris.beams.io/posts/git-commit/))
22 | * Make sure your PR's description contains GitHub's special keyword references that automatically close the related issue when the PR is merged. (For more info click [here]( https://github.com/blog/1506-closing-issues-via-pull-requests))
23 | * When you make very very minor changes to a PR of yours (like for example fixing a failing Travis build or some small style corrections or minor changes requested by reviewers) make sure you squash your commits afterwards so that you don't have an absurd number of commits for a very small fix. (Learn how to squash at [here](https://davidwalsh.name/squash-commits-git ))
24 | * When you're submitting a PR for a UI-related issue, it would be really awesome if you add a screenshot of your change or a link to a deployment where it can be tested out along with your PR. It makes it very easy for the reviewers and you'll also get reviews quicker.
25 |
26 | ### Feature Requests and Bug Reports
27 | * When you file a feature request or when you are submitting a bug report to the [issue tracker](https://github.com/ctodobom/OpenNoteScanner/issues), make sure you add steps to reproduce it. Especially if that bug is some weird/rare one.
28 |
29 | ## Code of Conduct
30 |
31 | ### Our Standards
32 |
33 | Examples of behavior that contributes to creating a positive environment
34 | include:
35 |
36 | * Using welcoming and inclusive language
37 | * Being respectful of differing viewpoints and experiences
38 | * Gracefully accepting constructive criticism
39 | * Focusing on what is best for the community
40 | * Showing empathy towards other community members
41 |
42 | ### Our Responsibilities
43 |
44 | Project maintainers are responsible for clarifying the standards of acceptable
45 | behavior and are expected to take appropriate and fair corrective action in
46 | response to any instances of unacceptable behavior.
47 |
48 | Project maintainers have the right and responsibility to remove, edit, or
49 | reject comments, commits, code, issues, and other contributions
50 | that are not aligned to this Code of Conduct, or to ban temporarily or
51 | permanently any contributor for other behavior that they deem inappropriate,
52 | threatening, offensive, or harmful.
53 |
54 |
--------------------------------------------------------------------------------
/CONTRIBUTORS.md:
--------------------------------------------------------------------------------
1 | Contributors:
2 | =============
3 |
4 | Most contributions here are with translations. Please [refer to the Changelog](https://github.com/ctodobom/OpenNoteScanner/blob/master/CHANGELOG.md) and git history for reference on code contributors
5 |
6 | * Nicolas Raoul - English corrections
7 | * Claudio Arseni - Italian translation
8 | * Francisco Toca - Spanish translation
9 | * [@nebulon42](https://github.com/nebulon42) - German translation
10 | * Ondřej Míchal - Czech translation
11 | * [@nigelinux](https://github.com/nigelinux) - Traditional Chinese (zh-rTW) Translation
12 | * [@SparkyCola](https://github.com/SparkyCola) - help on picture focus enhancements
13 | * [@brenard](https://github.com/brenard) - French translation
14 | * [@naofum](https://github.com/naofum) - Japanese translation
15 | * [@nikoss](https://github.com/nikoss) - Greek translation
16 | * [Arthur Saprunov](https://github.com/Skydragonsz) - Dutch translation
17 | * [@ASMfreaK](https://github.com/ASMfreaK) - Russian translation
18 | * [Yaron Shahrabani](https://github.com/yarons) Hebrew translation
19 | * [@Tobaloidee](https://github.com/Tobaloidee) - Icon design
20 | * [@princekelly1](https://github.com/princekelly1) - Contributed FAQ.md file
21 | * [@dellani](https://github.com/dellani) - German update and corrections
22 | * [@beriain](https://github.com/beriain) - Basque translation
23 | * [@yzqzss](https://github.com/yzqzss) - Simplified Chinese translation - PR #164
24 | * [@zmni](https://github.com/zmni) - Indonesian translation - PR #178
25 | * [@ChristianWilkie](https://github.com/ChristianWilkie) - some cleanups - PR #180 and #181
26 | * [@thrillfall](https://github.com/thrillfall) - scan topic on filename - PR #191
27 | * [@ahangarha](https://github.com/ahangarha) - Persian Translation - PR #194
28 | * [@sturkmen72](https://github.com/sturkmen72) - Turkish Translation - PR #195
29 | * [@yeyeto2788](https://github.com/yeyeto2788) - update on Spanish translation - PR #207
30 | * [@miclill](https://github.com/miclill) - PDF Export feature - commit 3b48cd24ebdb96fc350f305b239fb185090e62b6
31 | * [@shoddysheep](https://github.com/shoddysheep) - Danish translation - PR #259
32 | * [@PatrykMis](https://github.com/PatrykMis) - Polish translation - PR #264
33 |
--------------------------------------------------------------------------------
/FAQ.md:
--------------------------------------------------------------------------------
1 | **Q**: What is OpenNoteScanner?
2 |
3 | **A**: OpenNoteScanner is a mobile application which provides users with a simple and easy way of scanning their handwritten notes and also printed documents.
4 |
5 | **Q**: What is OpenCV Manager?
6 |
7 | **A**: OpenCV means **Open Source Computer Vision Library**, This library is used by OpenNoteScanner to enhance images, track, object recognition and detection and panorama stitching.
8 | OpenCV is licensed under (3- clause BSD) for educational and commercial use.
9 |
10 | **Q**: How do I scan documents with OpenNoteScanner?
11 |
12 | **A**: These are the steps to scan a document:
13 |
14 | 1. Place your phone over the document to be scanned and point the camera at the document.
15 | 2. Point the camera so that all of the four corner markers on the screen is placed inside the document.
16 | 3. Click the **camera icon** at the base of the app.
17 | 4. The app will try to detect the document. When the document is detected the app will show an outline around it on the camera screen and a photo will be taken.
18 | 5. Click on the **Image icon** at the top right corner of the screen to view your scanned documents.
19 |
20 | **Q**: Why doesn't the app detect my document? I point the camera at the document and press the trigger button but nothing happens.
21 |
22 | **A**: Here are a few things that might be wrong:
23 |
24 | * You might have activated Automatic Mode. In Automatic Mode the document must contain a custom QR code that triggers detection. Switch to Manual Mode by pressing the **Automatic Mode icon** in the toolbar.
25 |
26 | * Make sure that the contrast between the document and the background is high enough. For example, if the page color is white then the background should be as dark as possible.
27 |
28 | * Try to scan with the camera flash activated for better lighting. Activate the flash by tapping the **flash icon** in the toolbar.
29 |
30 | * Make sure that all of the four corner markers on the camera screen is placed inside the document.
31 |
32 | **Q**: Where do I find my captured documents?
33 |
34 | **A**: Click on the **Image icon** at the top right corner of the screen, here you can view your scanned documents from the app.
35 |
36 | **Q**: Where are the captured documents stored on my device?
37 |
38 | **A**: They are stored by default in your device internal storage memory under the folder named **OpenNoteScanner**:
39 |
40 | **Q**: Can I change the default folder?
41 |
42 | **A**: Yes, by clicking the **horizontal broken lines** at the top of the screen. click the **settings icon**, scroll down to the section (storage folder), select it and input the name of your preferred folder and click **ok**
43 |
44 | **Q**: Can storage location be changed from device internal storage to **SD Card**?
45 |
46 | **A**: Unfortunately **No**, storage location is set at device internal storage.
47 |
48 | **Q**: My captured documents are in black and white, I need some color?
49 |
50 | **A**: Click the **horizontal broken lines** at the top of the screen, and click the color platelet icon and the menu tray to activate color mode, click the platelet again to get back the default black and white mode.
51 |
52 | **Q**: I am in a dark place and need to capture a document?
53 |
54 | **A**: You can activate the flash light mode by clicking the **horizontal broken lines** at the top of the screen, and click the flash light icon on the menu tray. This activates the flash light of your device camera to enable visible capturing of the documents.
55 |
56 | **Q**: How can I contact the maintainers?
57 |
58 | **A**: To contact us, please click on the **horizontal broken lines** at the top of the screen, and select **settings icon** from the menu tray, scroll down to **feedback and suggestions** and select any of the communication channel listed.
59 |
60 | * Via GitHub.
61 | * Via Telegram.
62 | * Via Email.
63 |
64 | Thank you for using our app, if you like the app and want to make a donation, go to the **Buy me a coffee** section at the settings page of the app.
65 |
66 |
--------------------------------------------------------------------------------
/Icons and Images/Contributed SVG/app icon black.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
43 |
--------------------------------------------------------------------------------
/Icons and Images/Contributed SVG/app icon green.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
45 |
--------------------------------------------------------------------------------
/Icons and Images/Contributed SVG/app icon main.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
47 |
--------------------------------------------------------------------------------
/Icons and Images/Contributed SVG/app icon white on blk.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
47 |
--------------------------------------------------------------------------------
/Icons and Images/Contributed SVG/app icon white.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
93 |
--------------------------------------------------------------------------------
/Icons and Images/main icon design.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Icons and Images/social banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allgood/OpenNoteScanner/15c1788267b88f261f5758365fbb606dcb1ea648/Icons and Images/social banner.png
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright 2016 - Claudemir Todo Bom
2 |
3 | Software licensed under the GPL version 3 available in GPLv3.TXT and
4 | online on http://www.gnu.org/licenses/gpl.txt.
5 |
6 | Use parts from other developers, sometimes with small changes,
7 | references on autorship and specific licenses are on individual
8 | source files.
9 |
--------------------------------------------------------------------------------
/Page Templates/A4 with 2 pages.glabels:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allgood/OpenNoteScanner/15c1788267b88f261f5758365fbb606dcb1ea648/Page Templates/A4 with 2 pages.glabels
--------------------------------------------------------------------------------
/Page Templates/A4 with 2 pages.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allgood/OpenNoteScanner/15c1788267b88f261f5758365fbb606dcb1ea648/Page Templates/A4 with 2 pages.pdf
--------------------------------------------------------------------------------
/PrivacyPolicy.md:
--------------------------------------------------------------------------------
1 | Privacy Policy
2 | ==============
3 |
4 | [Claudemir Todo Bom](https://github.com/ctodobom) is the lead developer and maintainer of Open Note Scanner.
5 |
6 | This document serves as an informative texts to users and prospective users of this app about the policies involved in the usage of the app.
7 |
8 | Any future changes on this policy will be stated here and inside the app.
9 |
10 | ### Collected Information
11 | Open Note Scanner only collects anonymous usage data, which is enabled by default, when download via your device play store **Google Play**, it can be disabled/enabled on the settings page of the app.
12 |
13 | ### Google Play version specific
14 | Version on Google Play since version 1.0.36 does use the AdMob platform to show ads and also Google Play in-app purchase to get donations. Those libraries have specific privacy policies that can be read on the following links:
15 |
16 | [AdMob](https://www.google.com/policies/privacy/)
17 | [Google Play Services](https://support.google.com/admob/answer/6128543?hl=en)
18 |
19 | ### Contact us
20 |
21 | If you have any question for the developer, you can check the [FAQ](https://github.com/ctodobom/OpenNoteScanner/blob/master/FAQ.md) section for answers.
22 |
--------------------------------------------------------------------------------
/SETUP_GUIDELINES.md:
--------------------------------------------------------------------------------
1 | ## Remote Configuration
2 | After you clone the repository the default remote is `origin` and it refers to your fork on Github. You must keep track of the changes made to the original repository by setting up another remote named `upstream`.
3 |
4 | 1. Open terminal in your repository and type
`git remote add origin https://github.com/YOUR_USERNAME/OpenNoteScanner.git`
5 | 2. Type
` git remote add upstream https://github.com/ctodobom/OpenNoteScanner.git `
to add upstream.
6 | 3. Type ` git remote -v ` and you should see
7 | ```
8 | origin https://github.com/YOUR_USERNAME/OpenNoteScanner.git (fetch)
9 | origin https://github.com/YOUR_USERNAME/OpenNoteScanner.git (push)
10 | upstream https://github.com/ctodobom/OpenNoteScanner.git (fetch)
11 | upstream https://github.com/ctodobom/OpenNoteScanner.git (push)
12 | ```
13 |
14 | To now update your local copy type
`git fetch upstream`
`git merge upstream/master`
`git push`
15 |
16 | ## Steps for creating a Pull Request
17 |
18 | 1. Checkout to the master branch `git checkout master`
19 | 2. Sync `git pull`
20 | 3. Start a new branch with a suitable name `git checkout -b branch_name`
21 | 4. Develop a new feature or solve an existing issue
22 | 5. Add the changed files `git add file_name`
23 | 6. Commit with a suitable message `git commit -m " Changes made "`
24 | 7. Push `git push origin branch_name`
25 | 8. Go to the Github Repository and create a pull request according to the [PULL_REQUEST_TEMPLATE](https://github.com/ctodobom/OpenNoteScanner/blob/master/.github/pull_request_template.md).
26 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app/build.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | id("com.android.application")
3 | kotlin("android")
4 | }
5 |
6 | android {
7 | compileSdk = 33
8 | buildToolsVersion = "33.0.0"
9 | namespace = "com.todobom.opennotescanner"
10 | compileOptions {
11 | sourceCompatibility = JavaVersion.VERSION_11
12 | targetCompatibility = JavaVersion.VERSION_11
13 | }
14 | kotlinOptions {
15 | jvmTarget = JavaVersion.VERSION_11.toString()
16 | }
17 | defaultConfig {
18 | applicationId = "com.todobom.opennotescanner"
19 | minSdk = 21
20 | targetSdk = 31
21 | versionCode = 36
22 | versionName = "1.0.36"
23 | }
24 | buildTypes {
25 | getByName("release") {
26 | isMinifyEnabled = false
27 | proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
28 | }
29 | }
30 | flavorDimensions += "version"
31 | productFlavors {
32 | create("fdroid") {
33 | dimension = "version"
34 | applicationIdSuffix = ""
35 | versionNameSuffix = "-fdroid"
36 | }
37 | create("gplay") {
38 | dimension = "version"
39 | applicationIdSuffix = ""
40 | versionNameSuffix = "-gplay"
41 | }
42 | }
43 | lint {
44 | abortOnError = false
45 | }
46 | }
47 |
48 | dependencies {
49 | implementation(fileTree(mapOf("include" to listOf("*.jar"), "dir" to "libs")))
50 |
51 | implementation("androidx.core:core-ktx:1.9.0")
52 | implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.10")
53 |
54 | implementation("androidx.exifinterface:exifinterface:1.3.6")
55 | testImplementation("junit:junit:4.13.2")
56 | implementation("androidx.appcompat:appcompat:1.6.1")
57 | implementation("androidx.fragment:fragment-ktx:1.5.5")
58 | implementation("com.google.android.material:material:1.8.0")
59 | implementation("com.google.zxing:core:3.5.1")
60 | implementation("com.github.ctodobom:OpenCV-3.1.0-Android:9e00ee4218ca0c9e60a905c9f09bf499f9dc5115")
61 | implementation("us.feras.mdv:markdownview:1.1.0")
62 | implementation("com.github.ctodobom:drag-select-recyclerview:0.3.4.ctodobom.sections")
63 | implementation("com.github.allgood:Android-Universal-Image-Loader:717a00c")
64 | implementation("com.github.ctodobom:FabToolbar:3c5f0e0ff1b6d5089e20b7da7157a604075ae943")
65 | implementation("com.github.matomo-org:matomo-sdk-android:4.1.4")
66 | implementation("com.github.MikeOrtiz:TouchImageView:3.3")
67 |
68 | val itextpdf_version = "7.2.5"
69 | implementation("com.itextpdf:kernel:$itextpdf_version")
70 | implementation("com.itextpdf:layout:$itextpdf_version")
71 | implementation("com.itextpdf:io:$itextpdf_version")
72 | }
73 |
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /home/allgood/android-sdk-linux/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
26 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
51 |
52 |
53 |
54 |
55 |
58 |
62 |
67 |
70 |
71 |
72 |
73 |
--------------------------------------------------------------------------------
/app/src/main/assets/about-cs.md:
--------------------------------------------------------------------------------
1 | Open Note Scanner
2 | =======================
3 |
4 | **© 20XX [Claudemir Todo Bom](http://todobom.com)**
5 |
6 | Tato aplikace poskytuje rychlý způsob pořízení a uložení vašich poznámek, náčrtů, nákupních lístků a jiných dokumentů. Také podporuje automatické zachycení obrázků na [předformátované stránce](https://github.com/ctodobom/OpenNoteScanner/raw/master/Page%20Templates/A4%20with%202%20pages.pdf).
7 |
8 |
9 | Licence
10 | -------
11 |
12 | Tato aplikace je volně přístupná díky [GNU General Public License version 3](http://www.gnu.org/licenses/gpl.txt). Zdrojový kód je [dostupný na GitHub](http://github.com/ctodobom/OpenNoteScanner).
13 |
14 | Dotace
15 | ---------
16 |
17 | Tvorba aplikací pro Android není mým povoláním. Tuto aplikaci jsem udělal ze zvědavosti, protože je mnoho podobných aplikací, které bohužel nejsou volně přístupné.
18 |
19 | Pokud si myslíš, že je tato aplikace nebo některý z mých příspěvků hodná nějakého peněžního obnosu a přeješ-li si přispět, můžeš tak učinit pomocí Paypal, Bitcoin nebo Dogecoin.
20 |
21 | [Podpoř přes Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X6XHVCPMRQEL4)
22 |
23 | **UPOZORNĚNÍ:** Odkaz ke kryptoměnám funguje pouze tehdy, pokud máte aplikaci k tomu určenou na svém zařízení!
24 |
25 | [Podpoř přes Bitcoin](bitcoin:1H5tqKZoWdqkR54PGe9w67EzBnLXHBFmt9)
26 |
27 | [Podpoř přes Dogecoin](dogecoin:DFBaP724XR3rfs9wFahBd353yFkgkqatvd)
28 |
29 |
30 | Součásti třetích stran a požadavky
31 | ----------------------------------
32 |
33 | Binární sestavení obsahuje kódy z těchto externích projektů:
34 |
35 | * [OpenCV Library pro Android](http://www.opencv.org)
36 | * [MarkdownView od Feras Alnatsheh](https://github.com/falnatsheh/MarkdownView)
37 | * [TouchImageView od Mike Ortiz](https://github.com/MikeOrtiz/TouchImageView)
38 | * [Drag Select Recycler View](https://github.com/afollestad/drag-select-recyclerview)
39 | * [Android Universal Image Loader od Sergey Tarasevich](https://github.com/nostra13/Android-Universal-Image-Loader)
40 |
41 | Chtěl bych poděkovat
42 | ------
43 |
44 | ### Přispěvatelům
45 |
46 | Vzhledem k tomu, že je aplikace volně přístupná, příspěvky jsou velmi vítané. Všichni, kteří přispějí jakýmkoli kódem, budou uvedeni zde.
47 |
48 | * Nicolas Raoul - Anglická korekce
49 | * Claudio Arseni - Italský překlad
50 | * Francisco Toca - Španělský překlad
51 | * [@nebulon42](https://github.com/nebulon42) - Německý překlad
52 | * [@HarryPhoon] (https://github.com/HarryPhoon) - Český překlad
53 | * [@nigelinux](https://github.com/nigelinux) - Čínský (tradiční) překlad
54 | * [@SkyDragonsz](https://github.com/SkyDragonsz) - překlad do holandštiny
55 | * Naofumi Fukue - japonský překlad
56 | * [@ASMfreaK](https://github.com/ASMfreaK) - překlad do ruštiny
57 |
58 | Ostatní lidé pomohli [nahlášením problémů](https://github.com/ctodobom/OpenNoteScanner/issues) a poskytnutím informací přes [skupinu na Telegramu](https://t.me/OpenNoteScanner). Jejich pomoc je taktéž velmi ceněna.
59 |
60 | ### Externí kód
61 |
62 | Tato aplikace by nebyla možná bez skvělého materiálu vytvořeného komunitou. Především bych chtěl poděkovat autorům důležitých částí, které jsem našel na internetu a použil ve svém kódu:
63 |
64 | * [Android-er / Zobrazení v mřížce](http://android-er.blogspot.com.br/2012/07/gridview-loading-photos-from-sd-card.html)
65 | * [Android Hive / Zobrazení obrázku na celou obrazovku](http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/)
66 | * [Adrian Rosebrock z pyimagesearch.com za excelentní tutoriál, jak manipulovat s obrázky](http://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/)
67 | * [Gabriele Mariotti / O tom, jak vložit sekce do RecyclerView](https://gist.github.com/gabrielemariotti/e81e126227f8a4bb339c)
68 |
--------------------------------------------------------------------------------
/app/src/main/assets/about-da.md:
--------------------------------------------------------------------------------
1 | Omkring Open Note Scanner
2 | =======================
3 |
4 | **© 20XX [Claudemir Todo Bom](http://todobom.com)**
5 |
6 | Dette program giver en hurtig måde til at scanne og gemme håndskrevne noter, kunst, indkøbskvitteringer og andre dokumenter. Det understøtter også automatisk optagelse af billeder på en [præ-formateret side](https://github.com/ctodobom/OpenNoteScanner/raw/master/Page%20Templates/A4%20with%202%20pages.pdf).
7 |
8 |
9 | Licens
10 | -------
11 |
12 | Dette program er gjort tilgængeligt gennem [GNU General Public License version 3](http://www.gnu.org/licenses/gpl.txt). Source koden er [tilgængelig på GitHub](http://github.com/ctodobom/OpenNoteScanner).
13 |
14 | Donationer
15 | ---------
16 |
17 | At lave Android-programmer er ikke mit primære job, Jeg lavede dette program ud af ren nysgerrighed, og fordi der er snesevis af apps med lignende formål, men ingen af dem er open source.
18 |
19 | Hvis du mener, at dette program eller nogle af mine bidrag er lidt penge værd, og du er villig til at betale for det, er du velkommen til give en donation, uanset beløb, via PayPal, Bitcoin eller DogeCoin.
20 |
21 | [Donér gennem Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X6XHVCPMRQEL4)
22 |
23 | **VÆR OPMÆRKSOM:** Links til cryptovaluta fungerer kun, hvis du har appen til den pågældende mønt installeret!
24 |
25 | [Donér gennem Bitcoin](bitcoin:1H5tqKZoWdqkR54PGe9w67EzBnLXHBFmt9)
26 |
27 | [Donér gennem Dogecoin](dogecoin:DFBaP724XR3rfs9wFahBd353yFkgkqatvd)
28 |
29 |
30 | Tredjepartsdele og krav
31 | ----------------------------------
32 |
33 | Binære Builds omfatter kode fra disse eksterne projekter:
34 |
35 | * [OpenCV Library til Android](http://www.opencv.org)
36 | * [MarkdownView fra Feras Alnatsheh](https://github.com/falnatsheh/MarkdownView)
37 | * [TouchImageView fra Mike Ortiz](https://github.com/MikeOrtiz/TouchImageView)
38 | * [Drag Select Recycler View](https://github.com/afollestad/drag-select-recyclerview)
39 | * [Android Universal Image Loader fra Sergey Tarasevich](https://github.com/nostra13/Android-Universal-Image-Loader)
40 |
41 | Tak
42 | ------
43 |
44 | ### Bidragsydere
45 |
46 | Som et open source program, er bidrag altid velkommen.
47 |
48 | De fleste oversættere er angivet i [CONTRIBUTORS.md filen](https://github.com/ctodobom/OpenNoteScanner/blob/master/CONTRIBUTORS.md) og kodebidragsyere er angivet i [Changelog filen](https://github.com/ctodobom/OpenNoteScanner/blob/master/CHANGELOG.md) og [commits historikken](https://github.com/ctodobom/OpenNoteScanner/commits).
49 |
50 | Andre hjalp ved at indsende [Problemrapporter](https://github.com/ctodobom/OpenNoteScanner/issues) og indsende information gennem [Telegramgruppen](https://t.me/OpenNoteScanner). Deres hjælp er også værdsat.
51 |
52 | ### Ekstern kode
53 |
54 | Dette program ville ikke være muligt uden det fantastiske materiale, som fællesskabet har produceret. Jeg vil gerne sige særligt tak til forfatterne af vigtige dele, som jeg har fundet på internettet og brugt i koden:
55 |
56 | * [Android-er / GridView kode sample](http://android-er.blogspot.com.br/2012/07/gridview-loading-photos-from-sd-card.html)
57 | * [Android Hive / Full Screen Image pager](http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/)
58 | * [Adrian Rosebrock fra pyimagesearch.com for den fremragende vejledning om, hvordan man håndtérer billederne](http://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/)
59 | * [Gabriele Mariotti / Om hvordan man implementérer sektioner i RecyclerView](https://gist.github.com/gabrielemariotti/e81e126227f8a4bb339c)
60 |
--------------------------------------------------------------------------------
/app/src/main/assets/about-de.md:
--------------------------------------------------------------------------------
1 | Über Open Note Scanner
2 | =======================
3 |
4 | **© 20XX [Claudemir Todo Bom](http://todobom.com)**
5 |
6 | Diese Anwendung bietet eine einfache Möglichkeit handgeschriebene Notizen und Zeichnungen, Rechnung und andere Dokumente zu scannen und zu speichern. Sie unterstützt auch das automatische Erfassen von Bildern auf einer [vorformatierten Seite](https://github.com/ctodobom/OpenNoteScanner/raw/master/Page%20Templates/A4%20with%202%20pages.pdf).
7 |
8 |
9 | Lizenz
10 | -------
11 |
12 | Diese Anwendung steht unter der [GNU General Public License Version 3](http://www.gnu.org/licenses/gpl.txt). Der Quellcode ist [auf GitHub verfügbar](http://github.com/ctodobom/OpenNoteScanner).
13 |
14 | Spenden
15 | ---------
16 |
17 | Android Anwendungen zu erstellen ist nicht mein Brotjob. Ich habe diese Anwendung aus Neugierde erstellt und weil es Dutzende ähnliche Anwendungen gibt, von denen aber keine Freie Software ist.
18 |
19 | Wenn Sie finden, dass diese Anwendung oder irgendeiner meiner Beiträge etwas Geld wert ist und Sie dafür bezahlen wollen, dann bitte spenden Sie doch einen Betrag Ihrer Wahl über Paypal, Bitcoin oder Dogecoin.
20 |
21 | [Spenden mit Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X6XHVCPMRQEL4)
22 |
23 | **ACHTUNG:** Links zu Kryptowährungen funktionieren nur, wenn Sie die App für diese Währung installiert haben!
24 |
25 | [Spenden mit Bitcoin](bitcoin:1H5tqKZoWdqkR54PGe9w67EzBnLXHBFmt9)
26 |
27 | [Spenden mit Dogecoin](dogecoin:DFBaP724XR3rfs9wFahBd353yFkgkqatvd)
28 |
29 |
30 | Drittanbieter-Code und Anforderungen
31 | ----------------------------------
32 |
33 | Binär-Builds enthalten Code von diesen externen Projekten:
34 |
35 | * [OpenCV Library für Android](http://www.opencv.org)
36 | * [MarkdownView von Feras Alnatsheh](https://github.com/falnatsheh/MarkdownView)
37 | * [TouchImageView von Mike Ortiz](https://github.com/MikeOrtiz/TouchImageView)
38 | * [Drag Select Recycler View](https://github.com/afollestad/drag-select-recyclerview)
39 | * [Android Universal Image Loader von Sergey Tarasevich](https://github.com/nostra13/Android-Universal-Image-Loader)
40 |
41 | Danke
42 | ------
43 |
44 | ### Mitwirkende
45 |
46 | Wie bei Freier Software üblich, sind Beiträge immer willkommen. Jeder, der Code beiträgt wird hier aufgelistet.
47 |
48 | * Nicolas Raoul - Korrekturen an der englischen Übersetzung
49 | * Claudio Arseni - Italienische Übersetzung
50 | * Francisco Toca - Spanische Übersetzung
51 | * [@nebulon42](https://github.com/nebulon42) - Deutsche Übersetzung
52 | * Ondřej Míchal - Tschechische Übersetzung
53 | * [@nigelinux](https://github.com/nigelinux) - Übersetzungen in traditionelles Chinesisch (zh-rTW)
54 | * [@nikoss](https://github.com/nikoss) - Griechische Übersetzung
55 | * [@SkyDragonsz](https://github.com/SkyDragonsz) - Übersetzung ins Niederländische
56 | * Naofumi Fukue - Japanische Übersetzung
57 | * [@ASMfreaK](https://github.com/ASMfreaK) - Übersetzung ins Russische
58 |
59 | Weitere Menschen haben [Fehlermeldungen](https://github.com/ctodobom/OpenNoteScanner/issues) erstellt und Informationen über die [Telegram Gruppe](https://t.me/OpenNoteScanner) bereitgestellt. Diese Hilfe wird auch sehr geschätzt.
60 |
61 | ### Externer Code
62 |
63 | Diese Anwendung wäre ohne die großartigen Beiträge der Community nicht möglich. Ich möchte mich speziell bei den Autoren von essentiellen Teilen bedanken, deren Arbeit ich aus dem Internet habe und in meinem Code verwendet habe:
64 |
65 | * [Android-er / GridView code sample](http://android-er.blogspot.com.br/2012/07/gridview-loading-photos-from-sd-card.html)
66 | * [Android Hive / Full Screen Image pager](http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/)
67 | * [Adrian Rosebrock from pyimagesearch.com for the excellent tutorial on how to handle the images](http://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/)
68 | * [Gabriele Mariotti / On how to implement sections in the RecyclerView](https://gist.github.com/gabrielemariotti/e81e126227f8a4bb339c)
69 |
--------------------------------------------------------------------------------
/app/src/main/assets/about-el.md:
--------------------------------------------------------------------------------
1 | Σχετικά με τον Ανοιχτό Σαρωτή Σημειώσεων
2 | =======================
3 |
4 | **© 20XX [Claudemir Todo Bom](http://todobom.com)**
5 |
6 | Αυτή η εφαρμογή προσφέρει έναν εύκολο τρόπο για τη σάρωση, και την αποθήκευση, χειρόγραφων σημειώσεων και καλλιτεχνημάτων, καθώς και αποδείξεων αγοράς ή άλλων εγγράφων. Επίσης, υποστηρίζει την αυτόματη σύλληψη εικόνων σε μια [προ-μορφοποιημένη σελίδα](https://github.com/ctodobom/OpenNoteScanner/raw/master/Page%20Templates/A4%20with%202%20pages.pdf).
7 |
8 |
9 | Άδεια
10 | -------
11 |
12 | Αυτή η εφαρμογή διατίθεται υπό την [GNU Γενική Δημόσια Άδεια, έκδοση 3](http://www.gnu.org/licenses/gpl.txt). Ο Πηγαίος κώδικας είναι [διαθέσιμος στο GitHub](http://github.com/ctodobom/OpenNoteScanner).
13 |
14 | Δωρεές
15 | ---------
16 |
17 | Η δημιουργία εφαρμογών για το Ανντρόιντ δεν είναι η κύρια εργασία μου· δημιούργησα αυτή την εφαρμογή από περιέργεια, και επειδή υπάρχουν ντουζίνες από εφαρμογές με παρόμοιους σκοπούς, αλλά καμία τους δεν είναι ανοιχτού κώδικα.
18 |
19 | Αν νομίζεις πως αυτή η εφαρμογή, ή οποιαδήποτε από τις συνεισφορές μου, αξίζει κάποια χρήματα, και αν είσαι πρόθυμος να πληρώσεις γι αυτή, παρακαλώ, νιώσε ελεύθερος να κάνεις μία δωρεά μέσω του Paypal, του Bitcoin ή του Dogecoin.
20 |
21 | [Δωρεά μέσω του Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X6XHVCPMRQEL4)
22 |
23 | **ΠΡΟΣΟΧΗ:** Οι δεσμοί προς τα κρυπτονομίσματα λειτουργούν μόνο αν έχεις εγκατεστημένη την εφαρμογή για το συγκεκριμένο νόμισμα.
24 |
25 | [Δωρεά μέσω του Bitcoin](bitcoin:1H5tqKZoWdqkR54PGe9w67EzBnLXHBFmt9)
26 |
27 | [Δωρεά μέσω του Dogecoin](dogecoin:DFBaP724XR3rfs9wFahBd353yFkgkqatvd)
28 |
29 |
30 | Μέρη τρίτων και απαιτήσεις
31 | ----------------------------------
32 |
33 | Οι Δυαδικές συνθέσεις περιέχουν κώδικα από αυτά τα εξωτερικά εγχειρήματα:
34 |
35 | * [OpenCV Library για το Android](http://www.opencv.org)
36 | * [MarkdownView από τον Feras Alnatsheh](https://github.com/falnatsheh/MarkdownView)
37 | * [TouchImageView από τον Mike Ortiz](https://github.com/MikeOrtiz/TouchImageView)
38 | * [Drag Select Recycler View](https://github.com/afollestad/drag-select-recyclerview)
39 | * [Android Universal Image Loader από τον Sergey Tarasevich](https://github.com/nostra13/Android-Universal-Image-Loader)
40 |
41 | Ευχαριστίες
42 | ------
43 |
44 | ### Έχουν συνεισφέρει
45 |
46 | Σαν εφαρμογή ανοιχτού κώδικα, οι συνεισφορές είναι. πάντα, ευπρόσδεκτες. Οποιοσδήποτε υποβάλει οποιοδήποτε κώδικα θα αναφέρεται εδώ.
47 |
48 | * Nicolas Raoul - Αγγλικές διορθώσεις
49 | * Claudio Arseni - Ιταλική μετάφραση
50 | * Francisco Toca - Ισπανική μετάφραση
51 | * [@nebulon42](https://github.com/nebulon42) - Γερμανική μετάφραση
52 | * Ondřej Míchal - Τσέχικη μετάφραση
53 | * [@nigelinux](https://github.com/nigelinux) - Παραδοσιακή Κινέζικη (zh-rTW) μετάφραση
54 | * [@nikoss](https://github.com/nikoss) - Ελληνική μετάφραση
55 | * [@SkyDragonsz](https://github.com/SkyDragonsz) - μετάφραση στα ολλανδικά
56 | * Naofumi Fukue - Ιαπωνική μετάφραση
57 | * [@ASMfreaK](https://github.com/ASMfreaK) - μετάφραση στα ρωσικά
58 |
59 | Άλλοι άνθρωποι έχουν βοηθήσει με την [Αναφορά Θεμάτων](https://github.com/ctodobom/OpenNoteScanner/issues), και έχουν δώσει πληροφορίες μέσω της [Ομάδας του Telegram](https://t.me/OpenNoteScanner). Η βοήθειά τους εκτιμάται, επίσης.
60 |
61 | ### Εξωτερικός κώδικας
62 |
63 | Αυτή η εφαρμογή δεν θα είχε δημιουργηθεί χωρίς το σπουδαίο υλικό που παράγεται από την κοινότητα. Θα ήθελα να δώσω ειδικές ευχαριστίες στους συγγραφείς απαραίτητων τμημάτων που έλαβα από το διαδίκτυο και χρησιμοποιούνται στον κώδικα:
64 |
65 | * [Android-er / GridView code sample](http://android-er.blogspot.com.br/2012/07/gridview-loading-photos-from-sd-card.html)
66 | * [Android Hive / Full Screen Image pager](http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/)
67 | * [Adrian Rosebrock from pyimagesearch.com for the excellent tutorial on how to handle the images](http://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/)
68 | * [Gabriele Mariotti / On how to implement sections in the RecyclerView](https://gist.github.com/gabrielemariotti/e81e126227f8a4bb339c)
69 |
--------------------------------------------------------------------------------
/app/src/main/assets/about-es.md:
--------------------------------------------------------------------------------
1 | Acerca de Open Note Scanner
2 | ===========================
3 |
4 | **© 20XX [Claudemir Todo Bom](http://todobom.com)**
5 |
6 | Esta aplicación proporciona una manera rápida de escanear y almacenar notas escritas a mano y diseños, así como recibos de la compra y otros documentos. También soporta la captura automática de imágenes de una [página pre-formateada](https://github.com/ctodobom/OpenNoteScanner/raw/master/Page%20Templates/A4%20with%202%20pages.pdf).
7 |
8 |
9 | Licencia
10 | --------
11 |
12 | Esta aplicación está disponible a través de la [GNU General Public License version 3](http://www.gnu.org/licenses/gpl.txt). El código fuente está [disponible en GitHub](http://github.com/ctodobom/OpenNoteScanner).
13 |
14 | Donaciones
15 | ----------
16 |
17 | El desarrollo de aplicaciones en android no es mi trabajo, yo hago esta aplicación por curiosidad y porque hay docenas de aplicaciones con objetivos similares pero ninguna es código abierto.
18 |
19 | Si tu crees que esta aplicación o alguna de mis contribuciones vale la pena gastar un poco de dinero y estás dispuesto a pagarlo, por favor no dudes en hacer alguna donación a través de Paypal, Bitcoin o Dogecoin.
20 |
21 | [Donar a través de Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X6XHVCPMRQEL4)
22 |
23 | **ATENCIÓN:** El enlace a criptomonedas funciona únicamente si tienes la aplicación de esta moneda instalada!
24 |
25 | [Donar a través de Bitcoin](bitcoin:1H5tqKZoWdqkR54PGe9w67EzBnLXHBFmt9)
26 |
27 | [Donar a través de Dogecoin](dogecoin:DFBaP724XR3rfs9wFahBd353yFkgkqatvd)
28 |
29 |
30 | Partes de terceros y requerimientos
31 | ----------------------------------
32 |
33 | El binario compilado incluye código desde estos proyectos externos:
34 |
35 | * [OpenCV Library para Android](http://www.opencv.org)
36 | * [MarkdownView de Feras Alnatsheh](https://github.com/falnatsheh/MarkdownView)
37 | * [TouchImageView de Mike Ortiz](https://github.com/MikeOrtiz/TouchImageView)
38 | * [Drag Select Recycler View](https://github.com/afollestad/drag-select-recyclerview)
39 | * [Android Universal Image Loader de Sergey Tarasevich](https://github.com/nostra13/Android-Universal-Image-Loader)
40 |
41 | Gracias
42 | -------
43 |
44 | ### Colaboradores
45 |
46 | Como cualquier aplicación de código abierto, las contribuciones siempre son bienvenidas. Todo aquel que suministre código será añadido aquí.
47 |
48 | * Nicolas Raoul - Correciones en inglés
49 | * Claudio Arseni - Traducción al italiano
50 | * [@franciscot](https://github.com/franciscot) Francisco Toca / [@yeyeto2788](https://github.com/yeyeto2788) Juan Biondi - Traducción al español
51 | * [@nebulon42](https://github.com/nebulon42) - Traducción al alemán
52 | * Ondřej Míchal - Traducción al Checo
53 | * [@nigelinux](https://github.com/nigelinux) - Traducción al chino tradicional (zh-rTW)
54 | * [@nikoss](https://github.com/nikoss) - traducción al griego
55 | * [@SkyDragonsz](https://github.com/SkyDragonsz) - traducción al holandés
56 | * Naofumi Fukue - Traducción japonesa
57 | * [@ASMfreaK](https://github.com/ASMfreaK) - traducción al ruso
58 |
59 | Otra gente que ayudaron suministrando [reportes de casos](https://github.com/ctodobom/OpenNoteScanner/issues) y aportando información a través del [Grupo de Telegram](https://t.me/OpenNoteScanner). Su ayuda es apreciada también.
60 |
61 | ### Código de terceros
62 |
63 | Esta aplicación no sería posible sin el gran material producido por la comunidad. Me gustaría dar especialmente las gracias a los autores de partes esenciales que yo tomé de internet y he usado en el código:
64 |
65 | * [Android-er / GridView code sample](http://android-er.blogspot.com.br/2012/07/gridview-loading-photos-from-sd-card.html)
66 | * [Android Hive / Full Screen Image pager](http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/)
67 | * [Adrian Rosebrock from pyimagesearch.com for the excellent tutorial on how to handle the images](http://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/)
68 | * [Gabriele Mariotti / On how to implement sections in the RecyclerView](https://gist.github.com/gabrielemariotti/e81e126227f8a4bb339c)
69 |
--------------------------------------------------------------------------------
/app/src/main/assets/about-eu.md:
--------------------------------------------------------------------------------
1 | Open Note Scanneri buruz
2 | =========================
3 |
4 | **© 20XX [Claudemir Todo Bom](http://todobom.com)**
5 |
6 | Aplikazio honek eskuz idatzitako ohar eta artelanak, baita erosketa agiriak eta beste dokumentuak ere eskaneatu eta gordetzeko modu bizkor bat ematen du. Irudien atzemate automatikoa onartzen du ere [aurrez formateatutako orrietan](https://github.com/ctodobom/OpenNoteScanner/raw/master/Page%20Templates/A4%20with%202%20pages.pdf).
7 |
8 |
9 | Lizentzia
10 | ---------
11 |
12 | Aplikazio hau [GNU General Public License version 3](http://www.gnu.org/licenses/gpl.txt) lizentziapean dago eskuragarri. Iturburu kodea [GitHuben eskuratu daiteke](http://github.com/ctodobom/OpenNoteScanner).
13 |
14 | Dohaintzak
15 | ----------
16 |
17 | Androiderako aplikazioak egitea ez da nire lanbidea, aplikazio hau jakin-minagatik eta antzeko helburua duten baina kode irekikoak ez diren hamaika aplikazio daudelako egin dut.
18 |
19 | Aplikazio honek edo nire ekarpenetako edozeinek zerbait balio dutela uste baduzu eta ordaintzeko prest bazaude, mesedez eman ezazu zerbait Paypal, Bitcoin edo Dogecoin bitartez.
20 |
21 | [Paypal bidez dohaintza egin](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X6XHVCPMRQEL4)
22 |
23 | **ERNE:** Kriptotxanponen estekek txanpon horretarako aplikaziorik instalatuta baduzu funtzionatuko dute soilik!
24 |
25 | [Bitcoin bidez dohaintza egin](bitcoin:1H5tqKZoWdqkR54PGe9w67EzBnLXHBFmt9)
26 |
27 | [Dogecoin bidez doahintza egin](dogecoin:DFBaP724XR3rfs9wFahBd353yFkgkqatvd)
28 |
29 |
30 | Hirugarrenen zati eta betebeharrak
31 | ----------------------------------
32 |
33 | Fitxategi binarioek hurrengo kanpoko proiektuen kodea daramate:
34 |
35 | * [OpenCV Library Androiderako](http://www.opencv.org)
36 | * [Feras Alnatshehen MarkdownView](https://github.com/falnatsheh/MarkdownView)
37 | * [Mike Ortizen TouchImageView](https://github.com/MikeOrtiz/TouchImageView)
38 | * [Drag Select Recycler View](https://github.com/afollestad/drag-select-recyclerview)
39 | * [Sergey Tarasevichen Android Universal Image Loader](https://github.com/nostra13/Android-Universal-Image-Loader)
40 |
41 | Esker onak
42 | ----------
43 |
44 | ### Laguntzaileak
45 |
46 | Kode irekiko aplikazio bezala, ekarpenak beti dira ongi etorriak. Edozein kode bidaltzen duen edonor hemen agertuko da.
47 |
48 | * Nicolas Raoul - Ingeleseko zuzenketak
49 | * Claudio Arseni - Italierazko itzulpena
50 | * Francisco Toca - Gaztelerazko itzulpena
51 | * [@nebulon42](https://github.com/nebulon42) - Alemanezko itzulpena
52 | * Ondřej Míchal - Txekierazko itzulpena
53 | * [@nigelinux](https://github.com/nigelinux) - Tradiziozko txinerako (zh-rTW) itzulpena
54 | * Naofumi Fukue - Japonierazko itzulpena
55 | * [@nikoss](https://github.com/nikoss) - Grekozko itzulpena
56 | * [Arthur Saprunov](https://github.com/Skydragonsz) - Nederlanderazko itzulpena
57 | * [@ASMfreaK](https://github.com/ASMfreaK) - Errusierazko itzulpena
58 | * [Yaron Shahrabani](https://github.com/yarons) Hebreerazko itzulpena
59 | * [@Tobaloidee](https://github.com/Tobaloidee) - Ikonoaren diseinua
60 | * [@beriain](https://github.com/beriain) - Euskarazko itzulpena
61 |
62 | Beste batzuk [arazo txostenak](https://github.com/ctodobom/OpenNoteScanner/issues) bidaltzen eta [Telegrameko taldea](https://t.me/OpenNoteScanner)ren bitartez informazioa emanez lagundu dute. Haien laguntza aintzat hartzekoa da ere.
63 |
64 | ### Kanpoko kodea
65 |
66 | Aplikazio hau ez litzateke posible komunitateak sortutako material bikainarik gabe. Bereziki eskertu nahiko nituzke internetetik hartu eta kodean erabili ditudan ezinbesteko zatien egileak:
67 |
68 | * [Android-er / GridView code sample](http://android-er.blogspot.com.br/2012/07/gridview-loading-photos-from-sd-card.html)
69 | * [Android Hive / Full Screen Image pager](http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/)
70 | * [Adrian Rosebrock from pyimagesearch.com for the excellent tutorial on how to handle the images](http://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/)
71 | * [Gabriele Mariotti / On how to implement sections in the RecyclerView](https://gist.github.com/gabrielemariotti/e81e126227f8a4bb339c)
72 |
--------------------------------------------------------------------------------
/app/src/main/assets/about-fa.md:
--------------------------------------------------------------------------------
1 | دربارهٔ Open Note Scanner
2 | =======================
3 |
4 | **© 20XX [Claudemir Todo Bom](http://todobom.com)**
5 |
6 | این برنامه، روشی سریع برای اسکن و ذخیره یادداشتها و طراحیهای دستی، به همراه رسیدهای خرید و دیگر اسناد فراهم میآورد. این برنامه همچنین از گرفتن تصویر در [صفحه پیشقالببندیشده](https://github.com/ctodobom/OpenNoteScanner/raw/master/Page%20Templates/A4%20with%202%20pages.pdf) پشتیبانی میکند..
7 |
8 |
9 | پروانه
10 | -------
11 |
12 | این برنامه تحت [پروانه عمومی همگانی گنو نسخه ۳](http://www.gnu.org/licenses/gpl.txt) منتشر شده است. کد منبع [روی گیتهاب](http://github.com/ctodobom/OpenNoteScanner) دردسترس قرار دارد..
13 |
14 | حمایت مالی
15 | ---------
16 |
17 | ساخت برنامههای اندروید، کار اصلی من نیست و این برنامه را از سر کنجکاوری و اینکه بین برنامههای مشابه دیگر در بازار، هیچ کدام آزاد و متن باز نیستند ساختهام.
18 |
19 | اگر فکر میکنید این برنامه یا هر یک از مشارکتهای من ارزش مقداری پول را دارد و شما هم تمایل به پرداخت آن دارید، میتوانید از طریق پیپال، بیتوین یا داگکوین این حمایت را انجام دهید
20 |
21 | [حمایت از طریق پیپال](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X6XHVCPMRQEL4)
22 |
23 |
24 | **توجه:** پیوند به رمزارزها تنها زمانی کار میکند که شما برنامه خاص آن رمزارز را نصب کرده باشید!
25 |
26 | [حمایت از طریف بیتکوین](bitcoin:1H5tqKZoWdqkR54PGe9w67EzBnLXHBFmt9)
27 |
28 | [حمایت از طریق داگکوین](dogecoin:DFBaP724XR3rfs9wFahBd353yFkgkqatvd)
29 |
30 |
31 | بخشهای مربوط به اشخاص ثالث و نیازمندیها
32 | ----------------------------------
33 |
34 | نسخه دودویی ساخته شده، مشتمل بر کدهایی از این پروژههای خارجی است:
35 |
36 | * [OpenCV Library for Android](http://www.opencv.org)
37 | * [MarkdownView from Feras Alnatsheh](https://github.com/falnatsheh/MarkdownView)
38 | * [TouchImageView from Mike Ortiz](https://github.com/MikeOrtiz/TouchImageView)
39 | * [Drag Select Recycler View](https://github.com/afollestad/drag-select-recyclerview)
40 | * [Android Universal Image Loader from Sergey Tarasevich](https://github.com/nostra13/Android-Universal-Image-Loader)
41 |
42 | سپاس
43 | ------
44 |
45 | ### مشارکتکنندگان
46 |
47 | به عنوان یک نرمافزار آزاد و متن باز، همواره از مشارکت استقبال میشود.
48 |
49 | اکثر مشارکتکنندگان در ترجمه در [پرونده CONTRIBUTORS.md](https://github.com/ctodobom/OpenNoteScanner/blob/master/CONTRIBUTORS.md) و مشارکتکنندگان در کدنویسی در [پرونده تغییرات](https://github.com/ctodobom/OpenNoteScanner/blob/master/CHANGELOG.md) و [تاریخچه کامیتها](https://github.com/ctodobom/OpenNoteScanner/commits) فهرست شدهاند.
50 |
51 | سایر افراد از طریق [گزارش مشکلات](https://github.com/ctodobom/OpenNoteScanner/issues) و دادن اطلاعات از طریق [گروه تلگرام](https://t.me/OpenNoteScanner) کمک کردهاند. از کمک آنها نیز سپاسگزاریم.
52 |
53 | ### کدهای خارجی
54 | این برنامه بدون استفاده از برنامههای ارزندهٔ دیگری که توسط جامعه نرمافزار آزاد تولید شدهاند امکان وجود نداشت. تمایل دارم تشکر ویژه خودم را از پدیدآورندگان بخشهای اساسیای که روی اینترنت یافته و در برنامه از آنها استفاده کردهام ابراز کنم:
55 |
56 | * [Android-er / GridView code sample](http://android-er.blogspot.com.br/2012/07/gridview-loading-photos-from-sd-card.html)
57 | * [Android Hive / Full Screen Image pager](http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/)
58 | * [Adrian Rosebrock from pyimagesearch.com for the excellent tutorial on how to handle the images](http://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/)
59 | * [Gabriele Mariotti / On how to implement sections in the RecyclerView](https://gist.github.com/gabrielemariotti/e81e126227f8a4bb339c)
60 |
--------------------------------------------------------------------------------
/app/src/main/assets/about-fr.md:
--------------------------------------------------------------------------------
1 | Open Note Scanner
2 | =================
3 |
4 | **© 20XX [Claudemir Todo Bom](http://todobom.com)**
5 |
6 | Cette application permet de numériser et d'enregistrer facilement des notes manuscrites, des dessins ou encore des tickets de caisse et autres documents. Elle permet également la numérisation automatique d'images à partir de [page pré-formattée](https://github.com/ctodobom/OpenNoteScanner/raw/master/Page%20Templates/A4%20with%202%20pages.pdf).
7 |
8 |
9 | Licence
10 | -------
11 |
12 | Cette application est publiée sous la licence [GNU General Public License version 3](http://www.gnu.org/licenses/gpl.txt). Le code source de l'application [est diponible sur GitHub](http://github.com/ctodobom/OpenNoteScanner).
13 |
14 | Dons
15 | ----
16 |
17 | La création d'application Android n'est pas mon métier principal, je développe cette application par curiosité et parce qu'il existe des dizaines d'applications avec des objectifs similaires mais qu'aucune n'est libre.
18 |
19 | Si vous pensez que cette application ou une autre de mes contributions vaut un peu d'argent et vous êtes disposé à payer pour cela, n'hésitez pas à faire un don via Paypal, Bitcoin or Dogecoin.
20 |
21 | [Donner via Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X6XHVCPMRQEL4)
22 |
23 | **ATTENTION:** Les liens vers des dons en crypto-monnaies ne fonctionnent que si vous avez installé une application pour celles-ci !
24 |
25 | [Donner via Bitcoin](bitcoin:1H5tqKZoWdqkR54PGe9w67EzBnLXHBFmt9)
26 |
27 | [Donner via Dogecoin](dogecoin:DFBaP724XR3rfs9wFahBd353yFkgkqatvd)
28 |
29 |
30 | Applications tierces et requises
31 | --------------------------------
32 |
33 | Les fichiers binaires incluent du code de ces projets externes :
34 |
35 | * [Librairie OpenCV pour Android](http://www.opencv.org)
36 | * [MarkdownView de Feras Alnatsheh](https://github.com/falnatsheh/MarkdownView)
37 | * [TouchImageView de Mike Ortiz](https://github.com/MikeOrtiz/TouchImageView)
38 | * [Drag Select Recycler View](https://github.com/afollestad/drag-select-recyclerview)
39 | * [Android Universal Image Loader de Sergey Tarasevich](https://github.com/nostra13/Android-Universal-Image-Loader)
40 |
41 | Remerciements
42 | ------------
43 |
44 | ### Contributeurs
45 |
46 | Comme il s'agit d'une application libre, les contributions sont toujours les bienvenues. Toute personne ayant soumis du code sera listée ici.
47 |
48 | La plupart des contributions aux traductions sont dans [CONTRIBUTORS.md](https://github.com/ctodobom/OpenNoteScanner/blob/master/CONTRIBUTORS.md) et les contributeurs de code sont dans [CHANGELOG.md](https://github.com/ctodobom/OpenNoteScanner/blob/master/CHANGELOG.md) et [l'histoire des commits](https://github.com/ctodobom/OpenNoteScanner/commits).
49 |
50 | D'autres personnes ont contribué en déposant des [rapports de bugs](https://github.com/ctodobom/OpenNoteScanner/issues) et en fournissant des informations via le [groupe Telegram](https://t.me/OpenNoteScanner). Leur aide est appréciée également.
51 |
52 | ### Code externe
53 |
54 | Cette application n'aurait pu exister sans le superbe matériel produit par la communauté. Je voudrais remercier tout particulièrement les auteurs des sources essentielles que j'ai consultées sur Internet et utilisées dans le code :
55 |
56 | * [Android-er / L'exemple de code d'utilisation de GridView](http://android-er.blogspot.com.br/2012/07/gridview-loading-photos-from-sd-card.html)
57 | * [Android Hive / Full Screen Image pager](http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/)
58 | * [Adrian Rosebrock de pyimagesearch.com pour son excellent tutoriel sur la manière de traiter les images](http://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/)
59 | * [Gabriele Mariotti / Tutoriel sur la manière d'implémenter les sections avec le RecyclerView](https://gist.github.com/gabrielemariotti/e81e126227f8a4bb339c)
60 |
--------------------------------------------------------------------------------
/app/src/main/assets/about-he.md:
--------------------------------------------------------------------------------
1 | על אודות Open Note Scanner
2 | =========================
3 |
4 | **© 20XX [Claudemir Todo Bom](http://todobom.com)**
5 |
6 | יישומון זה מציע דרך קלה לסחור ולאחסן פתקים שנכתבו בכתב יד, לרבות יצירות אמנות, קבלות על קניות ומגוון מסמכים אחרים. היישומון גם תוך בלכידה אוטומטית של תמונות ב[עמוד שתוכן למטרה זו מראש](https://github.com/ctodobom/OpenNoteScanner/raw/master/Page%20Templates/A4%20with%202%20pages.pdf).
7 |
8 |
9 | רשיון
10 | -------
11 |
12 | יישומון זה כפוף ל[גרסה 3 של הרישיון הציבורי הכללי של GNU](http://www.gnu.org/licenses/gpl.txt). קוד המקור [זמין לקהל הרחב דרך GitHub](http://github.com/ctodobom/OpenNoteScanner).
13 |
14 | תרומות
15 | ---------
16 |
17 | פיתוח יישומון ל־Android אינה העבודה העיקרית שלי, פיתחתי את היישומון הזה מתוך סקרנות וגם מכיוון שישנם מגוון יישומונים עם מטרות דומות אך אף אחד מהם אינו בקוד פתוח.
18 |
19 | אם לדעתך היישומון שלי או כל תרומה אחרת שלי שווה כסף ובא לך לשלם עליה, נא להרגיש חופשי לתרום דרך PayPal, ביטקוין או Dogecoin.
20 |
21 | [תרומה דרך Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X6XHVCPMRQEL4)
22 |
23 | **לתשומת לבך:** הקישור למטבעות קריפטוגרפיים עובד רק אם יש לך את היישומון של אותו המטבע מותקן!
24 |
25 | [תרומה דרך Bitcoin](bitcoin:1H5tqKZoWdqkR54PGe9w67EzBnLXHBFmt9)
26 |
27 | [תרומה דרך Dogecoin](dogecoin:DFBaP724XR3rfs9wFahBd353yFkgkqatvd)
28 |
29 |
30 | רכיבי צד שלישי ודרישות
31 | ----------------------------------
32 |
33 | הגרסה הבינרית כוללת קוד מהמיזמים החיצוניים האלה:
34 |
35 | * [ספריית OpenCV ל־Android](http://www.opencv.org)
36 | * [MarkdownView מאת Feras Alnatsheh](https://github.com/falnatsheh/MarkdownView)
37 | * [TouchImageView מאת Mike Ortiz](https://github.com/MikeOrtiz/TouchImageView)
38 | * [תצוגת Drag Select Recycler](https://github.com/afollestad/drag-select-recyclerview)
39 | * [Android Universal Image Loader מאת Sergey Tarasevich](https://github.com/nostra13/Android-Universal-Image-Loader)
40 |
41 | תודות
42 | ------
43 |
44 | ### תורמים
45 |
46 | בתור יישומון בקוד פתוח, אנו תמיד שמחים לקבל תרומות. כל מי שיתרום קוד יופיע כאן.
47 |
48 | * ניקולס ראול - תיקונים באנגלית
49 | * קלאודיו ארסני - תרגום לאיטלקית
50 | * פרנסיסקו טוקה - תרגום לספרדית
51 | * [@nebulon42](https://github.com/nebulon42) - תרגום לגרמנית
52 | * אונג'יי מיכה - תרגום לצ׳כית
53 | * [@nigelinux](https://github.com/nigelinux) - תרגום לסינית מסורתית (zh-rTW)
54 | * [@nikoss](https://github.com/nikoss) - תרגום ליוונית
55 | * [@SkyDragonsz](https://github.com/SkyDragonsz) - תרגום להולנדית
56 | * נאופומי פוקואה - תרגום ליפנית
57 | * [@ASMfreaK](https://github.com/ASMfreaK) - תרגום לרוסית
58 |
59 | אנשים נוספים סייעו על ידי [דיווח על תקלות](https://github.com/ctodobom/OpenNoteScanner/issues) וגם על ידי שיתוף הבעיה ב[קבוצת הטלגרם](https://t.me/OpenNoteScanner). עזרתם מוערכת גם כן.
60 |
61 | ### קוד חיצוני
62 |
63 | יישומון זה לא היה קורם עור וגידים ללא החומרים הנהדרים שנוצרו על ידי הקהילה. ברצוני להודות במיוחד ליוצרי החלקים החיוניים בהם נתקלתי באינטרנט והשתמשתי בהם בקוד:
64 |
65 | * [Android-er / דוגמית קוד GridView](http://android-er.blogspot.com.br/2012/07/gridview-loading-photos-from-sd-card.html)
66 | * [Android Hive / עימוד תמונה במסך מלא ](http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/)
67 | * [אדריאן רוזברוק מ־pyimagesearch.com על המדריך המצוין על אופן הטיפול בתמונות](http://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/)
68 | * [גבריאל מריוטי / על איך לייבא מקטעים ב־RecyclerView](https://gist.github.com/gabrielemariotti/e81e126227f8a4bb339c)
69 |
--------------------------------------------------------------------------------
/app/src/main/assets/about-in.md:
--------------------------------------------------------------------------------
1 | Tentang Open Note Scanner
2 | =======================
3 |
4 | **© 20XX [Claudemir Todo Bom](http://todobom.com)**
5 |
6 | Aplikasi ini menyediakan cara yang cepat untuk memindai dan menyimpan seni dan catatan tangan, kuitansi dan juga dokumen lainnya. Mendukung pengambilan otomatis gambar pada [halaman pra-format](https://github.com/ctodobom/OpenNoteScanner/raw/master/Page%20Templates/A4%20with%202%20pages.pdf).
7 |
8 |
9 | Lisensi
10 | -------
11 |
12 | Aplikasi ini berada dibawah naungan [Lisensi Publik Umum GNU versi 3](http://www.gnu.org/licenses/gpl.txt). Kode sumber aplikasi [tersedia di GitHub](http://github.com/ctodobom/OpenNoteScanner).
13 |
14 | Donasi
15 | ---------
16 |
17 | Mengembangkan aplikasi Android bukanlah pekerjaan utama saya, saya membuat aplikasi ini berawal dari rasa penasaran dan juga karena banyak sekali aplikasi serupa dengan fungsi yang sama tetapi tidak satupun yang bersumber terbuka.
18 |
19 | Jika menurut anda aplikasi ini atau kontribusi saya layak untuk dihargai, dan jika anda berkenan, jangan ragu untuk donasi melalui Paypal, Bitcoin atau Dogecoin.
20 |
21 | [Donasi melalui Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X6XHVCPMRQEL4)
22 |
23 | **PERHATIAN:** Tautan ke cryptocoin hanya bisa bekerja jika anda telah memasang aplikasi untuk mengelola koin tersebut!
24 |
25 | [Donasi melalui Bitcoin](bitcoin:1H5tqKZoWdqkR54PGe9w67EzBnLXHBFmt9)
26 |
27 | [Donasi melalui Dogecoin](dogecoin:DFBaP724XR3rfs9wFahBd353yFkgkqatvd)
28 |
29 |
30 | Pustaka dan paket pihak ketiga
31 | ----------------------------------
32 |
33 | Binari aplikasi mengandung kode dari proyek eksternal berikut ini:
34 |
35 | * [Pustaka OpenCV untuk Android](http://www.opencv.org)
36 | * [MarkdownView dari Feras Alnatsheh](https://github.com/falnatsheh/MarkdownView)
37 | * [TouchImageView dari Mike Ortiz](https://github.com/MikeOrtiz/TouchImageView)
38 | * [Drag Select Recycler View](https://github.com/afollestad/drag-select-recyclerview)
39 | * [Android Universal Image Loader dari Sergey Tarasevich](https://github.com/nostra13/Android-Universal-Image-Loader)
40 |
41 | Terima kasih
42 | ------
43 |
44 | ### Kontribusi
45 |
46 | Sebagai aplikasi yang bersumber terbuka, segala jenis kontribusi akan selalu diterima.
47 |
48 | Sebagian besar kontributor terjemahan dicatat dalam [berkas CONTRIBUTORS.md](https://github.com/ctodobom/OpenNoteScanner/blob/master/CONTRIBUTORS.md) dan kontributor kode dicatat dalam [berkas Catatan Perubahan](https://github.com/ctodobom/OpenNoteScanner/blob/master/CHANGELOG.md) dan [riwayat commit](https://github.com/ctodobom/OpenNoteScanner/commits).
49 |
50 | Yang lainnya membantu dengan mengirim [Laporan Masalah](https://github.com/ctodobom/OpenNoteScanner/issues) dan info terkait melalui [Grup Telegram](https://t.me/OpenNoteScanner). Bantuan mereka sangat saya hargai.
51 |
52 | ### Kode eksternal
53 |
54 | Aplikasi ini tidak akan bisa dikembangkan tanpa bantuan material yang dibuat oleh komunitas. Saya ingin memberikan penghargaan tertinggi untuk para pengembang yang karyanya saya temukan di Internet dan saya gunakan dalam aplikasi ini:
55 |
56 | * [Contoh kode Android-er / GridView](http://android-er.blogspot.com.br/2012/07/gridview-loading-photos-from-sd-card.html)
57 | * [Android Hive / Full Screen Image pager](http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/)
58 | * [Adrian Rosebrock dari pyimagesearch.com untuk tutorial tentang bagaimana cara mengolah gambar](http://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/)
59 | * [Gabriele Mariotti / Tentang bagaimana mengimplementasikan bagian-bagian di dalam RecyclerView](https://gist.github.com/gabrielemariotti/e81e126227f8a4bb339c)
60 |
--------------------------------------------------------------------------------
/app/src/main/assets/about-it.md:
--------------------------------------------------------------------------------
1 | Informazioni su Open Note Scanner
2 | =================================
3 |
4 | **© 20XX [Claudemir Todo Bom](http://todobom.com)**
5 |
6 | Questa applicazione offre una rapida soluzione per acquisire e archiviare note scritte a mano e disegni, oltre a liste della spesa e altri documenti. Supporta anche l'acquisizione automatica di immagini su una [pagina pre-formattata](https://github.com/ctodobom/OpenNoteScanner/raw/master/Page%20Templates/A4%20with%202%20pages.pdf).
7 |
8 |
9 | Licenza
10 | -------
11 |
12 | Questa applicazione è distribuita secondo i termini della [GNU General Public License versione 3](http://www.gnu.org/licenses/gpl.txt). Il codice sorgente è [disponibile su GitHub](http://github.com/ctodobom/OpenNoteScanner).
13 |
14 | Donazioni
15 | ---------
16 |
17 | La creazione di applicazioni Android non è il mio lavoro principale, ho creato questa applicazione per curiosità e perché ci sono dozzine di applicazioni con obiettivi simili ma nessuna di queste è open source.
18 |
19 | Se pensate che questa applicazione o qualunque mia altra attività meritino un contributo e siete disposti a pagare per questo, sentitevi liberi di fare una donazione usando Paypal, Bitcoin o Dogecoin.
20 |
21 | [Dona con Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X6XHVCPMRQEL4)
22 |
23 | **ATTENZIONE:** i collegamenti alle criptovalute funzionano solo se è installata una applicazione per gestire tali pagamenti!
24 |
25 | [Dona con Bitcoin](bitcoin:1H5tqKZoWdqkR54PGe9w67EzBnLXHBFmt9)
26 |
27 | [Dona con Dogecoin](dogecoin:DFBaP724XR3rfs9wFahBd353yFkgkqatvd)
28 |
29 |
30 | Componenti di terze parti e requisiti
31 | -------------------------------------
32 |
33 | Questa applicazione contiene codice dai seguenti progetti esterni:
34 |
35 | * [Libreria OpenCV per Android](http://www.opencv.org)
36 | * [MarkdownView di Feras Alnatsheh](https://github.com/falnatsheh/MarkdownView)
37 | * [TouchImageView di Mike Ortiz](https://github.com/MikeOrtiz/TouchImageView)
38 | * [Drag Select Recycler View](https://github.com/afollestad/drag-select-recyclerview)
39 | * [Android Universal Image Loader di Sergey Tarasevich](https://github.com/nostra13/Android-Universal-Image-Loader)
40 |
41 | Ringraziamenti
42 | --------------
43 |
44 | ### Contributi
45 |
46 | Come applicazione open source, i contributi sono sempre benvenuti.
47 |
48 | La maggior parte dei contributi alla traduzione sono elencati nel file [CONTRIBUTORS.md file](https://github.com/ctodobom/OpenNoteScanner/blob/master/CONTRIBUTORS.md), mentre i contributi al codice sono nel [Changelog](https://github.com/ctodobom/OpenNoteScanner/blob/master/CHANGELOG.md) e nella [cronologia dei commit](https://github.com/ctodobom/OpenNoteScanner/commits).
49 |
50 | Altre persone hanno aiutato con le [segnalazioni di errori](https://github.com/ctodobom/OpenNoteScanner/issues) e dando informazioni attraverso il [gruppo Telegram](https://t.me/OpenNoteScanner). Anche il loro aiuto è molto apprezzato.
51 |
52 | ### Codice esterno
53 |
54 | Questa applicazione non sarebbe stata realizzabile senza il grande materiale prodotto dalla comunità. Uno speciale ringraziamento agli autori di parti essenziali che ho trovato su internet e di cui ho utilizzato il codice:
55 |
56 | * [Android-er / esempi di codice per GridView](http://android-er.blogspot.com.br/2012/07/gridview-loading-photos-from-sd-card.html)
57 | * [Android Hive / Full Screen Image pager](http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/)
58 | * [Adrian Rosebrock da pyimagesearch.com per il fantastico tutorial su come gestire le immagini](http://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/)
59 | * [Gabriele Mariotti / Come implementare le sezioni in RecyclerView](https://gist.github.com/gabrielemariotti/e81e126227f8a4bb339c)
60 |
--------------------------------------------------------------------------------
/app/src/main/assets/about-ja.md:
--------------------------------------------------------------------------------
1 | Open Note Scanner について
2 | ==========================
3 |
4 | **© 20XX [Claudemir Todo Bom](http://todobom.com)**
5 |
6 | このアプリケーションは素早く手書きのメモやアート、ショッピングのレシートやその他の文書をスキャンして保存する方法を提供します。 また [あらかじめフォーマットされたページ](https://github.com/ctodobom/OpenNoteScanner/raw/master/Page%20Templates/A4%20with%202%20pages.pdf) 画像の自動キャプチャもサポートしています。
7 |
8 |
9 | ライセンス
10 | ----------
11 |
12 | このアプリケーションは [GNU GPL バージョン 3](http://www.gnu.org/licenses/gpl.txt) で利用できます。 ソースコードは [GitHub で利用できます](http://github.com/ctodobom/OpenNoteScanner)。
13 |
14 | 寄付
15 | ----
16 |
17 | Android アプリケーションを作成することは私の主要な仕事ではありません。私はこのアプリケーションを好奇心から作成しました。同様の目的を持った数十ものアプリケーションがありますが、どれもオープンソースではないからです。
18 |
19 | このアプリケーションや私の貢献に価値があり、あなたが支払ってもよいと思っていただくのでであれば、Paypal、Bitcoin、Dogecoin で寄付をしてください。
20 |
21 | [Paypal で寄付](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X6XHVCPMRQEL4)
22 |
23 | **注意:** 暗号通貨のリンクは、そのコインのアプリがインストールされている場合にのみ機能します!
24 |
25 | [Bitcoin で寄付](bitcoin:1H5tqKZoWdqkR54PGe9w67EzBnLXHBFmt9)
26 |
27 | [Dogecoin で寄付](dogecoin:DFBaP724XR3rfs9wFahBd353yFkgkqatvd)
28 |
29 |
30 | サードパーティの部品と要件
31 | --------------------------
32 |
33 | バイナリビルドには、これらの外部プロジェクトのコードが含まれています:
34 |
35 | * [OpenCV Library for Android](http://www.opencv.org)
36 | * [MarkdownView from Feras Alnatsheh](https://github.com/falnatsheh/MarkdownView)
37 | * [TouchImageView from Mike Ortiz](https://github.com/MikeOrtiz/TouchImageView)
38 | * [Drag Select Recycler View](https://github.com/afollestad/drag-select-recyclerview)
39 | * [Android Universal Image Loader from Sergey Tarasevich](https://github.com/nostra13/Android-Universal-Image-Loader)
40 |
41 | 謝辞
42 | ----
43 |
44 | ### 貢献者
45 |
46 | オープンソース アプリケーションとして、貢献は常に歓迎です。 コードを提出するすべての人がここにリストされます。
47 |
48 | * Nicolas Raoul - 英語の訂正
49 | * Claudio Arseni - イタリア語翻訳
50 | * Francisco Toca - スペイン語翻訳
51 | * [@nebulon42](https://github.com/nebulon42) - ドイツ語翻訳
52 | * Ondřej Míchal - チェコ語翻訳
53 | * [@nigelinux](https://github.com/nigelinux) - 繁体中国語 (zh-rTW) 翻訳
54 | * [@naofum] - 日本語翻訳
55 | * [@nikoss](https://github.com/nikoss) - ギリシャ語への翻訳
56 | * [Arthur Saprunov](https://github.com/Skydragonsz) - オランダ語翻訳
57 | * [@ASMfreaK](https://github.com/ASMfreaK) - ロシア語の翻訳
58 | * [Yaron Shahrabani](https://github.com/yarons) ヘブライ語翻訳
59 | * [@Tobaloidee](https://github.com/Tobaloidee) - アイコンデザイン
60 |
61 | [問題の報告](https://github.com/ctodobom/OpenNoteScanner/issues) を提出して支援したり [Telegram グループ](https://t.me/OpenNoteScanner) で情報を提供してくれた他の人々。 彼らの支援も高く評価しています。
62 |
63 | ### 外部コード
64 |
65 | このアプリケーションは、コミュニティによって作られた素晴らしい素材がなければ不可能でした。 私はインターネットで入手して、コードに使用した重要な部品の作者に特別な感謝をしたいと思います:
66 |
67 | * [Android-er / GridView コードサンプル](http://android-er.blogspot.com.br/2012/07/gridview-loading-photos-from-sd-card.html)
68 | * [Android Hive / フルスクリーン イメージページャ](http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/)
69 | * [画像の操作方法に関する優れたチュートリアルの pyimagesearch.com の Adrian Rosebrock](http://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/)
70 | * [Gabriele Mariotti / RecyclerView でセクションの実装方法について](https://gist.github.com/gabrielemariotti/e81e126227f8a4bb339c)
71 |
--------------------------------------------------------------------------------
/app/src/main/assets/about-nl.md:
--------------------------------------------------------------------------------
1 | Over Open Note Scanner
2 | =======================
3 |
4 | **© 20XX [Claudemir Todo Bom](http://todobom.com)**
5 |
6 | Deze applicatie biedt een snelle manier om handgeschreven notities en tekeningen te scannen en op te slaan, evenals kassaticketten en andere documenten. Het ondersteunt ook het automatisch vastleggen van afbeeldingen op een [voorgeformatteerde pagina](https://github.com/ctodobom/OpenNoteScanner/raw/master/Page%20Templates/A4%20with%202%20pages.pdf).
7 |
8 |
9 | Licentie
10 | -------
11 |
12 | Deze applicatie is beschikbaar gemaakt via de [GNU General Public License version 3](http://www.gnu.org/licenses/gpl.txt). Broncode is beschikbaar op [GitHub](https://github.com/ctodobom/OpenNoteScanner).
13 |
14 | Donaties
15 | ---------
16 |
17 | Het maken van Android-applicaties is niet mijn vaste job/werk, ik heb deze applicatie gemaakt uit nieuwsgierigheid en omdat er tientallen apps zijn met vergelijkbare doelen, maar geen van hen is open source.
18 |
19 | Als je denkt dat deze applicatie of een van mijn bijdragen wat geld waard is en je bereid bent ervoor te betalen, aarzel dan niet om een donatie te doen via Paypal, Bitcoin of Dogecoin.
20 |
21 | [Doneer via Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X6XHVCPMRQEL4)
22 |
23 | **LET OP:** Link naar cryptocoins werkt alleen als er een app voor die munt geïnstalleerd staat!
24 |
25 | [Doneer via Bitcoin](bitcoin:1H5tqKZoWdqkR54PGe9w67EzBnLXHBFmt9)
26 |
27 | [Doneer via Dogecoin](dogecoin:DFBaP724XR3rfs9wFahBd353yFkgkqatvd)
28 |
29 |
30 | Onderdelen en vereisten van derden
31 | ----------------------------------
32 |
33 | Binaire builds bevatten code van deze externe projecten:
34 |
35 | * [OpenCV Library voor Android](https://www.opencv.org)
36 | * [MarkdownView van Feras Alnatsheh](https://github.com/falnatsheh/MarkdownView)
37 | * [TouchImageView van Mike Ortiz](https://github.com/MikeOrtiz/TouchImageView)
38 | * [Drag Select Recycler View](https://github.com/afollestad/drag-select-recyclerview)
39 | * [Android Universal Image Loader van Sergey Tarasevich](https://github.com/nostra13/Android-Universal-Image-Loader)
40 |
41 | Bedankt
42 | ------
43 |
44 | ### Contributors
45 |
46 | Als open source-applicatie is een bijdrage altijd welkom. Iedereen die een code indient, wordt hier vermeld.
47 |
48 | De meeste vertaalbijdragen worden vermeld in het [CONTRIBUTORS.md-bestand](https://github.com/ctodobom/OpenNoteScanner/blob/master/CONTRIBUTORS.md) en codebijdragers worden vermeld in het [Changelog-bestand](https://github.com/ctodobom/OpenNoteScanner/blob/master/CHANGELOG.md) en de [commits-geschiedenis](https://github.com/ctodobom/OpenNoteScanner/commits)
49 |
50 | Andere mensen hebben geholpen bij het indienen van [Issuerapporten](https://github.com/ctodobom/OpenNoteScanner/issues) en het geven van informatie via de [Telegram Group](https://t.me/OpenNoteScanner). Hun hulp wordt ook gewaardeerd.
51 |
52 | ### Externe code
53 |
54 | Deze toepassing zou niet mogelijk zijn zonder het fantastische materiaal geproduceerd door de gemeenschap. Ik wil speciaal de auteurs van essentiële onderdelen die ik op het internet heb gekregen en gebruikt in de code, bedanken:
55 |
56 | * [Android-er / GridView-codevoorbeeld](http://android-er.blogspot.com.br/2012/07/gridview-loading-photos-from-sd-card.html)
57 | * [Android Hive / Afbeelding op volledig scherm](http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/)
58 | * [Adrian Rosebrock van pyimagesearch.com voor de uitstekende zelfstudie over hoe met de afbeeldingen om te gaan](http://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/)
59 | * [Gabriele Mariotti / Over hoe u secties in de RecyclerView kunt implementeren](https://gist.github.com/gabrielemariotti/e81e126227f8a4bb339c)
60 |
--------------------------------------------------------------------------------
/app/src/main/assets/about-pl.md:
--------------------------------------------------------------------------------
1 | O Open Note Scanner
2 | =======================
3 |
4 | **© 20XX [Claudemir Todo Bom](http://todobom.com)**
5 |
6 | Aplikacja ta umożliwia szybkie skanowanie i przechowywanie odręcznych notatek i dzieł sztuki, a także paragonów zakupowych i innych dokumentów. Obsługuje również automatyczne przechwytywanie obrazów na [wstępnie sformatowanej stronie](https://github.com/ctodobom/OpenNoteScanner/raw/master/Page%20Templates/A4%20with%202%20pages.pdf).
7 |
8 |
9 | Licencja
10 | -------
11 |
12 | Ta aplikacja jest udostępniana na licencji [GNU General Public License version 3](http://www.gnu.org/licenses/gpl.txt). Kod źródłowy jest [dostępny na GitHub](http://github.com/ctodobom/OpenNoteScanner).
13 |
14 | Dotacje
15 | ---------
16 |
17 | Tworzenie aplikacji na Androida nie jest moim głównym zajęciem, stworzyłem tę aplikację z ciekawości oraz, ponieważ - wprawdzie istnieją dziesiątki aplikacji o podobnych celach - żadna z nich nie jest open source.
18 |
19 | Jeśli uważasz, że ta aplikacja lub jakikolwiek mój wkład są wart trochę pieniędzy i jesteś gotów za to zapłacić, możesz przekazać darowiznę za pośrednictwem Paypal, Bitcoin lub Dogecoin
20 |
21 | [Przekaż dotację za pomocą PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X6XHVCPMRQEL4)
22 |
23 | **UWAGA:** Linki do kryptowalut działają tylko wtedy, gdy masz zainstalowaną aplikację dla danej waluty!
24 |
25 | [Przekaż dotację za pomocą Bitcoin](bitcoin:1H5tqKZoWdqkR54PGe9w67EzBnLXHBFmt9)
26 |
27 | [Przekaż dotację za pomocą Dogecoin](dogecoin:DFBaP724XR3rfs9wFahBd353yFkgkqatvd)
28 |
29 |
30 | Części zewnętrzne i wymagania
31 | ----------------------------------
32 |
33 | Kompilacje binarne zawierają kod z tych zewnętrznych projektów:
34 |
35 | * [Biblioteka OpenCV dla Android](http://www.opencv.org)
36 | * [MarkdownView od Feras Alnatsheh](https://github.com/falnatsheh/MarkdownView)
37 | * [TouchImageView od Mike Ortiz](https://github.com/MikeOrtiz/TouchImageView)
38 | * [Drag Select Recycler View](https://github.com/afollestad/drag-select-recyclerview)
39 | * [Android Universal Image Loader od Sergey Tarasevich](https://github.com/nostra13/Android-Universal-Image-Loader)
40 |
41 | Podziękowania
42 | ------
43 |
44 | ### Współtwórcy
45 |
46 | Jako w aplikację open source, wkład jest zawsze mile widziany.
47 |
48 | Większość współtwórców tłumaczeń jest wymienionych w [pliku CONTRIBUTORS.md](https://github.com/ctodobom/OpenNoteScanner/blob/master/CONTRIBUTORS.md); współtwórców kodu w [pliku listy zmian](https://github.com/ctodobom/OpenNoteScanner/blob/master/CHANGELOG.md) i w [historii wkładów](https://github.com/ctodobom/OpenNoteScanner/commits).
49 |
50 | Inne osoby pomogły w przesyłaniu [Raportów o Problemach](https://github.com/ctodobom/OpenNoteScanner/issues) i udzielaniu informacji za pośrednictwem [Grupy na Telegramie](https://t.me/OpenNoteScanner). Ich pomoc jest również doceniana.
51 |
52 | ### Kod zewnętrzny
53 |
54 | Ta aplikacja nie byłaby możliwa bez świetnego materiału stworzonego przez społeczność. Chciałbym szczególnie podziękować autorom najważniejszych części, które znalazłem w internecie i wykorzystałem w kodzie:
55 |
56 | * [Android-er / próbka kodu GridView](http://android-er.blogspot.com.br/2012/07/gridview-loading-photos-from-sd-card.html)
57 | * [Android Hive / Full Screen Image pager](http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/)
58 | * [Adrian Rosebrock z pyimagesearch.com za doskonały tutorial dotyczący obsługi obrazów](http://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/)
59 | * [Gabriele Mariotti / O tym, jak wdrożyć sekcje w RecyclerView](https://gist.github.com/gabrielemariotti/e81e126227f8a4bb339c)
60 |
--------------------------------------------------------------------------------
/app/src/main/assets/about-pt.md:
--------------------------------------------------------------------------------
1 | Sobre o Open Note Scanner
2 | =========================
3 |
4 | **© 20XX [Claudemir Todo Bom](http://todobom.com)**
5 |
6 | Este aplicativo fornece uma maneira rápida para escanear e armazenar anotações, artes e também recibos e outros documentos. Ele também suporta a captura automática a partir de uma [página pré-formatada](https://github.com/ctodobom/OpenNoteScanner/raw/master/Page%20Templates/A4%20with%202%20pages.pdf).
7 |
8 | Licença
9 | -------
10 |
11 | Esta aplicação está disponibilizada através da [Licença GNU GPL versão 3](http://www.gnu.org/licenses/gpl.txt). Source code is [available on GitHub](http://github.com/ctodobom/OpenNoteScanner).
12 |
13 | Doações
14 | -------
15 |
16 | Desenvolver aplicativos Android não é meu trabalho principal, eu desenvolvi este aplicativo por curiosidade e também pelo fato de existir dezenas de aplicativos com objetivos similares, porém nenhum deles em código aberto.
17 |
18 | Se você acredita que este aplicativo ou qualquer outra das minhas contribuições valem algum dinheiro e está disposto a pagar por ele, sinta-se livre para fazer qualquer doação através do Paypal, Bitcoin ou Dogecoin.
19 |
20 | [Doar através do Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ATDTX7DZ93YRN)
21 |
22 | **ATENÇÃO:** Os atalhos para as moedas criptográficas abaixo funcionam apenas se você tiver os respectivos aplicativos instalados!
23 |
24 | [Donate through Bitcoin](bitcoin:1H5tqKZoWdqkR54PGe9w67EzBnLXHBFmt9)
25 |
26 | [Donate through Dogecoin](dogecoin:DFBaP724XR3rfs9wFahBd353yFkgkqatvd)
27 |
28 |
29 | Código de terceiros e dependências
30 | ----------------------------------
31 |
32 | O aplicativo inclui código das seguintes fontes:
33 |
34 | * [Biblioteca OpenCV para Android](http://www.opencv.org)
35 | * [MarkdownView de Feras Alnatsheh](https://github.com/falnatsheh/MarkdownView)
36 | * [TouchImageView de Mike Ortiz](https://github.com/MikeOrtiz/TouchImageView)
37 | * [Drag Select Recycler View](https://github.com/afollestad/drag-select-recyclerview)
38 | * [Android Universal Image Loader de Sergey Tarasevich](https://github.com/nostra13/Android-Universal-Image-Loader)
39 |
40 | Agradecimentos
41 | --------------
42 |
43 | ### Colaboradores
44 |
45 | Contribuições com traduções estão listadas no [arquivo CONTRIBUTORS.md](https://github.com/ctodobom/OpenNoteScanner/blob/master/CONTRIBUTORS.md), contribuições de código são creditadas no [arquivo de Changelog](https://github.com/ctodobom/OpenNoteScanner/blob/master/CHANGELOG.md) e no [histórico de commits](https://github.com/ctodobom/OpenNoteScanner/commits)
46 |
47 | Outras pessoas ajudaram enviando [Relatórios de Bugs](https://github.com/ctodobom/OpenNoteScanner/issues) e fornecendo informações pelo [grupo no Telegram](https://t.me/OpenNoteScanner). Esta ajuda também é muito apreciada.
48 |
49 | ### Código de terceiros
50 |
51 | Este aplicativo não seria possível sem o ótimo material produzido pela comunidade. Eu gostaria de dar agradecimentos especiais para os autores de partes essenciais que encontrei na internet e utilizei no código:
52 |
53 | * [Android-er / Exemplo do código GridVew](http://android-er.blogspot.com.br/2012/07/gridview-loading-photos-from-sd-card.html)
54 | * [Android Hive / Paginador de imagens em tela cheia](http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/)
55 | * [Adrian Rosebrock do pyimagesearch.com pelo excelente tutorial em como manipular as imagens](http://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/)
56 | * [Gabriele Mariotti / sobre como implementar seções no RecyclerView](https://gist.github.com/gabrielemariotti/e81e126227f8a4bb339c)
57 |
--------------------------------------------------------------------------------
/app/src/main/assets/about-ru.md:
--------------------------------------------------------------------------------
1 | О программеOpen Note Scanner
2 | ============================
3 |
4 | **© 20XX [Claudemir Todo Bom](http://todobom.com)**
5 |
6 | Приложение предоставляет быстрый способ сканирования и хранения рукописных записей, рисунков, а также чеков и других документов. Оно поддерживает способы автоматического захвата изображений на [предформатированной табличке](https://github.com/ctodobom/OpenNoteScanner/raw/master/Page%20Templates/A4%20with%202%20pages.pdf).
7 |
8 | Лицензия
9 | --------
10 | Приложение распространяется по условиям [GNU General Public License версии 3](http://www.gnu.org/licenses/gpl.txt). Исходный код доступен на [GitHub](http://github.com/ctodobom/OpenNoteScanner).
11 |
12 | Пожертвования
13 | -------------
14 |
15 | Создание приложений на Android - не моя основная работа. Я создал это приложение из любопытства и из-за того, что существует множество похожих приложений, но ни одно из них не является приложением с открытым кодом.
16 |
17 | Если вы думаете, что это приложение или любой из моих вкладов в открытое программное обеспечение стоит некоторого количества денег и готовы заплатить мне, то вы можете это сделать путё мпожертвования через Paypal, Bitcoin или Dogecoin.
18 |
19 | [Пожертвовать через Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X6XHVCPMRQEL4)
20 |
21 | **Внимание:** Ссылка на криптовалюту работает только если у вас установлено соответствующее приложение:
22 |
23 | [Donate through Bitcoin](bitcoin:1H5tqKZoWdqkR54PGe9w67EzBnLXHBFmt9)
24 |
25 | [Donate through Dogecoin](dogecoin:DFBaP724XR3rfs9wFahBd353yFkgkqatvd)
26 |
27 |
28 | Части из других источников и зависимости
29 | ----------------------------------------
30 |
31 | Бинарные сборки включают код из следующих внешних проектов:
32 |
33 | * [Библиотека OpenCV для Android](http://www.opencv.org)
34 | * [MarkdownView от Feras Alnatsheh](https://github.com/falnatsheh/MarkdownView)
35 | * [TouchImageView от Mike Ortiz](https://github.com/MikeOrtiz/TouchImageView)
36 | * [Drag Select Recycler View](https://github.com/afollestad/drag-select-recyclerview)
37 | * [Android Universal Image Loader от Sergey Tarasevich](https://github.com/nostra13/Android-Universal-Image-Loader)
38 |
39 | Благодарности
40 | -------------
41 |
42 | ### Соавторы
43 |
44 | Так как это - приложение с открытым исходным кодом, дополнения и улучшения всегда привествуются. Каждый, кто вносит свой вклад кодом в развитие проекта, будет перечислен здесь.
45 |
46 | * Nicolas Raoul - коррекция английского текста
47 | * Claudio Arseni - перевод на итальянский
48 | * Francisco Toca - перевод на испанский
49 | * [@nebulon42](https://github.com/nebulon42) - перевод на немецкий
50 | * Ondřej Míchal - перевод на чешский
51 | * [@nigelinux](https://github.com/nigelinux) - перевод на традиционный китайский (zh-rTW)
52 | * [@nikoss](https://github.com/nikoss) - перевод на греческий
53 | * [@SkyDragonsz](https://github.com/SkyDragonsz) - перевод на голладский
54 | * Naofumi Fukue - перевод на японский
55 | * [@ASMfreaK](https://github.com/ASMfreaK) - перевод на русский
56 |
57 | Другие люди помогали, рассказывая о ошибках и внося предложения в разделе [Issue на GitHub](https://github.com/ctodobom/OpenNoteScanner/issues) и [группу в Telegram](https://t.me/OpenNoteScanner). Их помощь также ценится.
58 |
59 | ### Внешний код
60 |
61 | Это приложение было бы невозможно без замечательных материалов, созданных сообществом. Я бы хотел отдельно поблагодарить авторов важных вещей, которые я прочитал в Интернете и использовал в коде:
62 |
63 | * [Android-er / GridView code sample](http://android-er.blogspot.com.br/2012/07/gridview-loading-photos-from-sd-card.html)
64 | * [Android Hive / Full Screen Image pager](http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/)
65 | * [Adrian Rosebrock from pyimagesearch.com for the excellent tutorial on how to handle the images](http://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/)
66 | * [Gabriele Mariotti / On how to implement sections in the RecyclerView](https://gist.github.com/gabrielemariotti/e81e126227f8a4bb339c)
67 |
--------------------------------------------------------------------------------
/app/src/main/assets/about-tr.md:
--------------------------------------------------------------------------------
1 | Open Note Scanner Hakkında
2 | ==========================
3 |
4 | **© 2020 [Claudemir Todo Bom](http://todobom.com)**
5 |
6 | Bu uygulama elle yazılmış notları, alışveriş makbuzlarını ve benzeri diğer belgeleri taramak ve saklamak için hızlı bir yol sağlar. Aynı zamanda görüntülerin otomatik olarak taranmasını mümkün kılan [hazır şablonu](https://github.com/ctodobom/OpenNoteScanner/raw/master/Page%20Templates/A4%20with%202%20pages.pdf) kullanabilirsiniz.
7 |
8 |
9 | Lisans
10 | ------
11 |
12 | Bu program [GNU General Public License version 3](http://www.gnu.org/licenses/gpl.txt) sayfasında belirtilen esaslara uygun olarak kullanıma sunulmuştur. Programın kaynak kodlarına [GitHub sayfasından](http://github.com/ctodobom/OpenNoteScanner) ulaşabilirsiniz.
13 |
14 | Bağışlar
15 | --------
16 |
17 | Android uygulamaları yapmak benim ana işim değil, bu uygulamayı meraktan ve benzer hedeflere sahip düzinelerce uygulama olmasına rağmen hiçbirinin açık kaynaklı olmaması sebebiyle yazdım.
18 |
19 | Bu uygulamanın veya katkılarımın herhangi birinin paraya değer olduğunu düşünüyorsanız ve bunun için ödeme yapmak istiyorsanız, lütfen Paypal, Bitcoin veya Dogecoin aracılığıyla herhangi bir bağış yapmaktan çekinmeyin.
20 |
21 | [Donate through Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X6XHVCPMRQEL4)
22 |
23 | **UYARI:** Kripto para linkleri sadece ilgili kripto paranın uygulaması yüklü ise çalışır!
24 |
25 | [Bitcoin bağışı](bitcoin:1H5tqKZoWdqkR54PGe9w67EzBnLXHBFmt9)
26 |
27 | [Dogecoin bağışı](dogecoin:DFBaP724XR3rfs9wFahBd353yFkgkqatvd)
28 |
29 |
30 | Üçüncü taraf parçaları ve gereksinimleri
31 | ----------------------------------------
32 |
33 | Programın derlemmiş hali, aşağıdaki harici projelerin kodlarını içerir:
34 |
35 | * [OpenCV Library for Android](http://www.opencv.org)
36 | * [MarkdownView from Feras Alnatsheh](https://github.com/falnatsheh/MarkdownView)
37 | * [TouchImageView from Mike Ortiz](https://github.com/MikeOrtiz/TouchImageView)
38 | * [Drag Select Recycler View](https://github.com/afollestad/drag-select-recyclerview)
39 | * [Android Universal Image Loader from Sergey Tarasevich](https://github.com/nostra13/Android-Universal-Image-Loader)
40 |
41 | Teşekkürler
42 | -----------
43 |
44 | ### Katkı sağlayanlar
45 |
46 | Açık kaynaklı bir uygulama olarak, sizin katkılarınız her zaman beklenmektedir.
47 |
48 | Tercüme katkılarının çoğu şurada listelenmiştir [CONTRIBUTORS.md file](https://github.com/ctodobom/OpenNoteScanner/blob/master/CONTRIBUTORS.md) kod katkısında bulunanları[the Changelog dosyasında](https://github.com/ctodobom/OpenNoteScanner/blob/master/CHANGELOG.md) ve [the commits history](https://github.com/ctodobom/OpenNoteScanner/commits) sayfasında görebilirsiniz.
49 |
50 | [Issue Reports](https://github.com/ctodobom/OpenNoteScanner/issues) ile katkı sağlayan ve [Telegram Group](https://t.me/OpenNoteScanner) aracılığı ile görüş bildiren herkese teşekkürler. Onların da önemli katkıları olmuştur.
51 |
52 | ### External code
53 |
54 | Bu uygulama, topluluk tarafından üretilen aşağıdaki harika materyaller olmadan mümkün olmazdı. İnternetten aldığım ve kodda kullandığım temel parçaların yazarlarına özellikle teşekkür etmek istiyorum:
55 |
56 | * [Android-er / GridView code sample](http://android-er.blogspot.com.br/2012/07/gridview-loading-photos-from-sd-card.html)
57 | * [Android Hive / Full Screen Image pager](http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/)
58 | * [pyimagesearch.com sayfasından Adrian Rosebrock'a görüntü işleme ile ilgili verdiği harika bilgiler için](http://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/)
59 | * [Gabriele Mariotti / On how to implement sections in the RecyclerView](https://gist.github.com/gabrielemariotti/e81e126227f8a4bb339c)
60 |
--------------------------------------------------------------------------------
/app/src/main/assets/about-zh.md:
--------------------------------------------------------------------------------
1 | 关于 Open Note Scanner
2 | =======================
3 |
4 | **© 20XX [Claudemir Todo Bom](http://todobom.com)**
5 |
6 | 此应用程序提供了一种快速扫描和存储手写笔记和图画,以及购物收据和其他文件的方法。它还支持自动捕捉图像上的 [预格式化页面](https://github.com/ctodobom/OpenNoteScanner/raw/master/Page%20Templates/A4%20with%202%20pages.pdf).
7 |
8 |
9 | 许可证
10 | -------
11 |
12 | 此应用程序采用 [GNU General Public License version 3 协议](http://www.gnu.org/licenses/gpl.txt). 源代码在 [GitHub](http://github.com/ctodobom/OpenNoteScanner)上可见。
13 |
14 | 捐赠
15 | ---------
16 |
17 | 制作Android应用程序不是我的主要工作,我出于好奇心做了这个应用程序,因为有几十个类似应用程序,但没有一个是开源的。
18 |
19 | 如果你认为这个应用或我所做的贡献值一杯咖啡钱,请随时通过PayPal,Bitcoin或DoeCooin作出任何捐赠。
20 |
21 | [Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X6XHVCPMRQEL4)
22 |
23 | **注意:** 只有安装了相关钱包APP才能打开以下链接!
24 |
25 | [通过Bitcoin捐赠](bitcoin:1H5tqKZoWdqkR54PGe9w67EzBnLXHBFmt9)
26 |
27 | [通过Dogecoin捐赠](dogecoin:DFBaP724XR3rfs9wFahBd353yFkgkqatvd)
28 |
29 |
30 | 第三方代码
31 | ----------------------------------
32 |
33 | 源代码中包含了以下项目的部分代码:
34 |
35 | * [OpenCV Library for Android](http://www.opencv.org)
36 | * [MarkdownView from Feras Alnatsheh](https://github.com/falnatsheh/MarkdownView)
37 | * [TouchImageView from Mike Ortiz](https://github.com/MikeOrtiz/TouchImageView)
38 | * [Drag Select Recycler View](https://github.com/afollestad/drag-select-recyclerview)
39 | * [Android Universal Image Loader from Sergey Tarasevich](https://github.com/nostra13/Android-Universal-Image-Loader)
40 |
41 | 感谢
42 | ------
43 |
44 | ### 贡献者
45 |
46 | 作为一个开源应用程序,欢迎大家的贡献
47 |
48 | 大多数翻译贡献被列在 [CONTRIBUTORS.md file](https://github.com/ctodobom/OpenNoteScanner/blob/master/CONTRIBUTORS.md) ,代码贡献者被列在 [the Changelog file](https://github.com/ctodobom/OpenNoteScanner/blob/master/CHANGELOG.md) 和 [the commits history](https://github.com/ctodobom/OpenNoteScanner/commits).
49 |
50 | 其他提交问题及建议的 [Issue Reports](https://github.com/ctodobom/OpenNoteScanner/issues) 还有tg群中的讨论 [Telegram Group](https://t.me/OpenNoteScanner). 他们的帮助也是值得赞赏!
51 |
52 | ### 外部代码
53 |
54 | This application wouldn't be possible without the great material produced by the community. I would like to give special thanks to the authors of essencial parts I've got on the internet and used in the code:
55 | 没有社区提供的大量资料,就不可能实现此应用程序。 我要特别感谢我在互联网上获得并在代码中使用过其基本部分的作者:
56 |
57 | * [Android-er / GridView code sample](http://android-er.blogspot.com.br/2012/07/gridview-loading-photos-from-sd-card.html)
58 | * [Android Hive / Full Screen Image pager](http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/)
59 | * [Adrian Rosebrock from pyimagesearch.com for the excellent tutorial on how to handle the images](http://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/)
60 | * [Gabriele Mariotti / On how to implement sections in the RecyclerView](https://gist.github.com/gabrielemariotti/e81e126227f8a4bb339c)
61 |
--------------------------------------------------------------------------------
/app/src/main/assets/about.md:
--------------------------------------------------------------------------------
1 | About Open Note Scanner
2 | =======================
3 |
4 | **© 20XX [Claudemir Todo Bom](http://todobom.com)**
5 |
6 | This application provides a quick way to scan and store hand written notes and arts, and also shopping receipts and other documents. It also supports automatic capture of images on a [pre-formatted page](https://github.com/ctodobom/OpenNoteScanner/raw/master/Page%20Templates/A4%20with%202%20pages.pdf).
7 |
8 |
9 | License
10 | -------
11 |
12 | This application is made available through the [GNU General Public License version 3](http://www.gnu.org/licenses/gpl.txt). Source code is [available on GitHub](http://github.com/ctodobom/OpenNoteScanner).
13 |
14 | Donations
15 | ---------
16 |
17 | Making Android applications is not my main job, I made this application out of curiosity and because there are dozens of apps with similar objectives but none of them is open source.
18 |
19 | If you think that this application or any of my contributions is worth some money and you are willing to pay for it, please feel free to make any donation through Paypal, Bitcoin or Dogecoin.
20 |
21 | [Donate through Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=X6XHVCPMRQEL4)
22 |
23 | **ATTENTION:** Link to cryptocoins works only if you have the app for that coin installed!
24 |
25 | [Donate through Bitcoin](bitcoin:1H5tqKZoWdqkR54PGe9w67EzBnLXHBFmt9)
26 |
27 | [Donate through Dogecoin](dogecoin:DFBaP724XR3rfs9wFahBd353yFkgkqatvd)
28 |
29 |
30 | Third party parts and requirements
31 | ----------------------------------
32 |
33 | Binary builds include code from these external projects:
34 |
35 | * [OpenCV Library for Android](http://www.opencv.org)
36 | * [MarkdownView from Feras Alnatsheh](https://github.com/falnatsheh/MarkdownView)
37 | * [TouchImageView from Mike Ortiz](https://github.com/MikeOrtiz/TouchImageView)
38 | * [Drag Select Recycler View](https://github.com/afollestad/drag-select-recyclerview)
39 | * [Android Universal Image Loader from Sergey Tarasevich](https://github.com/nostra13/Android-Universal-Image-Loader)
40 |
41 | Thanks
42 | ------
43 |
44 | ### Contributors
45 |
46 | As an open source application, contribution are always welcome.
47 |
48 | Most translations contributions are listed on [CONTRIBUTORS.md file](https://github.com/ctodobom/OpenNoteScanner/blob/master/CONTRIBUTORS.md) and code contributors are listed on [the Changelog file](https://github.com/ctodobom/OpenNoteScanner/blob/master/CHANGELOG.md) and [the commits history](https://github.com/ctodobom/OpenNoteScanner/commits).
49 |
50 | Other people helped submitting [Issue Reports](https://github.com/ctodobom/OpenNoteScanner/issues) and giving info through the [Telegram Group](https://t.me/OpenNoteScanner). Their help is appreciated as well.
51 |
52 | ### External code
53 |
54 | This application wouldn't be possible without the great material produced by the community. I would like to give special thanks to the authors of essencial parts I've got on the internet and used in the code:
55 |
56 | * [Android-er / GridView code sample](http://android-er.blogspot.com.br/2012/07/gridview-loading-photos-from-sd-card.html)
57 | * [Android Hive / Full Screen Image pager](http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/)
58 | * [Adrian Rosebrock from pyimagesearch.com for the excellent tutorial on how to handle the images](http://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/)
59 | * [Gabriele Mariotti / On how to implement sections in the RecyclerView](https://gist.github.com/gabrielemariotti/e81e126227f8a4bb339c)
60 |
--------------------------------------------------------------------------------
/app/src/main/ic_launcher-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allgood/OpenNoteScanner/15c1788267b88f261f5758365fbb606dcb1ea648/app/src/main/ic_launcher-web.png
--------------------------------------------------------------------------------
/app/src/main/java/com/todobom/opennotescanner/ClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.todobom.opennotescanner
2 |
3 | interface ClickListener {
4 | fun onClick(index: Int)
5 | fun onLongClick(index: Int)
6 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/todobom/opennotescanner/FullScreenImageAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.todobom.opennotescanner
2 |
3 | import android.app.Activity
4 | import android.content.Context
5 | import android.view.LayoutInflater
6 | import android.view.View
7 | import android.view.ViewGroup
8 | import android.widget.RelativeLayout
9 | import androidx.viewpager.widget.PagerAdapter
10 | import com.nostra13.universalimageloader.core.ImageLoader
11 | import com.nostra13.universalimageloader.core.assist.ImageSize
12 | import com.ortiz.touchview.TouchImageView
13 | import java.util.*
14 |
15 | /*
16 | * based on code originally at http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/
17 | */
18 | class FullScreenImageAdapter(
19 | private val _activity: Activity,
20 | private val _imagePaths: ArrayList
21 | ) : PagerAdapter() {
22 | private var maxTexture = 0
23 | private var mImageLoader: ImageLoader? = null
24 | private var mTargetSize: ImageSize? = null
25 | override fun getCount(): Int {
26 | return _imagePaths.size
27 | }
28 |
29 | override fun isViewFromObject(view: View, `object`: Any): Boolean {
30 | return view === `object`
31 | }
32 |
33 | override fun instantiateItem(container: ViewGroup, position: Int): Any {
34 | val imgDisplay: TouchImageView
35 | val inflater = _activity
36 | .getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
37 | val viewLayout = inflater.inflate(R.layout.layout_fullscreen_image, container,
38 | false)
39 | imgDisplay = viewLayout.findViewById(R.id.imgDisplay) as TouchImageView
40 | val imagePath = _imagePaths[position]
41 | /*
42 | BitmapFactory.Options options = new BitmapFactory.Options();
43 | options.inJustDecodeBounds = true;
44 | BitmapFactory.decodeFile(imagePath, options);
45 |
46 | int maxSize=Math.max(options.outHeight,options.outWidth);
47 |
48 | Log.d(TAG,"Texture: "+maxTexture + "Size: "+maxSize);
49 |
50 | if (maxTexture>0 && maxSize>maxTexture) {
51 | double scale=(double)maxSize/(double)maxTexture;
52 |
53 | options.inSampleSize = (int) Math.pow( 2, (Math.floor(Log(scale, 2))+1) );
54 |
55 | Log.d(TAG, "inSampleSize: " + options.inSampleSize);
56 | }
57 |
58 | options.inJustDecodeBounds = false;
59 |
60 | options.inPreferredConfig = Bitmap.Config.ARGB_8888;
61 | Bitmap bitmap = BitmapFactory.decodeFile(imagePath, options);
62 | */
63 |
64 | // imgDisplay.setImageBitmap(bitmap);
65 | mImageLoader!!.displayImage("file:///$imagePath", imgDisplay, mTargetSize)
66 | container.addView(viewLayout)
67 | return viewLayout
68 | }
69 |
70 | fun getPath(position: Int): String {
71 | return _imagePaths[position]
72 | }
73 |
74 | override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
75 | container.removeView(`object` as RelativeLayout)
76 | }
77 |
78 | fun setMaxTexture(maxTexture: Int, targetSize: ImageSize?) {
79 | this.maxTexture = maxTexture
80 | mTargetSize = targetSize
81 | }
82 |
83 | fun setImageLoader(imageLoader: ImageLoader?) {
84 | mImageLoader = imageLoader
85 | }
86 |
87 | companion object {
88 | private const val TAG = "FullScreenImageAdapter"
89 | private fun Log(n: Double, base: Double): Double {
90 | return Math.log(n) / Math.log(base)
91 | }
92 | }
93 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/todobom/opennotescanner/OpenNoteScannerApplication.kt:
--------------------------------------------------------------------------------
1 | package com.todobom.opennotescanner
2 |
3 | import android.content.SharedPreferences.OnSharedPreferenceChangeListener
4 | import android.preference.PreferenceManager
5 | import org.matomo.sdk.TrackerBuilder
6 | import org.matomo.sdk.extra.DownloadTracker.Extra.ApkChecksum
7 | import org.matomo.sdk.extra.MatomoApplication
8 | import org.matomo.sdk.extra.TrackHelper
9 | import java.util.*
10 |
11 | /**
12 | * Created by allgood on 23/04/16.
13 | */
14 | class OpenNoteScannerApplication : MatomoApplication() {
15 | private var mOptOut = false
16 | private var mPreferenceChangeListener = OnSharedPreferenceChangeListener { sharedPreferences, key ->
17 | if (key == "usage_stats") {
18 | mOptOut = !sharedPreferences.getBoolean("usage_stats", false)
19 | tracker.isOptOut = mOptOut
20 |
21 | // when user opt-in, register the download
22 | if (!mOptOut) {
23 | trackDownload()
24 | }
25 | }
26 | }
27 |
28 | override fun onCreateTrackerConfig(): TrackerBuilder {
29 | return TrackerBuilder.createDefault("https://stats.todobom.com/matomo.php", 2)
30 | }
31 |
32 | override fun onCreate() {
33 | super.onCreate()
34 | initMatomo()
35 | }
36 |
37 | private fun initMatomo() {
38 | val mSharedPref = PreferenceManager.getDefaultSharedPreferences(this)
39 |
40 | // enable usage stats on google play
41 | if (BuildConfig.FLAVOR == "gplay" && mSharedPref.getBoolean("isFirstRun", true)) {
42 | mSharedPref.edit().putBoolean("usage_stats", true).apply()
43 | mSharedPref.edit().putBoolean("isFirstRun", false).apply()
44 | }
45 |
46 | // usage stats is optional and only when not debugging
47 | mOptOut = !mSharedPref.getBoolean("usage_stats", false)
48 | tracker.isOptOut = mOptOut
49 | mSharedPref.registerOnSharedPreferenceChangeListener(mPreferenceChangeListener)
50 |
51 | // When working on an app we don't want to skew tracking results.
52 | tracker.dryRunTarget = if (BuildConfig.DEBUG) Collections.synchronizedList(ArrayList()) else null
53 |
54 | // If you want to set a specific userID other than the random UUID token, do it NOW to ensure all future actions use that token.
55 | // Changing it later will track new events as belonging to a different user.
56 | // String userEmail = ....preferences....getString
57 | // getTracker().setUserId(userEmail);
58 | if (!mOptOut) {
59 | trackDownload()
60 | }
61 | }
62 |
63 | private fun trackDownload() {
64 | // Track this app install, this will only trigger once per app version.
65 | TrackHelper.track().download().identifier(ApkChecksum(this)).with(tracker)
66 | }
67 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/todobom/opennotescanner/SettingsActivity.kt:
--------------------------------------------------------------------------------
1 | package com.todobom.opennotescanner
2 |
3 | import android.os.Bundle
4 | import android.preference.ListPreference
5 | import android.preference.Preference
6 | import android.preference.Preference.OnPreferenceClickListener
7 | import android.preference.PreferenceCategory
8 | import androidx.appcompat.app.AppCompatActivity
9 | import com.todobom.opennotescanner.helpers.AboutFragment
10 | import com.todobom.opennotescanner.helpers.Utils.Companion.isPackageInstalled
11 |
12 | class SettingsActivity : AppCompatActivity() {
13 | private lateinit var sf: SettingsFragment
14 | override fun onCreate(savedInstanceState: Bundle?) {
15 | super.onCreate(savedInstanceState)
16 | setContentView(R.layout.activity_settings)
17 | val fm = fragmentManager
18 | val ft = fm.beginTransaction()
19 | sf = SettingsFragment()
20 | ft.replace(android.R.id.content, sf)
21 | ft.commit()
22 | }
23 |
24 | override fun onResume() {
25 | super.onResume()
26 | val aboutPreference = sf.findPreference("about_preference")
27 | aboutPreference.onPreferenceClickListener = OnPreferenceClickListener { preference: Preference? ->
28 | val fm = supportFragmentManager
29 | val aboutDialog = AboutFragment()
30 | aboutDialog.show(fm, "about_view")
31 | true
32 | }
33 | val donateCategory = sf.findPreference("donate_pref_category") as PreferenceCategory
34 | val bitcoinPref = sf.findPreference("donate_bitcoin")
35 | if (bitcoinPref != null && !isPackageInstalled(this, "de.schildbach.wallet")) {
36 | donateCategory.removePreference(bitcoinPref)
37 | }
38 |
39 | val pageFormatPreference: ListPreference = sf.findPreference("document_page_format") as ListPreference
40 | val customPageWidth = sf.findPreference("custom_pageformat_width")
41 | val customPageHeight = sf.findPreference("custom_pageformat_height")
42 |
43 | pageFormatPreference.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { preference, newValue ->
44 | customPageWidth.setEnabled(newValue.equals("0.0001"))
45 | customPageHeight.setEnabled(newValue.equals("0.0001"))
46 | true
47 | }
48 | customPageWidth.setEnabled(pageFormatPreference.value.equals("0.0001"))
49 | customPageHeight.setEnabled(pageFormatPreference.value.equals("0.0001"))
50 | }
51 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/todobom/opennotescanner/SettingsFragment.kt:
--------------------------------------------------------------------------------
1 | package com.todobom.opennotescanner
2 |
3 | import android.content.SharedPreferences
4 | import android.content.SharedPreferences.OnSharedPreferenceChangeListener
5 | import android.os.Bundle
6 | import android.preference.*
7 |
8 | /**
9 | * Created by allgood on 21/04/16.
10 | */
11 | class SettingsFragment : PreferenceFragment(), OnSharedPreferenceChangeListener {
12 | override fun onCreate(savedInstanceState: Bundle?) {
13 | super.onCreate(savedInstanceState)
14 | addPreferencesFromResource(R.xml.settings)
15 | preferenceScreen.sharedPreferences.registerOnSharedPreferenceChangeListener(this)
16 | }
17 |
18 | override fun onResume() {
19 | super.onResume()
20 | updatePreferenceScreen(preferenceScreen)
21 | }
22 |
23 | private fun updatePreferenceScreen(screen: PreferenceScreen) {
24 | for (i in 0 until screen.preferenceCount) {
25 | val preference = screen.getPreference(i)
26 | if (preference is PreferenceGroup) {
27 | for (j in 0 until preference.preferenceCount) {
28 | val singlePref = preference.getPreference(j)
29 | updatePreference(singlePref, singlePref.key)
30 | }
31 | } else {
32 | updatePreference(preference, preference.key)
33 | }
34 | }
35 | }
36 |
37 | override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String) {
38 | updatePreference(findPreference(key), key)
39 | }
40 |
41 | private fun updatePreference(preference: Preference?, key: String?) {
42 | if (preference == null) return
43 | if (preference is ListPreference) {
44 | val listPreference = preference
45 | listPreference.summary = listPreference.entry
46 | return
47 | }
48 | if (preference is EditTextPreference) {
49 | val sharedPrefs = preferenceManager.sharedPreferences
50 | preference.setSummary(sharedPrefs.getString(key, "Default"))
51 | }
52 | if (preference is PreferenceScreen) {
53 | updatePreferenceScreen(preference)
54 | }
55 | }
56 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/todobom/opennotescanner/helpers/AboutFragment.kt:
--------------------------------------------------------------------------------
1 | package com.todobom.opennotescanner.helpers
2 |
3 | import android.content.Intent
4 | import android.graphics.Point
5 | import android.os.Bundle
6 | import android.view.*
7 | import androidx.fragment.app.DialogFragment
8 | import com.todobom.opennotescanner.OpenNoteScannerApplication
9 | import com.todobom.opennotescanner.R
10 | import org.matomo.sdk.extra.TrackHelper
11 | import us.feras.mdv.MarkdownView
12 |
13 | class AboutFragment : DialogFragment() {
14 | override fun onCreateView(
15 | inflater: LayoutInflater,
16 | container: ViewGroup?,
17 | savedInstanceState: Bundle?
18 | ): View? {
19 | val aboutView = inflater.inflate(R.layout.about_view, container)
20 | dialog?.window?.requestFeature(Window.FEATURE_NO_TITLE)
21 | return aboutView
22 | }
23 |
24 | override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
25 | super.onViewCreated(view, savedInstanceState)
26 | //These two in case the fragment detached
27 | val activity = activity ?: return
28 | val window = dialog?.window ?: return
29 |
30 | val markdownView = view.findViewById(R.id.about_markdown)
31 | markdownView.loadMarkdownFile("file:///android_asset/" + getString(R.string.about_filename))
32 | val size = Point()
33 | activity.windowManager.defaultDisplay.getRealSize(size)
34 | window.setLayout((size.x * 0.9).toInt(), (size.y * 0.9).toInt())
35 | window.setGravity(Gravity.CENTER)
36 | val about_shareapp = view.findViewById(R.id.about_shareapp)
37 | about_shareapp.setOnClickListener {
38 | val shareBody = getString(R.string.share_app_body) + APP_LINK
39 | val sharingIntent = Intent(Intent.ACTION_SEND).apply {
40 | type = "text/plain"
41 | putExtra(Intent.EXTRA_SUBJECT, getString(R.string.share_app_subject))
42 | putExtra(Intent.EXTRA_TEXT, shareBody)
43 | }
44 | val tracker = (activity.application as OpenNoteScannerApplication).tracker
45 | TrackHelper.track().screen("/shareapp").title("Share Application").with(tracker)
46 | startActivity(Intent.createChooser(sharingIntent, getString(R.string.share_app_using)))
47 | }
48 | }
49 |
50 | companion object {
51 | private const val APP_LINK = "https://goo.gl/2JwEPq"
52 | }
53 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/todobom/opennotescanner/helpers/AnimationRunnable.kt:
--------------------------------------------------------------------------------
1 | package com.todobom.opennotescanner.helpers
2 |
3 | import android.graphics.Bitmap
4 | import android.util.Log
5 | import android.view.View
6 | import android.view.animation.*
7 | import android.widget.ImageView
8 | import android.widget.RelativeLayout
9 | import com.todobom.opennotescanner.OpenNoteScannerActivity
10 | import com.todobom.opennotescanner.R
11 | import org.opencv.core.Point
12 | import org.opencv.core.Size
13 |
14 | class AnimationRunnable(private val activity: OpenNoteScannerActivity, filename: String, document: ScannedDocument) : Runnable {
15 | private val imageSize: Size = document.processed!!.size()
16 | private val previewPoints: Array? = if(document.quadrilateral != null) document.previewPoints else null
17 | private val previewSize: Size? = if(document.quadrilateral != null) document.previewSize else null
18 | private val fileName: String = filename
19 | private var bitmap: Bitmap? = null
20 |
21 | override fun run() {
22 | val imageView = activity.findViewById(R.id.scannedAnimation) as ImageView
23 | val display = activity.windowManager.defaultDisplay
24 | val size = android.graphics.Point()
25 | display.getRealSize(size)
26 | val width = Math.min(size.x, size.y)
27 | val height = Math.max(size.x, size.y)
28 |
29 | // ATENTION: captured images are always in landscape, values should be swapped
30 | val imageWidth = imageSize.height
31 | val imageHeight = imageSize.width
32 | val params = imageView.layoutParams as RelativeLayout.LayoutParams
33 | val prevPoints = previewPoints
34 | val prevSize = previewSize
35 |
36 | if (prevPoints != null) {
37 | prevSize!!
38 |
39 | val documentLeftHeight = hipotenuse(prevPoints[0], prevPoints[1])
40 | val documentBottomWidth = hipotenuse(prevPoints[1], prevPoints[2])
41 | val documentRightHeight = hipotenuse(prevPoints[2], prevPoints[3])
42 | val documentTopWidth = hipotenuse(prevPoints[3], prevPoints[0])
43 | val documentWidth = Math.max(documentTopWidth, documentBottomWidth)
44 | val documentHeight = Math.max(documentLeftHeight, documentRightHeight)
45 | Log.d(TAG, "device: " + width + "x" + height + " image: " + imageWidth + "x" + imageHeight + " document: " + documentWidth + "x" + documentHeight)
46 | Log.d(TAG, "prevPoints[0] x=" + prevPoints[0].x + " y=" + prevPoints[0].y)
47 | Log.d(TAG, "prevPoints[1] x=" + prevPoints[1].x + " y=" + prevPoints[1].y)
48 | Log.d(TAG, "prevPoints[2] x=" + prevPoints[2].x + " y=" + prevPoints[2].y)
49 | Log.d(TAG, "prevPoints[3] x=" + prevPoints[3].x + " y=" + prevPoints[3].y)
50 |
51 | // ATENTION: again, swap width and height
52 | val xRatio = width / prevSize.height
53 | val yRatio = height / prevSize.width
54 | params.topMargin = (prevPoints[3].x * yRatio).toInt()
55 | params.leftMargin = ((prevSize.height - prevPoints[3].y) * xRatio).toInt()
56 | params.width = (documentWidth * xRatio).toInt()
57 | params.height = (documentHeight * yRatio).toInt()
58 | } else {
59 | params.topMargin = height / 4
60 | params.leftMargin = width / 4
61 | params.width = width / 2
62 | params.height = height / 2
63 | }
64 |
65 | bitmap = Utils.decodeSampledBitmapFromUri(fileName, params.width, params.height)
66 | imageView.setImageBitmap(bitmap)
67 | imageView.visibility = View.VISIBLE
68 | val translateAnimation = TranslateAnimation(
69 | Animation.ABSOLUTE, 0f, Animation.ABSOLUTE, (-params.leftMargin).toFloat(),
70 | Animation.ABSOLUTE, 0f, Animation.ABSOLUTE, (height - params.topMargin).toFloat()
71 | )
72 | val scaleAnimation = ScaleAnimation(1f, 0f, 1f, 0f)
73 | val animationSet = AnimationSet(true)
74 | animationSet.addAnimation(scaleAnimation)
75 | animationSet.addAnimation(translateAnimation)
76 | animationSet.duration = 600
77 | animationSet.interpolator = AccelerateInterpolator()
78 | animationSet.setAnimationListener(object : Animation.AnimationListener {
79 | override fun onAnimationStart(animation: Animation) {}
80 | override fun onAnimationEnd(animation: Animation) {
81 | imageView.visibility = View.INVISIBLE
82 | imageView.setImageBitmap(null)
83 | bitmap?.recycle()
84 | }
85 |
86 | override fun onAnimationRepeat(animation: Animation) {}
87 | })
88 | imageView.startAnimation(animationSet)
89 | }
90 |
91 | companion object {
92 | private const val TAG = "AnimationRunnable"
93 |
94 | @JvmStatic
95 | fun hipotenuse(a: Point, b: Point): Double {
96 | return Math.sqrt(Math.pow(a.x - b.x, 2.0) + Math.pow(a.y - b.y, 2.0))
97 | }
98 | }
99 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/todobom/opennotescanner/helpers/AppConstant.kt:
--------------------------------------------------------------------------------
1 | package com.todobom.opennotescanner.helpers
2 |
3 | object AppConstant {
4 | // supported file formats
5 | @JvmField
6 | val FILE_EXTN = listOf("jpg", "jpeg", "png")
7 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/todobom/opennotescanner/helpers/OpenNoteMessage.kt:
--------------------------------------------------------------------------------
1 | package com.todobom.opennotescanner.helpers
2 |
3 | data class OpenNoteMessage(val command: String, val obj: Any?)
--------------------------------------------------------------------------------
/app/src/main/java/com/todobom/opennotescanner/helpers/PdfHelper.kt:
--------------------------------------------------------------------------------
1 | package com.todobom.opennotescanner.helpers
2 |
3 | import android.content.Context
4 | import android.os.Environment
5 | import android.preference.PreferenceManager
6 | import android.widget.Toast
7 | import com.itextpdf.io.image.ImageData
8 | import com.itextpdf.io.image.ImageDataFactory
9 | import com.itextpdf.kernel.geom.PageSize
10 | import com.itextpdf.kernel.pdf.PdfDocument
11 | import com.itextpdf.kernel.pdf.PdfWriter
12 | import com.itextpdf.layout.Document
13 | import com.itextpdf.layout.element.Image
14 | import com.todobom.opennotescanner.R
15 | import java.io.File
16 | import java.io.FileNotFoundException
17 | import java.net.MalformedURLException
18 | import java.text.SimpleDateFormat
19 | import java.util.*
20 |
21 | object PdfHelper {
22 | @JvmStatic
23 | fun mergeImagesToPdf(applicationContext: Context, files: ArrayList): String? {
24 | //TODO move this to background thread
25 | if (files.isEmpty()) {
26 | Toast
27 | .makeText(applicationContext, applicationContext.getString(R.string.no_files_selected), Toast.LENGTH_SHORT)
28 | .show()
29 | return null
30 | }
31 | val outputFile = ("PDF-"
32 | + SimpleDateFormat("yyyyMMdd-HHmmss").format(Date()) + ".pdf")
33 | val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(applicationContext)
34 | val pdfFilePath = File(
35 | Environment.getExternalStorageDirectory()
36 | .toString() + File.separator + sharedPreferences.getString("storage_folder", "OpenNoteScanner"), outputFile)
37 | .absolutePath
38 | var pdfWriter: PdfWriter? = null
39 | try {
40 | pdfWriter = PdfWriter(pdfFilePath)
41 | } catch (e: FileNotFoundException) {
42 | e.printStackTrace()
43 | }
44 | if (pdfWriter == null) {
45 | return null
46 | }
47 | val pdfDocument = PdfDocument(pdfWriter)
48 | val document = Document(pdfDocument)
49 | files.sort()
50 | for (file in files) {
51 | var imageData: ImageData? = null
52 | try {
53 | imageData = ImageDataFactory.create(file)
54 | } catch (e: MalformedURLException) {
55 | e.printStackTrace()
56 | }
57 | if (imageData == null) {
58 | return null
59 | }
60 | val image = Image(imageData)
61 | pdfDocument.addNewPage(PageSize(image.imageWidth, image.imageHeight))
62 | document.add(image)
63 | }
64 | document.close()
65 | return pdfFilePath
66 | }
67 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/todobom/opennotescanner/helpers/PreviewFrame.kt:
--------------------------------------------------------------------------------
1 | package com.todobom.opennotescanner.helpers
2 |
3 | import org.opencv.core.Mat
4 |
5 | data class PreviewFrame(val frame: Mat, val isAutoMode: Boolean, val isPreviewOnly: Boolean)
--------------------------------------------------------------------------------
/app/src/main/java/com/todobom/opennotescanner/helpers/Quadrilateral.kt:
--------------------------------------------------------------------------------
1 | package com.todobom.opennotescanner.helpers
2 |
3 | import org.opencv.core.MatOfPoint
4 | import org.opencv.core.Point
5 |
6 | class Quadrilateral(val contour: MatOfPoint, val points: Array)
--------------------------------------------------------------------------------
/app/src/main/java/com/todobom/opennotescanner/helpers/ScanTopicDialogFragment.kt:
--------------------------------------------------------------------------------
1 | package com.todobom.opennotescanner.helpers
2 |
3 | import android.app.Activity
4 | import android.app.Dialog
5 | import android.content.DialogInterface
6 | import android.os.Bundle
7 | import android.view.View
8 | import android.widget.EditText
9 | import androidx.appcompat.app.AlertDialog
10 | import androidx.fragment.app.DialogFragment
11 | import com.todobom.opennotescanner.R
12 |
13 | class ScanTopicDialogFragment : DialogFragment() {
14 | interface SetTopicDialogListener {
15 | fun onFinishTopicDialog(inputText: String?)
16 | }
17 |
18 | override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
19 | val activity = activity!!
20 | val listener = activity as SetTopicDialogListener
21 |
22 | val alertDialogBuilder = AlertDialog.Builder(activity)
23 | alertDialogBuilder.setTitle(R.string.set_scan_topic)
24 | val inflater = activity.layoutInflater
25 | val view = inflater.inflate(R.layout.dialog_scan_topic, null)
26 | alertDialogBuilder.setView(view)
27 | val scanTopic = view.findViewById(R.id.editTextScanTopic)
28 | alertDialogBuilder.setPositiveButton(R.string.set_scan_topic) { _: DialogInterface?, _: Int ->
29 | listener.onFinishTopicDialog(scanTopic.text.toString())
30 | dismiss()
31 | activity.window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN
32 | }
33 | alertDialogBuilder.setNegativeButton(R.string.skip_scan_topic) { dialog: DialogInterface?, _: Int ->
34 | if (dialog != null) {
35 | listener.onFinishTopicDialog(null)
36 | dialog.dismiss()
37 | activity.window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN
38 | }
39 | }
40 | return alertDialogBuilder.create()
41 | }
42 |
43 | init {
44 | isCancelable = false
45 | }
46 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/todobom/opennotescanner/helpers/ScannedDocument.kt:
--------------------------------------------------------------------------------
1 | package com.todobom.opennotescanner.helpers
2 |
3 | import org.opencv.core.Mat
4 | import org.opencv.core.Point
5 | import org.opencv.core.Size
6 |
7 | class ScannedDocument(val original: Mat) {
8 | var processed: Mat? = null
9 | var quadrilateral: Quadrilateral? = null
10 | var previewPoints: Array? = null
11 | var previewSize: Size? = null
12 |
13 | fun release() {
14 | processed?.release()
15 | original.release()
16 | quadrilateral?.contour?.release()
17 | }
18 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/todobom/opennotescanner/views/HUDCanvasView.kt:
--------------------------------------------------------------------------------
1 | package com.todobom.opennotescanner.views
2 |
3 | import android.content.Context
4 | import android.graphics.Canvas
5 | import android.graphics.Paint
6 | import android.graphics.drawable.shapes.Shape
7 | import android.util.AttributeSet
8 | import android.view.View
9 |
10 | /**
11 | * Draw an array of shapes on a canvas
12 | *
13 | * @author http://todobom.com
14 | */
15 | class HUDCanvasView : View {
16 | private var detectedShape: HUDShape? = null
17 | private var documentBoxShape: HUDShape? = null
18 | private val shapes = ArrayList()
19 |
20 | constructor(context: Context?) : super(context) {}
21 | constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) {}
22 | constructor(context: Context?, attrs: AttributeSet?, defStyle: Int) : super(context, attrs, defStyle) {}
23 |
24 | inner class HUDShape(val shape: Shape, private val mPaint: Paint, private val mBorder: Paint?) {
25 | fun draw(canvas: Canvas?) {
26 | shape.draw(canvas, mPaint)
27 | if (mBorder != null) {
28 | shape.draw(canvas, mBorder)
29 | }
30 | }
31 |
32 | init {
33 | mBorder!!.style = Paint.Style.STROKE
34 | }
35 | }
36 |
37 | override fun onDraw(canvas: Canvas) {
38 | super.onDraw(canvas)
39 |
40 | // TODO: consider storing these as member variables to reduce
41 | // allocations per draw cycle.
42 | val paddingLeft = paddingLeft
43 | val paddingTop = paddingTop
44 | val paddingRight = paddingRight
45 | val paddingBottom = paddingBottom
46 | val contentWidth = width - paddingLeft - paddingRight
47 | val contentHeight = height - paddingTop - paddingBottom
48 | if (documentBoxShape != null) {
49 | documentBoxShape!!.shape.resize(contentWidth.toFloat(), contentHeight.toFloat())
50 | documentBoxShape!!.draw(canvas)
51 | }
52 | if (detectedShape != null) {
53 | detectedShape!!.shape.resize(contentWidth.toFloat(), contentHeight.toFloat())
54 | detectedShape!!.draw(canvas)
55 | }
56 | }
57 |
58 | fun setDetectedShape(shape: Shape, paint: Paint, border: Paint?) {
59 | detectedShape = HUDShape(shape, paint, border)
60 | }
61 |
62 | fun setDocumentBoxShape(shape: Shape?, paint: Paint?, border: Paint?) {
63 | if (shape == null) {
64 | documentBoxShape = null;
65 | return;
66 | }
67 | documentBoxShape = HUDShape(shape, paint!!, border)
68 | }
69 |
70 | fun clear() {
71 | detectedShape = null
72 | }
73 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/todobom/opennotescanner/views/SquareFrameLayout.kt:
--------------------------------------------------------------------------------
1 | package com.todobom.opennotescanner.views
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import android.widget.FrameLayout
6 | import kotlin.math.max
7 |
8 | /**
9 | * Based on RectangleView from
10 | * @author Aidan Follestad (afollestad)
11 | */
12 | class SquareFrameLayout : FrameLayout {
13 | constructor(context: Context) : super(context)
14 | constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
15 | constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
16 |
17 | override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
18 | val squareSpec = max(widthMeasureSpec, heightMeasureSpec)
19 | super.onMeasure(squareSpec, squareSpec)
20 | }
21 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/todobom/opennotescanner/views/TagEditorFragment.kt:
--------------------------------------------------------------------------------
1 | package com.todobom.opennotescanner.views
2 |
3 | import android.content.res.ColorStateList
4 | import android.os.Bundle
5 | import android.view.LayoutInflater
6 | import android.view.View
7 | import android.view.ViewGroup
8 | import android.view.Window
9 | import android.widget.Button
10 | import android.widget.ImageView
11 | import androidx.exifinterface.media.ExifInterface
12 | import androidx.fragment.app.DialogFragment
13 | import com.todobom.opennotescanner.R
14 | import java.io.IOException
15 |
16 | /**
17 | * Created by allgood on 29/05/16.
18 | */
19 | class TagEditorFragment : DialogFragment() {
20 | private var mRunOnDetach: Runnable? = null
21 | private var filePath: String? = null
22 | var stdTagsState = BooleanArray(7)
23 | var stdTags = arrayOf("rocket", "gift", "tv", "bell", "game", "star", "magnet")
24 | var stdTagsButtons = arrayOfNulls(7)
25 | override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
26 | savedInstanceState: Bundle?): View? {
27 | val tagEditorView = inflater.inflate(R.layout.tageditor_view, container)
28 | dialog!!.window!!.requestFeature(Window.FEATURE_NO_TITLE)
29 | stdTagsButtons[0] = tagEditorView.findViewById(R.id.buttonRocket)
30 | stdTagsButtons[1] = tagEditorView.findViewById(R.id.buttonGift)
31 | stdTagsButtons[2] = tagEditorView.findViewById(R.id.buttonTv)
32 | stdTagsButtons[3] = tagEditorView.findViewById(R.id.buttonBell)
33 | stdTagsButtons[4] = tagEditorView.findViewById(R.id.buttonGame)
34 | stdTagsButtons[5] = tagEditorView.findViewById(R.id.buttonStar)
35 | stdTagsButtons[6] = tagEditorView.findViewById(R.id.buttonMagnet)
36 | for (i in 0..6) {
37 | stdTagsButtons[i]!!.setBackgroundTintList(ColorStateList.valueOf(if (stdTagsState[i]) -0xff198a else -0x5f5f60))
38 | stdTagsButtons[i]!!.setOnClickListener(View.OnClickListener { v: View ->
39 | val index = getTagIndex(v)
40 | stdTagsState[index] = !stdTagsState[index]
41 | v.backgroundTintList = ColorStateList.valueOf(if (stdTagsState[index]) -0xff198a else -0x5f5f60)
42 | })
43 | }
44 | val tagDoneButton = tagEditorView.findViewById