Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
172 commits
Select commit Hold shift + click to select a range
b013347
Remove flutter_scanner_cropper to replace with android native channels
veejayts Jun 25, 2021
9f101ae
Refactor gradle files and introduce java
veejayts Jun 25, 2021
dc8b324
Add opencv 3.4.13
veejayts Jun 25, 2021
25a3900
Fix opencv sdk versions in build.gradle
veejayts Jun 25, 2021
4ba0fa1
upgrade gradle version
veejayts Jun 25, 2021
50d9110
custom crop screen
Jun 26, 2021
26fbf8c
Fix recrop bug and refactor
veejayts Jun 26, 2021
e9365ea
Navigation to View refactored
Jul 5, 2021
26ee0dc
Merge branch 'dev_v3' of https://github.com/Ethereal-Developers-Inc/O…
Jul 5, 2021
044a71c
Crop fixed
veejayts Jul 9, 2021
b63911e
Upgrade image_picker, android manifest for api 30
veejayts Jul 19, 2021
6e1e5a0
Refactored view
Aug 11, 2021
5cd91c2
Merge branch 'dev_v3' of https://github.com/Ethereal-Developers-Inc/O…
Aug 13, 2021
f58e051
- code refactored
Aug 17, 2021
658c2b4
- code refactored
Aug 17, 2021
42c2b87
- code refactored
Aug 17, 2021
869118d
testing view setstate bug
Aug 18, 2021
54e1420
Delete Classes.dart
vikram0230 Aug 18, 2021
0759760
Merge branch 'bloc_tester' of https://github.com/Ethereal-Developers-…
Aug 18, 2021
ee48fc2
added models
Aug 18, 2021
2a23c33
refactored utils
Aug 18, 2021
1954dcd
updated imagePicker
Aug 18, 2021
3739a62
- cropper
Aug 22, 2021
5858aa7
image crop optimized
Aug 22, 2021
80b4658
delete Image
Aug 23, 2021
d5beaef
delete image
Aug 23, 2021
b52ab81
scan options enabled
Aug 25, 2021
7dfbcd0
boiler plate code ready
Sep 16, 2021
bdb1646
BLoC worked!!!
Sep 16, 2021
43e8c8b
added image cubit
Sep 21, 2021
e2eda1d
removed image cubit
Sep 26, 2021
0295ade
altered theme
Sep 26, 2021
fb2b02b
icons rounded
Sep 27, 2021
7ecdb15
removed comments
Sep 29, 2021
e808c20
Merge pull request #69 from Ethereal-Developers-Inc/bloc_tester
vikram0230 Sep 29, 2021
3176d94
Merge branch 'dev_v3' of https://github.com/Ethereal-Developers-Inc/O…
Sep 29, 2021
a36c105
updated appbar
Sep 29, 2021
a304527
image selection
Sep 30, 2021
bfdddc4
reorder, image index
Oct 2, 2021
5ee238c
migrate to null-safety
Oct 4, 2021
7247df0
generalised rename, delete dialog
Oct 8, 2021
018afbe
fixed bottomsheet
Oct 21, 2021
a55809b
got the points !!!
Oct 24, 2021
5331299
Change license to AGPL
veejayts Oct 27, 2021
759d787
added in-app camera
Oct 28, 2021
ff59de7
added gyroscope
Oct 31, 2021
bcbff94
fix andoird embedding bug
veejayts Feb 13, 2022
97ba697
package updates
Feb 13, 2022
e542547
Merge branch 'dev_v3' of https://github.com/Ethereal-Developers-Inc/O…
Feb 13, 2022
bc4cae1
view changed
Feb 13, 2022
666e358
upgrade for new version compatibility
veejayts Feb 13, 2022
e6e5ccd
Merge branch 'dev_v3' of https://github.com/Ethereal-Developers-Inc/O…
Feb 13, 2022
b4bc26f
gradle version changes
veejayts Feb 13, 2022
c78499f
Merge branch 'dev_v3' of https://github.com/Ethereal-Developers-Inc/O…
veejayts Feb 13, 2022
5cdab08
added translation config files
Mar 5, 2022
83846fa
added en localizations
Mar 6, 2022
9a09dfb
added en localizations
Mar 6, 2022
0963a58
Add Polish translation
PatrykMis Mar 31, 2022
35ad402
Merge pull request #80 from PatrykMis/polish-lng-v3
vikram0230 Apr 2, 2022
7dacd09
updated rename dialog
Apr 24, 2022
9eb2f5d
updated bottomsheet
Apr 24, 2022
0cc9594
refactor java image util methods
veejayts Apr 24, 2022
644c1e3
refactor for image size return type
veejayts Apr 24, 2022
0dcdc4d
added export bottomsheet
Apr 30, 2022
0515d54
Create app_el.arb
VasilisKos May 7, 2022
a324926
Merge pull request #82 from VasilisKos/patch-2
vikram0230 May 8, 2022
6a271ab
fixed url launcher
Jun 25, 2022
b4d2674
export bottomsheet updates
Jun 25, 2022
b33d7d6
image cropping update
veejayts Jun 25, 2022
4781277
plotting points
Jun 25, 2022
ef82ff9
plotting points from canny
Jun 25, 2022
f902ccd
remove if for opencv initdebug as it is already statically initialised
veejayts Jun 25, 2022
505321a
updated image viewer
Jul 2, 2022
af16e42
splash screen changes in xml
veejayts Jul 2, 2022
7d7fce7
image zoom animation =)
Jul 6, 2022
4183e81
updated packages, added description
vikram0230 Sep 25, 2022
aead47b
bug fix, description
vikram0230 Sep 25, 2022
cc20b95
updated cropper
vikram0230 Sep 25, 2022
c15dfe7
added filters
vikram0230 Oct 30, 2022
54314d6
Add Hungarian translation
meskobalazs Oct 31, 2022
a9ff22a
Merge remote-tracking branch 'origin/master' into dev_v3
vikram0230 Nov 6, 2022
176c5ba
removed scanlib
vikram0230 Nov 6, 2022
c34d67b
Merge pull request #87 from meskobalazs/dev_v3
vikram0230 Nov 6, 2022
bfa9119
Added Filter Cubit
vikram0230 Nov 6, 2022
202e4f0
opencv final fixes #86
vikram0230 Dec 4, 2022
bf5e433
designed android splash screen
vikram0230 Dec 18, 2022
b5bfa2c
fixed demo flow
vikram0230 Dec 18, 2022
eddfd05
update pdf packages and fix pdf export
veejayts Dec 28, 2022
9944067
change dependency open_file -> open_filex to remove playstore warning…
Jan 1, 2023
61b324a
implement compression feature
veejayts Jan 2, 2023
1106bc6
implement compression feature
veejayts Jan 2, 2023
097d25c
back button action in select mode exit select mode
veejayts Jan 8, 2023
4688db2
edge points rotation #70
vikram0230 Jan 8, 2023
c055979
Merge branch 'dev_v3' of https://github.com/ethereal-developers/OpenS…
veejayts Jan 8, 2023
431b383
image rotation animation #70
vikram0230 Jan 29, 2023
b8a9fd8
util method for cropimage
veejayts Feb 5, 2023
ae1954c
fix int parsing while calling android native compress method
veejayts Feb 5, 2023
eac7a7e
restructured crop module
vikram0230 Feb 5, 2023
2f35166
Merge branch 'dev_v3' of https://github.com/Ethereal-Developers-Inc/O…
vikram0230 Feb 5, 2023
0cf6d10
updated cropper algo
vikram0230 Feb 12, 2023
a791fa3
cropper UI updates
vikram0230 Feb 12, 2023
7891536
readme updates
vikram0230 Feb 19, 2023
1bc965a
readme
vikram0230 Feb 19, 2023
e27f7c6
readme
vikram0230 Feb 19, 2023
a0818ad
readme
vikram0230 Feb 19, 2023
ce0ba4d
rotate image util
veejayts Feb 19, 2023
37c012a
reduced filter time
vikram0230 Feb 26, 2023
9432885
fixed filter image flicker
vikram0230 Mar 5, 2023
0aea180
cropper bug fixes
vikram0230 Mar 7, 2023
c2a6fe6
crop backend fix
vikram0230 Mar 12, 2023
0aa8a7d
added magnifier #48 #25
vikram0230 Mar 19, 2023
6e9e7ea
selective delete bug fix
vikram0230 Apr 30, 2023
bc80d90
Merge branch 'master' of https://github.com/ethereal-developers/OpenS…
veejayts Mar 18, 2024
fd21f00
Fix static compiler issues
veejayts Mar 18, 2024
34af250
remove opencv files
veejayts Mar 18, 2024
6d1de9d
import opencv via build.gradle
veejayts Mar 18, 2024
5315724
init opencv once, ui color change in home screen and remove problemat…
veejayts Mar 18, 2024
a2a20a5
Refactor app routing and UI initialization; update package versions i…
veejayts Mar 23, 2025
a81c994
Fix perspective crop screen UI bugs
veejayts Apr 4, 2026
c935cb9
Fix Android build for Java 21 / AGP 8.6 / Kotlin 2.2
veejayts Apr 4, 2026
cc21bab
Migrate flutter_gen imports to local l10n package; fix deprecated col…
veejayts Apr 4, 2026
2aeda14
Update .gitignore
veejayts Apr 4, 2026
4880950
Merge pull request #115 from ethereal-developers/claude/practical-jen…
veejayts Apr 4, 2026
1f9bab3
Replace OpenCV crop/detect pipeline with pure Dart; fix gallery crash
veejayts Aug 23, 2026
11bb6dc
Close Android SDK gaps: targetSdk 36, scoped storage, Java 17
veejayts Aug 23, 2026
8bff648
Gitignore iOS Flutter ephemeral build artifacts
veejayts Aug 23, 2026
5bf0e5b
Add live document detection (Phase 2)
veejayts Aug 23, 2026
7929b91
Fix live-scan camera not reopening after backgrounding
veejayts Aug 23, 2026
22c1c41
Reject degenerate detected quads; profile live-scan latency
veejayts Aug 23, 2026
53c9ffe
Migrate off the stale camera plugin fork
veejayts Aug 23, 2026
61b4f14
Fix all analyzer warnings and remove stale TODOs
veejayts Aug 23, 2026
cde2620
Bring live scan to capture parity and stabilize edge detection
veejayts Aug 23, 2026
18fd561
Reformat generated app_localizations.dart
veejayts Aug 23, 2026
345b993
Add pinch-zoom, tap-to-focus/expose, camera switch, and manual exposu…
veejayts Aug 23, 2026
568843c
Fix exposure +/- always increasing on Android
veejayts Aug 23, 2026
da95c56
Replace live-scan pinch-zoom with a slider and fix zoom lag
veejayts Aug 23, 2026
5286983
Crop live auto-mode captures to the on-screen edges and keep originals
veejayts Aug 23, 2026
8c6dd54
Replace photo filters with six document modes, and make them apply
veejayts Aug 25, 2026
60349ab
Rebuild the UI on a warm-white, single-accent design system
veejayts Aug 25, 2026
287c24a
Replace pages on re-scan, rebuild the camera around a bounded viewfinder
veejayts Aug 25, 2026
1649038
Drop the edge-detection failure banner on the crop screen
veejayts Aug 25, 2026
db37e42
Flatten the camera chrome and fill the page on capture
veejayts Aug 26, 2026
bd09b6f
Stop the live overlay jumping between equally-good detections
veejayts Aug 26, 2026
bddca2a
Send every capture straight into the document, cropped to its live edges
veejayts Aug 26, 2026
17a54de
Show captured pages at once, and store them in one pass
veejayts Aug 26, 2026
2b7e32b
Make Rotate turn the polygon and the saved page, not just the preview
veejayts Aug 26, 2026
213c4b2
Add on-device flow tests, and fix two bugs they found
veejayts Aug 26, 2026
7eb9336
Replace the table-per-document schema with documents + pages
veejayts Aug 26, 2026
bdd25eb
Keep crop handles out of the system back-gesture strip
veejayts Aug 26, 2026
4ddc04a
Route PDF export through exportDirectory, and clear both TODOs
veejayts Aug 26, 2026
ff212c3
Rebuild the export quality scale around compression, not fidelity
veejayts Aug 26, 2026
3e22e87
Fix the Open button, rename documents, and drop the size estimate
veejayts Aug 26, 2026
767804a
Name an export after the document, generated names included
veejayts Aug 26, 2026
c298c90
End a share at the share sheet, and stage shared files in app storage
veejayts Aug 26, 2026
67055bb
Never leave export leftovers where the user cannot delete them
veejayts Aug 26, 2026
e02b969
Never keep a page the app cannot draw
veejayts Aug 27, 2026
a6f8a5c
Store a capture through the platform's own image decoder
veejayts Aug 31, 2026
903cdbe
Drop four permissions OpenScan never uses
veejayts Aug 31, 2026
2110a9e
Lint for correctness, and fix what that found
veejayts Aug 31, 2026
7cc3b61
Add a changelog entry for v3.0.0
veejayts Aug 31, 2026
4c23228
Translate the whole interface, and add Tamil and Hindi
veejayts Aug 31, 2026
65030bb
Record the translations in the changelog
veejayts Aug 31, 2026
393da05
Rebuild the tutorial as a walkthrough of the app
veejayts Sep 1, 2026
cc20d5f
Drop seven assets nothing refers to
veejayts Sep 1, 2026
a300869
Credit both developers on the About screen again
veejayts Sep 1, 2026
7e9543d
Use the GitHub mark on the About button
veejayts Sep 1, 2026
24a61a8
Process each page as its shutter fires, not after Done
veejayts Sep 1, 2026
66f0fef
Ignore keystore file at android/key.jks
veejayts Sep 1, 2026
6923c4b
Bump version to 3.0.0+6
veejayts Sep 1, 2026
5f32a62
Merge remote-tracking branch 'origin/master' into dev_v3
veejayts Sep 2, 2026
3864f6f
Relicense project under Apache License 2.0
veejayts Sep 2, 2026
88370de
Compress PDF pages in parallel, with test coverage
veejayts Sep 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
15 changes: 13 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
# is commented out by default.
#.vscode/
.vscode/

