## Package Index

- [com.usebutton.sdk](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/package-summary.html)
- [com.usebutton.sdk.action](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/action/package-summary.html)
- [com.usebutton.sdk.autofill](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/autofill/package-summary.html)
- [com.usebutton.sdk.boost](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/boost/package-summary.html)
- [com.usebutton.sdk.browser](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/browser/package-summary.html)
- [com.usebutton.sdk.configuration](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/configuration/package-summary.html)
- [com.usebutton.sdk.context](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/context/package-summary.html)
- [com.usebutton.sdk.debug](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/debug/package-summary.html)
- [com.usebutton.sdk.exception](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/exception/package-summary.html)
- [com.usebutton.sdk.impression](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/impression/package-summary.html)
- [com.usebutton.sdk.models](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/models/package-summary.html)
- [com.usebutton.sdk.personalization](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/personalization/package-summary.html)
- [com.usebutton.sdk.purchasepath](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/package-summary.html)
- [com.usebutton.sdk.user](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/user/package-summary.html)

## Interfaces

- [BrowserInterface](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserInterface.html)
- [BrowserInterface.Footer](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserInterface.Footer.html)
- [BrowserInterface.Header](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserInterface.Header.html)
- [BrowserPage](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserPage.html)
- [BrowserPage.DomResultListener](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserPage.DomResultListener.html)
- [CardList](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/CardList.html)
- [CheckoutPage](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/CheckoutPage.html)
- [ProductPage](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/ProductPage.html)
- [PurchasePage](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/PurchasePage.html)
- [PurchasePath.Listener](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/PurchasePath.Listener.html)
- [PurchasePathExtension](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/PurchasePathExtension.html)
- [PurchasePathInterface](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/PurchasePathInterface.html)
- [PurchasePathListener](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/PurchasePathListener.html)

## Classes

- [BrowserChromeClient](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserChromeClient.html)
- [CallToAction](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/CallToAction.html)
- [Card](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/Card.html)
- [Commission](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/Commission.html)
- [Product](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/Product.html)
- [PurchasePath](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/PurchasePath.html)
- [PurchasePathRequest](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/PurchasePathRequest.html)
- [TextCard](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/TextCard.html)
- [TextCard.Builder](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/TextCard.Builder.html)

## Enums

- [Commission.CommissionType](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/Commission.CommissionType.html)

## BrowserInterface

Interface containing methods that a publisher can use to customize the embedded browser experience.

### Class Overview

| Nested Classes |  |
| --- | --- |
| Interface | [BrowserInterface.Footer](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserInterface.Footer.html) | Footer chrome for the embedded browser. |
| Interface | [BrowserInterface.Header](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserInterface.Header.html) | Header chrome and title bar for the embedded browser. |

### Constants

| Constants |  |
| --- | --- |
| int | [INVALID_COLOR](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserInterface.html#INVALID_COLOR) | If the browser is not currently available, INVALID_COLOR will be returned to indicate absence of a color. |

### Public Methods

#### boolean canShowCards()
Indicates whether or not the top card can be animated.

##### Returns
- true if cards can be animated, false otherwise.

#### [CardList](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/CardList.html) getCardList()
An object belonging to the browser interface that maintains the list of cards currently in the card system.

##### Returns
- `CardList` The current list of cards in the system, or `null` if the browser is not currently available.

#### [BrowserInterface.Footer](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserInterface.Footer.html) getFooter()
Returns a reference to the browser footer.

##### Returns
- The browser footer.

#### [BrowserInterface.Header](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserInterface.Header.html) getHeader()
Returns a reference to the browser header.

##### Returns
- The browser header.

#### RelativeLayout getViewContainer()
A transparent view on top of the embedded browser content for displaying arbitrary views.

```java
ViewGroup viewContainer = getViewContainer();
Context context = viewContainer.getContext();
LayoutInflater.from(context).inflate(R.layout.my_custom_view, viewContainer);
```

The custom view must be inflated with the view container's context to avoid any memory leaks.

##### Returns
- The browser view container overlay.

#### void hideTopCard()
Hides the top card in the card list `CardList`. Call the method `canShowCards()` before attempting to call this method.

#### void navigateToUrl(String url)
Navigates the browser to a new URL.
Use this API to navigate the browser to a new URL of the same domain. A URL with a different domain should be opened by fetching and starting a new Purchase Path.

##### Parameters
- url: The URL to be loaded in the browser.

#### void reloadCards()
Reloads all cards in the `CardList` and re-renders any visible cards.

Call this method after modifying cards in the `CardList` to update the view.

#### void setBrowserChromeClient([BrowserChromeClient](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserChromeClient.html) client)
Set the `BrowserChromeClient`.

#### void showTopCard()
Shows the top card in the `CardList` over the browser content. Call the method `canShowCards()` before attempting to call this method.
