Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add scan doc upload : take a picture, auto crop image, invert color, transform to pdf #6661

Closed
wants to merge 10,000 commits into from

Conversation

thelittlefireman
Copy link
Contributor

@thelittlefireman thelittlefireman commented Aug 6, 2020

Resolves #2436
Resolves #4435

Testing

Writing tests is very important. Please try to write some tests for your PR.
If you need help, please do not hesitate to ask in this PR for help.

unit tests
instrumented tests
UI tests

  • Tests written, or not not needed

@thelittlefireman

This comment has been minimized.

@AndyScherzinger

This comment has been minimized.

@thelittlefireman

This comment has been minimized.

@AndyScherzinger

This comment has been minimized.

@thelittlefireman

This comment has been minimized.

@AndyScherzinger

This comment has been minimized.

@AndyScherzinger

This comment has been minimized.

@thelittlefireman

This comment has been minimized.

@AndyScherzinger

This comment has been minimized.

@tobiasKaminsky

This comment has been minimized.

@thelittlefireman

This comment has been minimized.

public class ScanDocumentFragment extends Fragment {
private static Bitmap editedImageTmp;
private final Bitmap editedImage;
private boolean isInverted;

This comment was marked as outdated.

@thelittlefireman thelittlefireman force-pushed the add_scan_doc branch 3 times, most recently from ef4a49b to e8ea869 Compare November 2, 2020 14:08
@thelittlefireman thelittlefireman changed the title [WIP] Add scan doc upload : take a picture, auto crop image, invert color, transform to pdf Add scan doc upload : take a picture, auto crop image, invert color, transform to pdf Nov 2, 2020
@thelittlefireman
Copy link
Contributor Author

@AndyScherzinger @tobiasKaminsky
Ready for a peer review :)

@nextcloud-android-bot
Copy link
Collaborator

stable-IT test failed, but no output was generated. Maybe a preliminary stage failed.

@nextcloud-android-bot
Copy link
Collaborator

@nextcloud-android-bot
Copy link
Collaborator

Codacy

Lint

TypemasterPR
Warnings243243
Errors00

SpotBugs (new)

Warning TypeNumber
Bad practice Warnings27
Correctness Warnings53
Internationalization Warnings9
Multithreaded correctness Warnings9
Performance Warnings73
Security Warnings41
Dodgy code Warnings98
Total310

SpotBugs (master)

Warning TypeNumber
Bad practice Warnings27
Correctness Warnings52
Internationalization Warnings9
Multithreaded correctness Warnings9
Performance Warnings73
Security Warnings41
Dodgy code Warnings99
Total310

SpotBugs increased!

@tobiasKaminsky
Copy link
Member

@thelittlefireman Thanks for your amazing job!
I tested it and roughly looked at the code, great job!

The only thing I see that we have now ~76Mb more dependencies:
image

I tried to exclude at least libs for mips and mips64, but it does not work.
I would really like to "only" support this on arm and x86, so that we at least shrink it a bit…

@thelittlefireman
Copy link
Contributor Author

@thelittlefireman Thanks for your amazing job!
I tested it and roughly looked at the code, great job!

The only thing I see that we have now ~76Mb more dependencies:
image

I tried to exclude at least libs for mips and mips64, but it does not work.
I would really like to "only" support this on arm and x86, so that we at least shrink it a bit…

Thanks you and @AndyScherzinger your help too 😊

I Will have a look if you want. Do you try the split function in gradle to limit arch?

@thelittlefireman
Copy link
Contributor Author

thelittlefireman commented Feb 10, 2021

I try to set ndk{ abifilter } i will let you know.
Moreover, we currently use OpenCv Android version 3.4.X for compatibility reason with AndroidDocumentScanner. But
OpenCv 3.4.X size is about 76~86Mb and 4.3.X ~52Mb
https://mvnrepository.com/artifact/com.quickbirdstudios/opencv/4.3.0

I've open an issue , keep an eye on it : mayuce/AndroidDocumentScanner#30

@thelittlefireman
Copy link
Contributor Author

Moreover, (again), thanks to the fact that now nextcloud min api version is 21. Maybe we could migrate to an updated fork of thoses libraries :
https://github.com/meganz/AndroidDocumentScanner
New updates and OpenCV 4.4.0 by default

