feat(clipboard-manager): implement `clear` on iOS and Android (#1462)

pull/1503/head
Emin Yilmaz 11 months ago committed by GitHub
parent 03d3cc3677
commit 99d125d86b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1,5 @@
---
"clipboard-manager": "minor"
---
Add support for clearing clipboard text on iOS and Android.

@ -92,7 +92,11 @@ class ClipboardPlugin(private val activity: Activity) : Plugin(activity) {
val clipData = when (args) {
is WriteOptions.PlainText -> {
ClipData.newPlainText(args.label, args.text)
} else -> {
invoke.reject("Invalid write options provided")
return
}
}
manager.setPrimaryClip(clipData)
@ -120,4 +124,12 @@ class ClipboardPlugin(private val activity: Activity) : Plugin(activity) {
invoke.resolveObject(data)
}
@Command
fun clear(invoke: Invoke) {
if (manager.hasPrimaryClip()) {
manager.clearPrimaryClip()
}
invoke.resolve()
}
}

@ -38,6 +38,12 @@ class ClipboardPlugin: Plugin {
invoke.reject("Clipboard is empty")
}
}
@objc public func clear(_ invoke: Invoke) throws {
let clipboard = UIPasteboard.general
clipboard.items = []
invoke.resolve()
}
}
@_cdecl("init_plugin_clipboard")

@ -92,9 +92,7 @@ impl<R: Runtime> Clipboard<R> {
}
pub fn clear(&self) -> crate::Result<()> {
Err(crate::Error::Clipboard(
"Unsupported on this platform".to_string(),
))
self.0.run_mobile_plugin("clear", ()).map_err(Into::into)
}
}

Loading…
Cancel
Save