Skip to content

Mark JSPointerDispatcher and JSTouchDispatcher as open (#57022)#57022

Closed
cortinico wants to merge 1 commit into
mainfrom
nc/fix-nightly
Closed

Mark JSPointerDispatcher and JSTouchDispatcher as open (#57022)#57022
cortinico wants to merge 1 commit into
mainfrom
nc/fix-nightly

Conversation

@cortinico
Copy link
Copy Markdown
Contributor

@cortinico cortinico commented Jun 1, 2026

Summary:
The Java-to-Kotlin migration of these classes made them implicitly final (Kotlin default), breaking downstream libraries that subclass them (e.g. react-native-keyboard-controller's JSPointerDispatcherCompat).

Adding open restores the pre-migration extensibility.

Changelog:

[ANDROID] [CHANGED] - Mark JSPointerDispatcher and JSTouchDispatcher as open

Test Plan: CI

Reviewed By: javache

Differential Revision: D107089429

Pulled By: cortinico

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Jun 1, 2026
@facebook-github-tools facebook-github-tools Bot added p: Facebook Partner: Facebook Partner labels Jun 1, 2026
@meta-codesync
Copy link
Copy Markdown

meta-codesync Bot commented Jun 1, 2026

@cortinico has imported this pull request. If you are a Meta employee, you can view this in D107089429.

Summary:
The Java-to-Kotlin migration of these classes made them implicitly final (Kotlin default), breaking downstream libraries that subclass them (e.g. react-native-keyboard-controller's JSPointerDispatcherCompat).

Adding `open` restores the pre-migration extensibility.

## Changelog:

[ANDROID] [CHANGED] - Mark JSPointerDispatcher and JSTouchDispatcher as open


Test Plan: CI

Reviewed By: javache

Differential Revision: D107089429

Pulled By: cortinico
@meta-codesync meta-codesync Bot changed the title Mark JSPointerDispatcher and JSTouchDispatcher as open Mark JSPointerDispatcher and JSTouchDispatcher as open (#57022) Jun 1, 2026
@meta-codesync
Copy link
Copy Markdown

meta-codesync Bot commented Jun 1, 2026

@cortinico has exported this pull request. If you are a Meta employee, you can view the originating Diff in D107089429.

kirillzyusko pushed a commit to kirillzyusko/react-native-keyboard-controller that referenced this pull request Jun 1, 2026
## 📜 Description

JSPointerDispatcher became a final Kotlin class in React Native 0.87+
(after the Java-to-Kotlin migration in
facebook/react-native#56910), so
JSPointerDispatcherCompat can no longer extend it.

While I'm restoring it in:
- facebook/react-native#57022

Ideally we would want to reduce the API surface of RN apis. 

So here I'm switching from inheritance to composition by holding an
internal
JSPointerDispatcher delegate and forwarding calls to it.

## 🤔 How Has This Been Tested?

Looking for guidance on how to test this.

<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran
to -->
<!-- see how your change affects other areas of the code, etc. -->

## 📸 Screenshots (if appropriate):

N/A

<!-- Add screenshots/video if needed -->
<!-- That would be highly appreciated if you can add how it looked
before and after your changes -->

## 📝 Checklist

- [ ] CI successfully passed
- [ ] I added new mocks and corresponding unit-tests if library API was
changed
@cortinico
Copy link
Copy Markdown
Contributor Author

Abandoning as no longer needed

@cortinico cortinico closed this Jun 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported meta-exported p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant