# TokenStore

Artifact: [androidx.browser:browser](https://developer.android.com/jetpack/androidx/releases/browser) [View Source](https://cs.android.com/search?q=file:androidx/browser/trusted/TokenStore.java+class:androidx.browser.trusted.TokenStore) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

*** ** * ** ***


```
interface TokenStore
```

<br />

*** ** * ** ***

Users should implement this interface to persist the given `https://developer.android.com/reference/kotlin/androidx/browser/trusted/Token` (across app restarts). Once implemented, they should override `https://developer.android.com/reference/kotlin/androidx/browser/trusted/TrustedWebActivityService#getTokenStore()` to return an instance. Finally, they should execute the following code themselves to set the verified provider:

```kotlin
TokenStore tokenStore  = ... // Instantiate the implemented class.
String packageName = ... // Package name of the Trusted Web Activity provider.

tokenStore.store(Token.create(packageName, getPackageManager());
```
There is only a single `https://developer.android.com/reference/kotlin/androidx/browser/trusted/Token` stored at a time. Note that `https://developer.android.com/reference/kotlin/androidx/browser/trusted/TokenStore#load()` will be called by `https://developer.android.com/reference/kotlin/androidx/browser/trusted/TrustedWebActivityService` on a binder thread. Whereas `https://developer.android.com/reference/kotlin/androidx/browser/trusted/TokenStore#store(androidx.browser.trusted.Token)` can be called by the user on whichever thread they like.

## Summary

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/browser/trusted/Token?` | `@https://developer.android.com/reference/kotlin/androidx/annotation/BinderThread https://developer.android.com/reference/kotlin/androidx/browser/trusted/TokenStore#load()()` This method returns the `https://developer.android.com/reference/kotlin/androidx/browser/trusted/Token` previously persisted by a call to `https://developer.android.com/reference/kotlin/androidx/browser/trusted/TokenStore#store(androidx.browser.trusted.Token)`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/annotation/WorkerThread https://developer.android.com/reference/kotlin/androidx/browser/trusted/TokenStore#store(androidx.browser.trusted.Token)(token: https://developer.android.com/reference/kotlin/androidx/browser/trusted/Token?)` This method should persist the given `https://developer.android.com/reference/kotlin/androidx/browser/trusted/Token`. |

## Public functions

### load

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
@BinderThread
fun load(): Token?
```

This method returns the `https://developer.android.com/reference/kotlin/androidx/browser/trusted/Token` previously persisted by a call to `https://developer.android.com/reference/kotlin/androidx/browser/trusted/TokenStore#store(androidx.browser.trusted.Token)`.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/browser/trusted/Token?` | The previously persisted `https://developer.android.com/reference/kotlin/androidx/browser/trusted/Token`, or `null` if none exist. This method will be called on a binder thread by `https://developer.android.com/reference/kotlin/androidx/browser/trusted/TrustedWebActivityService`. |

### store

Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/browser#1.2.0)

```
@WorkerThread
fun store(token: Token?): Unit
```

This method should persist the given `https://developer.android.com/reference/kotlin/androidx/browser/trusted/Token`. Subsequent calls will overwrite the previously given `https://developer.android.com/reference/kotlin/androidx/browser/trusted/Token`.

| Parameters |
|---|---|
| `token: https://developer.android.com/reference/kotlin/androidx/browser/trusted/Token?` | The token to persist. It may be `null` to clear the storage. |