Package 

Interface IncomingEngagementRequest

  • All Implemented Interfaces:
    com.glia.androidsdk.EngagementRequest

    
    public interface IncomingEngagementRequest
     implements EngagementRequest
                        

    Provides ability to accept or decline EngagementRequest initiated by Operator.

    EngagementRequest automatically times out if it is not accepted or declined by the Visitor within specified time frame.

    If the request was successfully accepted then a respective ENGAGEMENT event is triggered with an instance of Engagement.

    You can subscribe to on with the OUTCOME event to get notified of Engagement request result.

    Example - accept or decline Engagement Request based on user action:

    Glia.omnibrowse.on(Omnibrowse.Events.ENGAGEMENT_REQUEST, engagementRequest -> {
        ConsumeronResult = error -> {
            if (error != null) {
                // Handle error
            }
        };
    
        this.runOnUiThread(() -> {
            showEngagementRequestDialogToVisitor(() -> { // onAccept
                engagementRequest.accept(onResult);
            }, () -> { // onDecline
                engagementRequest.decline(onResult);
            });
        });
    });
    • Method Detail

      • accept

         abstract void accept(VisitorContext visitorContext, Consumer<GliaException> onResult)

        Accepts this incoming Engagement Request.

        Parameters:
        visitorContext - Content that is displayed to the Operator during the Engagement.You may use it to display information that would give the Operator an additional contextabout the Visitor or any other content that might be helpful.
        onResult - Called with {@code null} on success or with GliaException if the processfails for any reason.
      • decline

         abstract void decline(Consumer<GliaException> onResult)

        Declines this incoming Engagement Request.

        Parameters:
        onResult - Called with {@code null} on success or with GliaException if the processfails for any reason.
      • getId

         abstract String getId()

        Returns Engagement Request unique ID

      • on

         abstract <T> void on(EngagementRequest.EngagementRequestEvent<T> event, Consumer<T> listener)

        Registers event listeners for Engagement Request.

        If a listener is added while the Engagement Request is processing an event,it is not triggered with the current event.

        If multiple identical listeners are registered on the same event typethe duplicate instances are discarded. They do not cause the listenerto be called twice and do not need to be removed with the off method.

        Parameters:
        event - One of Events
        listener - Event listener to register
      • on

         abstract void on(EngagementRequest.EngagementRequestEvent<out Object> event, Runnable listener)

        Registers event listeners for Engagement Request.

        If a listener is added while the Engagement Request is processing an event,it is not triggered with the current event.

        If multiple identical listeners are registered on the same event typethe duplicate instances are discarded. They do not cause the listenerto be called twice and do not need to be removed with the off method.

        Compared to on this methoddoes not require the listener to consumer the payload.This is useful when payload is of type Void.

        Parameters:
        event - One of Events
        listener - Event listener to register
      • off

         abstract <T> void off(EngagementRequest.EngagementRequestEvent<T> event, Consumer<T> listener)

        Removes event listeners from the Engagement Request.

        If an event listener is removed while the Engagement Request is processing an event,it is not triggered with the current event.

        Calling {@code off} with arguments which do not identify any currently registeredlistener has no effect.

        Parameters:
        event - One of Events
        listener - Event listener to remove
      • off

         abstract void off(EngagementRequest.EngagementRequestEvent<out Object> event, Runnable listener)

        Removes event listeners from the Engagement Request.

        If an event listener is removed while the Engagement Request is processing an event,it is not triggered with the current event.

        Calling {@code off} with arguments which do not identify any currently registeredlistener has no effect.

        Parameters:
        event - One of Events
        listener - Event listener to remove