@thelittlefireman
Copy link
Contributor Author

Moreover, (again), thanks to the fact that now nextcloud min api version is 21. Maybe we could migrate to an updated fork of thoses libraries :
https://github.com/meganz/AndroidDocumentScanner
New updates and OpenCV 4.4.0 by default

I try to change to this new lib but it's in kotlin and so i've got so many errors, maybe we could stay with the original lib for now.

Signed-off-by: thelittlefireman <thelittlefireman@users.noreply.github.com>
@nextcloud-android-bot
Copy link
Collaborator

stable-IT test failed, but no output was generated. Maybe a preliminary stage failed.

@nextcloud-android-bot
Copy link
Collaborator

@nextcloud-android-bot
Copy link
Collaborator

Codacy

Lint

TypemasterPR
Warnings243243
Errors00

SpotBugs (new)

Warning TypeNumber
Bad practice Warnings27
Correctness Warnings53
Internationalization Warnings9
Multithreaded correctness Warnings9
Performance Warnings73
Security Warnings41
Dodgy code Warnings98
Total310

SpotBugs (master)

Warning TypeNumber
Bad practice Warnings27
Correctness Warnings52
Internationalization Warnings9
Multithreaded correctness Warnings9
Performance Warnings73
Security Warnings41
Dodgy code Warnings99
Total310

SpotBugs increased!

@nextcloud-android-bot
Copy link
Collaborator

Codacy

Lint

TypemasterPR
Warnings232232
Errors00

SpotBugs (new)

Warning TypeNumber
Bad practice Warnings27
Correctness Warnings53
Internationalization Warnings9
Multithreaded correctness Warnings9
Performance Warnings73
Security Warnings40
Dodgy code Warnings98
Total309

SpotBugs (master)

Warning TypeNumber
Bad practice Warnings27
Correctness Warnings52
Internationalization Warnings9
Multithreaded correctness Warnings9
Performance Warnings73
Security Warnings40
Dodgy code Warnings99
Total309

@nextcloud-android-bot
Copy link
Collaborator

stable-IT test failed, but no output was generated. Maybe a preliminary stage failed.

@nextcloud-android-bot
Copy link
Collaborator

master-IT test failed, but no output was generated. Maybe a preliminary stage failed.

@nextcloud-android-bot
Copy link
Collaborator

@nextcloud-android-bot
Copy link
Collaborator

@thelittlefireman
Copy link
Contributor Author

Any help needed for the merge ?

@AndyScherzinger
Copy link
Member

Any help needed for the merge ?

Nothin I asm aware of, there are some (new) conflicts to be resolved with master but other than that we'd have to wait for @tobiasKaminsky's feedback about how to deal with the increased size :/

@tobiasKaminsky
Copy link
Member

I am really concerned about the file size.
I am not sure if it is a problem at all, or not.
But once this feature is in, on all platform, we cannot get back that easily…

@thelittlefireman thelittlefireman force-pushed the add_scan_doc branch 2 times, most recently from c15a481 to 30f3866 Compare March 19, 2021 22:25
Signed-off-by: thelittlefireman <thelittlefireman@users.noreply.github.com>

