compose-uiを1.8.0にアップデートしたところ、以下の警告が出るようになりました。
'interface ClipboardManager : Any' is deprecated. Use Clipboard instead, which supports suspend functions.
移行作業
単純に移行するとコード量が多いので、以下のような拡張関数を追加するのが良さそうです。
suspend fun Clipboard.setText(text: String) {
setClipEntry(
ClipData
.newPlainText(text, text)
.toClipEntry(),
)
}
LocalClipboardManager
を置換し、
- val clipboardManager = LocalClipboardManager.current
+ val clipboard = LocalClipboard.current
suspend funを実行する形に修正します
+ val scope = rememberCoroutineScope()
Button(
onClick = {
- clipboardManager.setText(AnnotatedString(it))
+ scope.launch {
+ clipboard.setText(it)
+ ...
+ }
}
)