# TestLocationButtonProvider

Artifact: [androidx.core.locationbutton:locationbutton-testing](https://developer.android.com/jetpack/androidx/releases/core-locationbutton) [View Source](https://cs.android.com/search?q=file:androidx/core/locationbutton/testing/TestLocationButtonProvider.kt+class:androidx.core.locationbutton.testing.TestLocationButtonProvider) Added in [1.0.0-alpha01](https://developer.android.com/jetpack/androidx/releases/core-locationbutton#1.0.0-alpha01)

*** ** * ** ***

<br />

```
public class TestLocationButtonProvider implements LocationButtonProvider
```

<br />

*** ** * ** ***

A test implementation of `LocationButtonProvider` which provides a fake of the LocationButton and provides additional methods to allow tests to fake user interactions so that the client side flows can be tested.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/core/locationbutton/testing/TestLocationButtonProvider#TestLocationButtonProvider(android.content.Context)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context)` |

| ### Public methods |
|---|---|
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/locationbutton/testing/TestLocationButtonProvider` | `https://developer.android.com/reference/androidx/core/locationbutton/testing/TestLocationButtonProvider#create()()` Construct a `https://developer.android.com/reference/androidx/core/locationbutton/testing/TestLocationButtonProvider` that runs a fake location button session. |
| `final void` | `https://developer.android.com/reference/androidx/core/locationbutton/testing/TestLocationButtonProvider#notifyPermissionResult(android.app.permissionui.LocationButtonSession,kotlin.Boolean)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/app/permissionui/LocationButtonSession.html session, boolean isGranted )` |
| `void` | `https://developer.android.com/reference/androidx/core/locationbutton/testing/TestLocationButtonProvider#openSession(android.app.Activity,android.os.IBinder,kotlin.Int,android.app.permissionui.LocationButtonRequest,java.util.concurrent.Executor,android.app.permissionui.LocationButtonClient)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/app/Activity.html activity, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/os/IBinder.html hostToken, int displayId, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/app/permissionui/LocationButtonRequest.html request, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/concurrent/Executor.html executor, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/app/permissionui/LocationButtonClient.html client )` |

| ### Protected methods |
|---|---|
| `void` | `https://developer.android.com/reference/androidx/core/locationbutton/testing/TestLocationButtonProvider#onSessionRequestReceived(android.app.permissionui.LocationButtonRequest,android.app.permissionui.LocationButtonSession)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/app/permissionui/LocationButtonRequest.html request, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/app/permissionui/LocationButtonSession.html session )` |

## Public constructors

### TestLocationButtonProvider

Added in [1.0.0-alpha01](https://developer.android.com/jetpack/androidx/releases/core-locationbutton#1.0.0-alpha01)

```
public TestLocationButtonProvider(@NonNull Context context)
```

## Public methods

### create

Added in [1.0.0-alpha01](https://developer.android.com/jetpack/androidx/releases/core-locationbutton#1.0.0-alpha01)

```
public static final @NonNull TestLocationButtonProvider create()
```

Construct a `https://developer.android.com/reference/androidx/core/locationbutton/testing/TestLocationButtonProvider` that runs a fake location button session.

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/locationbutton/testing/TestLocationButtonProvider` | A test only implementation of `LocationButtonProvider`. |

### notifyPermissionResult

Added in [1.0.0-alpha01](https://developer.android.com/jetpack/androidx/releases/core-locationbutton#1.0.0-alpha01)

```
public final void notifyPermissionResult(
    @NonNull LocationButtonSession session,
    boolean isGranted
)
```

### openSession

Added in [1.0.0-alpha01](https://developer.android.com/jetpack/androidx/releases/core-locationbutton#1.0.0-alpha01)

```
public void openSession(
    @NonNull Activity activity,
    @NonNull IBinder hostToken,
    int displayId,
    @NonNull LocationButtonRequest request,
    @NonNull Executor executor,
    @NonNull LocationButtonClient client
)
```

## Protected methods

### onSessionRequestReceived

Added in [1.0.0-alpha01](https://developer.android.com/jetpack/androidx/releases/core-locationbutton#1.0.0-alpha01)

```
protected void onSessionRequestReceived(
    @NonNull LocationButtonRequest request,
    @NonNull LocationButtonSession session
)
```