Skip to content

Commit

Permalink
[PM-17368] After cut, update text and clear selection. (#4714)
Browse files Browse the repository at this point in the history
  • Loading branch information
andrebispo5 authored Feb 11, 2025
1 parent 6fdb390 commit fdc9271
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -123,6 +124,7 @@ fun BitwardenPasswordField(
onValueChange = onValueChange,
defaultTextToolbar = LocalTextToolbar.current,
clipboardManager = LocalClipboardManager.current.nativeClipboard,
focusManager = LocalFocusManager.current,
)

TextToolbarType.NONE -> BitwardenEmptyTextToolbar
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -250,6 +251,7 @@ fun BitwardenTextField(
onValueChange = onValueChange,
defaultTextToolbar = LocalTextToolbar.current,
clipboardManager = LocalClipboardManager.current.nativeClipboard,
focusManager = LocalFocusManager.current,
)

TextToolbarType.NONE -> BitwardenEmptyTextToolbar
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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

Expand Down Expand Up @@ -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,
Expand Down

0 comments on commit fdc9271

Please sign in to comment.