Pierre-Yves Nicolas
9dedaaec9d
Prepare release: v1.20.0
2026-05-03 18:49:25 +02:00
Pierre-Yves Nicolas
c9da4f692f
Improve perspective correction using projective geometry ( #173 )
2026-05-03 17:46:35 +02:00
Pierre-Yves Nicolas
01402c54ce
Log SecurityException on openUri
2026-04-25 10:07:21 +02:00
Pierre-Yves Nicolas
32c24c3eae
Avoid crashing when importing an invalid image ( #171 )
2026-04-24 17:34:06 +02:00
Pierre-Yves Nicolas
1169bed9a5
Grayscale: avoid darkening pages with little content ( #158 )
...
Adjust black point: 0.01 -> 0.004
2026-04-21 15:39:43 +02:00
Philipp Hasper
8b80ca12b2
Fix reporting email for images scanned via Intent ( #163 )
...
When starting the app via "org.fairscan.app.action.SCAN_TO_PDF" and then
reporting the last image via createEmailWithImageIntent() the URI creation
failed with
> java.lang.IllegalArgumentException: Failed to find configured root that
> contains /data/data/org.fairscan.app/cache/sessions/097d29ab-f706-4ba2-848a-fea16fb5f41f/sources/1776590719661.jpg
The issue was that when launched via SCAN_TO_PDF, images are stored under
the cache directory (cache/sessions/<uuid>/sources/), but the FileProvider
configuration in file_paths.xml only had a <cache-path> for pdfs/ and
<files-path> for sources/. There was no cache path covering sessions/.
2026-04-21 09:27:23 +02:00
Pierre-Yves Nicolas
e70f4e4d1e
Contributing guidelines ( #166 )
2026-04-20 18:54:45 +02:00
Pierre-Yves Nicolas
8fae0badb9
Prepare release: v1.19.0
2026-04-11 11:34:28 +02:00
Pierre-Yves Nicolas
eeb0d8e8b3
PDF pages physical dimensions should be close to US Letter or A4 ( #153 )
2026-04-10 19:00:56 +02:00
Pierre-Yves Nicolas
3e085eca5c
DocumentScreen: reset zoom after rotation so that all areas are reachable ( #152 )
2026-04-10 16:20:45 +02:00
Pierre-Yves Nicolas
479680a83d
Throw explicit exceptions when decoding images to import
2026-04-10 15:49:51 +02:00
Pierre-Yves Nicolas
31155275e8
CameraScreen: cancel import when leaving the screen
2026-04-10 15:49:51 +02:00
Pierre-Yves Nicolas
6290717635
CameraScreen: improve UI for import
2026-04-10 15:49:51 +02:00
Pierre-Yves Nicolas
b946913594
New feature: import photos
2026-04-10 15:49:51 +02:00
Pierre-Yves Nicolas
2f4b330b8d
Move camera permission rationale to CameraScreen
2026-04-10 15:49:51 +02:00
Pierre-Yves Nicolas
336609d32d
Drop unused integration test
2026-04-04 18:48:36 +02:00
Pierre-Yves Nicolas
53b226a465
Centralize image processing for 'app' module
2026-04-04 18:48:04 +02:00
Pierre-Yves Nicolas
953d0e4a42
Prepare release: v1.18.0
2026-04-03 18:45:05 +02:00
Pierre-Yves Nicolas
47109d6ab4
Revert AGP upgrade to fix broken APK
...
Building with AGP 8.13.2 leads to a (minified) release APK that crashes with LiteRT.
2026-04-03 18:44:37 +02:00
Pierre-Yves Nicolas
7f51e462c1
Fix visual glitch when rotating a page with RTL language ( #144 )
2026-04-03 10:51:30 +02:00
Pierre-Yves Nicolas
115472aeb0
ImageRepository: add unit tests for setColorMode
2026-04-02 19:34:29 +02:00
Pierre-Yves Nicolas
1e99520473
Thumbnails: avoid loading many Bitmaps, increase cache size
2026-04-02 17:50:23 +02:00
Pierre-Yves Nicolas
7a9e4203ed
SettingsScreen: adjust style
2026-04-02 13:16:22 +02:00
Pierre-Yves Nicolas
4aae5accae
New setting for default color mode ("default filter")
2026-04-02 13:16:22 +02:00
Pierre-Yves Nicolas
139922c19e
DocumentScreen: add a spinner when changing color mode
2026-04-01 18:47:27 +02:00
Pierre-Yves Nicolas
18923d5934
DocumentScreen: dropdown menu for color mode
2026-04-01 12:08:07 +02:00
Pierre-Yves Nicolas
215f57bb74
Avoid resolution of current page in DocumentScreen
2026-04-01 12:08:07 +02:00
Pierre-Yves Nicolas
b258082ce1
New feature: ability to force color mode for a page
2026-04-01 12:08:07 +02:00
Pierre-Yves Nicolas
7d01493477
Introduce ColorMode enum
2026-04-01 12:08:07 +02:00
Pierre-Yves Nicolas
3681d5771d
Introduce Jpeg class
2026-04-01 12:08:07 +02:00
Pierre-Yves Nicolas
7cd3dfd990
ImageRepository: make jpegBytes and getThumbnail suspend
2026-04-01 12:08:07 +02:00
Pierre-Yves Nicolas
05a8af577c
Refactor UI to remove blocking image loading and support suspend APIs
2026-04-01 12:08:07 +02:00
Pierre-Yves Nicolas
446b915d59
ImageRepository: rotations and thumbnails are not stored on disk anymore
2026-04-01 12:08:07 +02:00
Pierre-Yves Nicolas
69690d5c2a
Splash screen should be dark for dark theme ( #148 )
2026-03-26 11:26:15 +01:00
Pierre-Yves Nicolas
f130d33eba
Avoid swallowing errors during export preparation
2026-03-25 18:47:45 +01:00
Pierre-Yves Nicolas
92914c1730
Make ImageRepository thread-safe ( #147 )
2026-03-25 14:35:17 +01:00
Pierre-Yves Nicolas
516dd75e9c
Fix grayscale PDF export: partial revert of 40314de
2026-03-25 09:06:04 +01:00
Pierre-Yves Nicolas
90287b3389
Compress source JPEG during capture preview rather than later
2026-03-24 20:34:24 +01:00
Pierre-Yves Nicolas
fa619da867
MainViewModel: avoid running IO operations on the main thread
2026-03-24 20:34:24 +01:00
Pierre-Yves Nicolas
40314def4e
Capture: reduce conversions between Mat/Bitmap/ByteArray
2026-03-24 20:34:24 +01:00
Pierre-Yves Nicolas
ceceaf8792
Centralize JPEG compression (also in MainViewModel)
2026-03-22 18:28:17 +01:00
Pierre-Yves Nicolas
a9edfa2b87
Centralize JPEG compression to a single function
2026-03-22 18:09:12 +01:00
Pierre-Yves Nicolas
f336680a69
Upgrade AGP: 8.10.1 -> 8.13.2
2026-03-22 12:53:41 +01:00
Pierre-Yves Nicolas
fe2f37b7e8
Upgrade most dependencies
2026-03-22 12:53:41 +01:00
Pierre-Yves Nicolas
2f3d42049e
Prepare release: v1.17.0
2026-03-20 17:09:01 +01:00
Pierre-Yves Nicolas
1ad586ed8f
Feed basic PDF metadata: date and creator
2026-03-20 16:40:39 +01:00
Pierre-Yves Nicolas
f371be4e14
Layout of rotation buttons should be the same for RTL as for LTR ( fixes #135 )
2026-03-20 15:50:26 +01:00
Pierre-Yves Nicolas
58abc2f3fe
Improve grayscale postprocessing ( #138 )
...
Apply exp() to the Retinex output before normalization, restoring a
linear tone distribution. This improves contrast overall: light gray
content is preserved, and dark content stays dark even when the image
contains deep blacks. The previous normalization compressed all tones
toward the same gray level. Trade-off: shadows and unwanted background
variations are also more visible in some images.
Other:
- stretch toward white using histogram mode
- fall back to simple normalization on documents with large dark areas
- add bilateral denoising
2026-03-20 11:40:58 +01:00
Pierre-Yves Nicolas
0e8037fa8d
Export: fix SecurityException when tapping "open" ( #133 )
2026-03-14 14:52:24 +01:00
Pierre-Yves Nicolas
cd4206b413
Prepare release: v1.16.0
2026-03-10 11:42:21 +01:00