# Flutter/Dart/Pub related
**/doc/api/
Expand All @@ -29,6 +29,8 @@
.pub-cache/
.pub/
/build/
android/build/
ios/Flutter/ephemeral/

# Web related
lib/generated_plugin_registrant.dart
Expand All @@ -42,6 +44,15 @@ app.*.map.json
# Exceptions to above rules.
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages

android/key.properties
.gitignore
key.properties
android/app/key.jks
android/key.jks
local.properties
.vscode

# Eclipse Buildship IDE metadata (machine-local paths, regenerated on sync)
android/.project
android/.settings/

.claude
233 changes: 153 additions & 80 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,80 +1,153 @@
# v2.2.0

### Changed

- Reduce margins during PDF export
- Export location by default is Documents/OpenScan/PDF
- Multi image picker UI
- Change default export quality

### Fixed

- Image quality increased with lower file sizes
- Improved edge detection
- BW filter upgraded
- Quick action icons show actual icons instead of generic icons

# v2.1.0

### Changed

- Icon changes
- Animation in floating action button
- Remove margins during PDF export
- Storage location default to in app directory

### Added

- Multiple image picker
- Quick action

### Fixed

- File rename checker

### Removed

- Delete all option from export menu

# v2.0.0

### Changed

- New Cropper with more advanced functions
- Demo images
- Export of files no longer has the 'OpenScan' appended to it

