mirror of
https://github.com/bitwarden/android.git
synced 2026-03-22 06:11:38 -05:00
[PM-17368] After cut, update text and clear selection. (#4714)
This commit is contained in:
@@ -27,6 +27,7 @@ import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.focus.FocusRequester
|
||||
import androidx.compose.ui.focus.focusRequester
|
||||
import androidx.compose.ui.platform.LocalClipboardManager
|
||||
import androidx.compose.ui.platform.LocalFocusManager
|
||||
import androidx.compose.ui.platform.LocalTextToolbar
|
||||
import androidx.compose.ui.platform.TextToolbar
|
||||
import androidx.compose.ui.res.stringResource
|
||||
@@ -123,6 +124,7 @@ fun BitwardenPasswordField(
|
||||
onValueChange = onValueChange,
|
||||
defaultTextToolbar = LocalTextToolbar.current,
|
||||
clipboardManager = LocalClipboardManager.current.nativeClipboard,
|
||||
focusManager = LocalFocusManager.current,
|
||||
)
|
||||
|
||||
TextToolbarType.NONE -> BitwardenEmptyTextToolbar
|
||||
|
||||
@@ -38,6 +38,7 @@ import androidx.compose.ui.focus.onFocusChanged
|
||||
import androidx.compose.ui.focus.onFocusEvent
|
||||
import androidx.compose.ui.layout.onGloballyPositioned
|
||||
import androidx.compose.ui.platform.LocalClipboardManager
|
||||
import androidx.compose.ui.platform.LocalFocusManager
|
||||
import androidx.compose.ui.platform.LocalTextToolbar
|
||||
import androidx.compose.ui.platform.TextToolbar
|
||||
import androidx.compose.ui.semantics.CustomAccessibilityAction
|
||||
@@ -250,6 +251,7 @@ fun BitwardenTextField(
|
||||
onValueChange = onValueChange,
|
||||
defaultTextToolbar = LocalTextToolbar.current,
|
||||
clipboardManager = LocalClipboardManager.current.nativeClipboard,
|
||||
focusManager = LocalFocusManager.current,
|
||||
)
|
||||
|
||||
TextToolbarType.NONE -> BitwardenEmptyTextToolbar
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.x8bit.bitwarden.ui.platform.components.field.toolbar
|
||||
|
||||
import android.content.ClipData
|
||||
import android.content.ClipboardManager
|
||||
import androidx.compose.ui.focus.FocusManager
|
||||
import androidx.compose.ui.geometry.Rect
|
||||
import androidx.compose.ui.platform.TextToolbar
|
||||
import androidx.compose.ui.platform.TextToolbarStatus
|
||||
@@ -19,6 +20,7 @@ class BitwardenCutCopyTextToolbar(
|
||||
private val onValueChange: (String) -> Unit,
|
||||
private val defaultTextToolbar: TextToolbar,
|
||||
private val clipboardManager: ClipboardManager,
|
||||
private val focusManager: FocusManager,
|
||||
) : TextToolbar {
|
||||
override val status: TextToolbarStatus get() = defaultTextToolbar.status
|
||||
|
||||
@@ -58,7 +60,16 @@ class BitwardenCutCopyTextToolbar(
|
||||
)
|
||||
},
|
||||
)
|
||||
onValueChange("")
|
||||
// Clear selection
|
||||
focusManager.clearFocus(force = true)
|
||||
// Add correct text without selection
|
||||
onValueChange(
|
||||
value.text.replaceRange(
|
||||
minOf(value.selection.start, value.selection.end),
|
||||
maxOf(value.selection.start, value.selection.end),
|
||||
"",
|
||||
),
|
||||
)
|
||||
}
|
||||
},
|
||||
onSelectAllRequested = onSelectAllRequested,
|
||||
|
||||
Reference in New Issue
Block a user