<div class='sourceset sourceset-android'>Android</div>

```kotlin
@ExperimentalComposeUiApi
object AndroidComposeUiFlags
```

This is a collection of flags which are used to guard against regressions in some of the
"riskier" refactors or new feature support that is added to this module. These flags are always
"on" in the published artifact of this module, however these flags allow end consumers of this
module to toggle them "off" in case this new path is causing a regression.

These flags are considered temporary, and there should be no expectation for these flags be
around for an extended period of time. If you have a regression that one of these flags fixes, it
is strongly encouraged for you to file a bug ASAP.

**Usage:**

In order to turn a feature off in a debug environment, it is recommended to set this to false in
as close to the initial loading of the application as possible. Changing this value after compose
library code has already been loaded can result in undefined behavior.
    class MyApplication : Application() {        override fun onCreate() {            AndroidComposeUiFlags.SomeFeatureEnabled = false            super.onCreate()        }    }

In order to turn this off in a release environment, it is recommended to additionally utilize R8
rules which force a single value for the entire build artifact. This can result in the new code
paths being completely removed from the artifact, which can often have nontrivial positive
performance impact.
    -assumevalues class androidx.compose.ui.AndroidComposeUiFlags {        public static int isSharedComposeViewContextEnabled return false    }

## Properties

<div class='sourceset sourceset-android'>Android</div>

```kotlin
@JvmField
var isSharedComposeViewContextEnabled: Boolean
```

This flag enables ComposeViewContext to be created automatically and used across ComposeViews
within the same hierarchy. With the flag disabled, ComposeViewContext will only be created
when explicitly provided to a ComposeView.

<div class='sourceset sourceset-android'>Android</div>

```kotlin
@JvmField var isSharedWindowInfoEnabled: Boolean
```

This moves WindowInfo into the shared ComposeViewContext.

<div class='sourceset sourceset-android'>Android</div>

```kotlin
@JvmField
var isSharedAccessibilityManagerEnabled: Boolean
```

This moves AccessibilityManager into the shared ComposeViewContext.

<div class='sourceset sourceset-android'>Android</div>

```kotlin
@JvmField var isSharedDrawingEnabled: Boolean
```

This moves DrawScope and CanvasHolder into the shared ComposeViewContext.

<div class='sourceset sourceset-android'>Android</div>

```kotlin
@JvmField
var isSharedViewConfigurationEnabled: Boolean
```

This moves ViewConfiguration into the shared ComposeViewContext.

<div class='sourceset sourceset-android'>Android</div>

```kotlin
@JvmField
var isSharedClipboardManagerEnabled: Boolean
```

This moves Clipboard-related instances into the shared ComposeViewContext.

<div class='sourceset sourceset-android'>Android</div>

```kotlin
@JvmField
var isAccessibilityShowOnScreenNestedScrollingEnabled: Boolean
```

This flag enables support for walking up nested scrolling in response to
android.R.id.accessibilityActionShowOnScreen from Accessibility.

Enabled is correct nested scrolling behavior and it should be enabled in all apps.

<div class='sourceset sourceset-android'>Android</div>

```kotlin
@JvmField var isSharedHapticsEnabled: Boolean
```

This moves Haptics-related instances into the shared ComposeViewContext.

<div class='sourceset sourceset-android'>Android</div>

```kotlin
@JvmField
var isViewBasedSemanticsHandlerEnabled: Boolean
```

This flag enables using the View's handler for semantics processing instead of the Main
Looper. This avoids crashes in environments where Compose is used on a non-main thread.

<div class='sourceset sourceset-android'>Android</div>

```kotlin
@JvmField var isSharedFontEnabled: Boolean
```

This moves Font-related instances into the shared ComposeViewContext.