mirror of
https://github.com/Myzel394/NumberHub.git
synced 2025-06-23 18:50:31 +02:00
Copy to clipboard without formatting
This commit is contained in:
parent
74cc7336fb
commit
df44a33415
@ -30,6 +30,7 @@ import androidx.compose.ui.platform.LocalClipboardManager
|
||||
import androidx.compose.ui.platform.LocalTextInputService
|
||||
import androidx.compose.ui.platform.LocalTextToolbar
|
||||
import androidx.compose.ui.platform.LocalView
|
||||
import androidx.compose.ui.text.AnnotatedString
|
||||
import androidx.compose.ui.text.input.TextFieldValue
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import com.sadellie.unitto.core.ui.Formatter
|
||||
@ -56,12 +57,24 @@ internal fun InputTextField(
|
||||
}
|
||||
}
|
||||
|
||||
fun copyToClipboard() = clipboardManager.setText(
|
||||
AnnotatedString(
|
||||
formattedInput.text
|
||||
.replace(Formatter.grouping, "")
|
||||
.replace(Formatter.fractional, ".")
|
||||
)
|
||||
)
|
||||
|
||||
CompositionLocalProvider(
|
||||
LocalTextInputService provides null,
|
||||
LocalTextToolbar provides UnittoTextToolbar(
|
||||
view = LocalView.current,
|
||||
pasteCallback = { pasteCallback(clipboardManager.getText()?.text ?: "") },
|
||||
cutCallback = cutCallback
|
||||
cutCallback = {
|
||||
copyToClipboard()
|
||||
cutCallback()
|
||||
},
|
||||
copyCallback = ::copyToClipboard
|
||||
)
|
||||
) {
|
||||
BasicTextField(
|
||||
|
@ -28,7 +28,8 @@ import androidx.compose.ui.platform.TextToolbarStatus
|
||||
internal class UnittoTextToolbar(
|
||||
private val view: View,
|
||||
private val pasteCallback: () -> Unit,
|
||||
private val cutCallback: () -> Unit
|
||||
private val cutCallback: () -> Unit,
|
||||
private val copyCallback: () -> Unit
|
||||
) : TextToolbar {
|
||||
|
||||
private var actionMode: ActionMode? = null
|
||||
@ -44,9 +45,9 @@ internal class UnittoTextToolbar(
|
||||
onSelectAllRequested: (() -> Unit)?
|
||||
) {
|
||||
textActionModeCallback.rect = rect
|
||||
textActionModeCallback.onCopyRequested = onCopyRequested
|
||||
textActionModeCallback.onCutRequested = { cutCallback(); onCutRequested?.invoke() }
|
||||
textActionModeCallback.onPasteRequested = { pasteCallback(); onPasteRequested?.invoke() }
|
||||
textActionModeCallback.onCopyRequested = copyCallback
|
||||
textActionModeCallback.onCutRequested = cutCallback
|
||||
textActionModeCallback.onPasteRequested = pasteCallback
|
||||
textActionModeCallback.onSelectAllRequested = onSelectAllRequested
|
||||
if (actionMode == null) {
|
||||
status = TextToolbarStatus.Shown
|
||||
|
Loading…
x
Reference in New Issue
Block a user