Commit Graph

163 Commits

Author SHA1 Message Date
Pierre-Yves Nicolas
1159b77c6e Refactoring: introduce CommonPageList 2025-06-24 14:30:10 +02:00
Pierre-Yves Nicolas
2452e1d556 CameraScreen: scroll automatically to newly added page 2025-06-24 13:05:46 +02:00
Pierre-Yves Nicolas
c49a271c39 Refactoring: introduce CameraUiState 2025-06-24 12:49:20 +02:00
Pierre-Yves Nicolas
dcb48b8cc8 CameraScreen: click on a page to open it in DocumentScreen 2025-06-24 12:24:17 +02:00
Pierre-Yves Nicolas
ef2a49cf76 CameraScreen: LazyRow with list of pages 2025-06-24 10:37:38 +02:00
Pierre-Yves Nicolas
e894c14260 New UX on capture: freeze preview, no more dialog 2025-06-23 20:59:18 +02:00
Pierre-Yves Nicolas
f0b6dd400b Rename Camera.kt to CameraScreen.kt 2025-06-23 13:42:36 +02:00
Pierre-Yves Nicolas
765d8503b5 Refactoring: move camerax code to a new file 2025-06-23 13:37:41 +02:00
Pierre-Yves Nicolas
87a8d39669 End capture process correctly in case of error 2025-06-22 12:08:57 +02:00
Pierre-Yves Nicolas
f550683786 Close captured ImageProxy (otherwise: subsequent captures freeze) 2025-06-22 12:07:58 +02:00
Pierre-Yves Nicolas
ff0c3c02e6 DocumentScreen: Button to start a new document 2025-06-21 18:39:09 +02:00
Pierre-Yves Nicolas
8ed04238fb Avoid a possible crash when deleting an image 2025-06-21 17:34:31 +02:00
Pierre-Yves Nicolas
60d5bc51ef DocumentScreen: make the image zoomable 2025-06-21 15:39:33 +02:00
Pierre-Yves Nicolas
5b777e5edc Width/height for the document: use avg rather than max 2025-06-21 14:45:30 +02:00
Pierre-Yves Nicolas
cf1dc97b7e Pause live analysis when displaying a capture 2025-06-21 13:15:53 +02:00
pynicolas
0ea4132d37 Make gradle download the TFLite segmentation model (#8) 2025-06-21 13:01:05 +02:00
Pierre-Yves Nicolas
7056393f56 Save about 400ms at capture by delegating the rotation to OpenCV 2025-06-19 19:24:01 +02:00
Pierre-Yves Nicolas
453a8b3fb0 Use a lock to ensure only one segmentation is run at a time 2025-06-19 19:22:22 +02:00
Pierre-Yves Nicolas
0c5a219783 New segmentation model 2025-06-19 15:34:43 +02:00
Pierre-Yves Nicolas
e3ada11c8c Basic postprocessing with OpenCV 2025-06-14 14:39:55 +02:00
Pierre-Yves Nicolas
ea0e40d13e DocumentScreenPreview: use the app theme 2025-06-09 17:49:40 +02:00
Pierre-Yves Nicolas
d9a03c7131 CameraScreen: set up a Preview to make it easier to work on the layout 2025-06-09 14:43:00 +02:00
Pierre-Yves Nicolas
271f047c9d CameraScreen: better capture button 2025-06-08 20:14:01 +02:00
Pierre-Yves Nicolas
d14de65d00 DocumentScreen: in page list, max size is for both width and height 2025-06-08 20:13:14 +02:00
Pierre-Yves Nicolas
9c5f2bc481 Icon for "save" 2025-06-08 17:56:18 +02:00
Pierre-Yves Nicolas
44565e883f Use a floating action button to delete a page 2025-06-08 17:56:18 +02:00
Pierre-Yves Nicolas
840c2f1233 DocumentScreen: highlight which page is currently selected 2025-06-08 17:56:13 +02:00
Pierre-Yves Nicolas
a855dca5a8 DocumentScreen: button handlers 2025-06-07 16:55:37 +02:00
Pierre-Yves Nicolas
2b1b537f67 DocumentScreen layout: big image + miniatures 2025-06-07 16:55:37 +02:00
Pierre-Yves Nicolas
5292f5bdb3 DocumentScreen: pages in LazyColumn 2025-06-07 16:55:37 +02:00
Pierre-Yves Nicolas
b3d13d98bc Create preview for DocumentScreen 2025-06-07 16:55:37 +02:00
Pierre-Yves Nicolas
276209a74a CameraScreen: fix NPE 2025-06-07 16:32:54 +02:00
Pierre-Yves Nicolas
d960a3d045 Add license header to kotlin files 2025-06-06 13:29:07 +02:00
Pierre-Yves Nicolas
6a90723fb3 Rely on PDFBox-Android to reduce the size of generated PDFs 2025-06-04 18:22:57 +02:00
Pierre-Yves Nicolas
ebd5453b65 Ability to delete one of the scanned pages 2025-06-04 16:41:38 +02:00
Pierre-Yves Nicolas
a6e1d8cc51 Add back the "Share" button 2025-06-04 15:44:02 +02:00
Pierre-Yves Nicolas
80381eef6c Store images on the file system rather than in memory 2025-06-04 15:16:48 +02:00
Pierre-Yves Nicolas
aea72aac11 Finalize screen: display images in a FlowRow 2025-06-03 16:09:10 +02:00
Pierre-Yves Nicolas
fd8c26da7f CameraScreen: avoid losing state in case of configuration change 2025-06-03 14:46:12 +02:00
Pierre-Yves Nicolas
c6d77d14f0 Rename CameraScreenState to LiveAnalysisState
Remove unused fields
2025-06-03 13:07:33 +02:00
Pierre-Yves Nicolas
95ae4fcea3 Multi-page step 2: FinalizeDocumentScreen 2025-06-02 21:27:50 +02:00
Pierre-Yves Nicolas
0b76c3fc1e Multi-page step 1: PageValidationDialog 2025-06-02 16:51:52 +02:00
Pierre-Yves Nicolas
86f5b27093 Feature: save PDF to device 2025-06-01 20:21:34 +02:00
Pierre-Yves Nicolas
ba2a9cf8fd Resize and compress bitmaps to decrease PDF size 2025-06-01 17:40:43 +02:00
Pierre-Yves Nicolas
fee1e48b6d Adjust layout 2025-06-01 14:57:51 +02:00
Pierre-Yves Nicolas
fe409acf47 Remove calls to deprecated APIs 2025-06-01 09:02:44 +02:00
Pierre-Yves Nicolas
3ac5657671 Make image capture happen on separate thread executor 2025-06-01 08:37:12 +02:00
Pierre-Yves Nicolas
77427c2695 Inference time should be displayed only on camera screen 2025-06-01 07:43:15 +02:00
Pierre-Yves Nicolas
734197f6e1 Rename UiState to CameraScreenState 2025-06-01 07:28:29 +02:00
Pierre-Yves Nicolas
73b0d47796 ImageSegmentation: small refactorings 2025-06-01 06:58:51 +02:00