Break dependency cycle of FlutterViewController <-> FlutterPlatformView (#52271)

Trying to migrate the iOS embedder MRC to ARC, I'm attempting to break some dependency cycles so it's easier to migrate the "leaf" dependencies to ARC, working my way up.

The cycle is:
**`FlutterViewController`** -> `FlutterView` -> `FlutterPlatformView` ->  (Before this PR)**`FlutterViewController`** 

`FlutterViewController` depends on many other large MRC classes, like FlutterEngine., so I'd like to pull that one out so `FlutterView`, `FlutterPlatformView`, and `FlutterOverlayView` can be migrated to ARC in a smaller PR.

`FlutterPlatformView` only depends on `FlutterViewController` in this one place, casting a `UIViewController` and calling `-forceTouchesCancelled:`.  

https://github.com/flutter/engine/blob/55670b71eb00fbe80601b7227f68c1df4cae827b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm#L1201

Instead, move `-forceTouchesCancelled:` to the existing `FlutterViewResponder` protocol with the other touch events, which `FlutterViewController` already implements.  The cast can then be removed, breaking the cycle.

Clean up all the imports.

Part of https://github.com/flutter/flutter/issues/137801, though this doesn't actually migrate anything to ARC.
11 files changed
tree: db31a434b19c9dbd67b48ebf8ce1af311b0bea60
  1. .github/
  2. assets/
  3. benchmarking/
  4. bin/
  5. build/
  6. build_overrides/
  7. ci/
  8. common/
  9. display_list/
  10. docs/
  11. examples/
  12. flow/
  13. flutter_frontend_server/
  14. flutter_vma/
  15. fml/
  16. impeller/
  17. lib/
  18. runtime/
  19. shell/
  20. skia/
  21. sky/
  22. testing/
  23. third_party/
  24. tools/
  25. vulkan/
  26. wasm/
  27. web_sdk/
  28. .ci.yaml
  29. .clang-format
  30. .clang-tidy
  31. .clangd
  32. .engine-release.version
  33. .gitattributes
  34. .gitignore
  35. .pylintrc
  36. .style.yapf
  37. analysis_options.yaml
  38. AUTHORS
  39. BUILD.gn
  40. CODEOWNERS
  41. CONTRIBUTING.md
  42. DEPS
  43. Doxyfile
  44. LICENSE
  45. README.md
README.md

Flutter Engine

Flutter CI Status OpenSSF Scorecard SLSA 1

Flutter is Google's SDK for crafting beautiful, fast user experiences for mobile, web, and desktop from a single codebase. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source.

The Flutter Engine is a portable runtime for hosting Flutter applications. It implements Flutter's core libraries, including animation and graphics, file and network I/O, accessibility support, plugin architecture, and a Dart runtime and compile toolchain. Most developers will interact with Flutter via the Flutter Framework, which provides a modern, reactive framework, and a rich set of platform, layout and foundation widgets.

If you want to run/contribute to Flutter Web engine, more tooling can be found at felt. This is a tool written to make web engine development experience easy.

If you are new to Flutter, then you will find more general information on the Flutter project, including tutorials and samples, on our Web site at Flutter.dev. For specific information about Flutter's APIs, consider our API reference which can be found at the docs.flutter.dev.

Flutter is a fully open source project, and we welcome contributions. Information on how to get started can be found at our contributor guide.