Skip to content

[url_launcher] Set broadcast reciever visability as required by target api 34 #3973

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

Merged

Conversation

reidbaker
Copy link
Contributor

@reidbaker reidbaker commented May 12, 2023

  • Update the version of androidx used.
  • Explicitly set Exported on previously exported broadcast reciever
    126460

This change is a no-op in behavior. I am open to the argument that instead we make this configurable.

https://developer.android.com/guide/components/broadcasts#context-registered-receivers

Pre-launch Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I read the [Tree Hygiene] wiki page, which explains my responsibilities.
  • I read and followed the [relevant style guides] and ran the auto-formatter. (Unlike the flutter/flutter repo, the flutter/packages repo does use dart format.)
  • I signed the [CLA].
  • The title of the PR starts with the name of the package surrounded by square brackets, e.g. [shared_preferences]
  • I listed at least one issue that this PR fixes in the description above.
  • I updated pubspec.yaml with an appropriate new version according to the [pub versioning philosophy], or this PR is [exempt from version changes].
  • I updated CHANGELOG.md to add a description of the change, [following repository CHANGELOG style].
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is [test-exempt].
  • All existing and new tests are passing.

@reidbaker reidbaker marked this pull request as ready for review May 12, 2023 16:45
@reidbaker reidbaker requested a review from gmackall as a code owner May 12, 2023 16:45
@flutter-dashboard
Copy link

It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption to this rule, contact Hixie on the #hackers channel in Chat (don't just cc him here, he won't see it! He's on Discord!).

If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix?

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.

