luiisca / floaty

Apache License 2.0
0 stars 0 forks source link

add remove `FloatView` on each of its instances #34

Closed luiisca closed 1 week ago

linear[bot] commented 1 week ago

GIT-403 add remove `FloatView` on each of its instances

luiisca commented 1 week ago
Peek 2024-06-25 18-29.gif
luiisca commented 1 week ago

just passed a WindowManager and ComposeView reference to FloatView and called windowManager.removeView(view) on click

@Composable
fun FloatView(windowManager: WindowManager, view: View) {
  val color = remember { mutableStateOf(randomColor()) }

  Box(modifier = Modifier
    .size(100.dp)
    .background(color.value, shape = CircleShape)) {
      Button(onClick = { color.value = randomColor() }) { Text("Change Color") }
      FloatingActionButton(
        onClick = {
          try {
            windowManager.removeView(view)
          } catch (e: Exception) {
            e.printStackTrace()
          }
        },
        modifier = Modifier.padding(8.dp),
        containerColor = MaterialTheme.colorScheme.errorContainer,
        contentColor = MaterialTheme.colorScheme.onErrorContainer
      ) {
        Icon(
          imageVector = Icons.Default.Delete,
          contentDescription = "Delete floaty",
          modifier = Modifier.size(14.dp)
        )
      }
  }
}