# DefaultComplicationDataSourcePolicy

Artifact: [androidx.wear.watchface:watchface-complications](https://developer.android.com/jetpack/androidx/releases/wear-watchface) [View Source](https://cs.android.com/search?q=file:androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy.kt+class:androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-watchface#1.0.0)

*** ** * ** ***


```
public final class DefaultComplicationDataSourcePolicy
```

<br />

*** ** * ** ***

A watch face may wish to try and set one or more non-system data sources as the default data source for a complication. If a complication data source can't be used for some reason (e.g. it isn't installed or it doesn't support the requested type, or the watch face lacks the necessary permission) then the next one will be tried. A system complication data source acts as a final fallback in case no non-system data sources can be used.

If the DefaultComplicationDataSourcePolicy is empty then no default is set.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#DefaultComplicationDataSourcePolicy()()` No default complication data source. |
| `[DefaultComplicationDataSourcePolicy](https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#DefaultComplicationDataSourcePolicy(kotlin.Int))(int systemProvider)` **This method is deprecated.** Use a constructor that sets the DefaultTypes |
| `[DefaultComplicationDataSourcePolicy](https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#DefaultComplicationDataSourcePolicy(android.content.ComponentName,kotlin.Int))( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/ComponentName.html dataSource, int systemDataSourceFallback )` **This method is deprecated.** Use a constructor that sets the DefaultTypes |
| `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#DefaultComplicationDataSourcePolicy(kotlin.Int,androidx.wear.watchface.complications.data.ComplicationType)( int systemDataSource, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType systemDataSourceDefaultType )` Uses a system data source as the default complication data source. |
| `[DefaultComplicationDataSourcePolicy](https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#DefaultComplicationDataSourcePolicy(android.content.ComponentName,android.content.ComponentName,kotlin.Int))( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/ComponentName.html primaryDataSource, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/ComponentName.html secondaryDataSource, int systemDataSourceFallback )` **This method is deprecated.** Use a constructor that sets the DefaultTypes |
| `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#DefaultComplicationDataSourcePolicy(android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,kotlin.Int,androidx.wear.watchface.complications.data.ComplicationType)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/ComponentName.html primaryDataSource, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType primaryDataSourceDefaultType, int systemDataSourceFallback, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType systemDataSourceFallbackDefaultType )` Attempts to use `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#(android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,kotlin.Int,androidx.wear.watchface.complications.data.ComplicationType)` as the default complication complication data source, if not present then `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#(android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,kotlin.Int,androidx.wear.watchface.complications.data.ComplicationType)` will be used instead. |
| `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#DefaultComplicationDataSourcePolicy(android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,kotlin.Int,androidx.wear.watchface.complications.data.ComplicationType)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/ComponentName.html primaryDataSource, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType primaryDataSourceDefaultType, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/ComponentName.html secondaryDataSource, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType secondaryDataSourceDefaultType, int systemDataSourceFallback, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType systemDataSourceFallbackDefaultType )` Attempts to use `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#(android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,kotlin.Int,androidx.wear.watchface.complications.data.ComplicationType)` as the default complication data source, if not present then `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#(android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,kotlin.Int,androidx.wear.watchface.complications.data.ComplicationType)` will be tried and if that's not present then `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#(android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,kotlin.Int,androidx.wear.watchface.complications.data.ComplicationType)` will be used instead. |

| ### Public methods |
|---|---|
| `boolean` | `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#equals(kotlin.Any)(https://developer.android.com/reference/java/lang/Object.html other)` |
| `final https://developer.android.com/reference/android/content/ComponentName.html` | `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#getPrimaryDataSource()()` First of two non-system data sources to be tried in turn. |
| `final https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType` | `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#getPrimaryDataSourceDefaultType()()` The default `https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType` for `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#primaryDataSource()`. |
| `final https://developer.android.com/reference/android/content/ComponentName.html` | `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#getSecondaryDataSource()()` Second of two non-system data sources to be tried in turn. |
| `final https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType` | `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#getSecondaryDataSourceDefaultType()()` The default `https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType` for `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#secondaryDataSource()`. |
| `final int` | `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#getSystemDataSourceFallback()()` Fallback in case none of the non-system data sources could be used. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType` | `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#getSystemDataSourceFallbackDefaultType()()` The default `https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType` for `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#systemDataSourceFallback()`. |
| `int` | `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#hashCode()()` |
| `final boolean` | `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#isEmpty()()` Whether or not this DefaultComplicationDataSourcePolicy contains a default data source. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#toString()()` |

## Public constructors

### DefaultComplicationDataSourcePolicy

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-watchface#1.0.0)

```
public DefaultComplicationDataSourcePolicy()
```

No default complication data source.

### DefaultComplicationDataSourcePolicy

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-watchface#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/wear-watchface#1.1.0)

```
public [DefaultComplicationDataSourcePolicy](https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#DefaultComplicationDataSourcePolicy(kotlin.Int))(int systemProvider)
```

> [!CAUTION]
> **This method is deprecated.**   
> Use a constructor that sets the DefaultTypes, use this instead:
>
> ```
> DefaultComplicationDataSourcePolicy(Int, ComplicationType)
> ```

Uses `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#(kotlin.Int)` as the default complication data source.

### DefaultComplicationDataSourcePolicy

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-watchface#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/wear-watchface#1.1.0)

```
public [DefaultComplicationDataSourcePolicy](https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#DefaultComplicationDataSourcePolicy(android.content.ComponentName,kotlin.Int))(
    @NonNull ComponentName dataSource,
    int systemDataSourceFallback
)
```

> [!CAUTION]
> **This method is deprecated.**   
> Use a constructor that sets the DefaultTypes, use this instead:
>
> ```
> DefaultComplicationDataSourcePolicy(ComponentName, ComplicationType, Int, ComplicationType)
> ```

Attempts to use `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#(android.content.ComponentName,kotlin.Int)` as the default complication complication data source, if not present then `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#(android.content.ComponentName,kotlin.Int)` will be used instead.

### DefaultComplicationDataSourcePolicy

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/wear-watchface#1.1.0)

```
public DefaultComplicationDataSourcePolicy(
    int systemDataSource,
    @NonNull ComplicationType systemDataSourceDefaultType
)
```

Uses a system data source as the default complication data source.

| Parameters |
|---|---|
| `int systemDataSource` | The system `https://developer.android.com/reference/androidx/wear/watchface/complications/SystemDataSources.DataSourceId` data source to use. Value is one of the following: - `-1` - `1` - `2` - `3` - `4` - `5` - `6` - `7` - `9` - `12` - `13` - `14` - `16` - `17` <br /> |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType systemDataSourceDefaultType` | The initial default `https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType`. |

### DefaultComplicationDataSourcePolicy

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-watchface#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/wear-watchface#1.1.0)

```
public [DefaultComplicationDataSourcePolicy](https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#DefaultComplicationDataSourcePolicy(android.content.ComponentName,android.content.ComponentName,kotlin.Int))(
    @NonNull ComponentName primaryDataSource,
    @NonNull ComponentName secondaryDataSource,
    int systemDataSourceFallback
)
```

> [!CAUTION]
> **This method is deprecated.**   
> Use a constructor that sets the DefaultTypes, use this instead:
>
> ```
> DefaultComplicationDataSourcePolicy(ComponentName, ComplicationType, ComponentName, ComplicationType, Int, ComplicationType)
> ```

Attempts to use `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#(android.content.ComponentName,android.content.ComponentName,kotlin.Int)` as the default complication data source, if not present then `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#(android.content.ComponentName,android.content.ComponentName,kotlin.Int)` will be tried and if that's not present then `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#(android.content.ComponentName,android.content.ComponentName,kotlin.Int)` will be used instead.

### DefaultComplicationDataSourcePolicy

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/wear-watchface#1.1.0)

```
public DefaultComplicationDataSourcePolicy(
    @NonNull ComponentName primaryDataSource,
    @NonNull ComplicationType primaryDataSourceDefaultType,
    int systemDataSourceFallback,
    @NonNull ComplicationType systemDataSourceFallbackDefaultType
)
```

Attempts to use `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#(android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,kotlin.Int,androidx.wear.watchface.complications.data.ComplicationType)` as the default complication complication data source, if not present then `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#(android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,kotlin.Int,androidx.wear.watchface.complications.data.ComplicationType)` will be used instead.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/ComponentName.html primaryDataSource` | The data source to try. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType primaryDataSourceDefaultType` | The default `https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType` if primaryDataSource is selected. Note Pre-R this will be ignored in favour of `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#(android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,kotlin.Int,androidx.wear.watchface.complications.data.ComplicationType)`. |
| `int systemDataSourceFallback` | The system data source to fall back on if neither provider is available. Value is one of the following: - `-1` - `1` - `2` - `3` - `4` - `5` - `6` - `7` - `9` - `12` - `13` - `14` - `16` - `17` <br /> |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType systemDataSourceFallbackDefaultType` | The default `https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType` if systemDataSourceFallback is selected. |

### DefaultComplicationDataSourcePolicy

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/wear-watchface#1.1.0)

```
public DefaultComplicationDataSourcePolicy(
    @NonNull ComponentName primaryDataSource,
    @NonNull ComplicationType primaryDataSourceDefaultType,
    @NonNull ComponentName secondaryDataSource,
    @NonNull ComplicationType secondaryDataSourceDefaultType,
    int systemDataSourceFallback,
    @NonNull ComplicationType systemDataSourceFallbackDefaultType
)
```

Attempts to use `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#(android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,kotlin.Int,androidx.wear.watchface.complications.data.ComplicationType)` as the default complication data source, if not present then `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#(android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,kotlin.Int,androidx.wear.watchface.complications.data.ComplicationType)` will be tried and if that's not present then `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#(android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,kotlin.Int,androidx.wear.watchface.complications.data.ComplicationType)` will be used instead.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/ComponentName.html primaryDataSource` | The first data source to try. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType primaryDataSourceDefaultType` | The default `https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType` if primaryDataSource is selected. Note Pre-R this will be ignored in favour of `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#(android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,kotlin.Int,androidx.wear.watchface.complications.data.ComplicationType)`. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/ComponentName.html secondaryDataSource` | The second data source to try. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType secondaryDataSourceDefaultType` | The default `https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType` if secondaryDataSource is selected. Note Pre-R this will be ignored in favour of `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#(android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,android.content.ComponentName,androidx.wear.watchface.complications.data.ComplicationType,kotlin.Int,androidx.wear.watchface.complications.data.ComplicationType)`. |
| `int systemDataSourceFallback` | The system data source to fall back on if neither provider is available. Value is one of the following: - `-1` - `1` - `2` - `3` - `4` - `5` - `6` - `7` - `9` - `12` - `13` - `14` - `16` - `17` <br /> |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType systemDataSourceFallbackDefaultType` | The default `https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType` if systemDataSourceFallback is selected. |

## Public methods

### equals

```
public boolean equals(Object other)
```

### getPrimaryDataSource

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-watchface#1.0.0)

```
public final ComponentName getPrimaryDataSource()
```

First of two non-system data sources to be tried in turn. Set to null if not required.

### getPrimaryDataSourceDefaultType

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/wear-watchface#1.1.0)

```
public final ComplicationType getPrimaryDataSourceDefaultType()
```

The default `https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType` for `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#primaryDataSource()`. Note Pre-R this will be ignored in favour of `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#systemDataSourceFallbackDefaultType()`.

### getSecondaryDataSource

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-watchface#1.0.0)

```
public final ComponentName getSecondaryDataSource()
```

Second of two non-system data sources to be tried in turn. Set to null if not required.

### getSecondaryDataSourceDefaultType

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/wear-watchface#1.1.0)

```
public final ComplicationType getSecondaryDataSourceDefaultType()
```

The default `https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType` for `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#secondaryDataSource()`. Note Pre-R this will be ignored in favour of `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#systemDataSourceFallbackDefaultType()`.

### getSystemDataSourceFallback

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-watchface#1.0.0)

```
public final int getSystemDataSourceFallback()
```

Fallback in case none of the non-system data sources could be used.

### getSystemDataSourceFallbackDefaultType

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/wear-watchface#1.1.0)

```
public final @NonNull ComplicationType getSystemDataSourceFallbackDefaultType()
```

The default `https://developer.android.com/reference/androidx/wear/watchface/complications/data/ComplicationType` for `https://developer.android.com/reference/androidx/wear/watchface/complications/DefaultComplicationDataSourcePolicy#systemDataSourceFallback()`.

### hashCode

```
public int hashCode()
```

### isEmpty

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-watchface#1.0.0)

```
public final boolean isEmpty()
```

Whether or not this DefaultComplicationDataSourcePolicy contains a default data source.

### toString

```
public @NonNull String toString()
```