### Added

- Quick Scan feature
- Camera permission request
- Rename of documents
- Reorder of images
- Selective export of images
- Selective delete of images
- Image preview of documents in Home Screen
- Document Compressor and/or Quality selector for exporting documents

### Fixed

- HomeScreen update after deleting file
- Clear temporary images after adding images in View Document screen
- Camera access on older devices
- Picture folder Hidden
- Document not saving for Android 11

### Removed

- Previous scanner
- Support for iOS removed
- Scan Document screen removed. Now directly goes directly to View Document.

# v1.0.0 - 13/07/2020

### Added

- Save as PDF
- Share as PDF
- Share as Images
- Preview PDF
- Cropping Features
# v3.0.0

A full rewrite of the scanning pipeline, the camera, and the UI.

### Added

- Live document detection: edges are found in the viewfinder and the page
is captured and cropped to them automatically.
- Six document filter modes (replacing the old photo filters), applied to
one page or the whole document.
- Camera controls: pinch-to-zoom slider, tap-to-focus and -expose, manual
exposure, and a front/back switch.
- On-device integration tests covering the capture, crop, library,
settings and export flows, plus a database migration test.
- Tamil and Hindi translations. The interface is now fully translated
in English, Greek, Hindi, Hungarian, Polish and Tamil, with plural
forms and dates that follow the locale.
- The About screen credits both developers again, as v2 did, with a card
each linking to their LinkedIn.
- The tutorial is now a walkthrough of the app: six slides covering
auto-capture, multi-page scanning, edge adjustment and filters, page
reordering, and export, each with a working miniature of the screen it
describes that animates the gesture being taught.

