Add settings overflow menu item to compose activity

This commit is contained in:
MM20 2021-09-25 20:15:49 +02:00
parent f09b5b8a3c
commit 060f8e6662
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389

View File

@ -25,6 +25,7 @@ import com.google.accompanist.pager.ExperimentalPagerApi
import com.google.accompanist.pager.PagerState import com.google.accompanist.pager.PagerState
import de.mm20.launcher2.search.SearchViewModel import de.mm20.launcher2.search.SearchViewModel
import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.R
import de.mm20.launcher2.ui.locals.LocalNavController
import de.mm20.launcher2.ui.locals.LocalWindowSize import de.mm20.launcher2.ui.locals.LocalWindowSize
/** /**
@ -53,7 +54,8 @@ fun SearchBar(
val pageTransition = (pagerState.currentPage + pagerState.currentPageOffset).coerceIn(0f, 1f) val pageTransition = (pagerState.currentPage + pagerState.currentPageOffset).coerceIn(0f, 1f)
val elevationTransition = (2 * widgetColumnState.value / LocalWindowSize.current.height).coerceIn(0f, 1f) val elevationTransition =
(2 * widgetColumnState.value / LocalWindowSize.current.height).coerceIn(0f, 1f)
Card( Card(
modifier = modifier modifier = modifier
@ -105,14 +107,34 @@ fun SearchBar(
) )
} }
} }
IconButton( var showOverflowMenu by remember { mutableStateOf(false) }
onClick = { Box {
searchQuery = TextFieldValue() IconButton(
}, onClick = {
modifier = Modifier.size(48.dp) if (searchQuery.text.isNotEmpty()) {
) { searchQuery = TextFieldValue()
val menuClearIcon = animatedVectorResource(R.drawable.anim_ic_menu_clear) } else {
Icon(painter = menuClearIcon.painterFor(atEnd = searchQuery.text.isNotEmpty()), null) showOverflowMenu = true
}
},
modifier = Modifier.size(48.dp)
) {
val menuClearIcon = animatedVectorResource(R.drawable.anim_ic_menu_clear)
Icon(
painter = menuClearIcon.painterFor(atEnd = searchQuery.text.isNotEmpty()),
null
)
}
val navController = LocalNavController.current
DropdownMenu(
expanded = showOverflowMenu,
onDismissRequest = { showOverflowMenu = false }) {
DropdownMenuItem(onClick = {
navController?.navigate("settings")
}) {
Text(stringResource(id = R.string.title_activity_settings))
}
}
} }
} }
} }