title: Animations and Effects broken on Keyboard written in Jetpack Compose after upgrading to beta-01
body: <p>I ran into a problem after <strong>updating my keyboard written completely in Jetpack Compose from Compose version <code>alpha-11</code> to <code>beta-01</code>.</strong></p>
  <p>Before the upgrade, the UI worked just fine as you would expect. Ripples were displayed fine.
  After the upgrade animations and effects (like button pressed) don't play correctly (Ripple effects seem to get <em>stuck</em>).
  Take a look:</p>
  <p><img src="https://i.stack.imgur.com/0v0gR.gif" alt="1" /></p>
  <p>This is the <strong>desired behavior</strong> and how it looked like before the version upgrade:</p>
  <p><img src="https://i.stack.imgur.com/txwBf.gif" alt="2" /></p>
  <p>Note: The same code outside of <code>ComposeKeyboardView</code> worked perfectly fine. Also, the same code worked perfectly fine before Jetpack Compose <code>alpha-11</code> and <code>beta-01</code>.
  I'm not sure if it is a bug or if I can fix the problem myself.
  I appreciate any help or hints to restore the desired behavior.</p>
  <p>You can reproduce the problem using the following code:</p>
  <p>Keyboard.kt</p>
  <pre class="lang-kotlin prettyprint-override"><code>@Composable
  fun Keyboard() {
      Column(
          Modifier
              .fillMaxWidth()
              .height(200.dp)
              .background(Color.Gray),
          verticalArrangement = Arrangement.Center,
          horizontalAlignment = Alignment.CenterHorizontally
      ) {
          Text(color = Color.Black, text = &quot;This should resemble a keyboard&quot;)
          Button(modifier = Modifier.width(250.dp),onClick = {  }) {
              Text(text = &quot;A Button&quot;)
          }
      }
  }
  </code></pre>
  <p>ComposeKeyboardView.kt</p>
  <pre class="lang-kotlin prettyprint-override"><code>class ComposeKeyboardView constructor(
      context: Context,
  
      ) : AbstractComposeView(context) {
  
      @Composable
      override fun Content() {
          Keyboard()
         
      }
  }
  </code></pre>
  <p>IMEService.kt</p>
  <pre class="lang-kotlin prettyprint-override"><code>
  class IMEService : InputMethodService(), LifecycleOwner, ViewModelStoreOwner,
      SavedStateRegistryOwner {
  
      override fun onCreateInputView(): View {
          val view = ComposeKeyboardView(this)
          window!!.window!!.decorView.let { decorView -&gt;
              ViewTreeLifecycleOwner.set(decorView, this)
              ViewTreeViewModelStoreOwner.set(decorView, this)
              ViewTreeSavedStateRegistryOwner.set(decorView, this)
          }
          return view
      }
  
  
      //Lifecycle Methods
  
      private var lifecycleRegistry: LifecycleRegistry = LifecycleRegistry(this)
  
      override fun getLifecycle(): Lifecycle {
          return lifecycleRegistry
      }
  
  
      private fun handleLifecycleEvent(event: Lifecycle.Event) =
          lifecycleRegistry.handleLifecycleEvent(event)
  
      override fun onCreate() {
          super.onCreate()
          savedStateRegistry.performRestore(null)
          handleLifecycleEvent(Lifecycle.Event.ON_CREATE)
      }
  
  
  
      override fun onDestroy() {
          super.onDestroy()
          handleLifecycleEvent(Lifecycle.Event.ON_DESTROY)
      }
  
  
      //ViewModelStore Methods
      private val store = ViewModelStore()
  
      override fun getViewModelStore(): ViewModelStore = store
  
      //SaveStateRegestry Methods
  
      private val savedStateRegistry = SavedStateRegistryController.create(this)
  
      override fun getSavedStateRegistry(): SavedStateRegistry = savedStateRegistry.savedStateRegistry
  </code></pre>
  <p>Don't forget to add the IMEService to your <code>AndroidManifest.xml</code>:</p>
  <pre class="lang-xml prettyprint-override"><code>&lt;application&gt;
  [...]
  &lt;service
              android:name=&quot;.IMEService&quot;
              android:label=&quot;Example Comopose IME&quot;
  
              android:permission=&quot;android.permission.BIND_INPUT_METHOD&quot;&gt;
              &lt;intent-filter&gt;
                  &lt;action android:name=&quot;android.view.InputMethod&quot; /&gt;
              &lt;/intent-filter&gt;
  
              &lt;meta-data
                  android:name=&quot;android.view.im&quot;
                  android:resource=&quot;@xml/method&quot; /&gt;
          &lt;/service&gt;
  &lt;/application&gt;
  </code></pre>
  <p>app\build.gradle</p>
  <pre><code>[...]
  dependencies {
      def compose_version = &quot;1.0.0-beta01&quot;  
      implementation &quot;androidx.compose.ui:ui:$compose_version&quot;
      implementation &quot;androidx.compose.material:material:$compose_version&quot;
      implementation &quot;androidx.compose.ui:ui-tooling:$compose_version&quot;
      implementation &quot;androidx.activity:activity-compose:1.3.0-alpha03&quot;
      implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.0'
  }
  </code></pre>
  <p><em>Edit:</em> Same problem in compose-beta02</p>
  <p><a href="https://github.com/THEAccess/compose-keyboard-ime" rel="nofollow noreferrer">Or you can find all code here and clone it directly</a></p>