From c39e0999f7e87f722a0baf7d57141aacdaa4b677 Mon Sep 17 00:00:00 2001 From: Rexios Date: Mon, 7 Nov 2022 16:24:19 -0500 Subject: [PATCH 1/6] Expose `VideoScrubber` so it can be used to make custom video timelines --- .../example/ios/Runner.xcodeproj/project.pbxproj | 4 ++++ .../ios/RunnerTests/FLTGoogleMapHeatmapControllerTests.m | 9 +++++++++ packages/video_player/video_player/lib/video_player.dart | 8 ++++---- 3 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 packages/google_maps_flutter/google_maps_flutter_ios/example/ios/RunnerTests/FLTGoogleMapHeatmapControllerTests.m diff --git a/packages/google_maps_flutter/google_maps_flutter_ios/example/ios/Runner.xcodeproj/project.pbxproj b/packages/google_maps_flutter/google_maps_flutter_ios/example/ios/Runner.xcodeproj/project.pbxproj index 343e0504134c..c8b9e2f1b678 100644 --- a/packages/google_maps_flutter/google_maps_flutter_ios/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/google_maps_flutter/google_maps_flutter_ios/example/ios/Runner.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 0D0143702907080A0040651C /* FLTGoogleMapHeatmapControllerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D01436F2907080A0040651C /* FLTGoogleMapHeatmapControllerTests.m */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 4510D964F3B1259FEDD3ABA6 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7755F8F4BABC3D6A0BD4048B /* libPods-Runner.a */; }; @@ -55,6 +56,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 0D01436F2907080A0040651C /* FLTGoogleMapHeatmapControllerTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FLTGoogleMapHeatmapControllerTests.m; sourceTree = ""; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; @@ -205,6 +207,7 @@ isa = PBXGroup; children = ( 6851F3552835BC180032B7C8 /* FLTGoogleMapJSONConversionsConversionTests.m */, + 0D01436F2907080A0040651C /* FLTGoogleMapHeatmapControllerTests.m */, F7151F12265D7ED70028CB91 /* GoogleMapsTests.m */, 982F2A6A27BADE17003C81F4 /* PartiallyMockedMapView.h */, 982F2A6B27BADE17003C81F4 /* PartiallyMockedMapView.m */, @@ -486,6 +489,7 @@ F7151F13265D7ED70028CB91 /* GoogleMapsTests.m in Sources */, 6851F3562835BC180032B7C8 /* FLTGoogleMapJSONConversionsConversionTests.m in Sources */, 982F2A6C27BADE17003C81F4 /* PartiallyMockedMapView.m in Sources */, + 0D0143702907080A0040651C /* FLTGoogleMapHeatmapControllerTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/packages/google_maps_flutter/google_maps_flutter_ios/example/ios/RunnerTests/FLTGoogleMapHeatmapControllerTests.m b/packages/google_maps_flutter/google_maps_flutter_ios/example/ios/RunnerTests/FLTGoogleMapHeatmapControllerTests.m new file mode 100644 index 000000000000..c37c21f327f5 --- /dev/null +++ b/packages/google_maps_flutter/google_maps_flutter_ios/example/ios/RunnerTests/FLTGoogleMapHeatmapControllerTests.m @@ -0,0 +1,9 @@ +// +// FLTGoogleMapHeatmapControllerTests.m +// RunnerTests +// +// Created by Rexios on 10/24/22. +// Copyright © 2022 The Flutter Authors. All rights reserved. +// + +#import diff --git a/packages/video_player/video_player/lib/video_player.dart b/packages/video_player/video_player/lib/video_player.dart index c1f4886282f8..27ba2672dc56 100644 --- a/packages/video_player/video_player/lib/video_player.dart +++ b/packages/video_player/video_player/lib/video_player.dart @@ -836,8 +836,8 @@ class VideoProgressColors { final Color backgroundColor; } -class _VideoScrubber extends StatefulWidget { - const _VideoScrubber({ +class VideoScrubber extends StatefulWidget { + const VideoScrubber({ required this.child, required this.controller, }); @@ -849,7 +849,7 @@ class _VideoScrubber extends StatefulWidget { _VideoScrubberState createState() => _VideoScrubberState(); } -class _VideoScrubberState extends State<_VideoScrubber> { +class _VideoScrubberState extends State { bool _controllerWasPlaying = false; VideoPlayerController get controller => widget.controller; @@ -1014,7 +1014,7 @@ class _VideoProgressIndicatorState extends State { child: progressIndicator, ); if (widget.allowScrubbing) { - return _VideoScrubber( + return VideoScrubber( controller: controller, child: paddedProgressIndicator, ); From 53e56d75ff26b473f3e76e7f0f0cd61dd4e327d4 Mon Sep 17 00:00:00 2001 From: Rexios Date: Mon, 7 Nov 2022 16:35:33 -0500 Subject: [PATCH 2/6] Added documentation --- .../video_player/video_player/lib/video_player.dart | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/video_player/video_player/lib/video_player.dart b/packages/video_player/video_player/lib/video_player.dart index 27ba2672dc56..2e33d4b7616d 100644 --- a/packages/video_player/video_player/lib/video_player.dart +++ b/packages/video_player/video_player/lib/video_player.dart @@ -836,17 +836,26 @@ class VideoProgressColors { final Color backgroundColor; } +/// A scrubber to control [VideoPlayerController]s class VideoScrubber extends StatefulWidget { + /// Create a [VideoScrubber] handler with the given [child]. + /// + /// [controller] is the [VideoPlayerController] that will be controlled by + /// this scrubber. const VideoScrubber({ + Key? key, required this.child, required this.controller, - }); + }) : super(key: key); + /// The widget that will be displayed inside the gesture detector. final Widget child; + + /// The [VideoPlayerController] that will be controlled by this scrubber. final VideoPlayerController controller; @override - _VideoScrubberState createState() => _VideoScrubberState(); + State createState() => _VideoScrubberState(); } class _VideoScrubberState extends State { From fd71b9540d22d0231ae703c7f2f7abdc6259a39c Mon Sep 17 00:00:00 2001 From: Rexios Date: Mon, 7 Nov 2022 16:39:10 -0500 Subject: [PATCH 3/6] Updated version --- packages/video_player/video_player/CHANGELOG.md | 3 ++- packages/video_player/video_player/pubspec.yaml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/video_player/video_player/CHANGELOG.md b/packages/video_player/video_player/CHANGELOG.md index 0885f28f9db8..0c5e4674827c 100644 --- a/packages/video_player/video_player/CHANGELOG.md +++ b/packages/video_player/video_player/CHANGELOG.md @@ -1,5 +1,6 @@ -## NEXT +## 2.5.0 +* Exposes `VideoScrubber` so it can be used to make custom video progress indicators * Updates code for `no_leading_underscores_for_local_identifiers` lint. ## 2.4.7 diff --git a/packages/video_player/video_player/pubspec.yaml b/packages/video_player/video_player/pubspec.yaml index 7e2df60d3cdd..9507358e562c 100644 --- a/packages/video_player/video_player/pubspec.yaml +++ b/packages/video_player/video_player/pubspec.yaml @@ -3,7 +3,7 @@ description: Flutter plugin for displaying inline video with other Flutter widgets on Android, iOS, and web. repository: https://github.com/flutter/plugins/tree/main/packages/video_player/video_player issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+video_player%22 -version: 2.4.7 +version: 2.5.0 environment: sdk: ">=2.14.0 <3.0.0" From 76df46c74fd90d1787b423bbfb67a85c2d4bbbac Mon Sep 17 00:00:00 2001 From: Rexios Date: Mon, 7 Nov 2022 16:44:52 -0500 Subject: [PATCH 4/6] Cleanup --- .../example/ios/Runner.xcodeproj/project.pbxproj | 4 ---- .../ios/RunnerTests/FLTGoogleMapHeatmapControllerTests.m | 9 --------- 2 files changed, 13 deletions(-) delete mode 100644 packages/google_maps_flutter/google_maps_flutter_ios/example/ios/RunnerTests/FLTGoogleMapHeatmapControllerTests.m diff --git a/packages/google_maps_flutter/google_maps_flutter_ios/example/ios/Runner.xcodeproj/project.pbxproj b/packages/google_maps_flutter/google_maps_flutter_ios/example/ios/Runner.xcodeproj/project.pbxproj index c8b9e2f1b678..343e0504134c 100644 --- a/packages/google_maps_flutter/google_maps_flutter_ios/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/google_maps_flutter/google_maps_flutter_ios/example/ios/Runner.xcodeproj/project.pbxproj @@ -7,7 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 0D0143702907080A0040651C /* FLTGoogleMapHeatmapControllerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D01436F2907080A0040651C /* FLTGoogleMapHeatmapControllerTests.m */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 4510D964F3B1259FEDD3ABA6 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7755F8F4BABC3D6A0BD4048B /* libPods-Runner.a */; }; @@ -56,7 +55,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0D01436F2907080A0040651C /* FLTGoogleMapHeatmapControllerTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FLTGoogleMapHeatmapControllerTests.m; sourceTree = ""; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; @@ -207,7 +205,6 @@ isa = PBXGroup; children = ( 6851F3552835BC180032B7C8 /* FLTGoogleMapJSONConversionsConversionTests.m */, - 0D01436F2907080A0040651C /* FLTGoogleMapHeatmapControllerTests.m */, F7151F12265D7ED70028CB91 /* GoogleMapsTests.m */, 982F2A6A27BADE17003C81F4 /* PartiallyMockedMapView.h */, 982F2A6B27BADE17003C81F4 /* PartiallyMockedMapView.m */, @@ -489,7 +486,6 @@ F7151F13265D7ED70028CB91 /* GoogleMapsTests.m in Sources */, 6851F3562835BC180032B7C8 /* FLTGoogleMapJSONConversionsConversionTests.m in Sources */, 982F2A6C27BADE17003C81F4 /* PartiallyMockedMapView.m in Sources */, - 0D0143702907080A0040651C /* FLTGoogleMapHeatmapControllerTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/packages/google_maps_flutter/google_maps_flutter_ios/example/ios/RunnerTests/FLTGoogleMapHeatmapControllerTests.m b/packages/google_maps_flutter/google_maps_flutter_ios/example/ios/RunnerTests/FLTGoogleMapHeatmapControllerTests.m deleted file mode 100644 index c37c21f327f5..000000000000 --- a/packages/google_maps_flutter/google_maps_flutter_ios/example/ios/RunnerTests/FLTGoogleMapHeatmapControllerTests.m +++ /dev/null @@ -1,9 +0,0 @@ -// -// FLTGoogleMapHeatmapControllerTests.m -// RunnerTests -// -// Created by Rexios on 10/24/22. -// Copyright © 2022 The Flutter Authors. All rights reserved. -// - -#import From 6dee687379759be987aa25c03e57475cb7e5403c Mon Sep 17 00:00:00 2001 From: Rexios Date: Mon, 7 Nov 2022 17:12:40 -0500 Subject: [PATCH 5/6] Formatting --- packages/video_player/video_player/lib/video_player.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/video_player/video_player/lib/video_player.dart b/packages/video_player/video_player/lib/video_player.dart index 2e33d4b7616d..b673b302a559 100644 --- a/packages/video_player/video_player/lib/video_player.dart +++ b/packages/video_player/video_player/lib/video_player.dart @@ -839,7 +839,7 @@ class VideoProgressColors { /// A scrubber to control [VideoPlayerController]s class VideoScrubber extends StatefulWidget { /// Create a [VideoScrubber] handler with the given [child]. - /// + /// /// [controller] is the [VideoPlayerController] that will be controlled by /// this scrubber. const VideoScrubber({ From 7eafad404efaa5ef23e4611cb4202ceaca38669d Mon Sep 17 00:00:00 2001 From: Rexios Date: Tue, 10 Jan 2023 14:02:36 -0500 Subject: [PATCH 6/6] Update CHANGELOG.md --- packages/video_player/video_player/CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/video_player/video_player/CHANGELOG.md b/packages/video_player/video_player/CHANGELOG.md index 913b7d448811..fdf73487c076 100644 --- a/packages/video_player/video_player/CHANGELOG.md +++ b/packages/video_player/video_player/CHANGELOG.md @@ -13,7 +13,6 @@ ## 2.4.8 * Updates code for new analysis options. - * Updates code for `no_leading_underscores_for_local_identifiers` lint. ## 2.4.7