# Conflicts:
#	.github/dependabot.yml
#	.github/workflows/autoApproveDependabot.yml
#	.github/workflows/detekt.yml
#	.github/workflows/gPlayFlavor.yml
#	.github/workflows/genericFlavor.yml
#	.github/workflows/ktlint.yml
#	.github/workflows/qa.yml
#	.gitignore
#	CHANGELOG.md
#	build.gradle
#	gradle.properties
#	gradle/wrapper/gradle-wrapper.properties
#	screenshots/gplay/debug/com.nextcloud.client.ActivitiesActivityIT_openDrawer.png
#	screenshots/gplay/debug/com.nextcloud.client.ActivitiesActivityIT_openDrawer_dark_blue.png
#	screenshots/gplay/debug/com.nextcloud.client.ActivitiesActivityIT_openDrawer_dark_white.png
#	screenshots/gplay/debug/com.nextcloud.client.ActivitiesActivityIT_openDrawer_light_white.png
#	screenshots/gplay/debug/com.nextcloud.client.FileDisplayActivityScreenshotIT_drawer.png
#	screenshots/gplay/debug/com.nextcloud.client.FileDisplayActivityScreenshotIT_drawer_dark_blue.png
#	screenshots/gplay/debug/com.nextcloud.client.FileDisplayActivityScreenshotIT_drawer_light_white.png
#	screenshots/gplay/debug/com.nextcloud.client.SettingsActivityIT_showMnemonic_Error.png
#	screenshots/gplay/debug/com.nextcloud.client.SettingsActivityIT_showMnemonic_Error_dark_blue.png
#	screenshots/gplay/debug/com.nextcloud.client.SettingsActivityIT_showMnemonic_Error_dark_white.png
#	screenshots/gplay/debug/com.nextcloud.client.SettingsActivityIT_showMnemonic_Error_light_white.png
#	screenshots/gplay/debug/com.nextcloud.client.UploadListActivityActivityIT_openDrawer.png
#	screenshots/gplay/debug/com.nextcloud.client.UploadListActivityActivityIT_openDrawer_dark_blue.png
#	screenshots/gplay/debug/com.nextcloud.client.UploadListActivityActivityIT_openDrawer_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.ConflictsResolveActivityIT_keepBoth.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.ConflictsResolveActivityIT_keepBoth_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.ConflictsResolveActivityIT_keepBoth_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.ConflictsResolveActivityIT_keepBoth_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.ConflictsResolveActivityIT_keepExisting.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.ConflictsResolveActivityIT_keepExisting_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.ConflictsResolveActivityIT_keepExisting_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.ConflictsResolveActivityIT_keepExisting_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.ConflictsResolveActivityIT_keepNew.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.ConflictsResolveActivityIT_keepNew_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.ConflictsResolveActivityIT_keepNew_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.ConflictsResolveActivityIT_keepNew_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.ConflictsResolveActivityIT_screenshotTextFiles.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.ConflictsResolveActivityIT_screenshotTextFiles_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.ConflictsResolveActivityIT_screenshotTextFiles_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.ConflictsResolveActivityIT_screenshotTextFiles_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_empty_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_empty_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_empty_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_error_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_error_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_error_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_loading.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_loading_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_loading_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_loading_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_showNotifications_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_showNotifications_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_showNotifications_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_check.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_check_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_check_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_check_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_delete.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_delete_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_delete_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_delete_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_request.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_request_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_request_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_request_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testNewFolderDialog_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testNewFolderDialog_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testNewFolderDialog_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testRenameFileDialog_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testRenameFileDialog_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testRenameFileDialog_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.dialog.SendShareDialogTest_showDialog_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.dialog.SendShareDialogTest_showDialog_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.dialog.SetupEncryptionDialogFragmentIT_error_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.dialog.SetupEncryptionDialogFragmentIT_error_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.dialog.SetupEncryptionDialogFragmentIT_showMnemonic.png
#	screenshots/gplay/debug/com.owncloud.android.ui.dialog.SetupEncryptionDialogFragmentIT_showMnemonic_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.dialog.SetupEncryptionDialogFragmentIT_showMnemonic_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.dialog.SetupEncryptionDialogFragmentIT_showMnemonic_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivities.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesError.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesError_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesError_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesError_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesNone.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesNone_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesNone_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesNone_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivities_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivities_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivities_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsSharing.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsSharing_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsSharing_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsSharing_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailActivitiesFragment.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailActivitiesFragment_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailActivitiesFragment_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailActivitiesFragment_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailSharingFragment.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailSharingFragment_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailSharingFragment_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailSharingFragment_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileAllShareTypes.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileAllShareTypes_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileAllShareTypes_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileAllShareTypes_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileNone.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileNone_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileNone_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileNone_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileResharingNotAllowed.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileResharingNotAllowed_dark_blue.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileResharingNotAllowed_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileResharingNotAllowed_light_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.OCFileListFragmentStaticServerIT_showSharedFiles_dark_white.png
#	screenshots/gplay/debug/com.owncloud.android.ui.fragment.OCFileListFragmentStaticServerIT_showSharedFiles_light_white.png
#	scripts/analysis/findbugs-results.txt
#	scripts/analysis/lint-results.txt
#	scripts/deleteOldComments.sh
#	src/androidTest/java/com/owncloud/android/providers/DocumentsStorageProviderIT.kt
#	src/androidTest/java/com/owncloud/android/ui/activity/PassCodeActivityIT.kt
#	src/androidTest/java/com/owncloud/android/ui/dialog/DialogFragmentIT.java
#	src/androidTest/java/com/owncloud/android/ui/dialog/SendShareDialogTest.kt
#	src/androidTest/java/com/owncloud/android/ui/fragment/FileDetailFragmentStaticServerIT.kt
#	src/debug/java/com/nextcloud/client/TestActivity.kt
#	src/main/java/com/nextcloud/client/jobs/MediaFoldersDetectionWork.kt
#	src/main/java/com/nextcloud/client/media/PlayerService.kt
#	src/main/java/com/nextcloud/client/network/ConnectivityServiceImpl.java
#	src/main/java/com/nextcloud/ui/ChooseAccountDialogFragment.kt
#	src/main/java/com/nextcloud/ui/SetStatusDialogFragment.kt
#	src/main/java/com/owncloud/android/authentication/AuthenticatorActivity.java
#	src/main/java/com/owncloud/android/authentication/DeepLinkLoginActivity.java
#	src/main/java/com/owncloud/android/db/ProviderMeta.java
#	src/main/java/com/owncloud/android/files/services/FileDownloader.java
#	src/main/java/com/owncloud/android/files/services/FileUploader.java
#	src/main/java/com/owncloud/android/operations/CheckCurrentCredentialsOperation.java
#	src/main/java/com/owncloud/android/operations/RefreshFolderOperation.java
#	src/main/java/com/owncloud/android/providers/DocumentsStorageProvider.java
#	src/main/java/com/owncloud/android/providers/FileContentProvider.java
#	src/main/java/com/owncloud/android/providers/UsersAndGroupsSearchProvider.java
#	src/main/java/com/owncloud/android/ui/TextDrawable.java
#	src/main/java/com/owncloud/android/ui/activities/ActivitiesActivity.java
#	src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java
#	src/main/java/com/owncloud/android/ui/activity/NotificationsActivity.java
#	src/main/java/com/owncloud/android/ui/activity/PassCodeActivity.java
#	src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java
#	src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.java
#	src/main/java/com/owncloud/android/ui/activity/UserInfoActivity.java
#	src/main/java/com/owncloud/android/ui/adapter/LinkShareViewHolder.java
#	src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java
#	src/main/java/com/owncloud/android/ui/adapter/ShareViewHolder.java
#	src/main/java/com/owncloud/android/ui/asynctasks/CopyAndUploadContentUrisTask.java
#	src/main/java/com/owncloud/android/ui/asynctasks/RetrieveStatusAsyncTask.java
#	src/main/java/com/owncloud/android/ui/dialog/ChooseRichDocumentsTemplateDialogFragment.java
#	src/main/java/com/owncloud/android/ui/dialog/ConflictsResolveDialog.java
#	src/main/java/com/owncloud/android/ui/dialog/SetupEncryptionDialogFragment.java
#	src/main/java/com/owncloud/android/ui/dialog/SharePasswordDialogFragment.java
#	src/main/java/com/owncloud/android/ui/fragment/FileDetailActivitiesFragment.java
#	src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java
#	src/main/java/com/owncloud/android/ui/fragment/FileDetailSharingFragment.java
#	src/main/java/com/owncloud/android/ui/fragment/OCFileListBottomSheetDialog.java
#	src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java
#	src/main/java/com/owncloud/android/ui/fragment/contactsbackup/ContactListFragment.java
#	src/main/java/com/owncloud/android/ui/fragment/contactsbackup/ContactsBackupFragment.java
#	src/main/java/com/owncloud/android/ui/helpers/FileOperationsHelper.java
#	src/main/java/com/owncloud/android/ui/helpers/UriUploader.java
#	src/main/java/com/owncloud/android/ui/preview/PreviewTextStringFragment.java
#	src/main/java/com/owncloud/android/utils/BitmapUtils.java
#	src/main/java/com/owncloud/android/utils/ThemeUtils.java
#	src/main/res/drawable/nextcloud_logo.xml
#	src/main/res/layout-land/account_setup.xml
#	src/main/res/layout/account_setup.xml
#	src/main/res/layout/activity_list_item.xml
#	src/main/res/layout/dialog_set_status.xml
#	src/main/res/layout/drawer_header.xml
#	src/main/res/layout/file_details_activities_fragment.xml
#	src/main/res/layout/file_details_fragment.xml
#	src/main/res/layout/file_details_share_group.xml
#	src/main/res/layout/file_details_share_internal_share_link.xml
#	src/main/res/layout/file_details_share_link_share_item.xml
#	src/main/res/layout/file_details_share_share_item.xml
#	src/main/res/layout/file_details_sharing_fragment.xml
#	src/main/res/layout/passcodelock.xml
#	src/main/res/layout/password_dialog.xml
#	src/main/res/values-b+en+001/strings.xml
#	src/main/res/values-cs-rCZ/strings.xml
#	src/main/res/values-da/strings.xml
#	src/main/res/values-de/strings.xml
#	src/main/res/values-es-rAR/strings.xml
#	src/main/res/values-es/strings.xml
#	src/main/res/values-eu/strings.xml
#	src/main/res/values-fi-rFI/strings.xml
#	src/main/res/values-gl/strings.xml
#	src/main/res/values-it/strings.xml
#	src/main/res/values-lt-rLT/strings.xml
#	src/main/res/values-nl/strings.xml
#	src/main/res/values-pl/strings.xml
#	src/main/res/values-pt-rBR/strings.xml
#	src/main/res/values-ru/strings.xml
#	src/main/res/values-sl/strings.xml
#	src/main/res/values-tk/strings.xml
#	src/main/res/values-tr/strings.xml
#	src/main/res/values-vi/strings.xml
#	src/main/res/values-zh-rCN/strings.xml
#	src/main/res/values-zh-rHK/strings.xml
#	src/main/res/values-zh-rTW/strings.xml
#	src/main/res/values/dims.xml
#	src/main/res/values/strings.xml
#	src/main/res/values/styles.xml
#	src/test/java/com/nextcloud/client/network/ConnectivityServiceTest.kt
@rthery
Copy link

