tree e2166978b73ca9efecc1dc5a5e2bf475728bd112
parent b7b2ec7eda4b100e75ef198f35617067b8728c38
author lllgm <527639282@qq.com> 1770765084 +0800
committer GitHub <noreply@github.com> 1770765084 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJpi7ssCRC1aQ7uu5UhlAAA7bsQAKTnnBM1NDv97JmqeYmURWyu
 AXsxt+sRU/iAjy+G0cs3z0EysUtKoCRJxrFzREswdvHORaUwTg0xvCpzoOnv5Tx7
 0ONizRvTx+aIX/ub1+UQajIFRm62NeGgeDZLrxmkWCVo6+JSYRu9Lx+CJjTir8zu
 1p6MVPuNq+efk9exO4MXFUE5b9xneSc3uuCUdRoTaVEuofh6wf40/rT3yFDc7N+o
 McEiZi8RIFyM0DczWe54YDY+hBcMByrZBwD+soCw06B+OVhY5zo5ils4moKW5Iwn
 9QgIqu+bqIBOHoQ1D73wnedQZ58MyLlqNk6xCoHZ3ran2Z9twfd4rtQ0MYAjAvdf
 sLdbCIZeEkI2l8EYFfnIo4BWHvw6ylhUDsPBDNLhwDDzTQHLAyHUDkb9gp+pMjRw
 84wMDV9vr8Xbjk6kl/VKgx+0dEWaKr4wTcsLB2kIgyBpCoEDNRTUQPwPZYazFJjg
 DrixeNuToIXd9v7/9k59k/XF6VDxcg621imFThuKxZm4JOrttMbW65no0J0p3SN4
 eBtHfrpLw/pux0n1n5zz8hhEnL8XvLCX/v/gffd42qxfnQKGh2+ngi8PQoGs5ky0
 jl+f4+8dURT32EWXn1/BX/fV3CktqwCbsZVI5WCL+oJjk8SnI1gT6JqCuCN/vZ2d
 O01EY5gb17/w8EEB8y6q
 =BQPw
 -----END PGP SIGNATURE-----
 

fix(android): add null check for textInputPlugin in FlutterView (#180386)

Prevents NPE in onProvideAutofillVirtualStructure when
attachToEngineAutomatically is false and autofill is triggered before
manual engine attachment.

Added null safety check with early return and debug warning. Maintains
backward compatibility.

Fixes:
flutter/flutter/issues/149792、https://github.com/flutter/flutter/issues/180383

<!--
Thanks for filing a pull request!
Reviewers are typically assigned within a week of filing a request.
To learn more about code review, see our documentation on Tree Hygiene:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
-->

*Replace this paragraph with a description of what this PR is changing
or adding, and why. Consider including before/after screenshots.*

*List which issues are fixed by this PR. You must list at least one
issue. An issue is not required if the PR fixes something trivial like a
typo.*

*If you had to change anything in the [flutter/tests] repo, include a
link to the migration guide as per the [breaking change policy].*

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [ ] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md