mirror of
https://github.com/flutter/packages.git
synced 2025-07-02 08:34:31 +08:00
7911 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
c0b4cda19d |
[ci] Adds @matanlurey to some Android CODEOWNERS until Impeller is enabled. (#7014)
I.e. until https://github.com/flutter/flutter/issues/151018 is completed. I know this is not foolproof, but I'm hoping it at least keeps me on top of whatever needs to change in the meantime. |
|||
0e3460cba2 |
[video_player] Bumps web implementation dependency. (#7015)
Updates minimum web implementation version to ensure support for the new `webOptions` exposed in the previous release. ## Issues: * Described here: https://github.com/flutter/flutter/issues/150327#issuecomment-2197399790video_player-v2.9.1 |
|||
b63626c31b |
Manual roll Flutter from 15f95ce0c38e to 651a17db5427 (7 revisions) (#7013)
Manual roll requested by dit@google.com
|
|||
9fc86273b3 |
[flutter_markdown] Add horizontal scroll for markdown table (#6983)
Add horizontal scroll for markdown table when using `tableColumnWidth: FixedColumnWidth(width)` Fix [flutter/flutter#129052](https://github.com/flutter/flutter/issues/129052)flutter_markdown-v0.7.3 |
|||
d43a827c3b |
Bump ossf/scorecard-action from 2.3.1 to 2.3.3 (#6709)
Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 2.3.1 to 2.3.3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/ossf/scorecard-action/releases">ossf/scorecard-action's releases</a>.</em></p> <blockquote> <h2>v2.3.3</h2> <blockquote> <p>[!NOTE]<br /> There is no v2.3.2 release as a step was skipped in the release process. This was fixed and re-released under the v2.3.3 tag</p> </blockquote> <h2>What's Changed</h2> <ul> <li>🌱 Bump github.com/ossf/scorecard/v4 (v4.13.1) to github.com/ossf/scorecard/v5 (v5.0.0-rc1) by <a href="https://github.com/spencerschrock"><code>@âspencerschrock</code></a> in <a href="https://redirect.github.com/ossf/scorecard-action/pull/1366">ossf/scorecard-action#1366</a></li> <li>🌱 Bump github.com/ossf/scorecard/v5 from v5.0.0-rc1 to v5.0.0-rc2 by <a href="https://github.com/spencerschrock"><code>@âspencerschrock</code></a> in <a href="https://redirect.github.com/ossf/scorecard-action/pull/1374">ossf/scorecard-action#1374</a></li> <li>🌱 Bump github.com/ossf/scorecard/v5 from v5.0.0-rc2 to v5.0.0-rc2.0.20240509182734-7ce860946928 by <a href="https://github.com/spencerschrock"><code>@âspencerschrock</code></a> in <a href="https://redirect.github.com/ossf/scorecard-action/pull/1377">ossf/scorecard-action#1377</a></li> </ul> <p>For a full changelist of what these include, see the <a href="https://github.com/ossf/scorecard/releases/tag/v5.0.0-rc1">v5.0.0-rc1</a> and <a href="https://github.com/ossf/scorecard/releases/tag/v5.0.0-rc2">v5.0.0-rc2</a> release notes.</p> <h3>Documentation</h3> <ul> <li>📖 Move token discussion out of main README. by <a href="https://github.com/spencerschrock"><code>@âspencerschrock</code></a> in <a href="https://redirect.github.com/ossf/scorecard-action/pull/1279">ossf/scorecard-action#1279</a></li> <li>📖 link to <code>ossf/scorecard</code> workflow instead of maintaining an example by <a href="https://github.com/spencerschrock"><code>@âspencerschrock</code></a> in <a href="https://redirect.github.com/ossf/scorecard-action/pull/1352">ossf/scorecard-action#1352</a></li> <li>📖 update api links to new scorecard.dev site by <a href="https://github.com/spencerschrock"><code>@âspencerschrock</code></a> in <a href="https://redirect.github.com/ossf/scorecard-action/pull/1376">ossf/scorecard-action#1376</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/ossf/scorecard-action/compare/v2.3.1...v2.3.3">https://github.com/ossf/scorecard-action/compare/v2.3.1...v2.3.3</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
|||
90a5444449 |
[google_maps_flutter] Fix Obj-C type handling (#7010)
Eliminates the remaining google_maps_flutter cases of the once-common-in-this-repo type abuse of getting a value from a method channel arguments dictionary that may either be type `T` or `NSNull`, but assigning directly to a variable of type `T`, and then later comparing that variable to `NSNull` with a cast to silence the (correct) warning from the compiler. Longer term this will be eliminated entirely when the Pigeon conversion is complete, but currently I expect that in the short term we will only do a "shallow" Pigeon conversion (see https://github.com/flutter/packages/pull/6980 for an Android example), meaning this code will likely stay around for a while.google_maps_flutter_ios-v2.8.1 |
|||
e50f45013a |
Manual roll Flutter from e726eb401c2c to 15f95ce0c38e (48 revisions) (#7002)
Manual roll Flutter from e726eb401c2c to 15f95ce0c38e (48 revisions)
Manual roll requested by dit@google.com
|
|||
412ec4615a |
Bump github/codeql-action from 3.25.6 to 3.25.10 (#6924)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.6 to 3.25.10. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/github/codeql-action/blob/main/CHANGELOG.md">github/codeql-action's changelog</a>.</em></p> <blockquote> <h1>CodeQL Action Changelog</h1> <p>See the <a href="https://github.com/github/codeql-action/releases">releases page</a> for the relevant changes to the CodeQL CLI and language packs.</p> <p>Note that the only difference between <code>v2</code> and <code>v3</code> of the CodeQL Action is the node version they support, with <code>v3</code> running on node 20 while we continue to release <code>v2</code> to support running on node 16. For example <code>3.22.11</code> was the first <code>v3</code> release and is functionally identical to <code>2.22.11</code>. This approach ensures an easy way to track exactly which features are included in different versions, indicated by the minor and patch version numbers.</p> <h2>[UNRELEASED]</h2> <p>No user facing changes.</p> <h2>3.25.10 - 13 Jun 2024</h2> <ul> <li>Update default CodeQL bundle version to 2.17.5. <a href="https://redirect.github.com/github/codeql-action/pull/2327">#2327</a></li> </ul> <h2>3.25.9 - 12 Jun 2024</h2> <ul> <li>Avoid failing database creation if the database folder already exists and contains some unexpected files. Requires CodeQL 2.18.0 or higher. <a href="https://redirect.github.com/github/codeql-action/pull/2330">#2330</a></li> <li>The init Action will attempt to clean up the database cluster directory before creating a new database and at the end of the job. This will help to avoid issues where the database cluster directory is left in an inconsistent state. <a href="https://redirect.github.com/github/codeql-action/pull/2332">#2332</a></li> </ul> <h2>3.25.8 - 04 Jun 2024</h2> <ul> <li>Update default CodeQL bundle version to 2.17.4. <a href="https://redirect.github.com/github/codeql-action/pull/2321">#2321</a></li> </ul> <h2>3.25.7 - 31 May 2024</h2> <ul> <li>We are rolling out a feature in May/June 2024 that will reduce the Actions cache usage of the Action by keeping only the newest TRAP cache for each language. <a href="https://redirect.github.com/github/codeql-action/pull/2306">#2306</a></li> </ul> <h2>3.25.6 - 20 May 2024</h2> <ul> <li>Update default CodeQL bundle version to 2.17.3. <a href="https://redirect.github.com/github/codeql-action/pull/2295">#2295</a></li> </ul> <h2>3.25.5 - 13 May 2024</h2> <ul> <li>Add a compatibility matrix of supported CodeQL Action, CodeQL CLI, and GitHub Enterprise Server versions to the <a href="https://github.com/github/codeql-action/blob/main/README.md">https://github.com/github/codeql-action/blob/main/README.md</a>. <a href="https://redirect.github.com/github/codeql-action/pull/2273">#2273</a></li> <li>Avoid printing out a warning for a missing <code>on.push</code> trigger when the CodeQL Action is triggered via a <code>workflow_call</code> event. <a href="https://redirect.github.com/github/codeql-action/pull/2274">#2274</a></li> <li>The <code>tools: latest</code> input to the <code>init</code> Action has been renamed to <code>tools: linked</code>. This option specifies that the Action should use the tools shipped at the same time as the Action. The old name will continue to work for backwards compatibility, but we recommend that new workflows use the new name. <a href="https://redirect.github.com/github/codeql-action/pull/2281">#2281</a></li> </ul> <h2>3.25.4 - 08 May 2024</h2> <ul> <li>Update default CodeQL bundle version to 2.17.2. <a href="https://redirect.github.com/github/codeql-action/pull/2270">#2270</a></li> </ul> <h2>3.25.3 - 25 Apr 2024</h2> <ul> <li>Update default CodeQL bundle version to 2.17.1. <a href="https://redirect.github.com/github/codeql-action/pull/2247">#2247</a></li> <li>Workflows running on <code>macos-latest</code> using CodeQL CLI versions before v2.15.1 will need to either upgrade their CLI version to v2.15.1 or newer, or change the platform to an Intel MacOS runner, such as <code>macos-12</code>. ARM machines with SIP disabled, including the newest <code>macos-latest</code> image, are unsupported for CLI versions before 2.15.1. <a href="https://redirect.github.com/github/codeql-action/pull/2261">#2261</a></li> </ul> <h2>3.25.2 - 22 Apr 2024</h2> <p>No user facing changes.</p> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
|||
6b024cab55 |
[video_player] Exposes VideoPlayerWebOptions. (#6990)
Exports types `VideoPlayerWebOptions` and `VideoPlayerWebOptionsControls` to customize the `webOptions` field in `VideoPlayerOptions` objects. Forwards `webOptions` to the web implementation. ## Usage Can be used as follows: ```dart _controller = VideoPlayerController.asset( 'assets/Butterfly-209.mp4', videoPlayerOptions: const VideoPlayerOptions( webOptions: VideoPlayerWebOptions( controls: VideoPlayerWebOptionsControls.enabled( allowDownload: false, allowFullscreen: false, allowPlaybackRate: false, allowPictureInPicture: false, ), allowContextMenu: false, allowRemotePlayback: false, ), ), ); ``` <img width="967" alt="Bildschirmfoto 2023-07-06 um 17 04 59" src="https://github.com/flutter/packages/assets/13286425/0fa92713-11cb-4073-86cf-2ea4ba486a6c"> ## Issues * Fixes: https://github.com/flutter/flutter/issues/150327 * Fixes: https://github.com/flutter/flutter/issues/64397 * Fixes: https://github.com/flutter/flutter/issues/62192 * Fixes part of: https://github.com/flutter/flutter/issues/88151 * Lands: https://github.com/flutter/packages/pull/3259 (adds missing test) Co-authored-by: James Leahy <defuncart@gmail.com>video_player-v2.9.0 |
|||
a9240e6558 |
[ci] Add Wasm compilation to all_packages web app. (#6981)
Adds a "--wasm" mode to create and build "all_packages" app to verify all our plugins compile with Wasm. Except not all do for now, so this also adds a "exclude_all_packages_app_wasm.yaml" file that allows us to remove the packages that aren't fully compatible yet. ## Issues * Fixes: https://github.com/flutter/flutter/issues/150748 * Related: https://github.com/flutter/flutter/issues/117022 * Related: https://github.com/flutter/flutter/issues/148624 |
|||
62e1963cf7 |
[interactive_media_ads] Updates README with a usage section and fix some interface docs (#6988)
Part of https://github.com/flutter/flutter/issues/134228interactive_media_ads-v0.0.2+1 |
|||
69e7fc1590 |
[tools] Fix vm test requirement (#6995)
The logic for handling Dart unit test `test_on` directives was incorrect, causing it to skip packages that required vm testing, even when run in vm mode. This PR: - Adds the missing tests for false negatives. - Reworks the logic to explicitly fail for anything that isn't one of the exact patterns we are expecting, to make it much harder to re-introduce a bug like this in the future. |
|||
5549ebaaaa |
Update web_benchmarks package to properly support wasm. (#6970)
This fixes the web_benchmarks package so it can compile and run apps with wasm. It also updates our CI steps to use a newer version of Chrome so that WasmGC works properly.web_benchmarks-v2.0.0 |
|||
50ad6ee0da |
[pigeon] Implement equals for Java data classes (#6992)
Adds implementations of `equals` and `hashCode` to Java data classes. This is frequently useful for native unit tests of plugins using Pigeon (e.g., when using a mock FlutterApi implementation to check that the expected call is being made with the right arguments). Part of https://github.com/flutter/flutter/issues/118087pigeon-v20.0.2 |
|||
161277461a |
Final refactor of video_player_android before SurfaceProducer#setCallback . (#6982)
I'm working on re-landing https://github.com/flutter/packages/pull/6456, this time without using the `ActivityAware` interface (see https://github.com/flutter/flutter/issues/148417). As part of that work, I'll need to better control the `ExoPlayer` lifecycle and save/restore internal state. Follows the patterns of some of the previous PRs, i.e. - https://github.com/flutter/packages/pull/6922 - https://github.com/flutter/packages/pull/6908 The changes in this PR are _mostly_ tests, it was extremely difficult to just add more tests to the already very leaky `VideoPlayer` abstraction which had lots of `@VisibleForTesting` methods and other "holes" to observe state. This PR removes all of that, and adds test coverage where it was missing. Namely it: - Adds a new class, `VideoAsset`, that builds and configures the media that `ExoPlayer` uses. - Removes all "testing" state from `VidePlayer`, keeping it nearly immutable. - Added tests for most of the classes I've added since, which were mostly missing. That being said, this is a large change. I'm happy to sit down with either of you and walk through it. --- Opening as a draft for the moment, since there is a pubspec change needing I want to handle first. |
|||
eb0e54ab7d |
[pigeon] Update testing and docs (#6984)
Minor improvements for contributors: - Explicitly log failure of a test suite. Depeending on the generator and the failure, it may not be obvious (e.g., gtest crashes, which just don't have any output). - Clarify `test.dart` vs `run_tests.dart`, and mention the `-t` and `-l` flags. - Add newer generators to the source list. |
|||
71b2f6829c |
[various] Update flutter.dev links to more reliable destinations (#6963)
Contributes to https://github.com/flutter/website/issues/10363 by updating to the latest links and updating some links to use new `/to/` links that can be updated as needed. |
|||
f80cab42d5 |
[interactive_media_ads] Adds initial Android implementation (#6733)
Android implementation for https://github.com/flutter/flutter/issues/134228interactive_media_ads-v0.0.2 |
|||
e9a3fcc97d |
Roll Flutter from 6c06abbb5576 to e726eb401c2c (51 revisions) (#6987)
Roll Flutter from 6c06abbb5576 to e726eb401c2c (51 revisions)
|
|||
03f5f6d566 |
[interactive_media_ads] Fix README badge image URL (#6979)
Fixes the source of the pub version badge. Fixes https://github.com/flutter/flutter/issues/150719interactive_media_ads-v0.0.1+3 |
|||
b4d79b5630 |
[multicast_dns] Optimized Socket Binding: Always bind to 0.0.0.0 for simplicity and efficiency - #79772 (#6700)
I encountered this package long time ago (see linked issue below) and there were cases where it wasn't working. After 3 years (yeah it's more time than expected) I managed to find the time to dust off `wireshark` and have look again. # Preamble Considering the following setup <img width="565" alt="image" src="https://github.com/flutter/packages/assets/36191829/357c4d75-cc04-4848-ad88-757c9df25ad4"> Where Raspberry pi runs a `mDNS` service using the following `go`: <details><summary>main.go</summary> <p> ```go package main import ( "fmt" "github.com/hashicorp/mdns" "os" "net/http" ) func health(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "ok") } func main() { hostname, err := os.Hostname() if err != nil { panic(fmt.Sprintf("Error getting current hostname, description: %s", err.Error())) } info := []string{"mDNS get server"} service, err := mdns.NewMDNSService(hostname, "_test._tcp", "", "", 8080, nil, info) if err != nil { panic(fmt.Sprintf("Error while exporting the service, description: %s", err.Error())) } server, err := mdns.NewServer(&mdns.Config{Zone: service}) if err != nil { panic(fmt.Sprintf("Error while setting the discover server up, description: %s", err.Error())) } defer server.Shutdown() http.HandleFunc("/", health) http.ListenAndServe(":8081",nil) } ``` </p> </details> Considering the following client (which I got from [here](https://pub.dev/packages/multicast_dns/example)): <details><summary>client.dart</summary> <p> ```dart // Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Example script to illustrate how to use the mdns package to discover the port // of a Dart observatory over mDNS. // ignore_for_file: avoid_print import 'package:multicast_dns/multicast_dns.dart'; Future<void> main() async { // Parse the command line arguments. const String name = '_test._tcp.local'; final MDnsClient client = MDnsClient(); // Start the client with default options. await client.start(); // Get the PTR record for the service. await for (final PtrResourceRecord ptr in client .lookup<PtrResourceRecord>(ResourceRecordQuery.serverPointer(name))) { // Use the domainName from the PTR record to get the SRV record, // which will have the port and local hostname. // Note that duplicate messages may come through, especially if any // other mDNS queries are running elsewhere on the machine. await for (final SrvResourceRecord srv in client.lookup<SrvResourceRecord>( ResourceRecordQuery.service(ptr.domainName))) { // Domain name will be something like "io.flutter.example@some-iphone.local._dartobservatory._tcp.local" final String bundleId = ptr.domainName; //.substring(0, ptr.domainName.indexOf('@')); print('Dart observatory instance found at ' '${srv.target}:${srv.port} for "$bundleId".'); } } client.stop(); print('Done.'); } ``` </p> </details> # What happens When running the client script (`dart run client.dart` so with the latest package of `multicast_dns` package) as is, a list of sockets is created which are bind to port `5353` and `IP`s: - `0.0.0.0`; - `127.0.0.1`; - `192.168.2.16`; - `172.17.0.1`; a list of interfaces (see list below) are _joined_ to the multicast socket which is bound to `0.0.0.0:5353`: - `lo` (with address `127.0.0.1`); - `wlan0` (with address `192.168.2.16`); - `docker0` (with address `172.17.0.1`). and eventually when `lookup` function is being called `QM`queries are being sent from `ALL` the sockets in the list; which means that for `0.0.0.0` the `IP` address chosen by the **operating system** will depend on various factors such as the routing table, the default network interface, and the specific configuration of the network interfaces on the machine. It could be sent from any of the `IP` addresses associated with the machine's network interfaces, including `IP` addresses assigned to physical network adapters or virtual interfaces. Using `Wireshark`, I can see that 2 `QM` packets are being sent and I can see that `mDNS` service is responding to the client with proper packet but it seems that the socket opened at `0.0.0.0:5353` is not reading them at all even though the socket is still open. ```shell Source Destination Protocol Length Info 192.168.2.16 224.0.0.251 MDNS 76 Standard query 0x0000 PTR _test._tcp.local, "QM" question 192.168.2.16 224.0.0.251 MDNS 76 Standard query 0x0000 PTR _test._tcp.local, "QM" question 192.168.2.7 192.168.2.16 MDNS 180 Standard query response 0x0000 PTR mdnsserv._test._tcp.local SRV 10 1 8080 mdnsserv A 127.0.1.1 TXT 192.168.2.7 192.168.2.16 MDNS 180 Standard query response 0x0000 PTR mdnsserv._test._tcp.local SRV 10 1 8080 mdnsserv A 127.0.1.1 TXT ``` # First approach (not sure if it's RFC 6762 friendly) I had the "_feeling_" that sending `QM` packets to `0.0.0.0:5353` and other interfaces on the same port would generate some _sort of unexpected behavior_ due to the nature of `0.0.0.0` which `IP` selections **depends on multiple factors**. Therefore I tried initially to change the `incoming` socket (the one bound to `0.0.0.0`) from: ```dart final RawDatagramSocket incoming = await _rawDatagramSocketFactory( listenAddress.address, selectedMDnsPort, reuseAddress: true, reusePort: true, ttl: 255, ); ``` to ``` dart final RawDatagramSocket incoming = await _rawDatagramSocketFactory( listenAddress.address, 0, reuseAddress: true, reusePort: true, ttl: 255, ); ``` which essentially delegates to `OS` to choose a **random** port (instead of forcing `5353`). In this case the client managed to process correctly all the packages for discovering the `mDNS` service, indeed in `Wireshark` I could see: ```shell Source Destination Protocol Length Info 192.168.2.16 224.0.0.251 MDNS 76 Standard query 0x0000 PTR _test._tcp.local, "QM" question 192.168.2.16 224.0.0.251 MDNS 76 Standard query 0x0000 PTR _test._tcp.local, "QM" question 192.168.2.7 192.168.2.16 MDNS 180 Standard query response 0x0000 PTR mdnsserv._test._tcp.local SRV 10 1 8080 mdnsserv A 127.0.1.1 TXT 192.168.2.7 192.168.2.16 MDNS 180 Standard query response 0x0000 PTR mdnsserv._test._tcp.local SRV 10 1 8080 mdnsserv A 127.0.1.1 TXT 192.168.2.16 224.0.0.251 MDNS 85 Standard query 0x0000 SRV mdnsserv._test._tcp.local, "QM" question 192.168.2.16 224.0.0.251 MDNS 85 Standard query 0x0000 SRV mdnsserv._test._tcp.local, "QM" question 192.168.2.7 192.168.2.16 MDNS 123 Standard query response 0x0000 SRV 10 1 8080 mdnsserv A 127.0.1.1 192.168.2.7 192.168.2.16 MDNS 123 Standard query response 0x0000 SRV 10 1 8080 mdnsserv A 127.0.1.1 ``` and on the client I could see the message: ```shell Dart observatory instance found at mdnsserv:8080 for "mdnsserv._test._tcp.local" ``` â ï¸ : Again, I'm not sure if it can be considered a _solution_ because I dunno is`RFC 6762` friendly, I checked some packages which implement `mDNS` clients and I saw some of them doing what I proposed. I would like to hear comments about it. # Second approach (which it's what is presented in this PR) After trying the first approach I realized that _maybe_ there is no need to open sockets on more interfaces (and therefore send `QM` messages) it maybe be enough to send and listen only on a socket bound to `0.0.0.0` since, again, listen on **ANY** `IP` and send packets from a selected `IP` address chosen by the `OS`. Also in this case the client managed to process correctly all the packages for discovering the `mDNS` service, indeed in `Wireshark` I could see: ```shell Source Destination Protocol Length Info 192.168.2.16 224.0.0.251 MDNS 76 Standard query 0x0000 PTR _test._tcp.local, "QM" question 192.168.2.7 192.168.2.16 MDNS 180 Standard query response 0x0000 PTR mdnsserv._test._tcp.local SRV 10 1 8080 mdnsserv A 127.0.1.1 TXT 192.168.2.16 224.0.0.251 MDNS 85 Standard query 0x0000 SRV mdnsserv._test._tcp.local, "QM" question 192.168.2.7 192.168.2.16 MDNS 123 Standard query response 0x0000 SRV 10 1 8080 mdnsserv A 127.0.1.1 ``` and on the client I could see the message: ```shell Dart observatory instance found at mdnsserv:8080 for "mdnsserv._test._tcp.local" ``` # Third approach (It did not work but mentioning for completeness) The idea here is to **don't send** `QM` packets via `0.0.0.0` but just **listen** on possible response/s since packets would be send via the following `IP`s and `0.0.0.0` should represent **ANY** `IP`. - `127.0.0.1`; - `192.168.2.16`; - `172.17.0.1`. # Fourth approach (It did not work but mentioning for completeness) Another solution that I tried but unfortunately it did not work, was to put `0.0.0.0` as **last** item in the socket list so `QM` packets would be sent according to the following order: - `127.0.0.1`; - `192.168.2.16`; - `172.17.0.1`; - `0.0.0.0`. <details><summary>multicast_dns.start() function</summary> <p> ```dart Future<void> start({ InternetAddress? listenAddress, NetworkInterfacesFactory? interfacesFactory, int mDnsPort = mDnsPort, InternetAddress? mDnsAddress, }) async { listenAddress ??= InternetAddress.anyIPv4; interfacesFactory ??= allInterfacesFactory; assert(listenAddress.address == InternetAddress.anyIPv4.address || listenAddress.address == InternetAddress.anyIPv6.address); if (_started || _starting) { return; } _starting = true; final int selectedMDnsPort = _mDnsPort = mDnsPort; _mDnsAddress = mDnsAddress; // Listen on all addresses. final RawDatagramSocket incoming = await _rawDatagramSocketFactory( listenAddress.address, selectedMDnsPort, reuseAddress: true, reusePort: true, ttl: 255, ); _mDnsAddress ??= incoming.address.type == InternetAddressType.IPv4 ? mDnsAddressIPv4 : mDnsAddressIPv6; final List<NetworkInterface> interfaces = (await interfacesFactory(listenAddress.type)).toList(); for (final NetworkInterface interface in interfaces) { // Create a socket for sending on each adapter. final InternetAddress targetAddress = interface.addresses[0]; // Join multicast on this interface. incoming.joinMulticast(_mDnsAddress!, interface); } // Can't send to IPv6 any address. if (incoming.address != InternetAddress.anyIPv6) { _sockets.add(incoming); } else { _toBeClosed.add(incoming); } incoming.listen((RawSocketEvent event) => _handleIncoming(event, incoming)); _started = true; _starting = false; } ``` </p> </details> The idea is indeed to let the first 3 `IP`s to send the `QM` packets which response should be _hopefully_ captured by the `incoming` socket before the socket on `0.0.0.0` would send the `QM` packet too. # Wireshark filter ```shell (ip.src==192.168.2.7 || ip.src==192.168.2.16) && udp.port eq 5353 ``` # Related Issue - It should resolves issue [#79772](https://github.com/flutter/flutter/issues/79772) # Disclaimers - I'm not expert in `flutter`/`dart`, I pulled the code and I tried to debug it with help of uncle `google` and `print()`; - I don't have a huge expertise in networking but I _know_ how to play a bit with `Wireshark`, inspect the networks and craft packets.multicast_dns-v0.3.2+7 |
|||
fdb78fcbd5 |
[flutter_adaptive_scaffold] Allows for the animation duration to be adjusted using SlotLayout.from() (#6510)
Added `duration` to the `SlotLayoutConfig` constructor and `from()` method. This allows a user to specify the duration of the in/out animations which they can already supply. The default animation of 1 second is nice for demos where a slowed down animation helps to show the behavior, but it is (arguably?) way too slow for an application where one wants a snappy animation effect. *List which issues are fixed by this PR. You must list at least one issue.* Fixes https://github.com/flutter/flutter/issues/112938 *If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].* No change to tests - [test-exempt] I added new tests to check the change I am making, or this PR is [test-exempt].flutter_adaptive_scaffold-v0.1.11+1 |
|||
02e71b087e |
[in_app_purchase_storekit] Remove OCMock (#6862)
Fixes https://github.com/flutter/flutter/issues/149849 Also fixes the broken symlinking between test files. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] page, which explains my responsibilities. - [x] 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`.) - [x] I signed the [CLA]. - [x] The title of the PR starts with the name of the package surrounded by square brackets, e.g. `[shared_preferences]` - [x] I [linked to at least one issue that this PR fixes] in the description above. - [x] I updated `pubspec.yaml` with an appropriate new version according to the [pub versioning philosophy], or this PR is [exempt from version changes]. - [x] I updated `CHANGELOG.md` to add a description of the change, [following repository CHANGELOG style], or this PR is [exempt from CHANGELOG changes]. - [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]. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/packages/blob/main/CONTRIBUTING.md [Tree Hygiene]: https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md [relevant style guides]: https://github.com/flutter/packages/blob/main/CONTRIBUTING.md#style [CLA]: https://cla.developers.google.com/ [Discord]: https://github.com/flutter/flutter/blob/master/docs/contributing/Chat.md [linked to at least one issue that this PR fixes]: https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#overview [pub versioning philosophy]: https://dart.dev/tools/pub/versioning [exempt from version changes]: https://github.com/flutter/flutter/blob/master/docs/ecosystem/contributing/README.md#version [following repository CHANGELOG style]: https://github.com/flutter/flutter/blob/master/docs/ecosystem/contributing/README.md#changelog-style [exempt from CHANGELOG changes]: https://github.com/flutter/flutter/blob/master/docs/ecosystem/contributing/README.md#changelog [test-exempt]: https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#testsin_app_purchase_storekit-v0.3.17 |
|||
04d2572672 |
[google_maps_flutter] Add iOS SDK 9.x support (#6902)
Expands the range of supported versions of the iOS Google Maps SDK to include 9.x. To ensure build compatibility coverage, this follows the previously-established model of making duplicate example apps with different min iOS versions, but without most of the tests (as described in example/README.md). The new `ios15` example directory is a duplicate of `ios14/` with: - The min project and Podfile versions upped to 15.0 (I've validated locally that this causes a build to get 9.0 of the SDK). - The integration tests and XCUITest are removed. - All but the main plugin XCTest tests are removed (that file is left mainly as a placeholder to add new unit tests if necessary). This does not remove the privacy manifest workaround for 8.4, as we still support 8.4; the resulting duplication should be harmless for now. See discussion in https://github.com/flutter/flutter/issues/146838. Fixes https://github.com/flutter/flutter/issues/149873google_maps_flutter_ios-v2.8.0 |
|||
f116dd244c |
[google_maps_flutter] Partial Android host API Pigeon conversion (#6967)
Converts the host API methods other than the various map-object-update methods to Pigeon, as a starting point for a Pigeon conversion. This introduces the Pigeon structure for the main APIs, without getting into complex object serialization. Future work includes: - Converting the update methods. - Converting the calls from native to Dart (Flutter API in Pigeon terms). Also replaces the very minimal Dart unit tests with full tests of all the new methods. Part of https://github.com/flutter/flutter/issues/117907google_maps_flutter_android-v2.10.0 |
|||
89663429ce |
Revert "Migrate camera/android from SurfaceTexture ->SurfaceProducer ." (#6964)
Reverts https://github.com/flutter/packages/pull/6461 Resolves https://github.com/flutter/flutter/issues/150549camera_android-v0.10.9+6 |
|||
9c6f691a8c |
[quick_actions] Update to Pigeon 20 (#6961)
Updates to a newer version of Pigeon. Among other things, this eliminates the use of the `FlutterError` extension. Fixes https://github.com/flutter/flutter/issues/150448quick_actions_ios-v1.1.1 |
|||
853c677317 |
[google_maps_flutter] Move Android inspector to Pigeon (#6958)
Converts the inspector API (only intended for use in integration tests) of the Android implementation to Pigeon. This is a small, simple API surface to start the migration with, allowing setting up the basic Pigeon plumbing without major changes. Part of https://github.com/flutter/flutter/issues/117907google_maps_flutter_android-v2.9.1 |
|||
a958207fba |
Manual roll Flutter from ccf3abe94047 to 6c06abbb5576 (21 revisions) (#6954)
Manual roll requested by stuartmorgan@google.com
|
|||
b135e2a3e3 |
[many] More v1 embedding deletion that was missed in https://github.com/flutter/packages/pull/6494 (#6923)
There were some additional v1 Android embedding references missed by https://github.com/flutter/packages/pull/6494. This PR aims to remove those missed references. I built the android example app of each plugin affected here on the [deletion branch](https://github.com/flutter/engine/pull/52022) to be completely sure: Final testing, I tested that the `all_packages` app builds on the v1 embedding deletion branch: ``` $ ./.ci/scripts/create_all_packages_app.sh && cd all_packages ... $ flutter build apk --debug --local-engine-src-path=/Users/mackall/development/engine/src --local-engine=android_debug_arm64 --local-engine-host=host_debug Running Gradle task 'assembleDebug'... 4.8s â Built build/app/outputs/flutter-apk/app-debug.apk ``` ð Linux repo checks are failing ``` The following packages had errors: packages/google_maps_flutter/google_maps_flutter: Missing CHANGELOG change packages/palette_generator: Missing CHANGELOG change packages/quick_actions/quick_actions: Missing CHANGELOG change packages/webview_flutter/webview_flutter: Missing CHANGELOG change ``` The only changes to these packages are `xml` changes to example apps which won't cause build failures even when the v1 embedding is deleted (they will just be unused). So I believe these changes should be version exempt.espresso-v0.3.0+10 video_player_android-v2.5.1 google_sign_in_android-v6.1.26 |
|||
5ba990b82e |
[google_maps_flutter] deprecate old BitmapDescriptor methods (#6905)
Deprecates `BitmapDescriptor.fromAssetImage` in favor of `BitmapDescriptor.asset` and `AssetMapBitmap.create`. Deprecates `BitmapDescriptor.fromBytes` in favor of `BitmapDescriptor.bytes` and `BytesMapBitmap` This is part of the implementation of the following federated plugin PR: https://github.com/flutter/packages/pull/4055 Related to issue: https://github.com/flutter/flutter/issues/34657google_maps_flutter_platform_interface-v2.8.0 |
|||
cd7306114d |
[pigeon] Fully-qualify types in Equatable extension test (#6946)
Updating to Xcode 16 exposed a new compilation error: "extension declares a conformance of imported type 'DataWithEnum' to imported protocol 'Equatable'". The [Swift Warning for Retroactive Conformances of External Types](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0364-retroactive-conformance-warning.md) proposal says: > It does mean projects building with an older Swift will not have access to [the @retroactive] syntax, so as a source compatible fallback, a client can silence this warning by fully-qualifying all types in the extension. As an example, the above conformance can also be written as > ``` > extension Foundation.Date: Swift.Identifiable { > // ... > } > ``` > This will allow projects that need to build with multiple versions of Swift, and which have valid reason to declare such conformances, to declare them without tying their project to a newer compiler build. So change the test to fully-qualify the types. This prevented the warning when I tried it in https://github.com/flutter/packages/pull/6942. Fixes https://github.com/flutter/flutter/issues/150391 |
|||
937038cd03 |
[flutter_markdown] fixes null check operator used on null value if onSelectionChanged is… (#6883)
- Fixes flutter/flutter/issues/149817 - Fixes flutter/flutter/issues/146282flutter_markdown-v0.7.2+1 |
|||
1e62ab016a |
Roll Flutter from 5187cab7bdd4 to ccf3abe94047 (6 revisions) (#6940)
|
|||
bf9af30c11 |
[google_sign_in_web] README.md typo (#6642)
This PR has changes to a typo in the README.md in [google_sign_in_web](https://github.com/flutter/packages/tree/main/packages/google_sign_in/google_sign_in_web) List of Issues fixed: - Typo in README.md of [google_sign_in_web](https://github.com/flutter/packages/tree/main/packages/google_sign_in/google_sign_in_web)google_sign_in_web-v0.12.4+1 |
|||
747340b3f9 |
[camera]: Bump com.google.guava:guava from 32.0.1-android to 33.2.1-android and CameraX version to 1.3.4 in /packages/camera/camera_android_camerax/android (#6847)
Bumps [com.google.guava:guava](https://github.com/google/guava) from 32.0.1-android to 33.2.1-android and CameraX version to 1.3.4. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/google/guava/releases">com.google.guava:guava's releases</a>.</em></p> <blockquote> <h2>33.2.1</h2> <pre lang="xml"><code><dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>33.2.1-jre</version> <!-- or, for Android: --> <version>33.2.1-android</version> </dependency> </code></pre> <h3>Jar files</h3> <ul> <li><a href="https://repo1.maven.org/maven2/com/google/guava/guava/33.2.1-jre/guava-33.2.1-jre.jar">33.2.1-jre.jar</a></li> <li><a href="https://repo1.maven.org/maven2/com/google/guava/guava/33.2.1-android/guava-33.2.1-android.jar">33.2.1-android.jar</a></li> </ul> <p>Guava requires <a href="https://github.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies">one runtime dependency</a>, which you can download here:</p> <ul> <li><a href="https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar">failureaccess-1.0.1.jar</a></li> </ul> <h3>Javadoc</h3> <ul> <li><a href="https://guava.dev/releases/33.2.1-jre/api/docs/">33.2.1-jre</a></li> <li><a href="https://guava.dev/releases/33.2.1-android/api/docs/">33.2.1-android</a></li> </ul> <h3>JDiff</h3> <ul> <li><a href="https://guava.dev/releases/33.2.1-jre/api/diffs/">33.2.1-jre vs. 33.2.0-jre</a></li> <li><a href="https://guava.dev/releases/33.2.1-android/api/diffs/">33.2.1-android vs. 33.2.0-android</a></li> <li><a href="https://guava.dev/releases/33.2.1-android/api/androiddiffs/">33.2.1-android vs. 33.2.1-jre</a></li> </ul> <h3>Changelog</h3> <ul> <li><code>net</code>: Changed <code>InetAddress</code>-<code>String</code> conversion methods to preserve the IPv6 scope ID if present. The scope ID can be necessary for IPv6-capable devices with multiple network interfaces. However, preserving it can also lead to problems for callers that rely on the returned values <em>not</em> to include the scope ID: <ul> <li>Callers might compensate for the old behavior of the methods by appending the scope ID to a returned string themselves. If so, you can update your code to stop doing so at the same time as you upgrade Guava. Of, if your code might run against multiple versions of Guava, you can check whether Guava has included a scope ID before you add one yourself.</li> <li>Callers might pass the returned string to another system that does not understand scope IDs. If so, you can strip the scope ID off, whether by truncating the string form at a <code>%</code> character (leaving behind any trailing <code>]</code> character in the case of <code>forUriString</code>) or by replacing the returned <code>InetAddress</code> with a new instance constructed by calling <code>InetAddress.getByAddress(addr)</code>.</li> <li><code>java.net.InetAddress</code> validates any provided scope ID against the interfaces available on the machine. As a result, methods in <code>InetAddresses</code> may now fail if the scope ID fails validation. <ul> <li>Notable cases in which this may happen include: <ul> <li>if the code runs in an Android app without networking permission</li> <li>if code passes <code>InetAddress</code> instances or strings across devices</li> </ul> </li> <li>If this is not the behavior that you want, then you can strip off the scope ID from the input string before passing it to Guava, as discussed above. (3f61870ac6)</li> </ul> </li> </ul> </li> </ul> <h2>33.2.0</h2> <h3>Android users: Please test recent Guava versions</h3> <p>If you know of Guava Android users who have not yet upgraded to at least release <a href="https://github.com/google/guava/releases/tag/v33.0.0">33.0.0</a>, please encourage them to upgrade, preferably to today's release, 33.2.0. These releases have begun adding Java 8+ APIs to <code>guava-android</code>. While we don't anticipate problems, we do anticipate that any unexpected problems could force a disruptive rollback. To minimize any disruption, we'd like to catch any such problems early.</p> <p>Please <a href="https://github.com/google/guava/issues/new?assignees=&labels=type%3Ddefect&projects=&template=bug_report.yaml">let us know of any problems you encounter</a>.</p> <h3>Maven</h3> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/google/guava/commits">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>camera_android_camerax-v0.6.5+6 |
|||
21ed6a65a5 |
[sign_in]: Bump com.google.guava:guava from 32.0.1-android to 33.2.1-android in /packages/google_sign_in/google_sign_in_android/android (#6846)
Bumps [com.google.guava:guava](https://github.com/google/guava) from 32.0.1-android to 33.2.1-android. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/google/guava/releases">com.google.guava:guava's releases</a>.</em></p> <blockquote> <h2>33.2.1</h2> <pre lang="xml"><code><dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>33.2.1-jre</version> <!-- or, for Android: --> <version>33.2.1-android</version> </dependency> </code></pre> <h3>Jar files</h3> <ul> <li><a href="https://repo1.maven.org/maven2/com/google/guava/guava/33.2.1-jre/guava-33.2.1-jre.jar">33.2.1-jre.jar</a></li> <li><a href="https://repo1.maven.org/maven2/com/google/guava/guava/33.2.1-android/guava-33.2.1-android.jar">33.2.1-android.jar</a></li> </ul> <p>Guava requires <a href="https://github.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies">one runtime dependency</a>, which you can download here:</p> <ul> <li><a href="https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar">failureaccess-1.0.1.jar</a></li> </ul> <h3>Javadoc</h3> <ul> <li><a href="https://guava.dev/releases/33.2.1-jre/api/docs/">33.2.1-jre</a></li> <li><a href="https://guava.dev/releases/33.2.1-android/api/docs/">33.2.1-android</a></li> </ul> <h3>JDiff</h3> <ul> <li><a href="https://guava.dev/releases/33.2.1-jre/api/diffs/">33.2.1-jre vs. 33.2.0-jre</a></li> <li><a href="https://guava.dev/releases/33.2.1-android/api/diffs/">33.2.1-android vs. 33.2.0-android</a></li> <li><a href="https://guava.dev/releases/33.2.1-android/api/androiddiffs/">33.2.1-android vs. 33.2.1-jre</a></li> </ul> <h3>Changelog</h3> <ul> <li><code>net</code>: Changed <code>InetAddress</code>-<code>String</code> conversion methods to preserve the IPv6 scope ID if present. The scope ID can be necessary for IPv6-capable devices with multiple network interfaces. However, preserving it can also lead to problems for callers that rely on the returned values <em>not</em> to include the scope ID: <ul> <li>Callers might compensate for the old behavior of the methods by appending the scope ID to a returned string themselves. If so, you can update your code to stop doing so at the same time as you upgrade Guava. Of, if your code might run against multiple versions of Guava, you can check whether Guava has included a scope ID before you add one yourself.</li> <li>Callers might pass the returned string to another system that does not understand scope IDs. If so, you can strip the scope ID off, whether by truncating the string form at a <code>%</code> character (leaving behind any trailing <code>]</code> character in the case of <code>forUriString</code>) or by replacing the returned <code>InetAddress</code> with a new instance constructed by calling <code>InetAddress.getByAddress(addr)</code>.</li> <li><code>java.net.InetAddress</code> validates any provided scope ID against the interfaces available on the machine. As a result, methods in <code>InetAddresses</code> may now fail if the scope ID fails validation. <ul> <li>Notable cases in which this may happen include: <ul> <li>if the code runs in an Android app without networking permission</li> <li>if code passes <code>InetAddress</code> instances or strings across devices</li> </ul> </li> <li>If this is not the behavior that you want, then you can strip off the scope ID from the input string before passing it to Guava, as discussed above. (3f61870ac6)</li> </ul> </li> </ul> </li> </ul> <h2>33.2.0</h2> <h3>Android users: Please test recent Guava versions</h3> <p>If you know of Guava Android users who have not yet upgraded to at least release <a href="https://github.com/google/guava/releases/tag/v33.0.0">33.0.0</a>, please encourage them to upgrade, preferably to today's release, 33.2.0. These releases have begun adding Java 8+ APIs to <code>guava-android</code>. While we don't anticipate problems, we do anticipate that any unexpected problems could force a disruptive rollback. To minimize any disruption, we'd like to catch any such problems early.</p> <p>Please <a href="https://github.com/google/guava/issues/new?assignees=&labels=type%3Ddefect&projects=&template=bug_report.yaml">let us know of any problems you encounter</a>.</p> <h3>Maven</h3> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/google/guava/commits">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>google_sign_in_android-v6.1.25 |
|||
811414acbc |
[quick_actions]: Bump com.android.tools.build:gradle from 7.2.1 to 8.4.1 in /packages/quick_actions/quick_actions_android/android (#6799)
Bumps com.android.tools.build:gradle from 7.2.1 to 8.4.1. [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>quick_actions_android-v1.0.14 |
|||
bfd0b78ab2 |
[path_provider]: Bump androidx.annotation:annotation from 1.7.1 to 1.8.0 in /packages/path_provider/path_provider_android/android (#6773)
Bumps androidx.annotation:annotation from 1.7.1 to 1.8.0. [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>path_provider_android-v2.2.6 |
|||
67761c6701 |
[camera]: Bump androidx.annotation:annotation from 1.7.1 to 1.8.0 in /packages/camera/camera_android/android (#6766)
Bumps androidx.annotation:annotation from 1.7.1 to 1.8.0. [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>camera_android-v0.10.9+5 |
|||
711b4ac279 |
[local_auth]: Bump androidx.core:core from 1.10.1 to 1.13.1 in /packages/local_auth/local_auth_android/android (#6664)
Bumps androidx.core:core from 1.10.1 to 1.13.1. [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>local_auth_android-v1.0.40 |
|||
4fdd3d0159 |
Roll Flutter from 349ec7183cd0 to 5187cab7bdd4 (7 revisions) (#6927)
|
|||
cab9c86503 |
Roll Flutter from 01db23b82233 to 349ec7183cd0 (19 revisions) (#6926)
|
|||
dd04ab1c75 |
Move Player.Listener impl, remove @VisibleForTesting isInitialized . (#6922)
Similar to https://github.com/flutter/packages/pull/6908, as part of https://github.com/flutter/flutter/issues/148417. I'm working on re-landing https://github.com/flutter/packages/pull/6456, this time without using the `ActivityAware` interface (see https://github.com/flutter/flutter/issues/148417). As part of that work, I'll need to better control the `ExoPlayer` lifecycle and save/restore internal state. In this PR, I've removed the concept of the class being "initialized" or not - the only thing "initialized" means is "for a given instance of `ExoPlayer`, has received the `'initialized'` event. As a result I removed the quasi-public API that was used for testing only and replaced it with observing what the real production instance does (`Player.STATE_READY`). After this PR, I'll likely do one more pass around the constructors - the constructor that takes an `ExoPlayer` that is marked `@VisibleForTesting` _also_ doesn't make sense once we'll support suspending/resuming video players, so it will need to get reworked (probably into taking a factory method). |
|||
a0f25523b0 |
Roll Flutter from b1f9d7131c8c to 01db23b82233 (15 revisions) (#6921)
|
|||
1ad8d89445 |
Refactor VideoPlayer to be less exposed to EventChannel & related (#6908)
Part of https://github.com/flutter/flutter/issues/148417. I'm working on re-landing https://github.com/flutter/packages/pull/6456, this time without using the `ActivityAware` interface (see https://github.com/flutter/flutter/issues/148417). As part of that work, I'll need to better control the `ExoPlayer` lifecycle and save/restore internal state. These are some proposed refactors to limit how much work `VideoPlayer` is doing, so I can better understand what needs to be reset (or not) internally. Specifically, `VideoPlayer` no longer knows what an `EventChannel` or `EventSink` is, and does not need to manage the lifecycle (it stores a `private final VideoPlayerCallbacks` instead), and instead there is a `VideoPlayerCallbacks` interface that does all that. I'm totally open to: - Landing this as-is (+/- nits) and making minor improvements in follow-up PRs - Making more significant changes to this PR and then landing it - Not landing this PR at all because it doesn't follow the approach the folks who maintain the plugin prefer Also happy to chat in VC/person about any of the changes. |
|||
0891835f83 |
[go_router] Added proper redirect handling for ShellRoute.$route and StatefulShellRoute.$route for proper redirection handling in case of code generation (#6841)
Added proper `redirect` handling for `ShellRoute.$route` and `StatefulShellRoute.$route` for proper redirection handling in case of code generation. *List which issues are fixed by this PR. You must list at least one issue.* - I did not create an issue ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] page, which explains my responsibilities. - [x] 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`.) - [x] I signed the [CLA]. - [x] The title of the PR starts with the name of the package surrounded by square brackets, e.g. `[shared_preferences]` - [ ] I [linked to at least one issue that this PR fixes] in the description above. - [x] I updated `pubspec.yaml` with an appropriate new version according to the [pub versioning philosophy], or this PR is [exempt from version changes]. - [x] I updated `CHANGELOG.md` to add a description of the change, [following repository CHANGELOG style], or this PR is [exempt from CHANGELOG changes]. - [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]. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/packages/blob/main/CONTRIBUTING.md [Tree Hygiene]: https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md [relevant style guides]: https://github.com/flutter/packages/blob/main/CONTRIBUTING.md#style [CLA]: https://cla.developers.google.com/ [Discord]: https://github.com/flutter/flutter/blob/master/docs/contributing/Chat.md [linked to at least one issue that this PR fixes]: https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#overview [pub versioning philosophy]: https://dart.dev/tools/pub/versioning [exempt from version changes]: https://github.com/flutter/flutter/blob/master/docs/ecosystem/contributing/README.md#version [following repository CHANGELOG style]: https://github.com/flutter/flutter/blob/master/docs/ecosystem/contributing/README.md#changelog-style [exempt from CHANGELOG changes]: https://github.com/flutter/flutter/blob/master/docs/ecosystem/contributing/README.md#changelog [test-exempt]: https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#tests --------- Co-authored-by: Vasiliy Ditsyak <vasilich6107@users.noreply.github.com>go_router-v14.2.0 |
|||
7805455bf6 |
[rfw][ci] Skip failing rfw golden tests and manual roll (#6915)
See https://github.com/flutter/flutter/issues/150127 |
|||
b8dd66401d |
Remove CODEOWNER for google_sign_in_ios and image_picker_ios (#6891)
Redistribute iOS CODEOWNERs. |
|||
260102b64c |
[tool] Provide better CI feedback for combo PRs (#6865)
Currently if a PR follows the recommended combo PR process for a federated plugin, the main PR will have CI errors that say the PR isn't allowed to do what it is doing, which is confusing, especially to new contributors or reviewers. This updates the tooling to detect the temporary overrides created by the tooling, and uses that to trigger a different error message that explains that the error is expected, and exists only to prevent accidental landing. Fixes https://github.com/flutter/flutter/issues/129303 |