[video_player] Update web analysis options (#4788)
diff --git a/packages/video_player/video_player_web/CHANGELOG.md b/packages/video_player/video_player_web/CHANGELOG.md
index 246cd22..1cd428c 100644
--- a/packages/video_player/video_player_web/CHANGELOG.md
+++ b/packages/video_player/video_player_web/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.0.7
+
+* Internal code cleanup for stricter analysis options.
+
## 2.0.6
* Removes dependency on `meta`.
diff --git a/packages/video_player/video_player_web/analysis_options.yaml b/packages/video_player/video_player_web/analysis_options.yaml
deleted file mode 100644
index 5aeb4e7..0000000
--- a/packages/video_player/video_player_web/analysis_options.yaml
+++ /dev/null
@@ -1 +0,0 @@
-include: ../../../analysis_options_legacy.yaml
diff --git a/packages/video_player/video_player_web/example/integration_test/video_player_web_test.dart b/packages/video_player/video_player_web/example/integration_test/video_player_web_test.dart
index 2a830c9..97b0364 100644
--- a/packages/video_player/video_player_web/example/integration_test/video_player_web_test.dart
+++ b/packages/video_player/video_player_web/example/integration_test/video_player_web_test.dart
@@ -27,7 +27,7 @@
'https://flutter.github.io/assets-for-api-docs/assets/videos/bee.mp4',
),
)
- .then((textureId) => textureId!);
+ .then((int? textureId) => textureId!);
});
testWidgets('can init', (WidgetTester tester) async {
@@ -98,14 +98,14 @@
testWidgets('throws PlatformException when playing bad media',
(WidgetTester tester) async {
- int videoPlayerId = (await VideoPlayerPlatform.instance.create(
+ final int videoPlayerId = (await VideoPlayerPlatform.instance.create(
DataSource(
sourceType: DataSourceType.network,
uri:
'https://flutter.github.io/assets-for-api-docs/assets/videos/_non_existent_video.mp4'),
))!;
- Stream<VideoEvent> eventStream =
+ final Stream<VideoEvent> eventStream =
VideoPlayerPlatform.instance.videoEventsFor(videoPlayerId);
// Mute video to allow autoplay (See https://goo.gl/xX8pDD)
@@ -139,7 +139,7 @@
expect(
VideoPlayerPlatform.instance.seekTo(
await textureId,
- Duration(seconds: 1),
+ const Duration(seconds: 1),
),
completes,
);
diff --git a/packages/video_player/video_player_web/example/lib/main.dart b/packages/video_player/video_player_web/example/lib/main.dart
index e1a38dc..341913a 100644
--- a/packages/video_player/video_player_web/example/lib/main.dart
+++ b/packages/video_player/video_player_web/example/lib/main.dart
@@ -17,7 +17,7 @@
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
- return Directionality(
+ return const Directionality(
textDirection: TextDirection.ltr,
child: Text('Testing... Look at the console output for results!'),
);
diff --git a/packages/video_player/video_player_web/example/pubspec.yaml b/packages/video_player/video_player_web/example/pubspec.yaml
index 4ec938b..bc70b7d 100644
--- a/packages/video_player/video_player_web/example/pubspec.yaml
+++ b/packages/video_player/video_player_web/example/pubspec.yaml
@@ -6,15 +6,15 @@
flutter: ">=2.2.0"
dependencies:
- video_player_web:
- path: ../
flutter:
sdk: flutter
+ video_player_web:
+ path: ../
dev_dependencies:
- flutter_test:
- sdk: flutter
flutter_driver:
sdk: flutter
+ flutter_test:
+ sdk: flutter
integration_test:
sdk: flutter
diff --git a/packages/video_player/video_player_web/lib/src/shims/dart_ui.dart b/packages/video_player/video_player_web/lib/src/shims/dart_ui.dart
index 5eacec5..bd28793 100644
--- a/packages/video_player/video_player_web/lib/src/shims/dart_ui.dart
+++ b/packages/video_player/video_player_web/lib/src/shims/dart_ui.dart
@@ -5,6 +5,6 @@
/// This file shims dart:ui in web-only scenarios, getting rid of the need to
/// suppress analyzer warnings.
-// TODO(flutter/flutter#55000) Remove this file once web-only dart:ui APIs
-// are exposed from a dedicated place.
+// TODO(ditman): Remove this file once web-only dart:ui APIs are exposed from
+// a dedicated place, https://github.com/flutter/flutter/issues/55000
export 'dart_ui_fake.dart' if (dart.library.html) 'dart_ui_real.dart';
diff --git a/packages/video_player/video_player_web/lib/src/shims/dart_ui_fake.dart b/packages/video_player/video_player_web/lib/src/shims/dart_ui_fake.dart
index f2862af..8757ca2 100644
--- a/packages/video_player/video_player_web/lib/src/shims/dart_ui_fake.dart
+++ b/packages/video_player/video_player_web/lib/src/shims/dart_ui_fake.dart
@@ -7,13 +7,18 @@
// Fake interface for the logic that this package needs from (web-only) dart:ui.
// This is conditionally exported so the analyzer sees these methods as available.
+// ignore_for_file: avoid_classes_with_only_static_members
+// ignore_for_file: camel_case_types
+
/// Shim for web_ui engine.PlatformViewRegistry
/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/ui.dart#L62
class platformViewRegistry {
/// Shim for registerViewFactory
/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/ui.dart#L72
- static registerViewFactory(
- String viewTypeId, html.Element Function(int viewId) viewFactory) {}
+ static bool registerViewFactory(
+ String viewTypeId, html.Element Function(int viewId) viewFactory) {
+ return false;
+ }
}
/// Shim for web_ui engine.AssetManager.
@@ -21,7 +26,7 @@
class webOnlyAssetManager {
/// Shim for getAssetUrl.
/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/src/engine/assets.dart#L45
- static getAssetUrl(String asset) {}
+ static String getAssetUrl(String asset) => '';
}
/// Signature of callbacks that have no arguments and return no data.
diff --git a/packages/video_player/video_player_web/lib/video_player_web.dart b/packages/video_player/video_player_web/lib/video_player_web.dart
index 612d22d..a676850 100644
--- a/packages/video_player/video_player_web/lib/video_player_web.dart
+++ b/packages/video_player/video_player_web/lib/video_player_web.dart
@@ -4,16 +4,17 @@
import 'dart:async';
import 'dart:html';
-import 'src/shims/dart_ui.dart' as ui;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
import 'package:video_player_platform_interface/video_player_platform_interface.dart';
+import 'src/shims/dart_ui.dart' as ui;
+
// An error code value to error name Map.
// See: https://developer.mozilla.org/en-US/docs/Web/API/MediaError/code
-const Map<int, String> _kErrorValueToErrorName = {
+const Map<int, String> _kErrorValueToErrorName = <int, String>{
1: 'MEDIA_ERR_ABORTED',
2: 'MEDIA_ERR_NETWORK',
3: 'MEDIA_ERR_DECODE',
@@ -22,7 +23,7 @@
// An error code value to description Map.
// See: https://developer.mozilla.org/en-US/docs/Web/API/MediaError/code
-const Map<int, String> _kErrorValueToErrorDescription = {
+const Map<int, String> _kErrorValueToErrorDescription = <int, String>{
1: 'The user canceled the fetching of the video.',
2: 'A network error occurred while fetching the video, despite having previously been available.',
3: 'An error occurred while trying to decode the video, despite having previously been determined to be usable.',
@@ -43,7 +44,7 @@
VideoPlayerPlatform.instance = VideoPlayerPlugin();
}
- Map<int, _VideoPlayer> _videoPlayers = <int, _VideoPlayer>{};
+ final Map<int, _VideoPlayer> _videoPlayers = <int, _VideoPlayer>{};
int _textureCounter = 1;
@@ -56,12 +57,13 @@
Future<void> dispose(int textureId) async {
_videoPlayers[textureId]!.dispose();
_videoPlayers.remove(textureId);
- return null;
+ return;
}
void _disposeAllPlayers() {
- _videoPlayers.values
- .forEach((_VideoPlayer videoPlayer) => videoPlayer.dispose());
+ for (final _VideoPlayer videoPlayer in _videoPlayers.values) {
+ videoPlayer.dispose();
+ }
_videoPlayers.clear();
}
@@ -86,10 +88,10 @@
uri = assetUrl;
break;
case DataSourceType.file:
- return Future.error(UnimplementedError(
+ return Future<int>.error(UnimplementedError(
'web implementation of video_player cannot play local files'));
case DataSourceType.contentUri:
- return Future.error(UnimplementedError(
+ return Future<int>.error(UnimplementedError(
'web implementation of video_player cannot play content uri'));
}
@@ -225,7 +227,7 @@
// The Event itself (_) doesn't contain info about the actual error.
// We need to look at the HTMLMediaElement.error.
// See: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/error
- MediaError error = videoElement.error!;
+ final MediaError error = videoElement.error!;
eventController.addError(PlatformException(
code: _kErrorValueToErrorName[error.code]!,
message: error.message != '' ? error.message : _kDefaultErrorMessage,
@@ -247,18 +249,18 @@
}
Future<void> play() {
- return videoElement.play().catchError((e) {
+ return videoElement.play().catchError((Object e) {
// play() attempts to begin playback of the media. It returns
// a Promise which can get rejected in case of failure to begin
// playback for any reason, such as permission issues.
// The rejection handler is called with a DomException.
// See: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/play
- DomException exception = e;
+ final DomException exception = e as DomException;
eventController.addError(PlatformException(
code: exception.name,
message: exception.message,
));
- }, test: (e) => e is DomException);
+ }, test: (Object e) => e is DomException);
}
void pause() {
@@ -270,7 +272,7 @@
}
void setVolume(double value) {
- // TODO: Do we need to expose a "muted" API? https://github.com/flutter/flutter/issues/60721
+ // TODO(ditman): Do we need to expose a "muted" API? https://github.com/flutter/flutter/issues/60721
if (value > 0.0) {
videoElement.muted = false;
} else {
diff --git a/packages/video_player/video_player_web/pubspec.yaml b/packages/video_player/video_player_web/pubspec.yaml
index 353253b..69a2df4 100644
--- a/packages/video_player/video_player_web/pubspec.yaml
+++ b/packages/video_player/video_player_web/pubspec.yaml
@@ -2,7 +2,7 @@
description: Web platform implementation of video_player.
repository: https://github.com/flutter/plugins/tree/main/packages/video_player/video_player_web
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+video_player%22
-version: 2.0.6
+version: 2.0.7
environment:
sdk: ">=2.12.0 <3.0.0"
@@ -21,7 +21,6 @@
sdk: flutter
flutter_web_plugins:
sdk: flutter
- pedantic: ^1.10.0
video_player_platform_interface: ">=4.2.0 <6.0.0"
dev_dependencies:
diff --git a/script/configs/custom_analysis.yaml b/script/configs/custom_analysis.yaml
index 0dbeae4..493b6e6 100644
--- a/script/configs/custom_analysis.yaml
+++ b/script/configs/custom_analysis.yaml
@@ -26,4 +26,3 @@
- in_app_purchase/in_app_purchase_android
- in_app_purchase/in_app_purchase_storekit
- video_player/video_player
-- video_player/video_player_web