Add another clipboard workaround for IQOO device

Fixes #4589 <https://github.com/Genymobile/scrcpy/issues/4589>
Refs 5ce8672ebc56b7286e1078a39abc64903e5664d0
Refs #4492 <https://github.com/Genymobile/scrcpy/issues/4492>
This commit is contained in:
Romain Vimont 2024-01-16 18:59:36 +01:00
parent 2ad93d1fc0
commit 5187f7254e

View File

@ -45,9 +45,16 @@ public final class ClipboardManager {
getPrimaryClipMethod = manager.getClass().getMethod("getPrimaryClip", String.class, int.class, String.class); getPrimaryClipMethod = manager.getClass().getMethod("getPrimaryClip", String.class, int.class, String.class);
getMethodVersion = 3; getMethodVersion = 3;
} catch (NoSuchMethodException e4) { } catch (NoSuchMethodException e4) {
getPrimaryClipMethod = manager.getClass() try {
.getMethod("getPrimaryClip", String.class, String.class, int.class, int.class, boolean.class); getPrimaryClipMethod = manager.getClass()
getMethodVersion = 4; .getMethod("getPrimaryClip", String.class, String.class, int.class, int.class, boolean.class);
getMethodVersion = 4;
} catch (NoSuchMethodException e5) {
getPrimaryClipMethod = manager.getClass()
.getMethod("getPrimaryClip", String.class, String.class, String.class, String.class, int.class, int.class,
boolean.class);
getMethodVersion = 5;
}
} }
} }
} }
@ -95,9 +102,11 @@ public final class ClipboardManager {
return (ClipData) method.invoke(manager, FakeContext.PACKAGE_NAME, null, FakeContext.ROOT_UID, 0); return (ClipData) method.invoke(manager, FakeContext.PACKAGE_NAME, null, FakeContext.ROOT_UID, 0);
case 3: case 3:
return (ClipData) method.invoke(manager, FakeContext.PACKAGE_NAME, FakeContext.ROOT_UID, null); return (ClipData) method.invoke(manager, FakeContext.PACKAGE_NAME, FakeContext.ROOT_UID, null);
default: case 4:
// The last boolean parameter is "userOperate" // The last boolean parameter is "userOperate"
return (ClipData) method.invoke(manager, FakeContext.PACKAGE_NAME, null, FakeContext.ROOT_UID, 0, true); return (ClipData) method.invoke(manager, FakeContext.PACKAGE_NAME, null, FakeContext.ROOT_UID, 0, true);
default:
return (ClipData) method.invoke(manager, FakeContext.PACKAGE_NAME, null, null, null, FakeContext.ROOT_UID, 0, true);
} }
} }