@@ -144,6 +145,11 @@ public void onCreate(@Nullable Bundle savedInstanceState) {

// Register receiver that may finish this Activity.
registerReceiver(broadcastReceiver, closeIntentFilter);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we still need this version?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, removed.

Copy link
Contributor

@stuartmorgan-g stuartmorgan-g left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! One nit I missed before.

@@ -1,3 +1,7 @@
## 6.0.33

* Explicitly set if reciever for close should be exported.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: sets
(Per repo changelog style guide)

@Hixie
Copy link
Contributor

Hixie commented May 12, 2023

test-exempt: SDK34 is only in beta and is not yet in our testing matrix; this will be tested once SDK34 is part of our normal testing regime.

@reidbaker reidbaker added the autosubmit Merge PR when tree becomes green via auto submit App label May 12, 2023
@auto-submit auto-submit bot merged commit 5763d44 into flutter:main May 12, 2023
@reidbaker reidbaker deleted the i126460-recievers-export-url-launcher branch May 12, 2023 21:01
@stuartmorgan-g
Copy link
Contributor

FYI this caused OOB breakage for us when it was published: https://github.com/flutter/packages/runs/13447851341

e: [...]/annotation.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: [...]/kotlin-stdlib-jdk7.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: [...]/kotlin-stdlib-jdk8.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.

It has a very clear error message from flutter tooling though, so I don't think we need to revert or retract; affected clients will have an obvious, actionable way to fix it:

┌─ Flutter Fix ──────────────────────────────────────────────────────────────────────────────┐
│ [!] Your project requires a newer version of the Kotlin Gradle plugin.                     │
│ Find the latest version on https://kotlinlang.org/docs/releases.html#release-details, then │
│ update /Users/stuartmorgan/src/packages/packages/go_router/example/android/build.gradle:   │
│ ext.kotlin_version = '<latest-version>'                                                    │
└────────────────────────────────────────────────────────────────────────────────────────────┘

I can repro locally; it appears that having an explicit kotlin_version of 1.6.x in an app conflicts with this; interestingly I only have to update to 1.7.x (I used 1.7.10, which is what current flutter create uses) to make it work, even though the trigger is using 1.8.x

I'll update all our examples that have a Kotlin version to 1.7.10, but we may need to do the same in flutter/flutter/

stuartmorgan-g added a commit that referenced this pull request May 15, 2023
#3973 caused an out-of-band
failure after publishing, because an example that uses `url_launcher`
had a too-old Kotlin version set. This is not something we consider
client-breaking because `flutter` prodives a very clear error message
with a straightforward and actionable fix step (update the app's Kotlin
version), so the fix for the breakage is just to update our own
examples.

Since increasingly we're likely to hit problems where modern version of
dependencies don't work with old version of Kotlin, this adds repo-wide
CI enforcement that examples are set to a minimum version (matching the
current `flutter/flutter` template; we can increase this over time as we
feel it's useful to do so).
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request May 15, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request May 15, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request May 15, 2023
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request May 15, 2023
flutter/packages@6328cfb...6608b60

2023-05-15 stuartmorgan@google.com [ci] Remove unnecessary Linux libraries (flutter/packages#3975)
2023-05-15 stuartmorgan@google.com [ci] Enforce a minimum Kotlin version in examples (flutter/packages#3979)
2023-05-15 stuartmorgan@google.com [ci] Disable Windows repo tool tests (flutter/packages#3980)
2023-05-12 stuartmorgan@google.com [ci] Add LUCI repo tool tests (flutter/packages#3964)
2023-05-12 reidbaker@google.com [url_launcher] Set broadcast reciever visability as required by target api 34 (flutter/packages#3973)
2023-05-12 reidbaker@google.com Update build.gradle with a comment explaining version (flutter/packages#3972)
2023-05-12 engine-flutter-autoroll@skia.org Roll Flutter from 8c5a1ea to a76dbe4 (12 revisions) (flutter/packages#3958)
2023-05-12 stuartmorgan@google.com [image_picker] Fix Android lints (flutter/packages#3887)
2023-05-12 stuartmorgan@google.com [various] Update minimum Flutter version to 3.3 (flutter/packages#3967)
2023-05-12 stuartmorgan@google.com [tool] Target specific Android unit tests (flutter/packages#3955)
2023-05-12 34871572+gmackall@users.noreply.github.com [camerax] Add a dependency on kotlin-bom to align versions of kotlin-stdlib (flutter/packages#3960)
2023-05-12 stuartmorgan@google.com [local_auth] Improve iOS test DI (flutter/packages#3959)
2023-05-12 stuartmorgan@google.com [ci] Ensure scripts fail if a command fails (flutter/packages#3963)
2023-05-11 stuartmorgan@google.com [ci] Pin the Flutter version for `release` (flutter/packages#3965)
2023-05-11 tarrinneal@gmail.com [video_player] foundation - reduce seek accuracy to fix seek to end bug (flutter/packages#3784)
2023-05-11 stuartmorgan@google.com [image_picker] Fix use_build_context_synchronously violations (flutter/packages#3969)
2023-05-11 stuartmorgan@google.com [tool] Ensure that publish credential path is available (flutter/packages#3970)
2023-05-11 63286031+ahmednfwela@users.noreply.github.com [go_router] change `fix_data.yaml` uris to be absolute to fix lints (flutter/packages#3877)
2023-05-11 stuartmorgan@google.com [tool] Use new pub cache location for publish (flutter/packages#3962)
2023-05-10 engine-flutter-autoroll@skia.org Roll Flutter (stable) from f72efea to 84a1e90 (1920 revisions) (flutter/packages#3961)
2023-05-10 andrelvsousa@gmail.com [image_picker_android] Improved Bitmap resize on Android (flutter/packages#3423)
2023-05-10 43054281+camsim99@users.noreply.github.com [camerax] Add Kotlin duplicate classes known error to README.md (flutter/packages#3957)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC flutter-ecosystem@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
reidbaker added a commit that referenced this pull request May 17, 2023
CaseyHillers pushed a commit to CaseyHillers/flutter that referenced this pull request May 24, 2023
flutter/packages@6328cfb...6608b60

2023-05-15 stuartmorgan@google.com [ci] Remove unnecessary Linux libraries (flutter/packages#3975)
2023-05-15 stuartmorgan@google.com [ci] Enforce a minimum Kotlin version in examples (flutter/packages#3979)
2023-05-15 stuartmorgan@google.com [ci] Disable Windows repo tool tests (flutter/packages#3980)
2023-05-12 stuartmorgan@google.com [ci] Add LUCI repo tool tests (flutter/packages#3964)
2023-05-12 reidbaker@google.com [url_launcher] Set broadcast reciever visability as required by target api 34 (flutter/packages#3973)
2023-05-12 reidbaker@google.com Update build.gradle with a comment explaining version (flutter/packages#3972)
2023-05-12 engine-flutter-autoroll@skia.org Roll Flutter from 8c5a1ea to a76dbe4 (12 revisions) (flutter/packages#3958)
2023-05-12 stuartmorgan@google.com [image_picker] Fix Android lints (flutter/packages#3887)
2023-05-12 stuartmorgan@google.com [various] Update minimum Flutter version to 3.3 (flutter/packages#3967)
2023-05-12 stuartmorgan@google.com [tool] Target specific Android unit tests (flutter/packages#3955)
2023-05-12 34871572+gmackall@users.noreply.github.com [camerax] Add a dependency on kotlin-bom to align versions of kotlin-stdlib (flutter/packages#3960)
2023-05-12 stuartmorgan@google.com [local_auth] Improve iOS test DI (flutter/packages#3959)
2023-05-12 stuartmorgan@google.com [ci] Ensure scripts fail if a command fails (flutter/packages#3963)
2023-05-11 stuartmorgan@google.com [ci] Pin the Flutter version for `release` (flutter/packages#3965)
2023-05-11 tarrinneal@gmail.com [video_player] foundation - reduce seek accuracy to fix seek to end bug (flutter/packages#3784)
2023-05-11 stuartmorgan@google.com [image_picker] Fix use_build_context_synchronously violations (flutter/packages#3969)
2023-05-11 stuartmorgan@google.com [tool] Ensure that publish credential path is available (flutter/packages#3970)
2023-05-11 63286031+ahmednfwela@users.noreply.github.com [go_router] change `fix_data.yaml` uris to be absolute to fix lints (flutter/packages#3877)
2023-05-11 stuartmorgan@google.com [tool] Use new pub cache location for publish (flutter/packages#3962)
2023-05-10 engine-flutter-autoroll@skia.org Roll Flutter (stable) from f72efea to 84a1e90 (1920 revisions) (flutter/packages#3961)
2023-05-10 andrelvsousa@gmail.com [image_picker_android] Improved Bitmap resize on Android (flutter/packages#3423)
2023-05-10 43054281+camsim99@users.noreply.github.com [camerax] Add Kotlin duplicate classes known error to README.md (flutter/packages#3957)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC flutter-ecosystem@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
nploi pushed a commit to nploi/packages that referenced this pull request Jul 16, 2023
…t api 34 (flutter#3973)

- Update the version of androidx used.
- Explicitly set Exported on previously exported broadcast reciever
[126460](flutter/flutter#126460)

This change is a no-op in behavior. I am open to the argument that instead we make this configurable. 

https://developer.android.com/guide/components/broadcasts#context-registered-receivers
nploi pushed a commit to nploi/packages that referenced this pull request Jul 16, 2023
flutter#3973 caused an out-of-band
failure after publishing, because an example that uses `url_launcher`
had a too-old Kotlin version set. This is not something we consider
client-breaking because `flutter` prodives a very clear error message
with a straightforward and actionable fix step (update the app's Kotlin
version), so the fix for the breakage is just to update our own
examples.

Since increasingly we're likely to hit problems where modern version of
dependencies don't work with old version of Kotlin, this adds repo-wide
CI enforcement that examples are set to a minimum version (matching the
current `flutter/flutter` template; we can increase this over time as we
feel it's useful to do so).
auto-submit bot pushed a commit that referenced this pull request Aug 9, 2023
fixed [#flutter/flutter/issues/126460 ](flutter/flutter#126460)
Reland of #3973 which incorrectly used application context when registering and not when unregistering. This pr uses activity context for both which is aligned with what the behavior was before. 

- Register on the same context as  unregister
- Add integration test for android url launch and close

Tested with manual test and new integration test.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autosubmit Merge PR when tree becomes green via auto submit App needs tests p: url_launcher platform-android
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants