Added enter support for input dialogs
This commit is contained in:
parent
619083f829
commit
fc0fc8c448
@ -5,13 +5,18 @@ import androidx.compose.foundation.layout.*
|
|||||||
import androidx.compose.material.*
|
import androidx.compose.material.*
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
|
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.focus.FocusRequester
|
import androidx.compose.ui.focus.FocusRequester
|
||||||
import androidx.compose.ui.focus.focusOrder
|
import androidx.compose.ui.focus.focusOrder
|
||||||
|
import androidx.compose.ui.input.key.Key
|
||||||
|
import androidx.compose.ui.input.key.key
|
||||||
|
import androidx.compose.ui.input.key.onPreviewKeyEvent
|
||||||
import androidx.compose.ui.text.TextStyle
|
import androidx.compose.ui.text.TextStyle
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
|
|
||||||
|
@OptIn(ExperimentalComposeUiApi::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun NewBranchDialog(
|
fun NewBranchDialog(
|
||||||
onReject: () -> Unit,
|
onReject: () -> Unit,
|
||||||
@ -32,7 +37,15 @@ fun NewBranchDialog(
|
|||||||
.focusOrder(branchFieldFocusRequester) {
|
.focusOrder(branchFieldFocusRequester) {
|
||||||
this.next = buttonFieldFocusRequester
|
this.next = buttonFieldFocusRequester
|
||||||
}
|
}
|
||||||
.width(300.dp),
|
.width(300.dp)
|
||||||
|
.onPreviewKeyEvent {
|
||||||
|
if(it.key == Key.Enter) {
|
||||||
|
onAccept(branchField)
|
||||||
|
true
|
||||||
|
} else {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
},
|
||||||
value = branchField,
|
value = branchField,
|
||||||
singleLine = true,
|
singleLine = true,
|
||||||
label = { Text("New branch name", fontSize = 14.sp) },
|
label = { Text("New branch name", fontSize = 14.sp) },
|
||||||
|
@ -5,13 +5,18 @@ import androidx.compose.foundation.layout.*
|
|||||||
import androidx.compose.material.*
|
import androidx.compose.material.*
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
|
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.focus.FocusRequester
|
import androidx.compose.ui.focus.FocusRequester
|
||||||
import androidx.compose.ui.focus.focusOrder
|
import androidx.compose.ui.focus.focusOrder
|
||||||
|
import androidx.compose.ui.input.key.Key
|
||||||
|
import androidx.compose.ui.input.key.key
|
||||||
|
import androidx.compose.ui.input.key.onPreviewKeyEvent
|
||||||
import androidx.compose.ui.text.TextStyle
|
import androidx.compose.ui.text.TextStyle
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
|
|
||||||
|
@OptIn(ExperimentalComposeUiApi::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun NewTagDialog(
|
fun NewTagDialog(
|
||||||
onReject: () -> Unit,
|
onReject: () -> Unit,
|
||||||
@ -32,7 +37,15 @@ fun NewTagDialog(
|
|||||||
.focusOrder(tagFieldFocusRequester) {
|
.focusOrder(tagFieldFocusRequester) {
|
||||||
this.next = buttonFieldFocusRequester
|
this.next = buttonFieldFocusRequester
|
||||||
}
|
}
|
||||||
.width(300.dp),
|
.width(300.dp)
|
||||||
|
.onPreviewKeyEvent {
|
||||||
|
if(it.key == Key.Enter) {
|
||||||
|
onAccept(tagField)
|
||||||
|
true
|
||||||
|
} else {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
},
|
||||||
value = tagField,
|
value = tagField,
|
||||||
singleLine = true,
|
singleLine = true,
|
||||||
label = { Text("New tag name", fontSize = 14.sp) },
|
label = { Text("New tag name", fontSize = 14.sp) },
|
||||||
|
@ -5,14 +5,19 @@ import androidx.compose.foundation.layout.*
|
|||||||
import androidx.compose.material.*
|
import androidx.compose.material.*
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
|
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.focus.FocusRequester
|
import androidx.compose.ui.focus.FocusRequester
|
||||||
import androidx.compose.ui.focus.focusOrder
|
import androidx.compose.ui.focus.focusOrder
|
||||||
|
import androidx.compose.ui.input.key.Key
|
||||||
|
import androidx.compose.ui.input.key.key
|
||||||
|
import androidx.compose.ui.input.key.onPreviewKeyEvent
|
||||||
import androidx.compose.ui.text.TextStyle
|
import androidx.compose.ui.text.TextStyle
|
||||||
import androidx.compose.ui.text.input.PasswordVisualTransformation
|
import androidx.compose.ui.text.input.PasswordVisualTransformation
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
|
|
||||||
|
@OptIn(ExperimentalComposeUiApi::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun PasswordDialog(
|
fun PasswordDialog(
|
||||||
onReject: () -> Unit,
|
onReject: () -> Unit,
|
||||||
@ -39,7 +44,15 @@ fun PasswordDialog(
|
|||||||
.focusOrder(passwordFieldFocusRequester) {
|
.focusOrder(passwordFieldFocusRequester) {
|
||||||
this.next = buttonFieldFocusRequester
|
this.next = buttonFieldFocusRequester
|
||||||
}
|
}
|
||||||
.width(300.dp),
|
.width(300.dp)
|
||||||
|
.onPreviewKeyEvent {
|
||||||
|
if(it.key == Key.Enter) {
|
||||||
|
onAccept(passwordField)
|
||||||
|
true
|
||||||
|
} else {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
},
|
||||||
value = passwordField,
|
value = passwordField,
|
||||||
singleLine = true,
|
singleLine = true,
|
||||||
label = { Text("Password", fontSize = 14.sp) },
|
label = { Text("Password", fontSize = 14.sp) },
|
||||||
|
@ -5,14 +5,19 @@ import androidx.compose.foundation.layout.*
|
|||||||
import androidx.compose.material.*
|
import androidx.compose.material.*
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
|
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.focus.FocusRequester
|
import androidx.compose.ui.focus.FocusRequester
|
||||||
import androidx.compose.ui.focus.focusOrder
|
import androidx.compose.ui.focus.focusOrder
|
||||||
|
import androidx.compose.ui.input.key.Key
|
||||||
|
import androidx.compose.ui.input.key.key
|
||||||
|
import androidx.compose.ui.input.key.onPreviewKeyEvent
|
||||||
import androidx.compose.ui.text.TextStyle
|
import androidx.compose.ui.text.TextStyle
|
||||||
import androidx.compose.ui.text.input.PasswordVisualTransformation
|
import androidx.compose.ui.text.input.PasswordVisualTransformation
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
|
|
||||||
|
@OptIn(ExperimentalComposeUiApi::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun UserPasswordDialog(
|
fun UserPasswordDialog(
|
||||||
onReject: () -> Unit,
|
onReject: () -> Unit,
|
||||||
@ -23,7 +28,9 @@ fun UserPasswordDialog(
|
|||||||
val userFieldFocusRequester = remember { FocusRequester() }
|
val userFieldFocusRequester = remember { FocusRequester() }
|
||||||
val passwordFieldFocusRequester = remember { FocusRequester() }
|
val passwordFieldFocusRequester = remember { FocusRequester() }
|
||||||
val buttonFieldFocusRequester = remember { FocusRequester() }
|
val buttonFieldFocusRequester = remember { FocusRequester() }
|
||||||
|
val acceptDialog = {
|
||||||
|
onAccept(userField, passwordField)
|
||||||
|
}
|
||||||
Column(
|
Column(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.background(MaterialTheme.colors.background),
|
.background(MaterialTheme.colors.background),
|
||||||
@ -42,7 +49,15 @@ fun UserPasswordDialog(
|
|||||||
.focusOrder(userFieldFocusRequester) {
|
.focusOrder(userFieldFocusRequester) {
|
||||||
this.next = passwordFieldFocusRequester
|
this.next = passwordFieldFocusRequester
|
||||||
}
|
}
|
||||||
.width(300.dp),
|
.width(300.dp)
|
||||||
|
.onPreviewKeyEvent {
|
||||||
|
if(it.key == Key.Enter) {
|
||||||
|
acceptDialog()
|
||||||
|
true
|
||||||
|
} else {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
},
|
||||||
value = userField,
|
value = userField,
|
||||||
singleLine = true,
|
singleLine = true,
|
||||||
label = { Text("User", fontSize = 14.sp) },
|
label = { Text("User", fontSize = 14.sp) },
|
||||||
@ -57,7 +72,15 @@ fun UserPasswordDialog(
|
|||||||
this.previous = userFieldFocusRequester
|
this.previous = userFieldFocusRequester
|
||||||
this.next = buttonFieldFocusRequester
|
this.next = buttonFieldFocusRequester
|
||||||
}
|
}
|
||||||
.width(300.dp),
|
.width(300.dp)
|
||||||
|
.onPreviewKeyEvent {
|
||||||
|
if(it.key == Key.Enter) {
|
||||||
|
acceptDialog()
|
||||||
|
true
|
||||||
|
} else {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
},
|
||||||
value = passwordField,
|
value = passwordField,
|
||||||
singleLine = true,
|
singleLine = true,
|
||||||
label = { Text("Password", fontSize = 14.sp) },
|
label = { Text("Password", fontSize = 14.sp) },
|
||||||
|
Loading…
Reference in New Issue
Block a user