# OperationMonitor

# OperationMonitor

Artifact:[androidx.recyclerview:recyclerview-selection](https://developer.android.com/jetpack/androidx/releases/recyclerview)  
[View Source](https://cs.android.com/search?q=file:androidx/recyclerview/selection/OperationMonitor.java+class:androidx.recyclerview.selection.OperationMonitor)  
Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/recyclerview#1.0.0)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/recyclerview/selection/OperationMonitor "View this page in Java")

<br />

```
class OperationMonitor
```

<br />

*** ** * ** ***

OperationMonitor provides a mechanism to coordinate application logic with ongoing user selection activities (such as active band selection and active gesture selection).

The host[android.app.Activity](https://developer.android.com/reference/android/app/Activity.html)or[android.app.Fragment](https://developer.android.com/reference/android/app/Fragment.html)should avoid changing[Adapter](https://developer.android.com/reference/kotlin/androidx/recyclerview/widget/RecyclerView.Adapter)data while there are active selection operations, as this can result in a poor user experience.

To know when an operation is active listen to changes using an[OnChangeListener](https://developer.android.com/reference/kotlin/androidx/recyclerview/selection/OperationMonitor.OnChangeListener).

## Summary

|                                                                                             ### Nested types                                                                                             |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `interface `[OperationMonitor.OnChangeListener](https://developer.android.com/reference/kotlin/androidx/recyclerview/selection/OperationMonitor.OnChangeListener) Listen to changes in operation status. |

|                                                          ### Public constructors                                                           |
|--------------------------------------------------------------------------------------------------------------------------------------------|
| [OperationMonitor](https://developer.android.com/reference/kotlin/androidx/recyclerview/selection/OperationMonitor#OperationMonitor())`()` |

|                                        ### Public functions                                        |
|----------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                      | [addListener](https://developer.android.com/reference/kotlin/androidx/recyclerview/selection/OperationMonitor#addListener(androidx.recyclerview.selection.OperationMonitor.OnChangeListener))`(listener: `[OperationMonitor.OnChangeListener](https://developer.android.com/reference/kotlin/androidx/recyclerview/selection/OperationMonitor.OnChangeListener)`)` Registers supplied listener to be notified when operation status changes. |
| `synchronized `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [isStarted](https://developer.android.com/reference/kotlin/androidx/recyclerview/selection/OperationMonitor#isStarted())`()`                                                                                                                                                                                                                                                                                                                 |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                      | [removeListener](https://developer.android.com/reference/kotlin/androidx/recyclerview/selection/OperationMonitor#removeListener(androidx.recyclerview.selection.OperationMonitor.OnChangeListener))`(listener: `[OperationMonitor.OnChangeListener](https://developer.android.com/reference/kotlin/androidx/recyclerview/selection/OperationMonitor.OnChangeListener)`)` Unregisters listener for further notifications.                     |

## Public constructors

### OperationMonitor

Added in 1.0.0  

```
OperationMonitor()
```  

## Public functions

### addListener

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

```
fun addListener(listener: OperationMonitor.OnChangeListener): Unit
```

Registers supplied listener to be notified when operation status changes.  

### isStarted

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

```
synchronized fun isStarted(): Boolean
```  

|                                       Returns                                       |
|-------------------------------------------------------------------------------------|-------------------------------------------|
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | true if there are any running operations. |

### removeListener

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

```
fun removeListener(listener: OperationMonitor.OnChangeListener): Unit
```

Unregisters listener for further notifications.