CustomTabsCallback

class CustomTabsCallback


A callback class for custom tabs client to get messages regarding events in their custom tabs. In the implementation, all callbacks are sent to the UI thread for the client.

Summary

Constants

const Int

The activity is being displayed as a bottom-sheet at its initial height.

const Int

The activity is being displayed as a bottom-sheet at its maximized height.

const Int

The activity is being displayed over the whole window.

const Int

The activity is being displayed as a side-sheet at its initial width.

const Int

The activity is being displayed as a side-sheet at its maximized width.

const Int

The activity's layout state is unknown.

const Int

Sent when loading was aborted by a user action before it finishes like clicking on a link or refreshing the page.

const Int

Sent when the tab couldn't finish loading due to a failure.

const Int

Sent when the tab has finished loading a page.

const Int

Sent when the tab has started loading a page.

const Int

Sent when the tab becomes hidden.

const Int

Sent when the tab becomes visible.

Public constructors

Public functions

Unit
extraCallback(callbackName: String, args: Bundle?)

Unsupported callbacks that may be provided by the implementation.

Bundle?
extraCallbackWithResult(callbackName: String, args: Bundle?)

The same as extraCallback, except that this method allows the custom tabs provider to return a result.

Unit
onActivityLayout(
    left: @Dimension(unit = 1) Int,
    top: @Dimension(unit = 1) Int,
    right: @Dimension(unit = 1) Int,
    bottom: @Dimension(unit = 1) Int,
    state: Int,
    extras: Bundle
)

Called when the Partial Custom Tab's layout has changed.

Unit
onActivityResized(
    height: @Dimension(unit = 1) Int,
    width: @Dimension(unit = 1) Int,
    extras: Bundle
)

Called when the tab is resized.

Unit

Called when CustomTabsSession has requested a postMessage channel through requestPostMessageChannel and the channel is ready for sending and receiving messages on both ends.

Unit

Called when the Custom Tab is minimized by the user such that it covers a small part of the screen.

Unit
onNavigationEvent(navigationEvent: Int, extras: Bundle?)

To be called when a navigation event happens.

Unit
onPostMessage(message: String, extras: Bundle?)

Called when a tab controlled by this CustomTabsSession has sent a postMessage.

Unit
onRelationshipValidationResult(
    @CustomTabsService.Relation relation: Int,
    requestedOrigin: Uri,
    result: Boolean,
    extras: Bundle?
)

Called when a relationship validation result is available.

Unit

Called when the Custom Tab is unminimized by the user such that it returns back to its original state.

Unit

Called when the browser process finished warming up initiated by warmup.

Constants

ACTIVITY_LAYOUT_STATE_BOTTOM_SHEET

Added in 1.8.0
const val ACTIVITY_LAYOUT_STATE_BOTTOM_SHEET = 1: Int

The activity is being displayed as a bottom-sheet at its initial height.

ACTIVITY_LAYOUT_STATE_BOTTOM_SHEET_MAXIMIZED

Added in 1.8.0
const val ACTIVITY_LAYOUT_STATE_BOTTOM_SHEET_MAXIMIZED = 2: Int

The activity is being displayed as a bottom-sheet at its maximized height.

ACTIVITY_LAYOUT_STATE_FULL_SCREEN

Added in 1.8.0
const val ACTIVITY_LAYOUT_STATE_FULL_SCREEN = 5: Int

The activity is being displayed over the whole window. This will be the case when a Partial Custom Tab bottom sheet or side sheet cannot be displayed due to minimum width restrictions (see EXTRA_INITIAL_ACTIVITY_WIDTH_PX) or browser limitations.

ACTIVITY_LAYOUT_STATE_SIDE_SHEET

Added in 1.8.0
const val ACTIVITY_LAYOUT_STATE_SIDE_SHEET = 3: Int

The activity is being displayed as a side-sheet at its initial width.

ACTIVITY_LAYOUT_STATE_SIDE_SHEET_MAXIMIZED

Added in 1.8.0
const val ACTIVITY_LAYOUT_STATE_SIDE_SHEET_MAXIMIZED = 4: Int

The activity is being displayed as a side-sheet at its maximized width.

ACTIVITY_LAYOUT_STATE_UNKNOWN

Added in 1.8.0
const val ACTIVITY_LAYOUT_STATE_UNKNOWN = 0: Int

The activity's layout state is unknown. This value communicates an error state, the fact that the state cannot be determined, or that the browser implementation does not provide support for this feature.

Added in 1.2.0
const val NAVIGATION_ABORTED = 4: Int

Sent when loading was aborted by a user action before it finishes like clicking on a link or refreshing the page.

Added in 1.2.0
const val NAVIGATION_FAILED = 3: Int

Sent when the tab couldn't finish loading due to a failure.

Added in 1.2.0
const val NAVIGATION_FINISHED = 2: Int

Sent when the tab has finished loading a page.

Added in 1.2.0
const val NAVIGATION_STARTED = 1: Int

Sent when the tab has started loading a page.

TAB_HIDDEN

Added in 1.2.0
const val TAB_HIDDEN = 6: Int

Sent when the tab becomes hidden.

TAB_SHOWN

Added in 1.2.0
const val TAB_SHOWN = 5: Int

Sent when the tab becomes visible.

