Use clearPrimaryClip() on Android 9 and newer

Fixes https://github.com/libsdl-org/SDL/issues/8355
This commit is contained in:
Sam Lantinga
2025-09-21 23:04:08 -07:00
parent c8f32b67ae
commit 34b09be6a5

View File

@@ -2190,7 +2190,11 @@ class SDLClipboardHandler implements
} }
public boolean clipboardHasText() { public boolean clipboardHasText() {
if (Build.VERSION.SDK_INT >= 28 /* Android 9 (P) */) {
return mClipMgr.hasPrimaryClip(); return mClipMgr.hasPrimaryClip();
} else {
return mClipMgr.hasText();
}
} }
public String clipboardGetText() { public String clipboardGetText() {
@@ -2209,8 +2213,17 @@ class SDLClipboardHandler implements
public void clipboardSetText(String string) { public void clipboardSetText(String string) {
mClipMgr.removePrimaryClipChangedListener(this); mClipMgr.removePrimaryClipChangedListener(this);
if (string.isEmpty()) {
if (Build.VERSION.SDK_INT >= 28 /* Android 9 (P) */) {
mClipMgr.clearPrimaryClip();
} else {
ClipData clip = ClipData.newPlainText(null, "");
mClipMgr.setPrimaryClip(clip);
}
} else {
ClipData clip = ClipData.newPlainText(null, string); ClipData clip = ClipData.newPlainText(null, string);
mClipMgr.setPrimaryClip(clip); mClipMgr.setPrimaryClip(clip);
}
mClipMgr.addPrimaryClipChangedListener(this); mClipMgr.addPrimaryClipChangedListener(this);
} }