### Changed

- The tutorial's illustrations are drawn from the theme's own tokens
rather than shipped as screenshots, so they follow the chosen accent and
cannot go stale against the screens they depict.
- Each page is processed the moment its shutter fires — cropped to the
detected boundary and re-encoded while the shutter shows a spinner —
instead of the whole batch being processed after Done, so finishing a
session is instant however many pages it holds.
- Cropping and edge detection are pure Dart; the OpenCV dependency is gone.
- Captures are stored through the platform's own image decoder, which
decodes and downscales in one native step instead of several seconds of
pure-Dart work per page.
- The database moved from a table-per-document schema to `documents` +
`pages`, migrated automatically on first launch.
- Export quality is now a compression scale, and an export is named after
its document.
- Rebuilt the interface on a warm-white, single-accent design system.
- targetSdk 36, scoped storage, Java 17.

### Fixed

- Live scan no longer fails to reopen the camera after backgrounding.
- Exposure +/- no longer only ever increases on Android.
- Rotate turns the saved page and its detected outline, not just the
preview.
- Crop handles stay clear of the system back-gesture strip.
- Pages the app cannot draw are no longer kept, and exports no longer
leave files the user cannot delete.
- The tutorial's back button, opened from Settings, sat in the top-right
corner where Skip belongs; it is now on the leading edge.
- Every outbound link works again. Android 11+ package visibility hid all
browsers from `canLaunchUrl`, so the About screen's GitHub button did
nothing at all; the manifest now declares the browser query, and a link
that still cannot open says so instead of only logging.
- The About screen's description no longer opens mid-sentence: every
locale writes it to follow the app's name inline, and the name had been
dropped from the paragraph.
- Tutorial slides no longer overflow on short screens or at large text
sizes — the copy used to be pushed off the bottom, in every language at
200% text.

