Skip to content

Commit ec01720

Browse files
committed
add keyboard focus control
1 parent 7f3804a commit ec01720

2 files changed

Lines changed: 23 additions & 0 deletions

File tree

firebase-ai/app/src/main/java/com/google/firebase/quickstart/ai/feature/media/imagen/ImagenScreen.kt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package com.google.firebase.quickstart.ai.feature.media.imagen
22

33
import androidx.compose.foundation.Image
4+
import androidx.compose.foundation.clickable
5+
import androidx.compose.foundation.interaction.MutableInteractionSource
46
import androidx.compose.foundation.layout.Box
57
import androidx.compose.foundation.layout.Column
8+
import androidx.compose.foundation.layout.fillMaxSize
69
import androidx.compose.foundation.layout.fillMaxWidth
710
import androidx.compose.foundation.layout.padding
811
import androidx.compose.foundation.lazy.grid.GridCells
@@ -19,11 +22,13 @@ import androidx.compose.material3.TextButton
1922
import androidx.compose.runtime.Composable
2023
import androidx.compose.runtime.getValue
2124
import androidx.compose.runtime.mutableStateOf
25+
import androidx.compose.runtime.remember
2226
import androidx.compose.runtime.saveable.rememberSaveable
2327
import androidx.compose.runtime.setValue
2428
import androidx.compose.ui.Alignment
2529
import androidx.compose.ui.Modifier
2630
import androidx.compose.ui.graphics.asImageBitmap
31+
import androidx.compose.ui.platform.LocalFocusManager
2732
import androidx.compose.ui.unit.dp
2833
import androidx.lifecycle.compose.collectAsStateWithLifecycle
2934
import androidx.lifecycle.viewmodel.compose.viewModel
@@ -40,9 +45,17 @@ fun ImagenScreen(
4045
val errorMessage by imagenViewModel.errorMessage.collectAsStateWithLifecycle()
4146
val isLoading by imagenViewModel.isLoading.collectAsStateWithLifecycle()
4247
val generatedImages by imagenViewModel.generatedBitmaps.collectAsStateWithLifecycle()
48+
val focusManager = LocalFocusManager.current
4349

4450
Column(
4551
modifier = Modifier
52+
.fillMaxSize()
53+
.clickable(
54+
indication = null,
55+
interactionSource = remember { MutableInteractionSource() }
56+
) {
57+
focusManager.clearFocus()
58+
}
4659
) {
4760
ElevatedCard(
4861
modifier = Modifier

firebase-ai/app/src/main/java/com/google/firebase/quickstart/ai/feature/text/ChatScreen.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import androidx.activity.compose.rememberLauncherForActivityResult
88
import androidx.activity.result.contract.ActivityResultContracts
99
import androidx.compose.foundation.Image
1010
import androidx.compose.foundation.background
11+
import androidx.compose.foundation.clickable
12+
import androidx.compose.foundation.interaction.MutableInteractionSource
1113
import androidx.compose.foundation.layout.Box
1214
import androidx.compose.foundation.layout.BoxWithConstraints
1315
import androidx.compose.foundation.layout.Column
@@ -50,6 +52,7 @@ import androidx.compose.ui.Modifier
5052
import androidx.compose.ui.draw.clip
5153
import androidx.compose.ui.graphics.asImageBitmap
5254
import androidx.compose.ui.platform.LocalContext
55+
import androidx.compose.ui.platform.LocalFocusManager
5356
import androidx.compose.ui.text.input.KeyboardCapitalization
5457
import androidx.compose.ui.text.style.TextAlign
5558
import androidx.compose.ui.unit.dp
@@ -79,10 +82,17 @@ fun ChatScreen(
7982

8083
val listState = rememberLazyListState()
8184
val coroutineScope = rememberCoroutineScope()
85+
val focusManager = LocalFocusManager.current
8286

8387
Column(
8488
modifier = Modifier
8589
.fillMaxSize()
90+
.clickable(
91+
indication = null,
92+
interactionSource = remember { MutableInteractionSource() }
93+
) {
94+
focusManager.clearFocus()
95+
}
8696
) {
8797
ChatList(
8898
messages,

0 commit comments

Comments
 (0)