-
Notifications
You must be signed in to change notification settings - Fork 3.6k
[image_picker] Remove MethodCall from most Android code #3438
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[image_picker] Remove MethodCall from most Android code #3438
Conversation
02706ab to
889e0bd
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The previous code treated quality at a nullable value until the very bottom layer where it was used, at which point null and 100 were actually handled the same, so I moved that logic into this layer to simplify things.
| @Test | ||
| public void ImageCache_ShouldBeAbleToSetAndGetQuality() { | ||
| when(mockMethodCall.argument(MAP_KEY_IMAGE_QUALITY)).thenReturn(IMAGE_QUALITY); | ||
| public void imageCache_shouldBeAbleToSetAndGetQuality() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since I was touching most of the tests anyway, I fixed their names to follow Google Java style.
tarrinneal
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is going to be a solid improvement in design for sure!
* origin/main: [image_picker] Remove MethodCall from most Android code (flutter#3438) add missing_enum_constant_in_switch (flutter#3435) [go_router_builder] Generate the enum map for enum used in iterable (flutter#3415) [pigeon] finish kotlin and swift safe cast removal (flutter#3360) [tool] Include examples when pathifying deps (flutter#3393) url change for platform interface (flutter#3323) # Conflicts: # packages/pigeon/CHANGELOG.md
[image_picker] Remove MethodCall from most Android code
The current code passes
MethodCallobjects across multiple layers of code, and retains them to store state during the intent process, which makes adopting Pigeon very difficult. This refactors the code to extract all relevantMethodCallinformation at the initial call site, and passes/stores specific data objects instead. This improves type safety at other layers, and lays the foundation for a later PR that switches to Pigeon.The new data classes added here will likely be replaced by Pigeon-generated classes during that conversion, but doing this refactoring as a separate step should make reviewing each part much easier, so adding a couple of trivial temporary classes seemed like a reasonable tradeoff.
Pre-launch Checklist
dart format.)[shared_preferences]pubspec.yamlwith an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.CHANGELOG.mdto add a description of the change, following repository CHANGELOG style.///).