Skip to content

Commit

Permalink
Fix lints.
Browse files Browse the repository at this point in the history
  • Loading branch information
ryanheise committed Aug 21, 2023
1 parent c3d6260 commit f1c2d08
Show file tree
Hide file tree
Showing 13 changed files with 70 additions and 46 deletions.
5 changes: 4 additions & 1 deletion audio_service/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
## 0.18.10
## 0.18.11

* Support custom media controls (@defsub)
* Support fast forward, rewind and stop when targeting Android 13 (@defsub)

## 0.18.10

* Add support for AGP 8 (@theskyblockman).
* Update AGP to 7.3.0.
* Update minimum flutter version to 3.0.
Expand Down
7 changes: 4 additions & 3 deletions audio_service/analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
include: package:flutter_lints/flutter.yaml

analyzer:
strong-mode:
implicit-casts: false
implicit-dynamic: false
language:
strict-casts: true
strict-inference: true
strict-raw-types: true

linter:
rules:
Expand Down
2 changes: 1 addition & 1 deletion audio_service/example/lib/common.dart
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ class _SeekBarState extends State<SeekBar> {
.firstMatch("$_remaining")
?.group(1) ??
'$_remaining',
style: Theme.of(context).textTheme.caption),
style: Theme.of(context).textTheme.bodySmall),
),
],
);
Expand Down
4 changes: 2 additions & 2 deletions audio_service/example/lib/example_playlist.dart
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ class MainScreen extends StatelessWidget {
),
),
Text(mediaItem.album ?? '',
style: Theme.of(context).textTheme.headline6),
style: Theme.of(context).textTheme.titleLarge),
Text(mediaItem.title),
],
);
Expand Down Expand Up @@ -149,7 +149,7 @@ class MainScreen extends StatelessWidget {
Expanded(
child: Text(
"Playlist",
style: Theme.of(context).textTheme.headline6,
style: Theme.of(context).textTheme.titleLarge,
textAlign: TextAlign.center,
),
),
Expand Down
4 changes: 2 additions & 2 deletions audio_service/lib/audio_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1299,7 +1299,7 @@ class AudioService {
@Deprecated("Use PlaybackState.processingState instead.")
static bool get running => runningStream.nvalue ?? false;

static StreamSubscription? _childrenSubscription;
static StreamSubscription<Map<String, dynamic>>? _childrenSubscription;

/// Deprecated. The new [AudioHandler] API now automatically starts the
/// service when your implementation enters the playing state. Parameters can
Expand Down Expand Up @@ -3840,7 +3840,7 @@ class _HandlerCallbacks extends AudioHandlerCallbacks {
}

@override
Future customAction(CustomActionRequest request) async =>
Future<dynamic> customAction(CustomActionRequest request) async =>
(await handlerFuture).customAction(request.name, request.extras);

@override
Expand Down
2 changes: 1 addition & 1 deletion audio_service/test/isolates_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,7 @@ class _MockAudioHandler implements BaseAudioHandler {
case 'add':
final streamName = extras!['stream'] as String;
final dynamic arg = extras['arg'];
<String, Subject>{
<String, Subject<dynamic>>{
'playbackState': playbackState,
'queue': queue,
'queueTitle': queueTitle,
Expand Down
7 changes: 4 additions & 3 deletions audio_service_platform_interface/analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
include: package:flutter_lints/flutter.yaml

analyzer:
strong-mode:
implicit-casts: false
implicit-dynamic: false
language:
strict-casts: true
strict-inference: true
strict-raw-types: true
exclude:
- '**/*.mocks.dart'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import 'dart:io';

import 'package:audio_service_platform_interface/no_op_audio_service.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:meta/meta.dart';
import 'package:plugin_platform_interface/plugin_platform_interface.dart';
Expand Down Expand Up @@ -665,9 +664,10 @@ class MediaItemMessage {
displaySubtitle: raw['displaySubtitle'] as String?,
displayDescription: raw['displayDescription'] as String?,
rating: raw['rating'] != null
? RatingMessage.fromMap(_castMap(raw['rating'] as Map)!)
? RatingMessage.fromMap(
_castMap(raw['rating'] as Map<dynamic, dynamic>)!)
: null,
extras: _castMap(raw['extras'] as Map?),
extras: _castMap(raw['extras'] as Map<dynamic, dynamic>?),
);

/// Converts this [MediaItemMessage] to a map of key/value pairs corresponding to
Expand Down Expand Up @@ -1436,4 +1436,5 @@ class AudioServiceConfigMessage {
/// Used mostly to unwrap [MethodCall.arguments] which in case with maps
/// is always `Map<Object?, Object?>`.
@pragma('vm:prefer-inline')
Map<String, dynamic>? _castMap(Map? map) => map?.cast<String, dynamic>();
Map<String, dynamic>? _castMap(Map<dynamic, dynamic>? map) =>
map?.cast<String, dynamic>();
Original file line number Diff line number Diff line change
Expand Up @@ -73,40 +73,46 @@ class MethodChannelAudioService extends AudioServicePlatform {
case 'prepareFromMediaId':
await callbacks.prepareFromMediaId(PrepareFromMediaIdRequest(
mediaId: call.arguments['mediaId'] as String,
extras: _castMap(call.arguments['extras'] as Map?)));
extras:
_castMap(call.arguments['extras'] as Map<dynamic, dynamic>?)));
return null;
case 'prepareFromSearch':
await callbacks.prepareFromSearch(PrepareFromSearchRequest(
query: call.arguments['query'] as String,
extras: _castMap(call.arguments['extras'] as Map?)));
extras:
_castMap(call.arguments['extras'] as Map<dynamic, dynamic>?)));
return null;
case 'prepareFromUri':
await callbacks.prepareFromUri(PrepareFromUriRequest(
uri: Uri.parse(call.arguments['uri'] as String),
extras: _castMap(call.arguments['extras'] as Map?)));
extras:
_castMap(call.arguments['extras'] as Map<dynamic, dynamic>?)));
return null;
case 'play':
await callbacks.play(const PlayRequest());
return null;
case 'playFromMediaId':
await callbacks.playFromMediaId(PlayFromMediaIdRequest(
mediaId: call.arguments['mediaId'] as String,
extras: _castMap(call.arguments['extras'] as Map?)));
extras:
_castMap(call.arguments['extras'] as Map<dynamic, dynamic>?)));
return null;
case 'playFromSearch':
await callbacks.playFromSearch(PlayFromSearchRequest(
query: call.arguments['query'] as String,
extras: _castMap(call.arguments['extras'] as Map?)));
extras:
_castMap(call.arguments['extras'] as Map<dynamic, dynamic>?)));
return null;
case 'playFromUri':
await callbacks.playFromUri(PlayFromUriRequest(
uri: Uri.parse(call.arguments['uri'] as String),
extras: _castMap(call.arguments['extras'] as Map?)));
extras:
_castMap(call.arguments['extras'] as Map<dynamic, dynamic>?)));
return null;
case 'playMediaItem':
await callbacks.playMediaItem(PlayMediaItemRequest(
mediaItem: MediaItemMessage.fromMap(
_castMap(call.arguments['mediaItem'] as Map)!)));
mediaItem: MediaItemMessage.fromMap(_castMap(
call.arguments['mediaItem'] as Map<dynamic, dynamic>)!)));
return null;
case 'pause':
await callbacks.pause(const PauseRequest());
Expand All @@ -121,19 +127,19 @@ class MethodChannelAudioService extends AudioServicePlatform {
return null;
case 'addQueueItem':
await callbacks.addQueueItem(AddQueueItemRequest(
mediaItem: MediaItemMessage.fromMap(
_castMap(call.arguments['mediaItem'] as Map)!)));
mediaItem: MediaItemMessage.fromMap(_castMap(
call.arguments['mediaItem'] as Map<dynamic, dynamic>)!)));
return null;
case 'insertQueueItem':
await callbacks.insertQueueItem(InsertQueueItemRequest(
index: call.arguments['index'] as int,
mediaItem: MediaItemMessage.fromMap(
_castMap(call.arguments['mediaItem'] as Map)!)));
mediaItem: MediaItemMessage.fromMap(_castMap(
call.arguments['mediaItem'] as Map<dynamic, dynamic>)!)));
return null;
case 'removeQueueItem':
await callbacks.removeQueueItem(RemoveQueueItemRequest(
mediaItem: MediaItemMessage.fromMap(
_castMap(call.arguments['mediaItem'] as Map)!)));
mediaItem: MediaItemMessage.fromMap(_castMap(
call.arguments['mediaItem'] as Map<dynamic, dynamic>)!)));
return null;
case 'removeQueueItemAt':
await callbacks.removeQueueItemAt(
Expand Down Expand Up @@ -163,8 +169,9 @@ class MethodChannelAudioService extends AudioServicePlatform {
case 'setRating':
await callbacks.setRating(SetRatingRequest(
rating: RatingMessage.fromMap(
_castMap(call.arguments['rating'] as Map)!),
extras: _castMap(call.arguments['extras'] as Map?)));
_castMap(call.arguments['rating'] as Map<dynamic, dynamic>)!),
extras:
_castMap(call.arguments['extras'] as Map<dynamic, dynamic>?)));
return null;
case 'setCaptioningEnabled':
await callbacks.setCaptioningEnabled(SetCaptioningEnabledRequest(
Expand Down Expand Up @@ -195,7 +202,8 @@ class MethodChannelAudioService extends AudioServicePlatform {
case 'customAction':
await callbacks.customAction(CustomActionRequest(
name: call.arguments['name'] as String,
extras: _castMap(call.arguments['extras'] as Map?)));
extras:
_castMap(call.arguments['extras'] as Map<dynamic, dynamic>?)));
return null;
case 'onTaskRemoved':
await callbacks.onTaskRemoved(const OnTaskRemovedRequest());
Expand All @@ -211,7 +219,8 @@ class MethodChannelAudioService extends AudioServicePlatform {
case 'getChildren':
return (await callbacks.getChildren(GetChildrenRequest(
parentMediaId: call.arguments['parentMediaId'] as String,
options: _castMap(call.arguments['options'] as Map?))))
options: _castMap(
call.arguments['options'] as Map<dynamic, dynamic>?))))
.toMap();
case 'getMediaItem':
return (await callbacks.getMediaItem(GetMediaItemRequest(
Expand All @@ -220,7 +229,8 @@ class MethodChannelAudioService extends AudioServicePlatform {
case 'search':
return (await callbacks.search(SearchRequest(
query: call.arguments['query'] as String,
extras: _castMap(call.arguments['extras'] as Map?))))
extras: _castMap(
call.arguments['extras'] as Map<dynamic, dynamic>?))))
.toMap();
case 'androidSetRemoteVolume':
await callbacks.androidSetRemoteVolume(AndroidSetRemoteVolumeRequest(
Expand All @@ -245,4 +255,5 @@ class MethodChannelAudioService extends AudioServicePlatform {
/// Used mostly to unwrap [MethodCall.arguments] which in case with maps
/// is always `Map<Object?, Object?>`.
@pragma('vm:prefer-inline')
Map<String, dynamic>? _castMap(Map? map) => map?.cast<String, dynamic>();
Map<String, dynamic>? _castMap(Map<dynamic, dynamic>? map) =>
map?.cast<String, dynamic>();
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ class MockMethodChannelAudioService extends MethodChannelAudioService
implements MockPlatformInterfaceMixin {
@override
void setHandlerCallbacks(AudioHandlerCallbacks callbacks) {
handlerChannel.setMockMethodCallHandler((call) async {
_ambiguate(TestDefaultBinaryMessengerBinding.instance)!
.defaultBinaryMessenger
.setMockMethodCallHandler(handlerChannel, (call) async {
return handlerCallbacksCallHandler(callbacks, call);
});
}
Expand Down Expand Up @@ -704,3 +706,5 @@ void main() {
});
});
}

T? _ambiguate<T>(T? value) => value;
10 changes: 6 additions & 4 deletions audio_service_platform_interface/test/method_channel_mock.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,16 @@ class MockMethodChannel {
required String channelName,
this.methods,
}) : methodChannel = MethodChannel(channelName) {
//TestDefaultBinaryMessengerBinding.instance!.defaultBinaryMessenger
// .setMockMethodCallHandler(methodChannel, _handler);
methodChannel.setMockMethodCallHandler(_handler);
_ambiguate(TestDefaultBinaryMessengerBinding.instance)!
.defaultBinaryMessenger
.setMockMethodCallHandler(methodChannel, _handler);
}

MockMethodChannel copyWith(Map<String, dynamic> methods) {
return MockMethodChannel(channelName: methodChannel.name, methods: methods);
}

Future _handler(MethodCall call) async {
Future<Object?> _handler(MethodCall call) async {
log.add(call);

if (!methods!.containsKey(call.method)) {
Expand All @@ -37,3 +37,5 @@ class MockMethodChannel {
return Future<dynamic>.value(result);
}
}

T? _ambiguate<T>(T? value) => value;
7 changes: 4 additions & 3 deletions audio_service_web/analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
include: package:flutter_lints/flutter.yaml

analyzer:
strong-mode:
implicit-casts: false
implicit-dynamic: false
language:
strict-casts: true
strict-inference: true
strict-raw-types: true

linter:
rules:
Expand Down
2 changes: 1 addition & 1 deletion audio_service_web/lib/js/media_session_web.dart
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ abstract class MediaSessionActions {
}

/// A callback signature for the [MediaSession.setActionHandler].
typedef MediaSessionActionHandler = Function(MediaSessionActionDetails);
typedef MediaSessionActionHandler = dynamic Function(MediaSessionActionDetails);

/// Specifies the type of action which needs to be performed
/// as well as the data needed to perform the action.
Expand Down

0 comments on commit f1c2d08

Please sign in to comment.