Public constructors

CustomTabsCallback

Added in 1.2.0
CustomTabsCallback()

Public functions

extraCallback

Added in 1.2.0
fun extraCallback(callbackName: String, args: Bundle?): Unit

Unsupported callbacks that may be provided by the implementation.

Note:Clients should never rely on this callback to be called and/or to have a defined behavior, as it is entirely implementation-defined and not supported.

This can be used by implementations to add extra callbacks, for testing or experimental purposes.

Parameters
callbackName: String

Name of the extra callback.

args: Bundle?

Arguments for the callback

extraCallbackWithResult

Added in 1.2.0
fun extraCallbackWithResult(callbackName: String, args: Bundle?): Bundle?

The same as extraCallback, except that this method allows the custom tabs provider to return a result. A return value of null will be used to signify that the client does not know how to handle the callback. As optional best practices, KEY_SUCCESS could be use to identify that callback was *successfully* handled. For example, when returning a message with result:

    Bundle result = new Bundle();
    result.putString("message", message);
    if (success)
        result.putBoolean(CustomTabsService#KEY_SUCCESS, true);
    return result;
The caller side:
    Bundle result = extraCallbackWithResult(callbackName, args);
    if (result.getBoolean(CustomTabsService#KEY_SUCCESS)) {
        // callback was successfully handled
    }

onActivityLayout

Added in 1.8.0
fun onActivityLayout(
    left: @Dimension(unit = 1) Int,
    top: @Dimension(unit = 1) Int,
    right: @Dimension(unit = 1) Int,
    bottom: @Dimension(unit = 1) Int,
    state: Int,
    extras: Bundle
): Unit

Called when the Partial Custom Tab's layout has changed. This callback is not applicable to Custom Tabs that are not launched with EXTRA_INITIAL_ACTIVITY_WIDTH_PX or EXTRA_INITIAL_ACTIVITY_HEIGHT_PX set to their intent.

Parameters
left: @Dimension(unit = 1) Int

The new left coordinate of the Partial Custom Tab's window in pixels.

top: @Dimension(unit = 1) Int

The new top coordinate of the Partial Custom Tab's window in pixels.

right: @Dimension(unit = 1) Int

The new right coordinate of the Partial Custom Tab's window in pixels.

bottom: @Dimension(unit = 1) Int

The new bottom coordinate of the Partial Custom Tab's window in pixels.

state: Int

The type of Partial Custom Tab that is currently displayed on the screen.

extras: Bundle

Reserved for future use.

onActivityResized

Added in 1.5.0
fun onActivityResized(
    height: @Dimension(unit = 1) Int,
    width: @Dimension(unit = 1) Int,
    extras: Bundle
): Unit

Called when the tab is resized.

Parameters
height: @Dimension(unit = 1) Int

The updated height in px.

width: @Dimension(unit = 1) Int

The updated width in px.

extras: Bundle

Reserved for future use.

onMessageChannelReady

Added in 1.2.0
fun onMessageChannelReady(extras: Bundle?): Unit

Called when CustomTabsSession has requested a postMessage channel through requestPostMessageChannel and the channel is ready for sending and receiving messages on both ends.

Parameters
extras: Bundle?

Reserved for future use.

onMinimized

Added in 1.8.0
@ExperimentalMinimizationCallback
fun onMinimized(extras: Bundle): Unit

Called when the Custom Tab is minimized by the user such that it covers a small part of the screen.

Parameters
extras: Bundle

Reserved for future use.

onNavigationEvent

Added in 1.2.0
fun onNavigationEvent(navigationEvent: Int, extras: Bundle?): Unit

To be called when a navigation event happens.

Parameters
navigationEvent: Int

The code corresponding to the navigation event.

extras: Bundle?

Reserved for future use.

onPostMessage

Added in 1.2.0
fun onPostMessage(message: String, extras: Bundle?): Unit

Called when a tab controlled by this CustomTabsSession has sent a postMessage. If postMessage() is called from a single thread, then the messages will be posted in the same order. When received on the client side, it is the client's responsibility to preserve the ordering further.

Parameters
message: String

The message sent.

extras: Bundle?

Reserved for future use.

onRelationshipValidationResult

Added in 1.2.0
fun onRelationshipValidationResult(
    @CustomTabsService.Relation relation: Int,
    requestedOrigin: Uri,
    result: Boolean,
    extras: Bundle?
): Unit

Called when a relationship validation result is available.

Parameters
@CustomTabsService.Relation relation: Int

Relation for which the result is available. Value previously passed to validateRelationship. Must be one of the CustomTabsService#RELATION_* constants.

requestedOrigin: Uri

Origin requested. Value previously passed to validateRelationship.

result: Boolean

Whether the relation was validated.

extras: Bundle?

Reserved for future use.

onUnminimized

Added in 1.8.0
@ExperimentalMinimizationCallback
fun onUnminimized(extras: Bundle): Unit

Called when the Custom Tab is unminimized by the user such that it returns back to its original state.

Parameters
extras: Bundle

Reserved for future use.

onWarmupCompleted

Added in 1.8.0
fun onWarmupCompleted(extras: Bundle): Unit

Called when the browser process finished warming up initiated by warmup.

Parameters
extras: Bundle

Reserved for future use.