Skip to content

Commit

Permalink
Feature/nullsafety (#372)
Browse files Browse the repository at this point in the history
* Fixed fullscreenByDefault issue

* Updated documentation

* Updated documentation

* Refactored internal event handling.

* Refactored internal event handling.

* Added tests

* Added tests

* Tests refactor

* Null safety migration

* Fixed issue where player controls were immediately hidden.

* General refactor

* General refactor

* General refactor

* General refactor

* General refactor

* Null safety refactor

* Null safety refactor

* Null safety refactor

* Fixed initialized listener

* Removed cancelFullScreenDismiss parameter

* General refactor

* Added initialization check for VideoPlayerController

* Added initialization check for VideoPlayerController

* General refactor

* Changed default value of enableProgressText to true in BetterPlayerControlsConfiguration

* Setup first selected HLS Audio as default one.

* Lint & format update

* Updated changelog, lint fixes

* Commented analysis_options.yaml
  • Loading branch information
jhomlala authored Mar 5, 2021
1 parent a893d15 commit 6a00029
Show file tree
Hide file tree
Showing 91 changed files with 1,758 additions and 1,514 deletions.
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
## 0.0.62
* Refactored internal event handling.
* [BREAKING_CHANGE] Migrated to null safety.
* [BREAKING_CHANGE] Updated dart min version to 2.12.0.
* Fixed issue where player controls were immediately hidden.
* Removed cancelFullScreenDismiss parameter.
* Added initialization check for VideoPlayerController.
* Changed default value of enableProgressText to true in BetterPlayerControlsConfiguration.
* Setup first selected HLS Audio as default one.
* General bug fixes.

## 0.0.61
* Fixed fullscreenByDefault issue.
* Updated documentation.
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ This plugin is based on [Chewie](https://github.com/brianegan/chewie). Chewie is

```yaml
dependencies:
better_player: ^0.0.61
better_player: ^0.0.62
```
2. Install it
Expand Down
4 changes: 2 additions & 2 deletions example/lib/model/video_list_data.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class VideoListData {
final String videoTitle;
final String videoUrl;
Duration lastPosition;
bool wasPlaying = false;
Duration? lastPosition;
bool? wasPlaying = false;

VideoListData(this.videoTitle, this.videoUrl);
}
2 changes: 1 addition & 1 deletion example/lib/pages/auto_fullscreen_orientation_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class AutoFullscreenOrientationPage extends StatefulWidget {

class _AutoFullscreenOrientationPageState
extends State<AutoFullscreenOrientationPage> {
BetterPlayerController _betterPlayerController;
late BetterPlayerController _betterPlayerController;

@override
void initState() {
Expand Down
2 changes: 1 addition & 1 deletion example/lib/pages/basic_player_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ class _BasicPlayerPageState extends State<BasicPlayerPage> {
future: Utils.getFileUrl(Constants.fileTestVideoUrl),
builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
if (snapshot.data != null) {
return BetterPlayer.file(snapshot.data);
return BetterPlayer.file(snapshot.data!);
} else {
return const SizedBox();
}
Expand Down
2 changes: 1 addition & 1 deletion example/lib/pages/cache_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class CachePage extends StatefulWidget {
}

class _CachePageState extends State<CachePage> {
BetterPlayerController _betterPlayerController;
late BetterPlayerController _betterPlayerController;

@override
void initState() {
Expand Down
4 changes: 2 additions & 2 deletions example/lib/pages/change_player_theme_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ class ChangePlayerThemePage extends StatefulWidget {
}

class _ChangePlayerThemePageState extends State<ChangePlayerThemePage> {
BetterPlayerController _betterPlayerController;
BetterPlayerDataSource _dataSource;
late BetterPlayerController _betterPlayerController;
BetterPlayerDataSource? _dataSource;
BetterPlayerTheme _playerTheme = BetterPlayerTheme.material;

@override
Expand Down
2 changes: 1 addition & 1 deletion example/lib/pages/controller_controls_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class ControllerControlsPage extends StatefulWidget {
}

class _ControllerControlsPageState extends State<ControllerControlsPage> {
BetterPlayerController _betterPlayerController;
late BetterPlayerController _betterPlayerController;

@override
void initState() {
Expand Down
4 changes: 2 additions & 2 deletions example/lib/pages/controls_always_visible_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class ControlsAlwaysVisiblePage extends StatefulWidget {
}

class _ControlsAlwaysVisiblePageState extends State<ControlsAlwaysVisiblePage> {
BetterPlayerController _betterPlayerController;
late BetterPlayerController _betterPlayerController;

@override
void initState() {
Expand Down Expand Up @@ -56,7 +56,7 @@ class _ControlsAlwaysVisiblePageState extends State<ControlsAlwaysVisiblePage> {
ElevatedButton(
onPressed: () {
_betterPlayerController.setControlsAlwaysVisible(
!(_betterPlayerController.controlsAlwaysVisible ?? false));
!(_betterPlayerController.controlsAlwaysVisible));
},
child: Text("Toggle always visible controls"))
],
Expand Down
2 changes: 1 addition & 1 deletion example/lib/pages/controls_configuration_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class ControlsConfigurationPage extends StatefulWidget {
}

class _ControlsConfigurationPageState extends State<ControlsConfigurationPage> {
BetterPlayerController _betterPlayerController;
late BetterPlayerController _betterPlayerController;

@override
void initState() {
Expand Down
54 changes: 27 additions & 27 deletions example/lib/pages/custom_controls/custom_controls_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import 'package:better_player/better_player.dart';
import 'package:flutter/material.dart';

class CustomControlsWidget extends StatefulWidget {
final BetterPlayerController controller;
final BetterPlayerController? controller;

const CustomControlsWidget({Key key, this.controller}) : super(key: key);
const CustomControlsWidget({Key? key, this.controller}) : super(key: key);

@override
_CustomControlsWidgetState createState() => _CustomControlsWidgetState();
Expand All @@ -30,7 +30,7 @@ class _CustomControlsWidgetState extends State<CustomControlsWidget> {
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Icon(
widget.controller.isFullScreen
widget.controller!.isFullScreen
? Icons.fullscreen_exit
: Icons.fullscreen,
color: Colors.white,
Expand All @@ -39,10 +39,10 @@ class _CustomControlsWidgetState extends State<CustomControlsWidget> {
),
),
onTap: () => setState(() {
if (widget.controller.isFullScreen)
widget.controller.exitFullScreen();
if (widget.controller!.isFullScreen)
widget.controller!.exitFullScreen();
else
widget.controller.enterFullScreen();
widget.controller!.enterFullScreen();
}),
),
),
Expand All @@ -65,18 +65,18 @@ class _CustomControlsWidgetState extends State<CustomControlsWidget> {
children: [
InkWell(
onTap: () async {
Duration videoDuration = await widget
.controller.videoPlayerController.position;
Duration? videoDuration = await widget
.controller!.videoPlayerController!.position;
setState(() {
if (widget.controller.isPlaying()) {
if (widget.controller!.isPlaying()!) {
Duration rewindDuration = Duration(
seconds: (videoDuration.inSeconds - 2));
seconds: (videoDuration!.inSeconds - 2));
if (rewindDuration <
widget.controller.videoPlayerController.value
.duration) {
widget.controller.seekTo(Duration(seconds: 0));
widget.controller!.videoPlayerController!
.value.duration!) {
widget.controller!.seekTo(Duration(seconds: 0));
} else {
widget.controller.seekTo(rewindDuration);
widget.controller!.seekTo(rewindDuration);
}
}
});
Expand All @@ -89,34 +89,34 @@ class _CustomControlsWidgetState extends State<CustomControlsWidget> {
InkWell(
onTap: () {
setState(() {
if (widget.controller.isPlaying())
widget.controller.pause();
if (widget.controller!.isPlaying()!)
widget.controller!.pause();
else
widget.controller.play();
widget.controller!.play();
});
},
child: Icon(
widget.controller.isPlaying()
widget.controller!.isPlaying()!
? Icons.pause
: Icons.play_arrow,
color: Colors.white,
),
),
InkWell(
onTap: () async {
Duration videoDuration = await widget
.controller.videoPlayerController.position;
Duration? videoDuration = await widget
.controller!.videoPlayerController!.position;
setState(() {
if (widget.controller.isPlaying()) {
if (widget.controller!.isPlaying()!) {
Duration forwardDuration = Duration(
seconds: (videoDuration.inSeconds + 2));
seconds: (videoDuration!.inSeconds + 2));
if (forwardDuration >
widget.controller.videoPlayerController.value
.duration) {
widget.controller.seekTo(Duration(seconds: 0));
widget.controller.pause();
widget.controller!.videoPlayerController!
.value.duration!) {
widget.controller!.seekTo(Duration(seconds: 0));
widget.controller!.pause();
} else {
widget.controller.seekTo(forwardDuration);
widget.controller!.seekTo(forwardDuration);
}
}
});
Expand Down
4 changes: 2 additions & 2 deletions example/lib/pages/drm_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ class DrmPage extends StatefulWidget {
}

class _DrmPageState extends State<DrmPage> {
BetterPlayerController _tokenController;
BetterPlayerController _widevineController;
late BetterPlayerController _tokenController;
late BetterPlayerController _widevineController;

@override
void initState() {
Expand Down
2 changes: 1 addition & 1 deletion example/lib/pages/event_listener_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class EventListenerPage extends StatefulWidget {
}

class _EventListenerPageState extends State<EventListenerPage> {
BetterPlayerController _betterPlayerController;
late BetterPlayerController _betterPlayerController;
List<BetterPlayerEvent> events = [];
StreamController<DateTime> _eventStreamController =
StreamController.broadcast();
Expand Down
2 changes: 1 addition & 1 deletion example/lib/pages/fade_placeholder_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class FadePlaceholderPage extends StatefulWidget {
}

class _FadePlaceholderPageState extends State<FadePlaceholderPage> {
BetterPlayerController _betterPlayerController;
late BetterPlayerController _betterPlayerController;
StreamController<bool> _playController = StreamController.broadcast();

@override
Expand Down
2 changes: 1 addition & 1 deletion example/lib/pages/hls_audio_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class HlsAudioPage extends StatefulWidget {
}

class _HlsAudioPageState extends State<HlsAudioPage> {
BetterPlayerController _betterPlayerController;
late BetterPlayerController _betterPlayerController;

@override
void initState() {
Expand Down
2 changes: 1 addition & 1 deletion example/lib/pages/hls_subtitles_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class HlsSubtitlesPage extends StatefulWidget {
}

class _HlsSubtitlesPageState extends State<HlsSubtitlesPage> {
BetterPlayerController _betterPlayerController;
late BetterPlayerController _betterPlayerController;

@override
void initState() {
Expand Down
2 changes: 1 addition & 1 deletion example/lib/pages/hls_tracks_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class HlsTracksPage extends StatefulWidget {
}

class _HlsTracksPageState extends State<HlsTracksPage> {
BetterPlayerController _betterPlayerController;
late BetterPlayerController _betterPlayerController;

@override
void initState() {
Expand Down
2 changes: 1 addition & 1 deletion example/lib/pages/memory_player_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class MemoryPlayerPage extends StatefulWidget {
}

class _MemoryPlayerPageState extends State<MemoryPlayerPage> {
BetterPlayerController _betterPlayerController;
late BetterPlayerController _betterPlayerController;

@override
void initState() {
Expand Down
10 changes: 4 additions & 6 deletions example/lib/pages/normal_player_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,19 @@ class NormalPlayerPage extends StatefulWidget {
}

class _NormalPlayerPageState extends State<NormalPlayerPage> {
BetterPlayerController _betterPlayerController;
late BetterPlayerController _betterPlayerController;

@override
void initState() {
BetterPlayerConfiguration betterPlayerConfiguration =
BetterPlayerConfiguration(
aspectRatio: 16 / 9,
fit: BoxFit.contain,
);
BetterPlayerDataSource dataSource = BetterPlayerDataSource(
BetterPlayerDataSourceType.network,
"http://cdn.theoplayer.com/video/elephants-dream/playlist.m3u8",
autoPlay: true,
);
_betterPlayerController = BetterPlayerController(betterPlayerConfiguration);
_betterPlayerController.setupDataSource(dataSource);
_betterPlayerController.setupDataSource(
BetterPlayerDataSource.network(Constants.forBiggerBlazesUrl));
super.initState();
}

Expand Down
2 changes: 1 addition & 1 deletion example/lib/pages/notification_player_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class NotificationPlayerPage extends StatefulWidget {
}

class _NotificationPlayerPageState extends State<NotificationPlayerPage> {
BetterPlayerController _betterPlayerController;
late BetterPlayerController _betterPlayerController;

@override
void initState() {
Expand Down
2 changes: 1 addition & 1 deletion example/lib/pages/overridden_aspect_ratio_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class OverriddenAspectRatioPage extends StatefulWidget {
}

class _OverriddenAspectRatioPageState extends State<OverriddenAspectRatioPage> {
BetterPlayerController _betterPlayerController;
late BetterPlayerController _betterPlayerController;

@override
void initState() {
Expand Down
2 changes: 1 addition & 1 deletion example/lib/pages/overriden_duration_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class OverriddenDurationPage extends StatefulWidget {
}

class _OverriddenDurationPageState extends State<OverriddenDurationPage> {
BetterPlayerController _betterPlayerController;
late BetterPlayerController _betterPlayerController;

@override
void initState() {
Expand Down
2 changes: 1 addition & 1 deletion example/lib/pages/picture_in_picture_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class PictureInPicturePage extends StatefulWidget {
}

class _PictureInPicturePageState extends State<PictureInPicturePage> {
BetterPlayerController _betterPlayerController;
late BetterPlayerController _betterPlayerController;
GlobalKey _betterPlayerKey = GlobalKey();

@override
Expand Down
2 changes: 1 addition & 1 deletion example/lib/pages/placeholder_until_play_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class PlaceholderUntilPlayPage extends StatefulWidget {
}

class _PlaceholderUntilPlayPageState extends State<PlaceholderUntilPlayPage> {
BetterPlayerController _betterPlayerController;
late BetterPlayerController _betterPlayerController;
StreamController<bool> _placeholderStreamController =
StreamController.broadcast();
bool _showPlaceholder = true;
Expand Down
Loading

0 comments on commit 6a00029

Please sign in to comment.