@@ -43,9 +43,10 @@ import androidx.compose.runtime.remember
4343import androidx.compose.runtime.setValue
4444import androidx.compose.ui.Alignment
4545import androidx.compose.ui.Modifier
46- import androidx.compose.ui.focus.FocusDirection
46+ import androidx.compose.ui.focus.FocusRequester
47+ import androidx.compose.ui.focus.focusRequester
4748import androidx.compose.ui.graphics.Color
48- import androidx.compose.ui.platform.LocalFocusManager
49+ import androidx.compose.ui.platform.LocalSoftwareKeyboardController
4950import androidx.compose.ui.res.stringResource
5051import androidx.compose.ui.text.input.ImeAction
5152import androidx.compose.ui.text.input.KeyboardCapitalization
@@ -64,7 +65,8 @@ fun CreateTaskDialog(viewModel: TasksViewModel) {
6465 var selectedModel by remember { mutableStateOf<LLMModel ?>(null ) }
6566 var isModelListDialogVisible by remember { mutableStateOf(false ) }
6667 val modelsList = viewModel.modelsRepository.getAvailableModelsList()
67- val focusManager = LocalFocusManager .current
68+ val (focusRequestor) = FocusRequester .createRefs()
69+ val keyboardController = LocalSoftwareKeyboardController .current
6870 LaunchedEffect (showCreateTaskDialog) {
6971 taskName = " "
7072 systemPrompt = " "
@@ -92,7 +94,7 @@ fun CreateTaskDialog(viewModel: TasksViewModel) {
9294 )
9395 Spacer (modifier = Modifier .height(16 .dp))
9496 TextField (
95- modifier = Modifier .fillMaxWidth(),
97+ modifier = Modifier .fillMaxWidth().padding(bottom = 8 .dp) ,
9698 value = taskName,
9799 onValueChange = { taskName = it },
98100 label = { Text (stringResource(R .string.task_create_task_name)) },
@@ -104,32 +106,29 @@ fun CreateTaskDialog(viewModel: TasksViewModel) {
104106 keyboardActions =
105107 KeyboardActions (
106108 onNext = {
107- focusManager.moveFocus( FocusDirection . Down )
109+ focusRequestor.requestFocus( )
108110 },
109111 ),
110112 )
111- Spacer (modifier = Modifier .height(8 .dp))
112113
113114 TextField (
114- modifier = Modifier .fillMaxWidth(),
115+ modifier = Modifier .fillMaxWidth().padding(bottom = 16 .dp).focusRequester(focusRequestor) ,
115116 value = systemPrompt,
116117 onValueChange = { systemPrompt = it },
117118 label = { Text (stringResource(R .string.task_create_task_sys_prompt)) },
118119 keyboardOptions =
119120 KeyboardOptions .Default .copy(
120121 capitalization = KeyboardCapitalization .Sentences ,
121- imeAction = ImeAction .Next ,
122+ imeAction = ImeAction .Done ,
122123 ),
123124 keyboardActions =
124125 KeyboardActions (
125- onNext = {
126- focusManager.moveFocus( FocusDirection . Down )
126+ onDone = {
127+ keyboardController?.hide( )
127128 },
128129 ),
129130 )
130131
131- Spacer (modifier = Modifier .height(16 .dp))
132-
133132 Text (
134133 modifier =
135134 Modifier
0 commit comments