diff --git a/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java b/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java index 4889dc2163..ed50935488 100644 --- a/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java +++ b/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java @@ -2190,7 +2190,11 @@ class SDLClipboardHandler implements } public boolean clipboardHasText() { - return mClipMgr.hasPrimaryClip(); + if (Build.VERSION.SDK_INT >= 28 /* Android 9 (P) */) { + return mClipMgr.hasPrimaryClip(); + } else { + return mClipMgr.hasText(); + } } public String clipboardGetText() { @@ -2208,10 +2212,19 @@ class SDLClipboardHandler implements } public void clipboardSetText(String string) { - mClipMgr.removePrimaryClipChangedListener(this); - ClipData clip = ClipData.newPlainText(null, string); - mClipMgr.setPrimaryClip(clip); - mClipMgr.addPrimaryClipChangedListener(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); + mClipMgr.setPrimaryClip(clip); + } + mClipMgr.addPrimaryClipChangedListener(this); } @Override