PlayerState.fromJson constructor

PlayerState.fromJson(
  1. Map<String, dynamic> json
)

Create PlayerState from JSON

Implementation

factory PlayerState.fromJson(Map<String, dynamic> json) {
  // Parse allPlayersMedia map
  final allPlayersMediaJson =
      json['allPlayersMedia'] as Map<String, dynamic>? ?? {};
  final allPlayersMedia = <String, MediaInfo>{};
  allPlayersMediaJson.forEach((key, value) {
    allPlayersMedia[key] = MediaInfo.fromJson(value as Map<String, dynamic>);
  });

  return PlayerState(
    currentMedia: MediaInfo.fromJson(
      json['currentMedia'] as Map<String, dynamic>? ?? {},
    ),
    allPlayersMedia: allPlayersMedia,
    isPlayerctlInstalled: json['isPlayerctlInstalled'] as bool? ?? false,
    hasActivePlayer: json['hasActivePlayer'] as bool? ?? false,
    availablePlayers:
        (json['availablePlayers'] as List<dynamic>?)
            ?.map((e) => e as String)
            .toList() ??
        [],
    selectedPlayer: json['selectedPlayer'] as String? ?? '',
    isLoading: json['isLoading'] as bool? ?? false,
    errorMessage: json['errorMessage'] as String? ?? '',
    volume: json['volume'] as int? ?? 50,
    shuffleStatus: json['shuffleStatus'] as String? ?? 'Unknown',
    loopStatus: json['loopStatus'] as String? ?? 'Unknown',
  );
}