GiniHealth

public final class GiniHealth

GiniHealth is the main class for interacting with the Gini Health SDK. It provides a way to submit a document for reviewing its extracted payment details and let's the user make the payment with one of the payment providers.

The recommended flow is:

  1. Call checkRequirements to make sure that the flow can be completed.

  2. Call one of the overloads of setDocumentForReview, to submit a document.

  3. Display ReviewFragment.

setDocumentForReview can be called with:

  1. Document instance in the case the upload was performed with Gini Pay Api lib (GiniHealthAPI).

  2. Document id, this will probably be the case when there's backend integration between the Health SDK and the Gini Health API. This method will make a network call to obtain a Document instance so the other one is preferred if you have the Document instance.

documentFlow, paymentFlow, openBankState are used by the ReviewFragment to observe their state, but they are public so that they can be observed anywhere, the main purpose for this is to observe errors.

Constructors

Link copied to clipboard
public GiniHealth GiniHealth(GiniHealthAPI giniHealthAPI)

Types

Link copied to clipboard
public class Companion
Link copied to clipboard
public class PaymentState

Functions

Link copied to clipboard
public final Boolean checkIfDocumentIsPayable(String documentId)

Checks whether the document is payable by fetching the document and its extractions from the Gini Pay API and verifying that the extractions contain an IBAN.

Link copied to clipboard
@Deprecated(message = "Please us the coroutine alternative which does a more comprehensive check.", replaceWith = @ReplaceWith(imports = {}, expression = "checkRequirementsAsync(packageManager)"))
public final List<Requirement> checkRequirements(PackageManager packageManager)

Checks the required conditions needed to finish the payment flow to avoid unnecessary document upload. See Requirement for possible requirements.

Link copied to clipboard
public final List<Requirement> checkRequirementsAsync(PackageManager packageManager)

Checks the required conditions needed to finish the payment flow to avoid unnecessary document upload. See Requirement for possible requirements.

Link copied to clipboard
public final StateFlow<ResultWrapper<Document>> getDocumentFlow()

A flow for getting the Document set for review setDocumentForReview.

Link copied to clipboard
Link copied to clipboard
public final StateFlow<GiniHealth.PaymentState> getOpenBankState()

A flow that exposes the state of opening the bank. You can collect this flow to get information about the errors of this action.

Link copied to clipboard
public final StateFlow<ResultWrapper<PaymentDetails>> getPaymentFlow()

A flow for getting extracted PaymentDetails for the document set for review (see setDocumentForReview).

Link copied to clipboard
public final Unit setDocumentForReview(Document document)
public final Unit setDocumentForReview(String documentId, PaymentDetails paymentDetails)

Sets a Document for review. Results can be collected from documentFlow and paymentFlow.

Link copied to clipboard
public final Unit setSavedStateRegistryOwner(SavedStateRegistryOwner registryOwner, CoroutineScope retryScope)

Sets a lifecycle observer to handle state restoration after the system kills the app.

Properties

Link copied to clipboard
private final StateFlow<ResultWrapper<Document>> documentFlow

A flow for getting the Document set for review setDocumentForReview.

Link copied to clipboard
Link copied to clipboard
private final StateFlow<GiniHealth.PaymentState> openBankState

A flow that exposes the state of opening the bank. You can collect this flow to get information about the errors of this action.

Link copied to clipboard
private final StateFlow<ResultWrapper<PaymentDetails>> paymentFlow

A flow for getting extracted PaymentDetails for the document set for review (see setDocumentForReview).