### Removed

- `RECORD_AUDIO`, `READ_MEDIA_AUDIO`, `READ_MEDIA_VIDEO` and
`READ_MEDIA_IMAGES`, which dependencies declared but OpenScan never
used.
- The storage permission request, made redundant by scoped storage.

# v2.2.0

### Changed

- Reduce margins during PDF export
- Export location by default is Documents/OpenScan/PDF
- Multi image picker UI
- Change default export quality

### Fixed

- Image quality increased with lower file sizes
- Improved edge detection
- BW filter upgraded
- Quick action icons show actual icons instead of generic icons

# v2.1.0

### Changed

- Icon changes
- Animation in floating action button
- Remove margins during PDF export
- Storage location default to in app directory

### Added

- Multiple image picker
- Quick action

### Fixed

- File rename checker

### Removed

- Delete all option from export menu

# v2.0.0

### Changed

- New Cropper with more advanced functions
- Demo images
- Export of files no longer has the 'OpenScan' appended to it

### Added

- Quick Scan feature
- Camera permission request
- Rename of documents
- Reorder of images
- Selective export of images
- Selective delete of images
- Image preview of documents in Home Screen
- Document Compressor and/or Quality selector for exporting documents

### Fixed

- HomeScreen update after deleting file
- Clear temporary images after adding images in View Document screen
- Camera access on older devices
- Picture folder Hidden
- Document not saving for Android 11

### Removed

- Previous scanner
- Support for iOS removed
- Scan Document screen removed. Now directly goes directly to View Document.

# v1.0.0 - 13/07/2020

### Added

- Save as PDF
- Share as PDF
- Share as Images
- Preview PDF
- Cropping Features
Loading