Added support for extracting eps e-payment urls from QR Codes. When using the Screen API the url
is returned as a GiniVisionSpecificExtraction in CameraActivity's result Bundle with
the "epsPaymentQRCodeUrl" key. When using the Component API the url is returned in the
CameraFragmentListener#onExtractionsAvailable() method also as a
GiniVisionSpecificExtraction in a map with the same "epsPaymentQRCodeUrl" key.
The generated anonymous user credentials can be deleted when using the networking plugins by
invoking the GiniVisionNetworkApi#deleteGiniUserCredentials() method on your instance of the
GiniVisionNetworkApi. Consult the
Gini Vision Network Library section for
more information about the networking plugin.
Added back buttons to every Activity when using the Screen API. You can revert to having back
buttons only in the Review and Analysis Screens by calling .setBackButtonsEnabled(false) when
creating a new GiniVision instance.
A dialog is presented to the user when the host app is set as default for opening PDFs or images.
The user is informed on how to revert the app defaults. The dialog is only shown
when a PDF or image has been opened from another app. See the
customization guide for adapting the texts.
The help screen for opening documents from another app has been extended with information about
app defaults. See the customization guide for
adapting the texts.
When using the Component API with multi-page the MultiPageReviewFragment does not finish its
hosting Activity anymore when the user presses the add page button or when the user deletes every
page. Instead the MultiPageReviewFragmentListener is used to notify the host Activity about
When using the gini-vision-network-lib default networking implementation you may set document
metadata to be uploaded with every document. This allows additional information to be associated
with the created documents. For example in order to know from which branch’s app the document was
uploaded from you may add the “Bankleitzahl” in the metadata as the branchId.
Improved networking integration by introducing the GiniVisionNetworkService and
GiniVisionNetworkApi interfaces. Desired implementations are set using the GiniVision
builder. These are optional and are required only for using the multi-page scanning feature.
Easier integration with the new default networking implementation gini-vision-network-lib. It
offers implementation of the networking interfaces and by wiring it up with the GiniVision
builder you can start extracting invoice data without the need to implement your own networking
layer to communicate with the Gini API.
Previous methods used to request networking calls are now deprecated and are only invoked when
there is no GiniVisionNetworkService implementation available. You may continue to use the
deprecated methods if you don’t configure a GiniVisionNetworkService. We are not planning to
remove the deprecated methods anytime soon.
Camera Screen UI design was updated and the preview corners are now drawn programmatically. The color of the corners can be customised with the gv_camera_preview_corners color resource. If you customised the corners by overriding the gv_camera_preview_corners.png you can remove these images and instead override the color resource.
Analysis Screen UI design was updated and in the Screen API the title was removed from the ActionBar. You should instead override the gv_analysis_activity_indicator_message string resource which is shown below the activity indicator.
Added support for tablets. For details you may consult our guide for supporting tablets. Please note that allowing tablets that do not meet our minimum hardware recommendations to use the GVL could lead to lower extraction quality. We recommend implementing hardware checks to avoid this. Many tablets with at least 8MP cameras don’t have an LED flash (like the popular Samsung Galaxy Tab S2) therefore we don’t require flash for tablets. For this reason the extraction quality on those tablets might be lower compared to smartphones.
Fixed image meta information handling bug related to ascii tags containing values with null bytes.
Removed the 4:3 aspect ratio requirement for photos. The default camera aspect ratio will be used from now on. An 8MP minimum resolution is still required.
Removed the continuous-focus mode requirement. Only auto-focus is required.
If no continuous-focus mode is available then an auto-focus run is triggered when the user activates the capture button.
Trigger button is aligned to the bottom of the preview area.
The back button in the ReviewActivity and AnalysisActivity (in the navigation bar and in the ActionBar) leads back to the previous Activity instead of closing the library. The previous behavior can be requested by setting the CameraActivity#EXTRA_IN_BACK_BUTTON_SHOULD_CLOSE_LIBRARY to true.
Fixed an issue regarding ReviewActivity and AnalysisActivity restart in the Screen API after the app had been killed while in the background.
Using the Screen API a picture can be taken with the CameraActivity. It can be reviewed with the ReviewActvitiy with the possibility to start document analysis. If the document analysis didn’t complete or the document was rotated the document analysis can be continued or started again in the AnalysisActivity.
Using the Component API a picture can be taken with one of the Camera Fragments. Showing the picture with one of the Review Fragments allows review and rotation of the picture. You could also start the document analysis when showing one of the Review Fragments. If the document analysis didn’t complete or the document was rotated you should show one of the Analysis Fragments and continue or restart the document analysis.
Consult the example apps for details on how to use the Gini Vision Library.
Logging with SLF4J.
Checking if the device meets the Gini Vision Library requirements with GiniVisionRequirements.
Stub version of the completely rewritten Gini Vision Library.
Provides two integration options: 1) A Screen API that can be easily implemented using Activities. 2) A more complex but at the same time more flexible Component API using Fragments.
For the communication between your app and the Library use the CameraActivity, ReviewActivity and AnalysisActivity for the Screen API or implement the listener methods for the Fragments when using the Component API.
This stub release implements all calls for the future 2.0.0 release. It allows the user to capture a simulated document and review it. Also screens for onboarding and further analysis are provided. For the final release the UI will be further improved and minor changes are made in the implementation if really necessary.