rthery commented Mar 28, 2021

(Hello, sneaking in since I'm very interested by this feature)

Regarding the size issue, the best solution is to build opencv with only the required modules by the app, and avoid bringing the whole library which is indeed enormous (for mobile). Of course splitting the APK per architecture would be nice as well if it's not done yet.

If you need help, let me know, I'll try to find some time for it.

@thelittlefireman
Copy link
Contributor Author

thelittlefireman commented Mar 28, 2021

@AndyScherzinger @tobiasKaminsky
ok guys, i've made a completely new PR. I've switch to https://github.com/meganz/AndroidDocumentScanner. The apk size is now about 36 Mb, is it better ?
I used the default activity of this library. We are loosing a feature : invert color.

#8217

and sorry for the mess rebase in this current PR x)

@tobiasKaminsky
Copy link
Member

Regarding size: QuickBirdEng/opencv-android#42 (comment)

@thelittlefireman
Copy link
Contributor Author

Regarding size: quickbirdstudios/opencv-android#42 (comment)

Already done; see my previous message :) ==> size was about 86Mb

I try to set ndk{ abifilter } i will let you know.
Moreover, we currently use OpenCv Android version 3.4.X for compatibility reason with AndroidDocumentScanner. But
OpenCv 3.4.X size is about 76~86Mb and 4.3.X ~52Mb
https://mvnrepository.com/artifact/com.quickbirdstudios/opencv/4.3.0

I've open an issue , keep an eye on it : mayuce/AndroidDocumentScanner#30

@tobiasKaminsky tobiasKaminsky mentioned this pull request Nov 11, 2021
4 tasks
@AlvaroBrey
Copy link
Member

Superseded by #9717

@AlvaroBrey AlvaroBrey closed this Mar 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Integrated document scanning Add Scanning Support