Skip to content

Commit 2d1e56a

Browse files
committed
Null-safety migration
1 parent 905d684 commit 2d1e56a

File tree

10 files changed

+95
-97
lines changed

10 files changed

+95
-97
lines changed

example/lib/main.dart

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ class DartVLC extends StatefulWidget {
1313
}
1414

1515
class _DartVLCState extends State<DartVLC> {
16+
Player? player;
1617
bool init = true;
17-
Player player;
1818
MediaType mediaType = MediaType.file;
1919
CurrentState current = new CurrentState();
2020
PositionState position = new PositionState();
@@ -23,7 +23,7 @@ class _DartVLCState extends State<DartVLC> {
2323
List<Media> medias = <Media>[];
2424
List<Device> devices = <Device>[];
2525
TextEditingController controller = new TextEditingController();
26-
Media metasMedia;
26+
Media? metasMedia;
2727
TextEditingController metasController = new TextEditingController();
2828

2929
@override
@@ -35,16 +35,16 @@ class _DartVLCState extends State<DartVLC> {
3535
videoWidth: 480,
3636
videoHeight: 320,
3737
);
38-
this.player.currentStream.listen((current) {
38+
this.player?.currentStream?.listen((current) {
3939
this.setState(() => this.current = current);
4040
});
41-
this.player.positionStream.listen((position) {
41+
this.player?.positionStream?.listen((position) {
4242
this.setState(() => this.position = position);
4343
});
44-
this.player.playbackStream.listen((playback) {
44+
this.player?.playbackStream?.listen((playback) {
4545
this.setState(() => this.playback = playback);
4646
});
47-
this.player.generateStream.listen((general) {
47+
this.player?.generateStream?.listen((general) {
4848
this.setState(() => this.general = general);
4949
});
5050
this.devices = await Devices.all;
@@ -132,7 +132,7 @@ class _DartVLCState extends State<DartVLC> {
132132
value: this.mediaType,
133133
onChanged: (mediaType) => this
134134
.setState(() =>
135-
this.mediaType = mediaType),
135+
this.mediaType = mediaType!),
136136
items: [
137137
DropdownMenuItem<MediaType>(
138138
value: MediaType.file,
@@ -236,7 +236,7 @@ class _DartVLCState extends State<DartVLC> {
236236
children: [
237237
ElevatedButton(
238238
onPressed: () => this.setState(() {
239-
this.player.open(
239+
this.player?.open(
240240
new Playlist(
241241
medias: this.medias,
242242
),
@@ -302,7 +302,7 @@ class _DartVLCState extends State<DartVLC> {
302302
.inMilliseconds
303303
.toDouble(),
304304
onChanged: (double position) {
305-
this.player.seek(
305+
this.player?.seek(
306306
Duration(
307307
milliseconds: position.toInt()),
308308
);
@@ -396,7 +396,7 @@ class _DartVLCState extends State<DartVLC> {
396396
),
397397
),
398398
onTap: () =>
399-
this.player.setDevice(device),
399+
this.player?.setDevice(device),
400400
),
401401
)
402402
.toList(),
@@ -437,7 +437,7 @@ class _DartVLCState extends State<DartVLC> {
437437
child: DropdownButton<MediaType>(
438438
value: this.mediaType,
439439
onChanged: (mediaType) => this.setState(
440-
() => this.mediaType = mediaType),
440+
() => this.mediaType = mediaType!),
441441
items: [
442442
DropdownMenuItem<MediaType>(
443443
value: MediaType.file,
@@ -541,7 +541,7 @@ class _DartVLCState extends State<DartVLC> {
541541
Row(
542542
children: [
543543
ElevatedButton(
544-
onPressed: () => this.player.play(),
544+
onPressed: () => this.player?.play(),
545545
child: Text(
546546
'play',
547547
style: TextStyle(
@@ -551,7 +551,7 @@ class _DartVLCState extends State<DartVLC> {
551551
),
552552
SizedBox(width: 12.0),
553553
ElevatedButton(
554-
onPressed: () => this.player.pause(),
554+
onPressed: () => this.player?.pause(),
555555
child: Text(
556556
'pause',
557557
style: TextStyle(
@@ -561,7 +561,7 @@ class _DartVLCState extends State<DartVLC> {
561561
),
562562
SizedBox(width: 12.0),
563563
ElevatedButton(
564-
onPressed: () => this.player.playOrPause(),
564+
onPressed: () => this.player?.playOrPause(),
565565
child: Text(
566566
'playOrPause',
567567
style: TextStyle(
@@ -571,7 +571,7 @@ class _DartVLCState extends State<DartVLC> {
571571
),
572572
SizedBox(width: 12.0),
573573
ElevatedButton(
574-
onPressed: () => this.player.stop(),
574+
onPressed: () => this.player?.stop(),
575575
child: Text(
576576
'stop',
577577
style: TextStyle(
@@ -581,7 +581,7 @@ class _DartVLCState extends State<DartVLC> {
581581
),
582582
SizedBox(width: 12.0),
583583
ElevatedButton(
584-
onPressed: () => this.player.next(),
584+
onPressed: () => this.player?.next(),
585585
child: Text(
586586
'next',
587587
style: TextStyle(
@@ -591,7 +591,7 @@ class _DartVLCState extends State<DartVLC> {
591591
),
592592
SizedBox(width: 12.0),
593593
ElevatedButton(
594-
onPressed: () => this.player.back(),
594+
onPressed: () => this.player?.back(),
595595
child: Text(
596596
'back',
597597
style: TextStyle(
@@ -616,9 +616,9 @@ class _DartVLCState extends State<DartVLC> {
616616
Slider(
617617
min: 0.0,
618618
max: 1.0,
619-
value: this.player?.general?.volume ?? 0.5,
619+
value: this.player?.general.volume ?? 0.5,
620620
onChanged: (volume) {
621-
this.player.setVolume(volume);
621+
this.player?.setVolume(volume);
622622
this.setState(() {});
623623
},
624624
),
@@ -630,9 +630,9 @@ class _DartVLCState extends State<DartVLC> {
630630
Slider(
631631
min: 0.5,
632632
max: 1.5,
633-
value: this.player?.general?.rate ?? 1.0,
633+
value: this.player?.general.rate ?? 0.5,
634634
onChanged: (rate) {
635-
this.player.setRate(rate);
635+
this.player?.setRate(rate);
636636
this.setState(() {});
637637
},
638638
),
@@ -678,9 +678,7 @@ class _DartVLCState extends State<DartVLC> {
678678
finalIndex = this.current.medias.length;
679679
if (initialIndex < finalIndex) finalIndex--;
680680

681-
await this
682-
.player
683-
.move(initialIndex, finalIndex);
681+
await this.player?.move(initialIndex, finalIndex);
684682
this.setState(() {});
685683
},
686684
scrollDirection: Axis.vertical,

example/pubspec.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ packages:
5656
path: ".."
5757
relative: true
5858
source: path
59-
version: "0.0.3"
59+
version: "0.0.4"
6060
fake_async:
6161
dependency: transitive
6262
description:

example/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ description: Demonstrates how to use the dart_vlc plugin.
66
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
77

88
environment:
9-
sdk: ">=2.7.0 <3.0.0"
9+
sdk: ">=2.12.0 <3.0.0"
1010

1111
dependencies:
1212
flutter:

lib/src/channel.dart

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -22,57 +22,57 @@ final MethodChannel channel = new MethodChannel('dart_vlc')
2222
switch (methodCall.arguments['type']) {
2323
case 'openEvent':
2424
{
25-
players[id].current.index = methodCall.arguments['index'];
26-
players[id].current.medias = methodCall.arguments['medias']
25+
players[id]!.current.index = methodCall.arguments['index'];
26+
players[id]!.current.medias = methodCall.arguments['medias']
2727
.map(
2828
(media) => Media.fromMap(media),
2929
)
3030
.toList()
3131
.cast<Media>();
32-
players[id].current.media =
33-
players[id].current.medias[players[id].current.index];
34-
players[id].current.isPlaylist =
32+
players[id]!.current.media =
33+
players[id]!.current.medias[players[id]!.current.index!];
34+
players[id]!.current.isPlaylist =
3535
methodCall.arguments['isPlaylist'];
36-
players[id].currentController.add(players[id].current);
37-
players[id].playback.isCompleted = false;
38-
players[id].playbackController.add(players[id].playback);
36+
players[id]!.currentController?.add(players[id]!.current);
37+
players[id]!.playback.isCompleted = false;
38+
players[id]!.playbackController?.add(players[id]!.playback);
3939
break;
4040
}
4141
case 'positionEvent':
4242
{
43-
players[id].position.position = Duration(
43+
players[id]!.position.position = Duration(
4444
milliseconds: methodCall.arguments['position'] ?? 0);
45-
players[id].position.duration = Duration(
45+
players[id]!.position.duration = Duration(
4646
milliseconds: methodCall.arguments['duration'] ?? 0);
47-
players[id].positionController.add(players[id].position);
47+
players[id]!.positionController?.add(players[id]!.position);
4848
break;
4949
}
5050
case 'playbackEvent':
5151
{
52-
players[id].playback.isPlaying =
52+
players[id]!.playback.isPlaying =
5353
methodCall.arguments['isPlaying'];
54-
players[id].playback.isSeekable =
54+
players[id]!.playback.isSeekable =
5555
methodCall.arguments['isSeekable'];
56-
players[id].playbackController.add(players[id].playback);
56+
players[id]!.playbackController?.add(players[id]!.playback);
5757
break;
5858
}
5959
case 'completeEvent':
6060
{
61-
players[id].playback.isCompleted =
61+
players[id]!.playback.isCompleted =
6262
methodCall.arguments['isCompleted'];
63-
players[id].playbackController.add(players[id].playback);
63+
players[id]!.playbackController?.add(players[id]!.playback);
6464
break;
6565
}
6666
case 'volumeEvent':
6767
{
68-
players[id].general.volume = methodCall.arguments['volume'];
69-
players[id].generalController.add(players[id].general);
68+
players[id]!.general.volume = methodCall.arguments['volume'];
69+
players[id]!.generalController?.add(players[id]!.general);
7070
break;
7171
}
7272
case 'rateEvent':
7373
{
74-
players[id].general.rate = methodCall.arguments['rate'];
75-
players[id].generalController.add(players[id].general);
74+
players[id]!.general.rate = methodCall.arguments['rate'];
75+
players[id]!.generalController?.add(players[id]!.general);
7676
break;
7777
}
7878
case 'exceptionEvent':
@@ -95,7 +95,7 @@ final MethodChannel channel = new MethodChannel('dart_vlc')
9595
videoHeight: methodCall.arguments['videoHeight'],
9696
byteArray: methodCall.arguments['byteArray'],
9797
);
98-
videoStreamControllers[playerId].add(frame);
98+
videoStreamControllers[playerId]?.add(frame);
9999
}
100100
break;
101101
}

lib/src/mediaSource/media.dart

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,15 @@ class _Media extends Media {}
3838
abstract class Media extends MediaSource {
3939
int id = mediaExtras.length;
4040
MediaSourceType mediaSourceType = MediaSourceType.media;
41-
MediaType mediaType;
42-
String resource;
4341
Map<String, String> metas = {};
4442
Map<String, dynamic> extras = {};
43+
late MediaType mediaType;
44+
late String resource;
4545

4646
/// Makes [Media] object from a [File].
4747
static Future<Media> file(File file,
4848
{bool parse: false,
49-
Map<String, dynamic> extras,
49+
Map<String, dynamic>? extras,
5050
Duration timeout: const Duration(seconds: 10)}) async {
5151
Media media = new _Media();
5252
media.mediaType = MediaType.file;
@@ -65,7 +65,7 @@ abstract class Media extends MediaSource {
6565
/// Makes [Media] object from url.
6666
static Future<Media> network(dynamic url,
6767
{bool parse: false,
68-
Map<String, dynamic> extras,
68+
Map<String, dynamic>? extras,
6969
Duration timeout: const Duration(seconds: 10)}) async {
7070
Media media = new _Media();
7171
media.mediaType = MediaType.network;
@@ -87,7 +87,7 @@ abstract class Media extends MediaSource {
8787
/// Makes [Media] object from a asset.
8888
static Future<Media> asset(String path,
8989
{bool parse: false,
90-
Map<String, dynamic> extras,
90+
Map<String, dynamic>? extras,
9191
Duration timeout: const Duration(seconds: 10)}) async {
9292
Media media = new _Media();
9393
media.mediaType = MediaType.asset;
@@ -119,10 +119,10 @@ abstract class Media extends MediaSource {
119119
'MediaType.file': MediaType.file,
120120
'MediaType.network': MediaType.network,
121121
'MediaType.asset': MediaType.asset,
122-
}[map['mediaType']];
122+
}[map['mediaType']]!;
123123
media.resource = map['resource'];
124-
media.metas = mediaMetas[media.id];
125-
media.extras = mediaExtras[media.id];
124+
media.metas = mediaMetas[media.id]!;
125+
media.extras = mediaExtras[media.id]!;
126126
return media;
127127
}
128128

lib/src/mediaSource/mediaSource.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import 'package:dart_vlc/src/enums/mediaSourceType.dart';
22

33
/// Parent abstract class of [Media] and [Playlist].
44
abstract class MediaSource {
5-
MediaSourceType mediaSourceType;
5+
late MediaSourceType mediaSourceType;
66

77
/// Internally used method to easily transform data for sending through Platform channel.
88
Map<String, dynamic> toMap();

lib/src/mediaSource/playlist.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class Playlist extends MediaSource {
2929
/// [List] of [Media] present in the playlist.
3030
List<Media> medias;
3131

32-
Playlist({@required this.medias});
32+
Playlist({required this.medias});
3333

3434
/// Internally used method to easily transform data for sending through Platform channel.
3535
static Playlist fromMap(dynamic map) => new Playlist(

0 commit comments

Comments
 (0)